Spec-Zone.ru › OpenJDK 25

Пакет org.xml.sax

package org.xml.sax
Предоставляет интерфейсы для Simple API for XML (SAX). Поддерживает API SAX1 и SAX2.

Стандартные флаги функций SAX2

Одной из важнейших особенностей SAX2 стало добавление флагов функций, которые можно использовать для проверки и, возможно, изменения режимов анализатора, в частности таких режимов, как проверка. Поскольку функции определяются по (абсолютным) URI, любой может задавать такие функции. В настоящее время определённые стандартные URI функций имеют префикс http://xml.org/sax/features/ перед идентификатором, например validation. Включайте и выключайте функции с помощью setFeature. Стандартные идентификаторы:

Стандартные функции
Идентификатор функции Доступ По умолчанию Описание
external-general-entities чтение/запись не указано Сообщает, обрабатывает ли этот анализатор внешние обобщённые сущности; при проверке всегда возвращает true.
external-parameter-entities чтение/запись не указано Сообщает, обрабатывает ли этот анализатор внешние параметрические сущности; при проверке всегда возвращает true.
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 Управляет тем, сообщает ли анализатор об ошибках нормализации 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 соответствует исходной рекомендации "Namespaces in 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
Пакет Описание
org.xml.sax.ext
Предоставляет интерфейсы для средств SAX2, поддержку которых совместимые драйверы SAX не обязательно реализуют.
org.xml.sax.helpers
Предоставляет вспомогательные классы, в том числе средства для запуска приложений на основе SAX.
Класс Описание
AttributeList Устарело.
Этот интерфейс заменён интерфейсом SAX2 Attributes, который поддерживает пространства имён.
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 с помощью обратных вызовов.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/xml/sax/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API