Пакет 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
| Класс | Описание |
|---|---|
| Схема | Неизменяемое представление грамматики в памяти. |
| Фабрика схем | Фабрика, создающая объекты Schema. |
| Ошибка конфигурации фабрики схем | Выбрасывается, когда возникает проблема с конфигурацией фабрик схем. |
| Загрузчик фабрики схем | Фабрика, создающая SchemaFactory. |
| Поставщик информации о типах | Этот класс предоставляет доступ к информации о типах, определённой ValidatorHandler. |
| Валидатор | Обработчик, проверяющий XML-документ на соответствие Schema. |
| Обработчик валидации | Потоковый валидатор, работающий с потоком SAX. |
© 1993, 2023, 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/21/docs/api/java.xml/javax/xml/validation/package-summary.html