Пакет org.xml.sax
Обеспечивает основные API SAX. Некоторые API SAX1 устарели, чтобы способствовать интеграции поддержки пространств имен в проектировании новых приложений и обслуживании существующей инфраструктуры.
Дополнительную информацию о SAX можно найти на странице http://www.saxproject.org.
Стандартные флаги функций SAX2
Одной из основных характеристик SAX2 является добавление флагов функций, которые могут использоваться для проверки и, возможно, изменения режимов парсера, в частности, таких режимов, как валидация. Поскольку функции идентифицируются (абсолютными) URI, любой может определить такие функции. Текущие стандартные URI функций имеют префикс http://xml.org/sax/features/ перед идентификатором, например validation. Включить или выключить функции с помощью setFeature. Эти стандартные идентификаторы:
| Идентификатор функции | Доступ | По умолчанию | Описание |
|---|---|---|---|
| external-general-entities | чтение/запись | не определено | Указывает, обрабатывает ли этот парсер внешние общие сущности; всегда истинно, если валидация включена. |
| external-parameter-entities | чтение/запись | не определено | Указывает, обрабатывает ли этот парсер внешние параметрические сущности; всегда истинно, если валидация включена. |
| is-standalone | (парсинг) только для чтения, (не парсинг) нет | не применимо | Может проверяться только во время парсинга, после завершения обратного вызова startDocument(); только для чтения. Значение равно true, если в объявлении XML документа указано standalone="yes", и false в противном случае. |
| lexical-handler/parameter-entities | чтение/запись | не определено | Значение "true" указывает, что LexicalHandler будет сообщать о начале и конце параметрических сущностей. |
| 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 | чтение/запись | не определено | Управляет тем, сообщает ли парсер все ошибки валидации; если истинно, все внешние сущности будут считаны. |
| 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 Walker", которые игнорируют параметры parser.parse(), это используется для указания DOM (под)дерева, по которому проходит парсер. Объект должен реализовать интерфейс org.w3c.dom.Node. |
| lexical-handler | Используется для просмотра некоторых событий синтаксиса, которые важны в некоторых приложениях: комментарии, разделители CDATA, выбранные включения общих сущностей, и начало и конец DTD (и объявление имени элемента документа). Объект должен реализовать org.xml.sax.ext.LexicalHandler. |
| xml-string | Доступно только во время обратного вызова парсера, это экспонирует фрагмент символов TBS, ответственный за текущее событие. |
Все эти стандартные свойства являются необязательными. Реализации XMLReader не обязаны их поддерживать.
- С тех пор:
- 1.4
| Интерфейс | Описание |
|---|---|
| AttributeList | Устарел. Этот интерфейс был заменён интерфейсом SAX2 Attributes, который включает поддержку пространств имён. |
| Attributes | Интерфейс для списка атрибутов XML. |
| ContentHandler | Получает уведомления о логическом содержимом документа. |
| DocumentHandler | Устарел. Этот интерфейс был заменён интерфейсом SAX2 ContentHandler, который включает поддержку пространств имён. |
| DTDHandler | Получает уведомления об основных событиях, связанных с DTD. |
| EntityResolver | Базовый интерфейс для разрешения сущностей. |
| ErrorHandler | Базовый интерфейс для обработчиков ошибок SAX. |
| Locator | Интерфейс для сопоставления события SAX с местоположением документа. |
| Parser | Устарел. Этот интерфейс был заменён интерфейсом SAX2 XMLReader, который включает поддержку пространств имён. |
| XMLFilter | Интерфейс для фильтра XML. |
| XMLReader | Интерфейс для чтения XML-документа с помощью обратных вызовов. |
| Класс | Описание |
|---|---|
| HandlerBase | Устарел. Этот класс работает с устаревшим интерфейсом DocumentHandler. |
| InputSource | Единственный источник ввода для сущности XML. |
| Исключение | Описание |
|---|---|
| SAXException | Инкапсулирует общую ошибку или предупреждение SAX. |
| SAXNotRecognizedException | Класс исключений для нераспознанного идентификатора. |
| SAXNotSupportedException | Класс исключений для недопустимой операции. |
| SAXParseException | Инкапсулирует ошибку или предупреждение при разборе XML. |
© 1993, 2020, 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/11/docs/api/java.xml/org/xml/sax/package-summary.html