Пакет 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
| Класс | Описание |
|---|---|
| Схема | Неизменяемое представление грамматики в памяти. |
| 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/javax/xml/validation/package-summary.html