Spec-Zone.ru › OpenJDK 25

Интерфейс LSParserFilter

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

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

При синтаксическом разборе документа все проверки допустимости выполняются над исходным документом в том виде, в котором он представлен во входном потоке, а не над DOM-документом, создаваемым в памяти. При использовании фильтров документ в памяти может быть подмножеством документа в потоке, а его допустимость может быть нарушена фильтрацией.

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

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

См. также спецификацию Document Object Model (DOM) Level 3 Load and Save.

Начиная с:
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 может обращаться к атрибутам элемента и изменять их. Изменение объявлений пространств имен не влияет на разрешение пространств имен парсером.
Для повышения эффективности узел-элемент, передаваемый фильтру, может отличаться от узла, фактически помещаемого в дерево, если узел принят. Фактический узел (идентичность объекта узла) может повторно использоваться в процессе чтения и фильтрации документа.
Параметры:
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].

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/w3c/dom/ls/LSParserFilter.html

Spec-Zone.ru

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