Spec-Zone.ru › OpenJDK 8

Класс Validator

  • java.lang.Object
    • javax.xml.validation.Validator

public abstract class Validator
extends Object

Обработчик, проверяющий XML-документ по Schema.

Объект валидатора не потокобезопасен и не реентерабелен. Другими словами, приложение должно гарантировать, что один объект Validator не используется более чем одной нитью в любое время, а также, что метод validate не вызывается рекурсивно внутри вызова метода validate.

Since:
1.5

Конструкторы

Модификатор Конструктор и описание
protected Validator()

Конструктор для производных классов.

Методы

Модификатор и тип Метод и описание
abstract ErrorHandler getErrorHandler()

Получает текущий набор ErrorHandler, установленный для этого Validator.

boolean getFeature(String name)

Получает значение флага функции.

Object getProperty(String name)

Получает значение свойства.

abstract LSResourceResolver getResourceResolver()

Получает текущий набор LSResourceResolver, установленный для этого Validator.

abstract void reset()

Сбрасывает этот Validator в исходную конфигурацию.

abstract void setErrorHandler(ErrorHandler errorHandler)

Устанавливает обработчик ErrorHandler для получения ошибок, возникших во время вызова метода validate.

void setFeature(String name, boolean value)

Устанавливает значение флага функции.

void setProperty(String name, Object object)

Устанавливает значение свойства.

abstract void setResourceResolver(LSResourceResolver resourceResolver)

Устанавливает LSResourceResolver для настройки разрешения ресурсов во время эпизода валидации.

void validate(Source source)

Проверяет указанный вход.

abstract void validate(Source source, Result result)

Проверяет указанный вход и отправляет результат валидации с расширениями в указанный выход.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

Validator

protected Validator()

Конструктор для производных классов.

Конструктор ничего не делает.

Производные классы должны создать объекты Validator, которые имеют null обработчик ошибок ErrorHandler и null решатель ресурсов LSResourceResolver.

Методы

reset

public abstract void reset()

Сбросить текущий Validator до исходной конфигурации.

Validator сбрасывается в то же состояние, что и при создании с помощью Schema.newValidator(). reset() разработан для повторного использования существующих Validator для экономии ресурсов, связанных с созданием новых Validator.

Сброшенный Validator не гарантирует, что решатель ресурсов LSResourceResolver или обработчик ошибок ErrorHandler Object будут одинаковыми, например, Object.equals(Object obj). Гарантируется, что LSResourceResolver и ErrorHandler функционально эквивалентны.

validate

public void validate(Source source)
              throws SAXException,
                     IOException

Проверяет указанный входной параметр.

Это просто удобный метод для validate(Source source, Result result) с result результата null.

Параметры:
source - XML для проверки. Должен быть XML-документом или XML-элементом и не должен быть null. Для обратной совместимости результаты попытки проверки чего-либо, кроме документа или элемента, зависят от реализации. Реализации должны либо распознать и обработать входные данные, либо бросить исключение IllegalArgumentException.
Исключения:
IllegalArgumentException - Если Source является XML-объектом, который реализация не может проверить (например, инструкция обработки).
SAXException - Если обработчик ошибок ErrorHandler бросает исключение SAXException или если обнаружена фатальная ошибка, и обработчик ошибок ErrorHandler возвращается без ошибок.
IOException - Если валидатор обрабатывает SAXSource и базовый XMLReader бросает исключение IOException.
NullPointerException - Если параметр source имеет значение null.
См. также:
validate(Source source, Result result)

validate

public abstract void validate(Source source,
                              Result result)
                       throws SAXException,
                              IOException

Проверяет указанные входные данные и отправляет результат проверки (с дополнениями) на указанный выход.

Этот метод накладывает следующие ограничения на типы принимаемых Source/Result.

Source / Result Принимаемые
StreamSource SAXSource DOMSource StAXSource
null OK OK OK OK
StreamResult OK IllegalArgumentException IllegalArgumentException IllegalArgumentException
SAXResult IllegalArgumentException OK IllegalArgumentException IllegalArgumentException
DOMResult IllegalArgumentException IllegalArgumentException OK IllegalArgumentException
StAXResult IllegalArgumentException IllegalArgumentException IllegalArgumentException OK

Для проверки одного Source в другой тип Result, используйте преобразователь тождества (см. TransformerFactory.newTransformer()).

Обнаруженные ошибки во время проверки отправляются в указанный обработчик ошибок ErrorHandler.

Если документ валиден или содержит ошибки, но ни одна из них не является фатальной и ErrorHandler не выбросила исключение, метод завершается нормально.

