Интерфейс DOMConfiguration
public interface DOMConfiguration
DOMConfiguration представляет конфигурацию документа и поддерживает таблицу распознанных параметров. Используя конфигурацию, можно изменить Document.normalizeDocument() поведение, например, заменить CDATASection узлы на Text узлы или указать тип схемы, которая должна использоваться при запросе валидации Document. Объекты DOMConfiguration также используются в [DOM Level 3 Загрузка и сохранение] в интерфейсах 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. Использование этого параметра, когда "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) Level 3 Core.
- Since:
- 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, 2021, 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/17/docs/api/java.xml/org/w3c/dom/DOMConfiguration.html