Интерфейс 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 |
Проверяет, поддерживается ли установка параметра к определенному значению. |
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, 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