Пакет javax.xml.validation
Предоставляет API для проверки XML-документов. Проверка — это процесс подтверждения того, что XML-документ является экземпляром заданной XML-схемы. XML-схема определяет модель содержимого (также называемую грамматикой или словарём), которой будут соответствовать документы-экземпляры.
Существует ряд популярных технологий для создания XML-схем. К наиболее популярным относятся:
- Определение типа документа (DTD) — встроенный язык схем XML.
- XML Schema консорциума W3C (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 проверки, а второй — их собственные встроенные средства проверки. Одновременное включение обоих параметров приведёт либо к избыточной обработке, либо к ошибкам.
- Начиная с:
- 1.5
| Класс | Описание |
|---|---|
| Schema | Неизменяемое представление грамматики в памяти. |
| SchemaFactory | Фабрика, создающая объекты Schema. |
| SchemaFactoryConfigurationError | Выбрасывается при возникновении проблемы с конфигурацией фабрик схем. |
| SchemaFactoryLoader | Фабрика, создающая SchemaFactory. |
| TypeInfoProvider | Этот класс предоставляет доступ к сведениям о типах, определённым ValidatorHandler. |
| Validator | Обработчик, проверяющий XML-документ на соответствие Schema. |
| ValidatorHandler | Потоковый валидатор, работающий с потоком SAX. |
© 1993, 2025, 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/25/docs/api/java.xml/javax/xml/validation/package-summary.html