Spec-Zone.ru › OpenJDK 27

Класс Validator

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

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

Начиная с:
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)
Проверяет указанные входные данные и отправляет дополненный результат проверки в указанные выходные данные.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время.

Подробное описание конструкторов

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)

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 с полным указанием и не равное null.
Возвращает:
Текущее значение функции (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 с полным указанием и не равное null.
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. Если доступ запрещен во время проверки из-за ограничения этого свойства, метод validate(Source) выбросит SAXException.

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

Параметры:
name — имя свойства, представляющее собой URI с полным указанием и не равное null.
object — запрашиваемое значение свойства.
Исключения:
SAXNotRecognizedException — если значение свойства нельзя присвоить или получить.
SAXNotSupportedException — если Validator распознает имя свойства, но не может установить запрашиваемое значение.
NullPointerException — если параметр name имеет значение null.

getProperty

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

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

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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