public interface LSParser
LSParser
обеспечивает API для того, чтобы он проанализировал XML и создал соответствующую структуру документа ДОМА. A LSParser
экземпляр может быть получен, вызывая DOMImplementationLS.createLSParser()
метод.
Как определено в [
value
и nodeValue
атрибуты Attr
узел первоначально возвращает true
, В зависимости от используемой нормализации атрибута значения атрибута могут отличаться от тех полученных нормализацией атрибута XML 1.0. Если параметрыfalse
, нормализация атрибута XML 1.0, как гарантируют, произойдет, и если список атрибутов не содержит объявления пространства имен, attributes
атрибут на Element
узел представляет свойство [атрибуты], определенные в [ Асинхронный LSParser
объекты, как ожидают, также реализуют events::EventTarget
взаимодействуйте через интерфейс так, чтобы слушатели события могли быть зарегистрированы на асинхронном LSParser
объекты.
События, поддерживаемые асинхронным LSParser
объекты:
LSParser
концы, чтобы загрузить документ. См. также определение LSLoadEvent
интерфейс. LSParser
продвижение сигналов как данные анализируется. Эта спецификация не пытается определить точно, когда события продвижения должны быть диспетчеризированы. Это преднамеренно оставляют как зависящее от реализации. Вот один пример того, как приложение могло бы диспетчеризировать события продвижения: Как только синтаксический анализатор начинает получать данные, событие продвижения диспетчеризируется, чтобы указать, что парсинг запускается. Оттуда на, событие продвижения диспетчеризируется для каждых 4096 байтов данных, которые получаются и обрабатываются. Это - только один пример, тем не менее, и реализации могут хотеть диспетчеризировать события продвижения в любое время, анализируя, или не диспетчеризировать их вообще. См. также определение LSProgressEvent
интерфейс. Отметьте: Все события, определенные в этой спецификации, используют URI пространства имен "http://www.w3.org/2002/DOMLS"
.
Анализируя входной источник, об ошибках сообщают приложению через обработчик ошибок (LSParser.domConfig
's параметрDOMError.type
) из ошибок и предупреждений, определенных этой спецификацией:
"check-character-normalization-failure" [error]
"doctype-not-allowed" [fatal]
true
и с doctype встречаются. "no-input-specified" [fatal]
LSInput
объект. "pi-base-uri-not-preserved" [warning]
false
и следующий XML-файл анализируется: <!DOCTYPE root [ <!ENTITY e SYSTEM 'subdir/myentity.ent' ]> <root> &e; </root>И
subdir/myentity.ent
содержит: <one> <two/> </one> <?pi 3.14159?> <more/>
"unbound-prefix-in-entity" [warning]
true
и с несвязанным префиксом пространства имен встречаются в заменяющем тексте объекта. Повышение этого предупреждения не осуществляется, так как некоторые существующие синтаксические анализаторы, возможно, не распознают несвязанные префиксы пространства имен в заменяющем тексте объектов. "unknown-character-denormalization" [fatal]
false
и с символом встречаются, для которого процессор не может определить свойства нормализации. "unsupported-encoding" [fatal]
"unsupported-media-type" [fatal]
true
и с неподдерживаемым типом носителей встречаются. В дополнение к повышению определенных ошибок и предупреждений, реализации, как ожидают, повысят реализацию определенные ошибки и предупреждения для любой другой ошибки и предупреждение случаев, таких как ошибки IO (файл, не найденный, отрицаемое разрешение...), ошибки отмеченности XML, и так далее.
См. также
Модификатор и Тип | Поле и Описание |
---|---|
static short |
ACTION_APPEND_AS_CHILDREN
Добавьте результат работы синтаксического анализа как дочерние элементы узла контекста.
|
static short |
ACTION_INSERT_AFTER
Вставьте результат работы синтаксического анализа как сразу после одноуровневого элемента узла контекста.
|
static short |
ACTION_INSERT_BEFORE
Вставьте результат работы синтаксического анализа как сразу предыдущий одноуровневый элемент узла контекста.
|
static short |
ACTION_REPLACE
Замените узел контекста результатом работы синтаксического анализа.
|
static short |
ACTION_REPLACE_CHILDREN
Замените все дочерние элементы узла контекста с результатом работы синтаксического анализа.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
abort()
Прервите загрузку документа, который в настоящий момент загружается
LSParser . |
boolean |
getAsync()
true если LSParser является асинхронным, false если это синхронно. |
boolean |
getBusy()
true если LSParser в настоящий момент занято, загружая документ, иначе false . |
DOMConfiguration |
getDomConfig()
DOMConfiguration объект, используемый, анализируя входной источник. |
LSParserFilter |
getFilter()
Когда фильтр будет обеспечен, реализация обратится к фильтру, поскольку это создает древовидную структуру ДОМА.
|
Документ |
parse(LSInput input)
Проанализируйте XML-документ от ресурса, идентифицированного a
LSInput . |
Документ |
parseURI(String uri)
Проанализируйте XML-документ от расположения, идентифицированного ссылкой URI [
|
Узел |
parseWithContext(LSInput input, Node contextArg, short action)
Проанализируйте фрагмент XML от ресурса, идентифицированного a
LSInput и вставьте контент в существующий документ в позиции, определенной с context и action параметры. |
void |
setFilter(LSParserFilter filter)
Когда фильтр будет обеспечен, реализация обратится к фильтру, поскольку это создает древовидную структуру ДОМА.
|
static final short ACTION_APPEND_AS_CHILDREN
Element
или a DocumentFragment
.static final short ACTION_REPLACE_CHILDREN
Element
, a Document
, или a DocumentFragment
.static final short ACTION_INSERT_BEFORE
Element
или a DocumentFragment
.static final short ACTION_INSERT_AFTER
Element
или a DocumentFragment
.static final short ACTION_REPLACE
Element
или a DocumentFragment
.DOMConfiguration getDomConfig()
DOMConfiguration
объект, используемый, анализируя входной источник. Это DOMConfiguration
является определенным для работы синтаксического анализа. Никакой параметр не оценивает от этого DOMConfiguration
объект передают автоматически к DOMConfiguration
объект на Document
это создается, или используется работой синтаксического анализа. Приложение ДОМА ответственно за передачу любых необходимых значений параметра от этого DOMConfiguration
возразите против DOMConfiguration
объект, на который ссылаются Document
объект. DOMConfiguration
объекты для LSParser
добавьте или измените следующие параметры: "charset-overrides-xml-encoding"
true
LSInput
переопределения любое кодирование из протокола. false
"disallow-doctype"
true
false
"ignore-unknown-character-denormalizations"
true
false
"infoset"
DOMConfiguration
для описания этого параметра. В отличие от этого в [true
для LSParser
. "namespaces"
true
false
"resource-resolver"
LSResourceResolver
объект, или нуль. Если значение этого параметра не будет нулем, когда с внешним ресурсом (таким как внешний объект XML или расположение XML-схемы) встретятся, то реализация запросит что LSResourceResolver
ссылаемый в этом параметре разрешает ресурс. "supported-media-types-only"
true
false
"validate"
DOMConfiguration
для описания этого параметра. В отличие от этого в [false
. "validate-if-schema"
DOMConfiguration
для описания этого параметра. В отличие от этого в [false
. "well-formed"
DOMConfiguration
для описания этого параметра. В отличие от этого в [false
. LSParserFilter getFilter()
DOMConfiguration
параметры были применены. Например, еслиtrue
, проверка допустимости делается прежде, чем вызвать фильтр.void setFilter(LSParserFilter filter)
DOMConfiguration
параметры были применены. Например, еслиtrue
, проверка допустимости делается прежде, чем вызвать фильтр.boolean getAsync()
true
если LSParser
является асинхронным, false
если это синхронно.boolean getBusy()
true
если LSParser
в настоящий момент занято, загружая документ, иначе false
.Document parse(LSInput input) throws DOMException, LSException
LSInput
.input
- LSInput
из которого должен быть считан источник документа.LSParser
синхронное LSParser
, недавно создаваемый и заполненный Document
возвращается. Если LSParser
является асинхронным, null
возвращается, так как объект документа еще не может быть создан, когда этот метод возвращается.DOMException
- INVALID_STATE_ERR: Повышенный, если LSParser
's LSParser.busy
атрибут true
.LSException
- PARSE_ERR: Повышенный, если LSParser
было неспособно загрузить XML-документ. Приложения ДОМА должны присоединить a DOMErrorHandler
использование параметраDocument parseURI(String uri) throws DOMException, LSException
uri
- Расположение XML-документа, который будет считан.LSParser
синхронное LSParser
, недавно создаваемый и заполненный Document
возвращается, или null
если ошибка произошла. Если LSParser
является асинхронным, null
возвращается, так как объект документа еще не может быть создан, когда этот метод возвращается.DOMException
- INVALID_STATE_ERR: Повышенный, если LSParser.busy
атрибут true
.LSException
- PARSE_ERR: Повышенный, если LSParser
было неспособно загрузить XML-документ. Приложения ДОМА должны присоединить a DOMErrorHandler
использование параметраNode parseWithContext(LSInput input, Node contextArg, short action) throws DOMException, LSException
LSInput
и вставьте контент в существующий документ в позиции, определенной с context
и action
параметры. Анализируя входной поток, узел контекста (или его родитель, в зависимости от того, где результат будет вставлен) используется для того, чтобы разрешить несвязанные префиксы пространства имен. Узел контекста ownerDocument
узел (или узел непосредственно, если узел типа DOCUMENT_NODE
) используется, чтобы разрешить атрибуты по умолчанию и ссылки на сущность. Document
узел и действие ACTION_REPLACE_CHILDREN
, тогда документ, который передают как узел контекста, будет изменен так, что xmlEncoding
, documentURI
, xmlVersion
, inputEncoding
, xmlStandalone
, и все другие такие атрибуты устанавливаются в то, что они были бы установлены в то, если бы входной источник был проанализирован, используя LSParser.parse()
. LSParser
является асинхронным (LSParser.async
true
). ErrorHandler
экземпляр, связанный с параметромDOMConfiguration
. parseWithContext
, значения следующих параметров конфигурации будут проигнорированы, и их значения по умолчанию будут всегда использоваться вместо этого:LSParserFilter
так же, как если бы был проанализирован целый документ.input
- LSInput
из которого должен быть считан исходный документ. Исходный документ должен быть фрагментом XML, то есть чем-либо кроме полного XML-документа (кроме в случае, где узел контекста типа DOCUMENT_NODE
, и действие ACTION_REPLACE_CHILDREN
), DOCTYPE (внутреннее подмножество), объявление (я) объекта, объявление (я) нотации, или объявление (я) XML или текста.contextArg
- Узел, который используется в качестве контекста для данных, которые анализируются. Этот узел должен быть a Document
узел, a DocumentFragment
узел, или узел типа, который позволяется как дочерний элемент Element
узел, например, это не может быть Attribute
узел.action
- Этот параметр описывает, какие меры должны быть предприняты между новым набором вставляемых узлов и существующими дочерними элементами узла контекста. Набор возможных действий определяется в ACTION_TYPES
выше.DOMException
- HIERARCHY_REQUEST_ERR: Повышенный, если контент не может заменить, быть вставленным прежде, после, или как дочерний элемент узла контекста (см. также Node.insertBefore
или Node.replaceChild
в [LSParser
не поддерживает этот метод, или если узел контекста имеет тип Document
и реализация ДОМА не поддерживает замену DocumentType
дочерний элемент или Element
дочерний элемент. LSParser.busy
атрибут true
.LSException
- PARSE_ERR: Повышенный, если LSParser
было неспособно загрузить фрагмент XML. Приложения ДОМА должны присоединить a DOMErrorHandler
использование параметраvoid abort()
LSParser
. Если LSParser
в настоящий момент не занято, звонок в этот метод ничего не делает.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92