Spec-Zone.ru › OpenJDK 8

Пакет javax.xml.validation

Этот пакет предоставляет API для валидации XML-документов.

См.: Описание

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

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

SchemaFactory

Фабрика, создающая Schema объекты. Точка входа в API валидации.

SchemaFactoryLoader

Фабрика, создающая SchemaFactory.

TypeInfoProvider

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

Validator

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

ValidatorHandler

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

Ошибка Описание
SchemaFactoryConfigurationError

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

Описание пакета 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 валидации JAXP отвязывает валидацию экземпляра документа от парсинга XML-документа. Это выгодно по нескольким причинам, некоторые из которых:

  • Поддержка дополнительных языков схем. По состоянию на JDK 1.5 два наиболее популярных реализации парсеров JAXP, Crimson и Xerces, поддерживают только подмножество доступных языков 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 валидации; второй заставит парсеры использовать свои собственные внутренние средства валидации. Включение обоих вариантов одновременно приведет либо к избыточному поведению, либо к ошибочным состояниям.

© 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.

Spec-Zone.ru

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