Spec-Zone.ru › OpenJDK 21

Интерфейс DOMConfiguration

public interface DOMConfiguration
Интерфейс DOMConfiguration представляет собой конфигурацию документа и поддерживает таблицу распознанных параметров. Используя конфигурацию, можно изменить Document.normalizeDocument() поведение, например, заменить узлы CDATASection узлами Text или указать тип схемы, который необходимо использовать при запросе валидации Document. Объекты DOMConfiguration также используются в [DOM Level 3 Load and Save] в интерфейсах DOMParser и DOMSerializer.

Имена параметров, используемые объектом DOMConfiguration, определены в спецификациях DOM Level 3. Названия нечувствительны к регистру. Для избежания возможных конфликтов, по соглашению, имена, относящиеся к параметрам, определённым за пределами спецификации DOM, должны быть уникальными. Поскольку параметры представлены как свойства, рекомендуется следовать разделу 5.16 Идентификаторы [Unicode] с добавлением символа '-' (ДЕФИС), но это не навязывается реализацией DOM. Реализации DOM Level 3 Core обязаны распознавать все параметры, определённые в данной спецификации. Некоторые значения параметров также могут быть обязательными для поддержки реализацией. Обратитесь к определению параметра, чтобы узнать, требуется ли его поддержка.

Примечание: Параметры аналогичны функциям и свойствам, используемым в SAX2 [SAX].

Следующий список параметров, определённых в DOM:

"canonical-form"
true
[необязательно] Канонизирует документ в соответствии с правилами, описанными в [Канонический XML], например, удаляя узел DocumentType (если он есть) из дерева или удаляя избыточные объявления пространств имён из каждого элемента. Обратите внимание, что это ограничено тем, что может быть представлено в DOM; в частности, нет способа указать порядок атрибутов в DOM. Кроме того, установка этого параметра в true также установит состояние перечисленных ниже параметров. Позже изменения состояния одного из этих параметров вернут «каноническую форму» обратно к false. Параметры, установленные в false: «entities», «normalize-characters», «cdata-sections». Параметры, установленные в true: «namespaces», «namespace-declarations», «well-formed», «element-content-whitespace». Другие параметры не изменяются, если явно не указано в описании параметров.
false
[обязательно] (по умолчанию) Не канонизировать документ.
"cdata-sections"
true
[обязательно] (по умолчанию) Сохранить узлы CDATASection в документе.
false
[обязательно] Преобразовать узлы CDATASection в документе в узлы Text. Новый узел Text затем объединяется с любым смежным узлом Text.
"check-character-normalization"
true
[необязательно] Проверить, являются ли символы в документе полностью нормализованными, как определено в приложении B [XML 1.1]. При обнаружении последовательности символов, не проходящей проверку нормализации, выдается ошибка с DOMError.type равной "check-character-normalization-failure".
false
[обязательно] (по умолчанию) Не проверять, нормализованы ли символы.
"comments"
true
[обязательно] (по умолчанию) Сохранить узлы Comment в документе.
false
[обязательно] Удалить узлы Comment из документа.
"datatype-normalization"
true
[необязательно] Вывести нормализованные значения схемы в дереве, например, нормализованные значения XML Schema в случае XML Schema. Поскольку для этого параметра требуется информация о схеме, параметр «validate» также будет установлен в true. Установка этого параметра, когда «validate» равно false, не оказывает влияния и нормализация схемы не произойдёт.

Примечание: Поскольку документ содержит результат обработки XML 1.0, этот параметр не относится к нормализации значений атрибутов, как определено в разделе 3.3.3 [XML 1.0], и предназначен только для языков схем, отличных от определения типа документа (DTD).

false
[обязательно] (по умолчанию) Не выполнять нормализацию схемы в дереве.
"element-content-whitespace"
true
[обязательно] (по умолчанию) Сохранить все пробелы в документе.
false
[необязательно] Удалить все узлы Text содержащие пробелы в содержимом элемента, как описано в [пробелы в содержимом элемента]. Реализация должна использовать атрибут Text.isElementContentWhitespace для определения, следует ли удалять узел Text или нет.
"entities"
true
[обязательно] (по умолчанию) Сохранить узлы EntityReference в документе.
false
[обязательно] Удалить все узлы EntityReference из документа, поместив расширения сущностей непосредственно на их место. Узлы Text нормализуются, как определено в Node.normalize. В документе сохраняются только неразвернутые ссылки на сущности.

Примечание: Этот параметр не влияет на узлы Entity.

