Пакет 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="да" в своей декларации 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 | Управляет тем, сообщает ли парсер об ошибках нормализации Unicode, как описано в разделе 2.13 и приложении B рекомендации XML 1.1. Если true, ошибки нормализации Unicode сообщаются с помощью вызова ErrorHandler.error(). Такие ошибки не являются фатальными сами по себе (хотя, очевидно, другие ошибки кодирования, связанные с Unicode, могут быть). |
| 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 | Управляет тем, интерпретирует ли парсер атрибуты деклараций пространства имён как находящиеся в пространстве имён http://www.w3.org/2000/xmlns/, когда свойство namespace-prefixes установлено. По умолчанию 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», которые игнорируют параметры 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, 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/xml/sax/package-summary.html
Attributes, который включает поддержку пространств имён.