posts - 431,  comments - 344,  trackbacks - 0

          軟件包 javax.xml.validation

          此包提供了用于 XML 文檔驗證的 API。

          請參見:
                    描述

          類摘要
          Schema 不可變的語法存儲表示形式。
          SchemaFactory 創建 Schema 對象的工廠。
          SchemaFactoryLoader 創建 SchemaFactory 的工廠。
          TypeInfoProvider 此類提供了對 ValidatorHandler 所確定的類型信息的訪問。
          Validator 根據 Schema 檢查 XML 文檔的處理器。
          ValidatorHandler 處理 SAX 流的流驗證器。
           

          軟件包 javax.xml.validation 的描述

          此包提供了用于 XML 文檔驗證的 API。Validation 是驗證 XML 文檔是否為指定 XML schema 的實例的過程。XML 模式定義了其實例文檔將表示的內容模式(也稱為 grammarvocabulary)。

          有多種流行的技術用于創建 XML 模式。最流行的技術包括:

          以前的 JAXP 版本支持作為 XML 解析器的功能的驗證,要么通過 SAXParser 實例,要么通過 DocumentBuilder 實例來表示。

          JAXP 驗證 API 從 XML 文檔解析中分離出實例文檔的驗證。這具有幾種優點,一些原因包括:

          • 支持額外的模式語言。 從 JDK 1.5 開始,兩種最流行的 JAXP 解析器實現(Crimson 和 Xerces)僅支持可用的 XML 模式語言的子集。Validation API 提供了標準的機制,應用程序通過此機制可利用支持額外模式語言的規范驗證庫。
          • 簡單的 XML 實例與模式的運行時耦合。 指定要用于通過 JAXP 解析器驗證的模式位置可能易于混淆。Validation API 使此過程變得簡單(參見以下示例)。

          用例以下示例演示了通過 Validation API 驗證 XML 文檔(為了方便閱讀,此例未顯示某些異常處理):

          // parse an XML document into a DOM tree
          DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
          Document document = parser.parse(new File("instance.xml"));
          // create a SchemaFactory capable of understanding WXS schemas
          SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
          // load a WXS schema, represented by a Schema instance
          Source schemaFile = new StreamSource(new File("mySchema.xsd"));
          Schema schema = factory.newSchema(schemaFile);
          // create a Validator instance, which can be used to validate an instance document
          Validator validator = schema.newValidator();
          // validate the DOM tree
          try {
          validator.validate(new DOMSource(document));
          } catch (SAXException e) {
          // instance document is invalid!
          }
          

          JAXP 解析 API 已經與驗證 API 進行了集成。應用程序可以通過驗證 API 創建 Schema,并通過使用 DocumentBuilderFactory.setSchema(Schema)SAXParserFactory.setSchema(Schema) 方法將其與 DocumentBuilderFactorySAXParserFactory 實例進行關聯。您不能既設置模式,又調用解析器工廠上的 setValidating(true)。前者的技術將導致解析器使用新的驗證 API,后者將導致解析器使用它們自己的內部驗證工具。同時調整這兩個選項將導致冗余行為或錯誤條件。

          posted on 2008-03-07 11:03 周銳 閱讀(558) 評論(1)  編輯  收藏 所屬分類: ApacheJava
          主站蜘蛛池模板: 旺苍县| 长春市| 中西区| 资溪县| 贺兰县| 日土县| 明光市| 南宫市| 舟山市| 临朐县| 江安县| 沙田区| 玉龙| 西吉县| 桓仁| 马关县| 隆尧县| 永宁县| 双辽市| 定兴县| 义乌市| 循化| 眉山市| 德钦县| 枣阳市| 辉县市| 宣城市| 依兰县| 南木林县| 年辖:市辖区| 西宁市| 孝感市| 黔西| 明溪县| 双柏县| 曲沃县| 株洲县| 博乐市| 遂昌县| 孟州市| 扶绥县|