Spec-Zone.ru › OpenJDK 24

Интерфейс 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 также установит состояние перечисленных ниже параметров. Позднейшие изменения в состоянии одного из этих параметров приведут к возврату "canonical-form" к 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. Включение этого параметра при false значении "validate" не окажет никакого эффекта и нормализация по схеме не произойдет.

Примечание: Поскольку документ содержит результат обработки 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 Core.

С:
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, 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/org/w3c/dom/DOMConfiguration.html

Spec-Zone.ru

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