public interface LSParser
LSParser обеспечивает API для того, чтобы он проанализировал XML и создал соответствующую структуру документа ДОМА. A LSParser экземпляр может быть получен, вызывая DOMImplementationLS.createLSParser() метод.
Как определено в [], когда документ сначала делается доступным через LSParser:
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 параметр). Эта спецификация никоим образом не пытается определить все возможные ошибки, которые могут произойти, анализируя XML, или любая другая разметка, но некоторые случаи распространенной ошибки определяется. Типы (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"trueLSInput переопределения любое кодирование из протокола. false"disallow-doctype"truefalse"ignore-unknown-character-denormalizations"truefalse"infoset"DOMConfiguration для описания этого параметра. В отличие от этого в [], этот параметр примет значение по умолчанию к true для LSParser. "namespaces"truefalse"resource-resolver"LSResourceResolver объект, или нуль. Если значение этого параметра не будет нулем, когда с внешним ресурсом (таким как внешний объект XML или расположение XML-схемы) встретятся, то реализация запросит что LSResourceResolver ссылаемый в этом параметре разрешает ресурс. "supported-media-types-only"truefalse"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