Параметры:
source - XML для проверки. Должен быть XML-документом или XML-элементом и не должен быть null. Для обратной совместимости результаты попытки проверки чего-либо, кроме документа или элемента, зависят от реализации. Реализации должны либо распознать и обработать входные данные, либо бросить исключение IllegalArgumentException.
result - Объект Result, который получает (возможно, дополненный) XML. Этот параметр может быть null, если вызывающая сторона не заинтересована в нём. Обратите внимание, что при использовании DOMResult, валидатор может просто передать тот же узел DOM из DOMSource в DOMResult (в этом случае source.getNode()==result.getNode()), он может скопировать всё дерево DOM или изменить узел, переданный из источника.
Исключения:
IllegalArgumentException - Если тип Result не соответствует типу Source или если Source является XML-объектом, который реализация не может проверить (например, инструкция обработки).
SAXException - Если ErrorHandler бросает исключение SAXException или если обнаружена фатальная ошибка, и ErrorHandler возвращается без ошибок.
IOException - Если валидатор обрабатывает SAXSource и базовый XMLReader бросает исключение IOException.
NullPointerException - Если параметр source имеет значение null.
См. также:
validate(Source source)

setErrorHandler

public abstract void setErrorHandler(ErrorHandler errorHandler)

Устанавливает обработчик ошибок ErrorHandler для получения ошибок, обнаруженных во время вызова метода validate.

Обработчик ошибок может быть использован для настройки процесса обработки ошибок во время проверки. При установке обработчика ошибок ErrorHandler, обнаруженные ошибки во время проверки будут сначала отправлены в обработчик ErrorHandler.

Обработчик ошибок может прервать дальнейшую проверку немедленно, выбросив исключение SAXException из обработчика. Или, например, он может вывести ошибку на экран и попытаться продолжить проверку, возвратившись без ошибок из обработчика ErrorHandler.

Если из обработчика ошибок ErrorHandler выбрасывается исключение Throwable, вызывающая сторона метода validate получит то же самое исключение Throwable.

Валидатор Validator не должен бросать SAXException, не сообщив об этом обработчику ошибок ErrorHandler.

Когда обработчик ошибок ErrorHandler равен null, реализация ведет себя так, как если бы был установлен следующий обработчик ошибок ErrorHandler:

class DraconianErrorHandler implements ErrorHandler {
     public void fatalError( SAXParseException e ) throws SAXException {
         throw e;
     }
     public void error( SAXParseException e ) throws SAXException {
         throw e;
     }
     public void warning( SAXParseException e ) throws SAXException {
         // noop
     }
 }

При создании нового объекта Validator это поле изначально равно null.

Параметры:
errorHandler - Новый обработчик ошибок. Может быть null.

getErrorHandler

public abstract ErrorHandler getErrorHandler()

Возвращает текущего обработчика ошибок ErrorHandler, установленного для этого валидатора Validator.

Возвращает:
Метод возвращает объект, последний установленный через метод setErrorHandler(ErrorHandler), или null, если этот метод не был вызван с момента создания этого валидатора Validator.
См. также:
setErrorHandler(ErrorHandler)

setResourceResolver

public abstract void setResourceResolver(LSResourceResolver resourceResolver)

Устанавливает решатель ресурсов LSResourceResolver для настройки разрешения ресурсов во время проверки.

Validator использует решатель ресурсов LSResourceResolver, когда ему нужно найти внешние ресурсы во время проверки, хотя то, что считается "поиском внешних ресурсов", зависит от каждого языка схем.

Если решатель ресурсов LSResourceResolver равен null, реализация будет вести себя так, как если бы был установлен следующий решатель ресурсов LSResourceResolver:

class DumbLSResourceResolver implements LSResourceResolver {
     public LSInput resolveResource(
         String publicId, String systemId, String baseURI) {

         return null; // always return null
     }
 }

Если решатель ресурсов LSResourceResolver бросает исключение RuntimeException (или его производные классы), то валидатор Validator прервёт обработку и вызывающая сторона метода validate получит то же исключение RuntimeException.

При создании нового объекта Validator это поле изначально равно null.

Параметры:
resourceResolver - Новый решатель ресурсов для установки. Этот параметр может быть null.

getResourceResolver

public abstract LSResourceResolver getResourceResolver()

Получает текущего LSResourceResolver, установленного для этого Validator.

Возвращает:
Этот метод возвращает объект, который был последним установлен с помощью метода setResourceResolver(LSResourceResolver), или null, если этот метод никогда не вызывался с момента создания этого Validator.
См. также:
setErrorHandler(ErrorHandler)

