Spec-Zone.ru › OpenJDK 25

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

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

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

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

Параметры:
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)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/javax/xml/validation/Validator.html

Spec-Zone.ru

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