Пакет org.xml.sax
Флаги стандартных функций SAX2
Одной из ключевых особенностей SAX2 является добавление флагов функций, которые могут использоваться для проверки и, возможно, изменения режимов анализатора, особенно таких режимов, как валидация. Поскольку функции идентифицируются (абсолютными) URI, любой может определить такие функции. Текущие определенные стандартные URI функций имеют префикс http://xml.org/sax/features/ перед идентификатором, например, validation. Включите или выключите функции с помощью setFeature. Эти стандартные идентификаторы следующие:
| Идентификатор функции | Доступ | Значение по умолчанию | Описание |
|---|---|---|---|
| external-general-entities | чтение/запись | не определено | Указывает, обрабатывает ли этот анализатор внешние общие сущности; всегда истинно, если валидация включена. |
| external-parameter-entities | чтение/запись | не определено | Указывает, обрабатывает ли этот анализатор внешние параметры сущностей; всегда истинно, если валидация включена. |
| is-standalone | (анализ) только для чтения, (без анализа) нет | не применимо | Может быть проверен только во время анализа, после завершения обратного вызова startDocument(); только для чтения. Значение равно true, если документ указал standalone="yes" в своей декларации XML, в противном случае — false. |
| lexical-handler/parameter-entities | чтение/запись | не определено | Значение "true" означает, что обработчик лексических единиц будет сообщать о начале и конце сущностей параметров. |
| namespaces | чтение/запись | true | Значение "true" означает, что URI пространства имен и локальные имена без префиксов для имен элементов и атрибутов будут доступны. |
| namespace-prefixes | чтение/запись | false | Значение "true" означает, что квалифицированные имена XML (с префиксами) и атрибуты (включая атрибуты xmlns*) будут доступны. |
| resolve-dtd-uris | чтение/запись | true | Значение "true" означает, что идентификаторы систем в декларациях будут абсолютизированы (относительно их базовых URI) перед сообщением. (Это поведение по умолчанию для всех парсеров XML SAX2.) Значение "false" означает, что эти идентификаторы не будут абсолютизированы; парсеры предоставят базовый URI из Locator.getSystemId(). Это относится к идентификаторам систем, переданным в
|
| string-interning | чтение/запись | не определено | Имеет значение "true", если все имена XML (для элементов, префиксов, атрибутов, сущностей, обозначений и локальных имен), а также URI пространства имен, будут интернированы с использованием java.lang.String.intern. Это поддерживает быстрое тестирование равенства/неравенства с константами строк, а не принудительные медленные вызовы String.equals(). |
| unicode-normalization-checking | чтение/запись | false | Управляет тем, сообщает ли анализатор об ошибках нормализации Юникода, как описано в разделе 2.13 и Приложении B рекомендации XML 1.1. Если true, об ошибках нормализации Юникода сообщается с помощью обратного вызова ErrorHandler.error(). Такие ошибки не являются фатальными сами по себе (хотя, очевидно, другие ошибки кодирования, связанные с Юникодом, могут быть таковыми). |
| use-attributes2 | только для чтения | не применимо | Возвращает "true", если объекты Attributes, передаваемые этим анализатором в ContentHandler.startElement(), реализуют интерфейс org.xml.sax.ext.Attributes2. Этот интерфейс предоставляет дополнительную информацию, связанную с DTD, например, указано ли атрибут в исходном тексте или задано по умолчанию. |
| use-locator2 | только для чтения | не применимо | Возвращает "true", если объекты Locator, передаваемые этим анализатором в ContentHandler.setDocumentLocator(), реализуют интерфейс org.xml.sax.ext.Locator2. Этот интерфейс предоставляет дополнительную информацию об объекте, например, кодировку символов и используемую версию XML. |
| use-entity-resolver2 | чтение/запись | true | Возвращает "true", если при вызове setEntityResolver с объектом, реализующим интерфейс org.xml.sax.ext.EntityResolver2, будут использоваться новые методы. Возвращает "false", чтобы указать, что эти методы не будут использоваться. |
| validation | чтение/запись | не определено | Управляет тем, сообщает ли анализатор все ошибки валидации; если true, все внешние сущности будут прочитаны. |
| xmlns-uris | чтение/запись | false | Управляет тем, рассматривает ли анализатор атрибуты объявления пространства имен, когда функция namespace-prefixes установлена, как находящиеся в пространстве имен http://www.w3.org/2000/xmlns/. По умолчанию SAX2 соответствует исходной рекомендации "Пространства имен в XML", которая явно указывает, что такие атрибуты не находятся ни в каком пространстве имен. Установка этого необязательного флага в "true" приведет к тому, что события SAX2 будут соответствовать более поздней несовместимой с обратной совместимостью редакции этой рекомендации, размещая эти атрибуты в пространстве имен. |
| xml-1.1 | только для чтения | не применимо | Возвращает "true", если анализатор поддерживает как XML 1.1, так и XML 1.0. Возвращает "false", если анализатор поддерживает только XML 1.0. |
Поддержка значений по умолчанию свойств namespaces и namespace-prefixes обязательна. Поддержка любых других флагов функций является необязательной.
Для значений по умолчанию, не указанных в SAX2, каждая реализация XMLReader определяет свое значение по умолчанию или может выбрать не экспонировать флаг функции. Если не указано иное, реализации могут поддерживать изменение текущих значений этих стандартных флагов функций, но не во время анализа.
Стандартные идентификаторы обработчиков и свойств SAX2
Для характеристик интерфейса парсера, описанных как объекты, определено отдельное пространство имен. Объекты в этом пространстве имен снова идентифицируются URI, и стандартные URI свойств имеют префикс http://xml.org/sax/properties/ перед идентификатором, например lexical-handler или dom-node. Управляйте этими свойствами с помощью setProperty(). Эти идентификаторы:
| Идентификатор свойства | Описание |
|---|---|
| declaration-handler | Используется для просмотра большинства деклараций DTD, за исключением тех, которые обрабатываются как лексические ("имя элемента документа равно ...") или которые являются обязательными для всех парсеров SAX (DTDHandler). Объект должен реализовывать org.xml.sax.ext.DeclHandler. |
| document-xml-version | Может быть проверен только во время анализа, после завершения обратного вызова startDocument(); только для чтения. Это свойство представляет собой строку, описывающую фактическую версию XML документа, например "1.0" или "1.1". |
| dom-node | Для парсеров типа "DOM Walker", которые игнорируют свои параметры parser.parse(), это используется для указания поддерева DOM, по которому проходит парсер. Объект должен реализовывать интерфейс org.w3c.dom.Node. |
| lexical-handler | Используется для просмотра некоторых событий синтаксиса, которые важны в некоторых приложениях: комментарии, разделители CDATA, выбранные включения общих сущностей и начало и конец DTD (и объявление имени элемента документа). Объект должен реализовывать org.xml.sax.ext.LexicalHandler. |
| xml-string | Доступно только во время вызова парсера, оно экспонирует блок символов TBS, ответственный за текущее событие. |
Все эти стандартные свойства являются необязательными. Реализации XMLReader не обязаны их поддерживать.
- Примечание API:
- API SAX, первоначально разработанный в проекте SAX, определен Java SE начиная с версии 1.4.
- С:
- 1.4
| Класс | Описание |
|---|---|
| AttributeList | Устаревший. |
| Attributes | Интерфейс для списка XML атрибутов. |
| ContentHandler | Получает уведомления о логическом содержимом документа. |
| DocumentHandler | Устаревший. Этот интерфейс заменён интерфейсом SAX2 ContentHandler, который включает поддержку пространств имён. |
| DTDHandler | Получает уведомления о базовых событиях, связанных с DTD. |
| EntityResolver | Базовый интерфейс для разрешения сущностей. |
| ErrorHandler | Базовый интерфейс для обработчиков ошибок SAX. |
| HandlerBase | Устаревший. Этот класс работает с устаревшим интерфейсом DocumentHandler. |
| InputSource | Единственный источник ввода для XML сущности. |
| Locator | Интерфейс для сопоставления события SAX с местоположением в документе. |
| Parser | Устаревший. Этот интерфейс заменён интерфейсом SAX2 XMLReader, который включает поддержку пространств имён. |
| SAXException | Заворачивает общую ошибку или предупреждение SAX. |
| SAXNotRecognizedException | Класс исключений для нераспознанного идентификатора. |
| SAXNotSupportedException | Класс исключений для недопустимой операции. |
| SAXParseException | Заворачивает ошибку или предупреждение при разборе XML. |
| XMLFilter | Интерфейс для XML фильтра. |
| XMLReader | Интерфейс для чтения XML документа с использованием обратных вызовов. |
© 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/xml/sax/package-summary.html
Attributes, который включает поддержку пространств имён.