"error-handler"
[обязательно] Содержит объект DOMErrorHandler. При обнаружении ошибки в документе, реализация вызовет обработчик ошибок DOMErrorHandler, зарегистрированный с помощью этого параметра. Реализация может предоставить объект DOMErrorHandler по умолчанию. При вызове DOMError.relatedData будет содержать ближайший к месту возникновения ошибки узел. Если реализация не может определить узел, где произошла ошибка, DOMError.relatedData будет содержать узел Document.
"infoset"
true
[обязательно] Сохранить в документе информацию, определенную в XML Information Set [XML Information Set] . Это принудительно устанавливает следующие параметры в false: «validate-if-schema», «entities», «datatype-normalization», «cdata-sections». Это принудительно устанавливает следующие параметры в true: «namespace-declarations», «well-formed», «element-content-whitespace», «comments», «namespaces». Другие параметры не изменяются, если явно не указано в описании параметров. Обратите внимание, что запрос этого параметра с помощью getParameter возвращает true только в том случае, если отдельные указанные выше параметры установлены должным образом.
false
Установка infoset в false не оказывает никакого влияния.
"namespaces"
true
[обязательно] (по умолчанию) Выполнить обработку пространств имён, как определено в .
false
[необязательно] Не выполнять обработку пространств имён.
"namespace-declarations"
Этот параметр не имеет эффекта, если параметр «namespaces» установлен в false.
true
[обязательно] (по умолчанию) Включить атрибуты объявления пространств имён, заданные или установленные по умолчанию из схемы, в документе. См. также разделы «Объявление пространств имён» в [XML Namespaces] и [XML Namespaces 1.1] .
false
[обязательно] Отбросить все атрибуты объявления пространств имён. Префиксы пространств имён ( Node.prefix) сохраняются, даже если этот параметр установлен в false.
"normalize-characters"
true
[необязательно] Полностью нормализовать символы в документе, как определено в приложении B [XML 1.1].
false
[обязательно] (по умолчанию) Не выполнять нормализацию символов.
"schema-location"
[необязательно] Представляет объект DOMString, содержащий список URI, разделённых пробелами (символы, соответствующие нетерминальному производству S, определённому в разделе 2.3 [XML 1.0]), которые представляют схемы, по которым должна произойти валидация, т.е. текущая схема. Типы схем, на которые ссылается этот список, должны соответствовать типу, указанному с schema-type, в противном случае поведение реализации не определено. Схемы, указанные с помощью этого свойства, имеют приоритет перед информацией о схеме, указанной в самом документе. Для схемы, учитывающей пространства имён, если схема, указанная с помощью этого свойства, и схема, указанная в экземпляре документа (т.е. с помощью атрибута schemaLocation), в документе схемы (т.е. с помощью механизмов схемы import ) используют то же самое targetNamespace, будет использоваться схема, указанная пользователем с помощью этого свойства. Если две схемы, указанные с помощью этого свойства, используют то же самое targetNamespace или не имеют пространства имён, поведение зависит от реализации. Если местоположение не было предоставлено, этот параметр null.

Примечание: Параметр "schema-location" игнорируется, если значение параметра «schema-type» не установлено. Настоятельно рекомендуется, чтобы Document.documentURI было установлено, чтобы реализация могла успешно разрешить любые внешние сущности, на которые есть ссылки.

"schema-type"
[необязательно] Представляет объект DOMString, содержащий абсолютный URI и представляющий тип языка схемы, используемого для проверки документа. Обратите внимание, что лексическая проверка абсолютного URI не выполняется. Если этот параметр не задан, реализация может предоставить значение по умолчанию на основе поддерживаемых языков схем и языка схемы во время загрузки. Если значение не задано, этот параметр null.

Примечание: Для XML Schema [XML Schema Part 1] приложения должны использовать значение "http://www.w3.org/2001/XMLSchema". Для XML DTD [XML 1.0] приложения должны использовать значение "http://www.w3.org/TR/REC-xml". Другие языки схем находятся вне сферы ответственности W3C и, следовательно, должны рекомендовать абсолютный URI для использования этого метода.

"split-cdata-sections"
true
[обязательно] (по умолчанию) Разделить секции CDATA, содержащие маркер завершения секции CDATA ']]>'. При разделении секции CDATA выдается предупреждение с DOMError.type равным "cdata-sections-splitted" и DOMError.relatedData равным первому узлу CDATASection в порядке документа, полученному в результате разделения.
false
[обязательно] Выдать ошибку, если CDATASection содержит неприводимый символ.
"validate"
true
[необязательно] Требует валидации документа по схеме (например, XML-схеме, DTD или любому другому типу или представлению схемы) во время его нормализации, как определено в [XML 1.0]. При обнаружении ошибок валидации или отсутствии схемы, обработчик ошибок уведомляется. Значения, нормализованные по схеме, не будут экспонированы в соответствии с используемой схемой, если параметр "datatype-normalization" не true. Этот параметр переоценит:
  • Узлы атрибутов с Attr.specified равным false, как указано в описании интерфейса Attr;
  • Значение атрибута Text.isElementContentWhitespace для всех узлов Text;
  • Значение атрибута Attr.isId для всех узлов Attr;
  • Атрибуты Element.schemaTypeInfo и Attr.schemaTypeInfo.

Примечание: «validate-if-schema» и «validate» взаимоисключают друг друга; установка одного из них в true установит другой в false. Приложения также должны рассмотреть возможность установки параметра "well-formed" в true, что является значением по умолчанию для этого параметра, при валидации документа.

