public abstract class ValidatorHandler extends Object implements ContentHandler
A ValidatorHandler
объект не ориентирован на многопотоковое исполнение и не повторно используем. Другими словами это - обязанность приложения удостовериться что один ValidatorHandler
объект не используется больше чем от одного потока в любой момент времени.
ValidatorHandler
проверки, если события SAX следуют за набором ограничений, описанных в связанном Schema
, и дополнительно это может изменить события SAX (например, добавляя значения по умолчанию, и т.д.)
ValidatorHandler
расширяется от ContentHandler
, но это совершенствовало базовое ContentHandler
следующим образом:
uri
, localName
, и qname
, даже при том, что SAX позволяет некоторым из них быть нулем. Точно так же определенный пользователем ContentHandler
получит непустые строки для всех трех параметров. ValidatorHandler
's ContentHandler.startPrefixMapping(String,String)
и ContentHandler.endPrefixMapping(String)
вызываются должным образом. Точно так же определенный пользователем ContentHandler
получит startPrefixMapping/endPrefixMapping события. Если ValidatorHandler
представляет дополнительную привязку пространства имен, определенный пользователем ContentHandler
получит дополнительные startPrefixMapping/endPrefixMapping события. Attributes
для ContentHandler.startElement(String,String,String,Attributes)
метод может или, возможно, не включает атрибуты xmlns*. A ValidatorHandler
автоматически сбрасывается каждый раз, когда startDocument метод вызывается.
Эта спецификация определяет следующую функцию, которая должна быть распознана всеми ValidatorHandler
реализации.
http://xml.org/sax/features/namespace-prefixes
Эта функция управляет как a ValidatorHandler
представляет привязку пространства имен, которая не присутствовала в исходном потоке событий SAX. Когда эта функция устанавливается в истину, она должна удостовериться что пользователь ContentHandler
будет видеть соответствие xmlns*
атрибут в Attributes
объект ContentHandler.startElement(String,String,String,Attributes)
обратный вызов. Иначе, xmlns*
атрибуты не должны быть добавлены к Attributes
это передают к определенному пользователем ContentHandler
.
(Отметьте, что независимо от этого переключателя, привязка пространства имен всегда уведомляется приложениям через ContentHandler.startPrefixMapping(String,String)
и ContentHandler.endPrefixMapping(String)
методы ContentHandler
определенный пользователем.)
Отметьте, что эта функция НЕ влияет на путь a ValidatorHandler
получает события SAX. Это просто изменяет способ, которым это увеличивает события SAX.
Эта функция устанавливается в false
по умолчанию.
Модификатор | Конструктор и Описание |
---|---|
protected |
ValidatorHandler()
Конструктор для производных классов.
|
Модификатор и Тип | Метод и Описание |
---|---|
abstract ContentHandler |
getContentHandler()
Добирается
ContentHandler который получает увеличенный результат проверки допустимости. |
abstract ErrorHandler |
getErrorHandler()
Получает ток
ErrorHandler набор к этому ValidatorHandler . |
boolean |
getFeature(String name)
Ищите значение значения параметра.
|
Объект |
getProperty(String name)
Ищите значение свойства.
|
abstract LSResourceResolver |
getResourceResolver()
Получает ток
LSResourceResolver набор к этому ValidatorHandler . |
abstract TypeInfoProvider |
getTypeInfoProvider()
Получает
TypeInfoProvider реализация этого ValidatorHandler . |
abstract void |
setContentHandler(ContentHandler receiver)
Наборы
ContentHandler который получает увеличенный результат проверки допустимости. |
abstract void |
setErrorHandler(ErrorHandler errorHandler)
Наборы
ErrorHandler получить ошибки, с которыми встречаются во время проверки допустимости. |
void |
setFeature(String name, boolean value)
Установите функцию этого
ValidatorHandler . |
void |
setProperty(String name, Object object)
Установите значение свойства.
|
abstract void |
setResourceResolver(LSResourceResolver resourceResolver)
Наборы
LSResourceResolver настроить разрешение ресурса в то время как в эпизоде проверки допустимости. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
characters, endDocument, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping
protected ValidatorHandler()
Конструктор для производных классов.
Конструктор ничего не делает.
Производные классы должны создать ValidatorHandler
объекты, которые имеют null
ErrorHandler
и null
LSResourceResolver
.
public abstract void setContentHandler(ContentHandler receiver)
ContentHandler
который получает увеличенный результат проверки допустимости. Когда a ContentHandler
определяется, a ValidatorHandler
будет работать фильтром и в основном копировать входящие события в указанное ContentHandler
.
При этом, a ValidatorHandler
может изменить события, например добавляя принимал значение по умолчанию атрибуты.
A ValidatorHandler
может буферизовать события к в известной мере, но позволить ValidatorHandler
чтобы использоваться синтаксическим анализатором, следующее требование должно быть удовлетворено.
ContentHandler.startElement(String, String, String, Attributes)
, ContentHandler.endElement(String, String, String)
, ContentHandler.startDocument()
, или ContentHandler.endDocument()
вызываются на a ValidatorHandler
, тот же самый метод на определенном пользователем ContentHandler
должен быть вызван для того же самого события перед возвратами обратного вызова. ValidatorHandler
возможно, не представляет новые элементы, которые не присутствовали во вводе. ValidatorHandler
возможно, не удаляет атрибуты, которые присутствовали во вводе. Когда метод обратного вызова на указанном ContentHandler
выдает исключение, тот же самый объект исключения должен быть брошен от ValidatorHandler
. ErrorHandler
не должен быть уведомлен относительно такого исключения.
Этот метод можно вызвать даже в течение середины проверки допустимости.
receiver
- A ContentHandler
или нулевое значение.public abstract ContentHandler getContentHandler()
ContentHandler
который получает увеличенный результат проверки допустимости.getContentHandler()
метод, или нуль, если тот метод никогда не вызывали начиная с этого ValidatorHandler
создал.setContentHandler(ContentHandler)
public abstract void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler
получить ошибки, с которыми встречаются во время проверки допустимости. Обработчик ошибок может использоваться, чтобы настроить процесс обработки ошибок во время проверки допустимости. Когда ErrorHandler
устанавливается, ошибки, найденные во время проверки допустимости, будут сначала отправлены ErrorHandler
.
Обработчик ошибок может сразу прервать дальнейшую проверку допустимости, бросая SAXException
от обработчика. Или например это может напечатать ошибку на экран и попытаться продолжать проверку допустимости, возвращаясь обычно из ErrorHandler
Если любой Throwable
бросается от ErrorHandler
, то же самое Throwable
объект будет брошен к корню стека вызовов.
ValidatorHandler
не позволяется бросить SAXException
без первого создания отчетов об этом к ErrorHandler
.
Когда ErrorHandler
нуль, реализация будет вести себя как будто следующий ErrorHandler
устанавливается:
class DraconianErrorHandler implementsErrorHandler
{ public void fatalError(SAXParseException
e ) throwsSAXException
{ throw e; } public void error(SAXParseException
e ) throwsSAXException
{ throw e; } public void warning(SAXParseException
e ) throwsSAXException
{ // noop } }
Когда новое ValidatorHandler
объект создается, первоначально это поле, устанавливают в NULL.
errorHandler
- Новый обработчик ошибок, который будет установлен. Этот параметр может быть нулем.public abstract ErrorHandler getErrorHandler()
ErrorHandler
набор к этому ValidatorHandler
.setErrorHandler(ErrorHandler)
метод, или нуль, если тот метод никогда не вызывали начиная с этого ValidatorHandler
создал.setErrorHandler(ErrorHandler)
public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolver
настроить разрешение ресурса в то время как в эпизоде проверки допустимости.
ValidatorHandler
использование a LSResourceResolver
когда это должно определить местоположение внешних ресурсов, в то время как проверка допустимости, хотя точно то, что составляет "располагающиеся внешние ресурсы", до каждого языка схемы.
Когда LSResourceResolver
нуль, реализация будет вести себя как будто следующий LSResourceResolver
устанавливается:
class DumbLSResourceResolver implementsLSResourceResolver
{ publicLSInput
resolveResource( String publicId, String systemId, String baseURI) { return null; // always return null } }
Если a LSResourceResolver
броски a RuntimeException
(или экземпляры его производных классов), тогда ValidatorHandler
прервет парсинг и вызывающую сторону validate
метод получит то же самое RuntimeException
.
Когда новое ValidatorHandler
объект создается, первоначально это поле, устанавливают в NULL.
resourceResolver
- Новый преобразователь ресурса, который будет установлен. Этот параметр может быть нулем.public abstract LSResourceResolver getResourceResolver()
LSResourceResolver
набор к этому ValidatorHandler
.setResourceResolver(LSResourceResolver)
метод, или нуль, если тот метод никогда не вызывали начиная с этого ValidatorHandler
создал.setErrorHandler(ErrorHandler)
public abstract TypeInfoProvider getTypeInfoProvider()
TypeInfoProvider
реализация этого ValidatorHandler
. Полученный TypeInfoProvider
может быть запрошен во время синтаксического анализа, чтобы получить доступ к информации о типе, определенной блоком проверки допустимости.
Некоторые языки схемы не определяют понятие типа для тех языков, этот метод не может поддерживаться. Однако, чтобы быть совместимыми с этой спецификацией, реализации для XML-схемы 1.0 W3C должны поддерживать эту работу.
TypeInfo
. Иначе допустимый ненуль TypeInfoProvider
.public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Имя функции является любым полностью определенным URI. Это возможно для a ValidatorHandler
распознать имя функции, но временно быть неспособными возвратить его значение. Некоторые значения функции могут быть доступными только в определенных контекстах, такой как прежде, во время, или после проверки допустимости.
Конструкторы свободны (и поощренный) изобрести свои собственные функции, используя имена, основанные на их собственных URI.
name
- Имя функции, которое является ненулем полностью определенный URI.SAXNotRecognizedException
- Если значение функции не может быть присвоено или получено.SAXNotSupportedException
- Когда ValidatorHandler
распознает имя функции, но не может определить его значение в это время.NullPointerException
- Когда name
null
.setFeature(String, boolean)
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
Установите функцию этого ValidatorHandler
.
Функция может быть использована, чтобы управлять путем a ValidatorHandler
схемы синтаксических анализов. Имя функции является любым полностью определенным URI. Это возможно для a SchemaFactory
представить значение функции, но быть неспособными изменить текущую стоимость. Некоторые значения функции могут быть неизменными или изменчивыми только в определенных контекстах, такой как прежде, во время, или после проверки допустимости.
Все реализации обязаны поддерживать XMLConstants.FEATURE_SECURE_PROCESSING
функция. Когда функция:
true
: реализация ограничит обработку XML, чтобы соответствовать пределам реализации. Примеры включают enity пределы расширения и конструкции XML-схемы, которые использовали бы большое количество ресурсов. Если обработка XML будет ограничена для соображений безопасности, то о ней сообщат через звонок в зарегистрированный ErrorHandler.fatalError(SAXParseException exception)
. См. setErrorHandler(ErrorHandler errorHandler)
. false
: реализация будет, обрабатывая XML согласно спецификациям XML без отношения к возможным пределам реализации. name
- Имя функции, которое является ненулем полностью определенный URI.value
- Требуемое значение функции (истина или ложь).SAXNotRecognizedException
- Если значение функции не может быть присвоено или получено.SAXNotSupportedException
- Когда ValidatorHandler
распознает имя функции, но не может установить требуемое значение.NullPointerException
- Когда name
null
.getFeature(String)
public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
Имя свойства является любым полностью определенным URI. Это возможно для a ValidatorHandler
распознать имя свойства, но быть неспособными изменить текущую стоимость. Некоторые значения свойств могут быть неизменными или изменчивыми только в определенных контекстах, такой как прежде, во время, или после проверки допустимости.
ValidatorHandler
s не обязаны распознавать определение любых определенных имен свойства.
name
- Имя свойства, которое является ненулем полностью определенный URI.object
- Требуемое значение для свойства.SAXNotRecognizedException
- Если значение свойства не может быть присвоено или получено.SAXNotSupportedException
- Когда ValidatorHandler
распознает имя свойства, но не может установить требуемое значение.NullPointerException
- Когда name
null
.public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Имя свойства является любым полностью определенным URI. Это возможно для a ValidatorHandler
распознать имя свойства, но временно быть неспособными возвратить его значение. Некоторые значения свойств могут быть доступными только в определенных контекстах, такой как прежде, во время, или после проверки допустимости.
ValidatorHandler
s не обязаны распознавать любые определенные имена свойства.
Конструкторы свободны (и поощренный) изобрести свои собственные свойства, используя имена, основанные на их собственных URI.
name
- Имя свойства, которое является ненулем полностью определенный URI.SAXNotRecognizedException
- Если значение свойства не может быть присвоено или получено.SAXNotSupportedException
- Когда XMLReader распознает имя свойства, но не может определить его значение в это время.NullPointerException
- Когда name
null
.setProperty(String, Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92