Spec-Zone.ru › OpenJDK 24

Интерфейс LSParserFilter

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

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

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

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

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

См. также Спецификацию DOM Level 3 Load and Save.

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

acceptNode

short acceptNode(Node nodeArg)
Этот метод будет вызван анализатором по завершении парсинга каждого узла. Узел и все его потомки будут существовать и будут завершёнными. Родительский узел также будет существовать, хотя он может быть неполным, т.е. он может иметь дополнительные потомки, которые ещё не были обработаны. Узлы атрибутов никогда не передаются этой функции.
Изнутри этого метода новый узел может быть свободно изменён — потомки могут быть добавлены или удалены, узлы текста изменены и т.д. Состояние остальной части документа вне этого узла не определено, и действие любой попытки перейти к нему или изменить любую другую часть документа неопределено.
Для проверки валидности анализаторов проверки выполняются на исходном документе перед любым изменением фильтром. Никакие проверки валидности не выполняются на любых изменениях документа, произведённых фильтром.
Если этот новый узел отклоняется, анализатор может повторно использовать новый узел и любого из его потомков.
Параметры:
nodeArg - Новый построенный элемент. В момент вызова этого метода элемент завершён — у него есть все его потомки (и их потомки, рекурсивно) и атрибуты, и он присоединён как потомок к своему родителю.
Возвращает:
  • 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 Level 2 Traversal and Range].

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.xml/org/w3c/dom/ls/LSParserFilter.html

Spec-Zone.ru

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