Пакет org.xml.sax
Этот пакет предоставляет основные API SAX.
См.: Описание
| Интерфейс | Описание |
|---|---|
| AttributeList | Устаревший Этот интерфейс был заменен интерфейсом SAX2 |
| Attributes | Интерфейс для списка атрибутов XML. |
| ContentHandler | Получение уведомлений о логическом содержании документа. |
| DocumentHandler | Устаревший Этот интерфейс был заменен интерфейсом SAX2 |
| DTDHandler | Получение уведомлений о базовых событиях, связанных с DTD. |
| EntityResolver | Базовый интерфейс для разрешения сущностей. |
| ErrorHandler | Базовый интерфейс для обработчиков ошибок SAX. |
| Locator | Интерфейс для сопоставления события SAX с местоположением в документе. |
| Parser | Устаревший Этот интерфейс был заменен интерфейсом SAX2 |
| XMLFilter | Интерфейс для фильтра XML. |
| XMLReader | Интерфейс для чтения документа XML с помощью обратных вызовов. |
| Класс | Описание |
|---|---|
| HandlerBase | Устаревший Этот класс работает с устаревшим интерфейсом |
| InputSource | Один источник ввода для XML-сущности. |
| Исключение | Описание |
|---|---|
| SAXException | Заворачивает общую ошибку или предупреждение SAX. |
| SAXNotRecognizedException | Класс исключений для нераспознанного идентификатора. |
| SAXNotSupportedException | Класс исключений для недоступной операции. |
| SAXParseException | Заворачивает ошибку или предупреждение при разборе XML. |
Описание пакета org.xml.sax
Этот пакет предоставляет основные API SAX. Некоторые API SAX1 устарели, чтобы поощрить интеграцию поддержки пространств имён в проектирование новых приложений и в обслуживание существующей инфраструктуры.
См. http://www.saxproject.org для получения дополнительной информации о SAX.
Флаги стандартных функций SAX2
Одна из основных особенностей SAX2 — это флаги функций, которые могут использоваться для проверки и, возможно, изменения режимов парсера, в частности таких режимов, как валидация. Поскольку функции идентифицируются (абсолютными) URI, любой может определить такие функции. Текущие стандартные URI функций имеют префикс http://xml.org/sax/features/ перед идентификатором, таким как validation. Включить или выключить функции с помощью setFeature. Эти стандартные идентификаторы:
| Идентификатор функции | Доступ | По умолчанию | Описание |
|---|---|---|---|
| external-general-entities | чтение/запись | неопределено | Указывает, обрабатывает ли этот парсер внешние общие сущности; всегда истинно при валидации. |
| external-parameter-entities | чтение/запись | неопределено | Указывает, обрабатывает ли этот парсер внешние параметрические сущности; всегда истинно при валидации. |
| is-standalone | (разбор) только чтение, (не разбор) нет | не применимо | Может проверяться только во время разбора, после завершения обратного вызова startDocument(); только для чтения. Значение истинно, если в объявлении XML документа указано standalone="yes", и ложно в противном случае. |
| lexical-handler/parameter-entities | чтение/запись | неопределено | Значение "true" указывает, что LexicalHandler будет сообщать о начале и конце параметрических сущностей. |
| namespaces | чтение/запись | истина | Значение "true" указывает, что URI пространств имён и неприсоединённые локальные имена для имён элементов и атрибутов будут доступны. |
| namespace-prefixes | чтение/запись | ложь | Значение "true" указывает, что имена XML с префиксами и атрибуты (включая xmlns* атрибуты) будут доступны. |
| resolve-dtd-uris | чтение/запись | истина | Значение "true" указывает, что идентификаторы систем в объявлениях будут абсолютизированы (относительно их базовых URI) перед сообщением. (Это стандартное поведение всех SAX2 парсеров XML.) Значение "false" указывает, что эти идентификаторы не будут абсолютизированы; парсеры предоставят базовый URI из Locator.getSystemId(). Это относится к идентификаторам систем, передаваемым в
|
| string-interning | чтение/запись | неопределено | Имеет значение "true", если все имена XML (для элементов, префиксов, атрибутов, сущностей, обозначений и локальных имён), а также URI пространств имён, будут обработаны с использованием java.lang.String.intern. Это поддерживает быстрое тестирование равенства/неравенства со строковыми константами, а не принуждает к более медленным вызовам String.equals(). |
| unicode-normalization-checking | чтение/запись | ложь | Управляет тем, сообщает ли парсер об ошибках нормализации Unicode, как описано в разделе 2.13 и Приложении B рекомендации XML 1.1. Если истинно, ошибки нормализации 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", если при вызове setEntityResolver объекта, реализующего интерфейс org.xml.sax.ext.EntityResolver2, будут использоваться эти новые методы. Возвращает "false", чтобы указать, что эти методы не будут использованы. |
| validation | чтение/запись | неопределено | Управляет тем, сообщает ли парсер все ошибки валидации; если истинно, все внешние сущности будут считаны. |
| xmlns-uris | чтение/запись | ложь | Управляет тем, рассматривает ли парсер атрибуты объявления пространства имён, когда функция 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 не обязаны их поддерживать.
© 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.