Spec-Zone.ru › OpenJDK 17

Интерфейс LSParserFilter

public interface LSParserFilter
LSParserFilter предоставляют приложениям возможность просматривать узлы по мере их построения во время разбора. При просмотре каждого узла его можно изменить или удалить, или весь разбор можно прервать.

В момент вызова любого из методов фильтра анализатором, объекты Document и DOMImplementation владельца существуют и доступны. Элемент документа никогда не передается методам LSParserFilter, т. е. отфильтровать элемент документа невозможно. Document, DocumentType, Notation, Entity, и Attr узлы никогда не передаются методу acceptNode фильтра. Дочерние узлы узла EntityReference передаются фильтру, если параметр "entities" установлен в false. Обратите внимание, что, как описано в параметре "entities", нерасширенные узлы ссылок на сущности никогда не отбрасываются и всегда передаются фильтру.

Все проверки валидности во время разбора документа выполняются на исходном документе, как он появляется в потоке ввода, а не на документе DOM по мере его построения в памяти. С фильтрами документ в памяти может быть подмножеством документа в потоке, а его валидность может быть затронута фильтрованием.

Все атрибуты по умолчанию должны присутствовать в элементах, когда элементы передаются методам фильтра. Все другое содержимое по умолчанию должно передаваться методам фильтра.

Приложения DOM не должны генерировать исключения в фильтре. Эффект выброса исключений из фильтра зависит от реализации DOM.

См. также Спецификацию объекта документа DOM (DOM) уровня 3 "Загрузка и сохранение".

Since:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final short FILTER_ACCEPT
Принять узел.
static final short FILTER_INTERRUPT
Прервать нормальную обработку документа.
static final short FILTER_REJECT
Отклонить узел и его дочерние элементы.
static final short FILTER_SKIP
Пропустить этот одиночный узел.

Краткое описание методов

Модификатор и тип Метод Описание
short acceptNode(Node nodeArg)
Этот метод будет вызван анализатором по завершении разбора каждого узла.
int getWhatToShow()
Сообщает LSParser о типах узлов, которые нужно отображать методу LSParserFilter.acceptNode.
short startElement(Element elementArg)
После сканирования каждого начального тега Element анализатор вызовет этот метод, но перед обработкой остальной части Element.

Подробное описание полей

FILTER_ACCEPT

static final short FILTER_ACCEPT
Принять узел.
См. также:
  • Значения постоянных полей

FILTER_REJECT

static final short FILTER_REJECT
Отклонить узел и его дочерние элементы.
См. также:
  • Значения постоянных полей

FILTER_SKIP

static final short FILTER_SKIP
Пропустить этот одиночный узел. Дочерние элементы этого узла все равно будут рассмотрены.
См. также:
  • Значения постоянных полей

FILTER_INTERRUPT

static final short FILTER_INTERRUPT
Прервать нормальную обработку документа.
См. также:
  • Значения постоянных полей

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

startElement

short startElement(Element elementArg)
После сканирования каждого начального тега Element анализатор вызовет этот метод, но перед обработкой остальной части Element. Цель заключается в том, чтобы эффективно пропустить элемент, включая все его дочерние элементы. Обратите внимание, что только узлы элементов передаются в функцию startElement.
Узел элемента, переданный в функцию startElement для фильтрации, будет содержать все атрибуты элемента, но не дочерние узлы. Элемент может еще не находиться на месте в конструируемом документе (он может не иметь родительского узла).
Функция фильтра startElement может получить доступ к атрибутам элемента или изменить их. Изменение деклараций пространства имен не повлияет на разрешение пространств имен анализатором.
Для повышения эффективности узел элемента, переданный фильтру, может не быть тем же, что и фактически помещенный в дерево, если узел принят. И фактический узел (идентичность объекта узла) может быть повторно использован во время процесса чтения и фильтрации документа.
Parameters:
elementArg - Новое встреченное значение. В момент вызова этого метода элемент неполный — у него будут атрибуты, но не дочерние элементы.
Returns:
  • FILTER_ACCEPT если Element должен быть включен в документ DOM, который строится.
  • FILTER_REJECT если Element и все его дочерние элементы должны быть отклонены.
  • FILTER_SKIP если Element должен быть пропущен. Все его дочерние элементы вставляются вместо пропущенного узла Element.
  • FILTER_INTERRUPT если фильтр хочет остановить обработку документа. Прерывание обработки документа больше не гарантирует, что результирующее дерево DOM является хорошо сформированным XML. Element отклоняется.
Возвращение любых других значений приведет к неопределенному поведению.

acceptNode

short acceptNode(Node nodeArg)
Этот метод будет вызван анализатором по завершении разбора каждого узла. Узел и все его потомки будут существовать и быть полными. Родительский узел также будет существовать, хотя он может быть неполным, т. е. у него могут быть дополнительные дочерние элементы, которые еще не были обработаны. Узлы атрибутов никогда не передаются в эту функцию.
Изнутри этого метода новый узел может быть изменен — можно добавить или удалить дочерние элементы, изменить узлы текста и т. д. Состояние остальной части документа вне этого узла не определено, и воздействие любой попытки перейти к нему или изменить любую другую часть документа не определено.
Для проверки анализаторов проверки выполняются на исходном документе до любого изменения фильтром. Никакие проверки валидности не выполняются на изменениях документа, внесенных фильтром.
Если этот новый узел отклоняется, анализатор может повторно использовать новый узел и все его потомки.
Parameters:
nodeArg - Новый созданный элемент. В момент вызова этого метода элемент является полным — у него есть все дочерние элементы (и их дочерние элементы рекурсивно) и атрибуты, и он прикреплен как дочерний элемент к своему родителю.
Returns:
  • FILTER_ACCEPT если этот Node должен быть включен в строящийся документ DOM.
  • FILTER_REJECT если Node и все его дочерние элементы должны быть отклонены.
  • FILTER_SKIP если Node должен быть пропущен, а Node должен быть заменен на все дочерние элементы Node.
  • FILTER_INTERRUPT если фильтр хочет остановить обработку документа. Прерывание обработки документа больше не гарантирует, что результирующее дерево DOM является хорошо сформированным XML. Node принимается и будет последним полностью обработанным узлом.

getWhatToShow

int getWhatToShow()
Сообщает LSParser о типах узлов, которые нужно отображать методу LSParserFilter.acceptNode. Если узел не отображается фильтру с помощью этого атрибута, он автоматически включается в документ DOM, который строится. См. NodeFilter для определения констант. Константы SHOW_ATTRIBUTE , SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE, SHOW_NOTATION, SHOW_ENTITY, и SHOW_DOCUMENT_FRAGMENT здесь бессмысленны. Эти узлы никогда не будут переданы в LSParserFilter.acceptNode.
Использованные здесь константы определены в [DOM уровня 2 "Передвижение и диапазон"].

© 1993, 2021, 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/17/docs/api/java.xml/org/w3c/dom/ls/LSParserFilter.html

Spec-Zone.ru

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