Пакет javax.xml.validation

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

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

  • Определение типа документа (DTD) — встроенный язык схем XML.
  • Схема W3C XML (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 находится в процессе становления международным стандартом.

Хотя 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 валидации; второй — их собственные внутренние средства валидации. Одновременное включение этих двух опций вызовет либо избыточное поведение, либо ошибки.

С:
1.5
Класс Описание
Схема

Неизменяемое представление грамматики в памяти.

Фабрика схем

Фабрика, которая создаёт объекты Schema.

Загрузчик фабрики схем

Фабрика, которая создаёт SchemaFactory.

Поставщик информации о типах

Этот класс предоставляет доступ к информации о типах, определяемой ValidatorHandler.

Валидатор

Процессор, который проверяет XML-документ на соответствие Schema.

Обработчик валидатора

Потоковый валидатор, работающий с потоком SAX.

Ошибка Описание
Ошибка конфигурации фабрики схем

Выбрасывается, когда возникают проблемы с конфигурацией фабрик схем.

© 1993, 2020, 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/11/docs/api/java.xml/javax/xml/validation/package-summary.html

Spec-Zone .ru
спецификации, руководства, описания, API