Spec-Zone.ru › OpenJDK 17

Пакет javax.xml.validation

package javax.xml.validation

Предоставляет API для валидации XML-документов. Валидация — это процесс проверки того, что XML-документ является экземпляром указанной XML-схемы. XML-схема определяет модель содержимого (также называемую грамматикой или лексикой), которую будут представлять её экземпляры.

Существует ряд популярных технологий для создания XML-схем. К наиболее популярным относятся:

  • Определение типа документа (DTD) — встроенный язык схем XML.
  • W3C XML Schema (WXS) — объектно-ориентированный язык XML-схем. WXS также предоставляет систему типов для ограничения символьных данных XML-документа. WXS поддерживается Консорциумом Всемирной паутины (W3C) и является рекомендацией W3C (то есть ратифицированным стандартом спецификацией W3C).
  • RELAX NG (RNG) — удобный язык XML-схем на основе шаблонов. RNG-схемы также могут использовать типы для ограничения символьных данных XML. RNG поддерживается Организацией по продвижению стандартов структурированной информации (OASIS) и является стандартом OASIS и ISO (Международной организации по стандартизации).
  • Schematron — язык XML-схем на основе правил. В то время как DTD, WXS и RNG предназначены для выражения структуры модели содержимого, Schematron предназначен для обеспечения соблюдения отдельных правил, которые сложно или невозможно выразить с помощью других языков схем. Schematron предназначен для дополнения схемы, написанной на языке структурной схемы, таком как упомянутые выше. Schematron является стандартом ISO.

Хотя JAXP поддерживает валидацию как функцию XML-парсера, представленную экземпляром SAXParser или DocumentBuilder, API Validation предпочтительнее.

API валидации JAXP отвязывает валидацию экземпляра документа от разбора XML-документа. Это выгодно по нескольким причинам, некоторые из которых:

  • Поддержка дополнительных языков схем. Реализации парсеров JAXP поддерживают только подмножество доступных языков XML-схем. API валидации предоставляет стандартный механизм, посредством которого приложения могут использовать специализированные библиотеки валидации, поддерживающие дополнительные языки схем.
  • Легкая привязка XML-экземпляра и схемы во время выполнения. Указание расположения схемы для использования при валидации с помощью парсеров JAXP может быть запутанным. API валидации упрощает этот процесс (см. пример ниже).

Пример использования. Следующий пример демонстрирует валидацию XML-документа с помощью API валидации (для удобочитаемости некоторые обработка исключений не показана):


     // 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!
     }
 

API разбора JAXP интегрирован с API валидации. Приложения могут создать Schema с помощью API валидации и связать его с DocumentBuilderFactory или SAXParserFactory экземпляром, используя методы DocumentBuilderFactory.setSchema(Schema) и SAXParserFactory.setSchema(Schema). Не следует одновременно задавать схему и вызывать setValidating(true) на фабрике парсера. Первый подход заставит парсеры использовать новый API валидации; второй — использовать собственные внутренние средства валидации. Включение этих опций одновременно приведет к либо избыточному поведению, либо ошибкам.

Since:
1.5
Пакет Описание
javax.xml
Определяет константы для обработки XML.
Класс Описание
Схема
Неизменяемое представление грамматики в памяти.
SchemaFactory
Фабрика, создающая объекты Schema.
SchemaFactoryConfigurationError
Бросается, когда возникла проблема с конфигурацией фабрик схем.
SchemaFactoryLoader
Фабрика, создающая SchemaFactory.
TypeInfoProvider
Этот класс предоставляет доступ к информации о типах, определяемой ValidatorHandler.
Validator
Обработчик, проверяющий XML-документ на соответствие Schema.
ValidatorHandler
Потоковый валидатор, работающий с потоком SAX.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.xml/javax/xml/validation/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API