Spec-Zone.ru › OpenJDK 21

Класс Validator

java.lang.Object
javax.xml.validation.Validator
public abstract class Validator extends Object
Процессор, проверяющий XML-документ на соответствие Schema.

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

Since:
1.5

Краткое описание конструкторов

Validator()
Модификатор Конструктор Описание
protected
Конструктор для производных классов.

Краткое описание методов

Модификатор и тип Метод Описание
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.

Если любой Throwable выброшен из ErrorHandler, вызывающий метод 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)

Установить обработчик ресурсов

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.

Получить обработчик ресурсов

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

Получить функцию

public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Получить значение флага функции.

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

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

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

Установить функцию

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)

Установить свойство

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.

Получить свойство

public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Получить значение свойства.

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

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

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

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

© 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/Validator.html

Spec-Zone.ru

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