Пакет 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(). Это относится к идентификаторам систем, переданным в
  • DTDHandler.notationDecl(),
  • DTDHandler.unparsedEntityDecl(), и
  • DeclHandler.externalEntityDecl().
Это не относится к EntityResolver.resolveEntity(), который не используется для сообщения об объявлениях, или к LexicalHandler.startDTD(), который уже предоставляет URI без абсолютизации.
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

Spec-Zone .ru
спецификации, руководства, описания, API