false
[обязательно] (по умолчанию) Не производить обработку схем, включая обработку внутреннего подмножества. Информация о значениях атрибутов по умолчанию сохраняется. Обратите внимание, что валидация все равно может произойти, если «validate-if-schema» true .
"validate-if-schema"
true
[необязательно] Включить валидацию только в том случае, если в схеме (независимо от того, где она находится, например, XML-схема, DTD или любой другой тип или представление схемы) можно найти объявление для элемента документа. Если валидация включена, этот параметр ведет себя так же, как параметр «validate», установленный в true.

Примечание: «validate-if-schema» и «validate» взаимоисключают друг друга; установка одного из них в true установит другой в false.

false
[обязательно] (по умолчанию) Обработка схем не должна выполняться, если документ имеет схему, включая обработку внутреннего подмножества. Информация о значениях атрибутов по умолчанию сохраняется. Обратите внимание, что валидация все равно должна произойти, если «validate» true .
"well-formed"
true
[обязательно] (по умолчанию) Проверить, являются ли все узлы хорошо сформированными XML в соответствии с используемой версией XML в Document.xmlVersion:
  • проверить, содержит ли атрибут Node.nodeName недопустимые символы в соответствии с типом узла, и сгенерировать DOMError типа "wf-invalid-character-in-node-name", с DOMError.SEVERITY_ERROR уровнем серьезности, при необходимости;
  • проверить, содержит ли текстовое содержимое внутри узлов Attr, Element, Comment, Text, CDATASection недопустимые символы и сгенерировать DOMError типа "wf-invalid-character", с DOMError.SEVERITY_ERROR уровнем серьезности, при необходимости;
  • проверить, содержит ли данные внутри узлов ProcessingInstruction недопустимые символы и сгенерировать DOMError типа "wf-invalid-character", с DOMError.SEVERITY_ERROR уровнем серьезности, при необходимости;
false
[необязательно] Не проверять хорошо сформированность XML.

Разрешение системных идентификаторов, связанных с сущностями, выполняется с помощью Document.documentURI. Однако, когда функция «LS», определенная в [DOM Level 3 Load and Save], поддерживается реализацией DOM, параметр «resource-resolver» также может быть использован для объектов DOMConfiguration, присоединенных к узлам Document. Если этот параметр установлен, Document.normalizeDocument() будет вызывать обработчик ресурсов вместо использования Document.documentURI.

См. также Спецификацию Объектной модели документа (DOM) уровня 3 ядра.

Since:
1.5, DOM Level 3

Краткое описание методов

Модификатор и тип Метод Описание
boolean canSetParameter(String name, Object value)
Проверяет, поддерживается ли установка параметра к определенному значению.
Object getParameter(String name)
Возвращает значение параметра, если оно известно.
DOMStringList getParameterNames()
Список параметров, поддерживаемых этим объектом DOMConfiguration и для которых приложение может установить по крайней мере одно значение.
void setParameter(String name, Object value)
Устанавливает значение параметра.

Подробное описание методов

setParameter

void setParameter(String name, Object value) throws DOMException
Устанавливает значение параметра.
Параметры:
name - Название параметра для установки.
value - Новое значение или null, если пользователь хочет сбросить параметр. Хотя тип параметра value определяется как DOMUserData, тип объекта должен соответствовать типу, определенному в определении параметра. Например, если параметр "error-handler", значение должно быть типа DOMErrorHandler.
Исключения:
DOMException - NOT_FOUND_ERR: Возникает, когда имя параметра не распознано.
NOT_SUPPORTED_ERR: Возникает, когда имя параметра распознано, но запрошенное значение не может быть установлено.
TYPE_MISMATCH_ERR: Возникает, если тип значения для этого имени параметра несовместим с ожидаемым типом значения.

getParameter

Object getParameter(String name) throws DOMException
Возвращает значение параметра, если оно известно.
Параметры:
name - Название параметра.
Возвращает:
Текущий объект, связанный с указанным параметром, или null, если объект не был связан или параметр не поддерживается.
Исключения:
DOMException - NOT_FOUND_ERR: Возникает, когда имя параметра не распознано.

canSetParameter

boolean canSetParameter(String name, Object value)
Проверяет, поддерживается ли установка параметра к определенному значению.
Параметры:
name - Название параметра для проверки.
value - Объект. Если null, возвращаемое значение true.
Возвращает:
true если параметр может быть успешно установлен в указанное значение, или false если параметр не распознан или запрошенное значение не поддерживается. Это не изменяет текущего значения параметра.

getParameterNames

DOMStringList getParameterNames()
Список параметров, поддерживаемых этим объектом DOMConfiguration и для которых приложение может установить по крайней мере одно значение. Обратите внимание, что этот список также может содержать имена параметров, определенных вне этой спецификации.

© 1993, 2023, 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/21/docs/api/java.xml/org/w3c/dom/DOMConfiguration.html

Spec-Zone.ru

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