Класс Validator
public abstract class Validator extends Object
Schema. Объект валидатора не является потокобезопасным и не допускает повторного входа. Иными словами, приложение должно гарантировать, что один объект Validator не используется одновременно более чем одним потоком, а также что во время вызова метода validate приложение не вызывает рекурсивно метод validate.
- Начиная с:
- 1.5
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для производных классов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract ErrorHandler |
getErrorHandler() |
Возвращает текущий ErrorHandler, установленный для этого Validator. |
boolean |
getFeature |
Получает значение флага функции. |
Object |
getProperty |
Получает значение свойства. |
abstract LSResourceResolver |
getResourceResolver() |
Возвращает текущий LSResourceResolver, установленный для этого Validator. |
abstract void |
reset() |
Сбрасывает этот Validator до исходной конфигурации. |
abstract void |
setErrorHandler |
Устанавливает ErrorHandler для получения ошибок, возникающих при вызове метода validate. |
void |
setFeature |
Устанавливает значение флага функции. |
void |
setProperty |
Устанавливает значение свойства. |
abstract void |
setResourceResolver |
Устанавливает LSResourceResolver для настройки разрешения ресурсов в ходе проверки. |
void |
validate |
Проверяет указанные входные данные. |
abstract void |
validate |
Проверяет указанные входные данные и отправляет дополненный результат проверки в указанные выходные данные. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
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 |
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством вызова notify или interrupt, либо пока не истечет заданное время. |
final void |
wait |
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством вызова 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
public abstract void validate(Source source, Result result) throws SAXException, IOException
Этот метод накладывает следующие ограничения на типы принимаемых объектов 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. - См. также:
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 implementsErrorHandler{ public void fatalError(SAXParseExceptione ) throwsSAXException{ throw e; } public void error(SAXParseExceptione ) throwsSAXException{ throw e; } public void warning(SAXParseExceptione ) throwsSAXException{ // noop } }
При создании нового объекта Validator это поле изначально имеет значение null.
- Параметры:
-
errorHandler— новый обработчик ошибок, который требуется установить. Этот параметр может иметь значение null.
getErrorHandler
public abstract ErrorHandler getErrorHandler()
ErrorHandler, установленный для этого Validator.- Возвращает:
- Этот метод возвращает объект, который последним был установлен с помощью метода
setErrorHandler(ErrorHandler), или null, если с момента создания этогоValidatorданный метод ни разу не вызывался. - См. также:
setResourceResolver
public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolver для настройки разрешения ресурсов в ходе проверки. Validator использует LSResourceResolver, когда ему нужно найти внешние ресурсы во время проверки; при этом точное определение понятия «поиск внешних ресурсов» зависит от языка схемы.
Если значение LSResourceResolver равно null, реализация будет вести себя так, как если бы был установлен следующий LSResourceResolver:
class DumbLSResourceResolver implementsLSResourceResolver{ publicLSInputresolveResource( 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данный метод ни разу не вызывался. - См. также:
getFeature
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Имя функции — это любой URI с полным указанием. Объект Validator может распознавать имя функции, но временно не иметь возможности вернуть его значение. Некоторые значения функций могут быть доступны только в определенном контексте, например до, во время или после проверки.
Разработчики могут (и им рекомендуется) создавать собственные функции, используя имена на основе собственных URI.
- Параметры:
-
name— имя функции, представляющее собой URI с полным указанием и не равное null. - Возвращает:
- Текущее значение функции (true или false).
- Исключения:
-
SAXNotRecognizedException— если значение функции нельзя присвоить или получить. -
SAXNotSupportedException— еслиValidatorраспознает имя функции, но в данный момент не может определить ее значение. -
NullPointerException— если параметр name имеет значение null. - См. также:
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. - См. также:
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. - См. также:
© 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.