Spec-Zone.ru › OpenJDK 24

Класс 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

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

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

Spec-Zone.ru

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