Интерфейс 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 |
Проверяет, поддерживается ли установка параметра со значением. |
Object |
getParameter |
Возвращает значение параметра, если оно известно. |
DOMStringList |
getParameterNames() |
Список параметров, поддерживаемых этим объектом DOMConfiguration, для которых приложение может установить значение. |
void |
setParameter |
Устанавливает значение параметра. |
Подробное описание методов
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