Spec-Zone.ru › OpenJDK 17

Класс 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, но не гарантируется, что разрешители ресурсов LSResourceResolver или обработчики ошибок ErrorHandler Object будут одинаковыми, например, Object.equals(Object obj).

validate

public void validate(Source source) throws SAXException, IOException
Проверяет указанный ввод.

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

Parameters:
source - XML для проверки. Должен быть документом XML или элементом XML и не должен быть null. Для обратной совместимости результаты попытки проверить что-либо, кроме документа или элемента, зависят от реализации. Реализации должны либо распознать и обработать ввод, либо бросить IllegalArgumentException.
Throws:
IllegalArgumentException - Если Source представляет собой XML-объект, который реализация не может проверить (например, инструкцию обработки).
SAXException - Если обработчик ошибок ErrorHandler бросает SAXException или если обнаружена фатальная ошибка, а обработчик ошибок ErrorHandler возвращается нормально.
IOException - Если валидатор обрабатывает SAXSource и базовый XMLReader бросает IOException.
NullPointerException - Если source равен null.
See Also:
  • 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 не бросила исключение, то метод возвращается нормально.

Parameters:
source - XML для проверки. Должен быть документом XML или элементом XML и не должен быть null. Для обратной совместимости результаты попытки проверить что-либо, кроме документа или элемента, зависят от реализации. Реализации должны либо распознать и обработать ввод, либо бросить IllegalArgumentException.
result - Объект Result, который получает (возможно, расширенный) XML. Этот параметр может быть null, если вызывающая сторона в нем не заинтересована. Обратите внимание, что при использовании DOMResult, валидатор может просто передать тот же узел DOM из DOMSource в DOMResult (в этом случае source.getNode()==result.getNode()), он может скопировать все дерево DOM или изменить узел, заданный исходным.
Throws:
IllegalArgumentException - Если тип Result не соответствует типу Source или если Source представляет собой XML-объект, который реализация не может проверить (например, инструкцию обработки).
SAXException - Если ErrorHandler бросает SAXException или если обнаружена фатальная ошибка, и ErrorHandler возвращается нормально.
IOException - Если валидатор обрабатывает SAXSource и базовый XMLReader бросает IOException.
NullPointerException - Если параметр source равен null.
See Also:
  • 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.

Parameters:
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 - Когда Validator распознаёт имя свойства, но не может определить его значение в данный момент.
NullPointerException - Когда параметр name равен null.
См. также:
  • setProperty(String, Object)

© 1993, 2021, 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/17/docs/api/java.xml/javax/xml/validation/Validator.html

Spec-Zone.ru

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