getFeature

public boolean getFeature(String name)
                   throws SAXNotRecognizedException,
                          SAXNotSupportedException

Получает значение флага функции.

Имя функции — любой полностью квалифицированный URI. Возможно, Validator распознает имя функции, но временно не сможет вернуть его значение. Некоторые значения функций могут быть доступны только в определенных контекстах, например, перед, во время или после проверки.

Реализаторы могут (и должны) придумывать свои функции, используя имена, основанные на своих собственных URI.

Параметры:
name - Имя функции, которое представляет собой непустой полностью квалифицированный URI.
Возвращает:
Текущее значение функции (true или false).
Исключения:
SAXNotRecognizedException - Если значение функции не может быть назначено или получено.
SAXNotSupportedException - Когда Validator распознает имя функции, но не может определить его значение в данный момент.
NullPointerException - Когда параметр name имеет значение null.
См. также:
setFeature(String, boolean)

setFeature

public void setFeature(String name,
                       boolean value)
                throws SAXNotRecognizedException,
                       SAXNotSupportedException

Устанавливает значение флага функции.

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

Имя функции — любой полностью квалифицированный URI. Возможно, Validator предоставляет значение функции, но не может изменить текущее значение. Некоторые значения функций могут быть неизменяемыми или изменяемыми только в определенных контекстах, например, перед, во время или после проверки.

Параметры:
name - Имя функции, которое представляет собой непустой полностью квалифицированный URI.
value - Требуемое значение функции (true или false).
Исключения:
SAXNotRecognizedException - Если значение функции не может быть назначено или получено.
SAXNotSupportedException - Когда Validator распознает имя функции, но не может установить запрошенное значение.
NullPointerException - Когда параметр name имеет значение null.
См. также:
getFeature(String)

setProperty

public void setProperty(String name,
                        Object object)
                 throws SAXNotRecognizedException,
                        SAXNotSupportedException

Устанавливает значение свойства.

Имя свойства — любой полностью квалифицированный URI. Возможно, Validator распознает имя свойства, но не может изменить текущее значение. Некоторые значения свойств могут быть неизменяемыми или изменяемыми только в определенных контекстах, например, перед, во время или после проверки.

Все реализации, которые реализуют JAXP 1.5 или более позднюю версию, обязаны поддерживать свойства XMLConstants.ACCESS_EXTERNAL_DTD и XMLConstants.ACCESS_EXTERNAL_SCHEMA.

  • Доступ к внешним DTD в исходном или файле схемы ограничен протоколами, указанными в свойстве XMLConstants.ACCESS_EXTERNAL_DTD. Если доступ запрещён во время проверки из-за ограничения этого свойства, SAXException будет выброшен методом validate(Source).

    Доступ к внешним ссылкам, установленным атрибутом schemaLocation, ограничен протоколами, указанными в свойстве XMLConstants.ACCESS_EXTERNAL_SCHEMA. Если доступ запрещён во время проверки из-за ограничения этого свойства, SAXException будет выброшен методом validate(Source).

Параметры:
name - Имя свойства, которое представляет собой непустой полностью квалифицированный URI.
object - Запрашиваемое значение свойства.
Исключения:
SAXNotRecognizedException - Если значение свойства не может быть назначено или получено.
SAXNotSupportedException - Когда Validator распознаёт имя свойства, но не может установить запрошенное значение.
NullPointerException - Когда параметр name имеет значение null.

getProperty

public Object getProperty(String name)
                   throws SAXNotRecognizedException,
                          SAXNotSupportedException

Получает значение свойства.

Имя свойства — любой полностью квалифицированный URI. Возможно, Validator распознаёт имя свойства, но временно не может вернуть его значение. Некоторые значения свойств могут быть доступны только в определённых контекстах, например, перед, во время или после проверки.

Validator не обязаны распознавать какие-либо конкретные имена свойств.

Реализаторы могут (и должны) придумывать свои собственные свойства, используя имена, основанные на своих собственных URI.

Параметры:
name - Имя свойства, которое представляет собой непустой полностью квалифицированный URI.
Возвращает:
Текущее значение свойства.
Исключения:
SAXNotRecognizedException - Если значение свойства не может быть назначено или получено.
SAXNotSupportedException - Когда XMLReader распознаёт имя свойства, но не может определить его значение в данный момент.
NullPointerException - Когда параметр name имеет значение null.
См. также:
setProperty(String, Object)

© 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