Документация интерфейса
- Все суперинтерфейсы:
- Узел
- Все известные реализующие классы:
- SOAPPart
public interface Document extends Node
Интерфейс Document представляет собой весь документ HTML или XML. Концептуально, это корень дерева документа и предоставляет основной доступ к данным документа.
Поскольку элементы, текстовые узлы, комментарии, инструкции обработки и т. д. не могут существовать вне контекста Document, интерфейс Document также содержит методы-фабрики, необходимые для создания этих объектов. Объекты Node, созданные с помощью этих методов, имеют атрибут ownerDocument, который связывает их с Document в контексте которого они были созданы.
См. также Спецификацию объекта DOM (Document Object Model) уровня 3 Core.
Поля
Поля, унаследованные от интерфейса org.w3c.dom.Узел
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE Методы
| Модификатор и тип | Метод и описание |
|---|---|
Node |
adoptNode(Node source) Попытка принять узел из другого документа в этот документ. |
Attr |
createAttribute(String name) Создаёт |
Attr |
createAttributeNS(String namespaceURI,
String qualifiedName) Создаёт атрибут с заданным квалифицированным именем и URI пространства имён. |
CDATASection |
createCDATASection(String data) Создаёт узел |
Comment |
createComment(String data) Создаёт узел |
DocumentFragment |
createDocumentFragment() Создаёт пустой объект |
Element |
createElement(String tagName) Создаёт элемент указанного типа. |
Element |
createElementNS(String namespaceURI,
String qualifiedName) Создаёт элемент с заданным квалифицированным именем и URI пространства имён. |
EntityReference |
createEntityReference(String name) Создаёт объект |
ProcessingInstruction |
createProcessingInstruction(String target,
String data) Создаёт узел |
Text |
createTextNode(String data) Создаёт узел |
DocumentType |
getDoctype() Декларация типа документа (см. |
Element |
getDocumentElement() Это удобный атрибут, позволяющий получить прямой доступ к дочернему узлу, являющемуся элементом документа. |
String |
getDocumentURI() Расположение документа или |
DOMConfiguration |
getDomConfig() Конфигурация, используемая при вызове |
Element |
getElementById(String elementId) Возвращает |
NodeList |
getElementsByTagName(String tagname) Возвращает |
NodeList |
getElementsByTagNameNS(String namespaceURI,
String localName) Возвращает |
DOMImplementation |
getImplementation() Объект |
String |
getInputEncoding() Атрибут, определяющий кодировку, используемую для этого документа во время парсинга. |
boolean |
getStrictErrorChecking() Атрибут, определяющий, включена ли проверка ошибок. |
String |
getXmlEncoding() Атрибут, определяющий (как часть объявления XML) кодировку этого документа. |
boolean |
getXmlStandalone() Атрибут, определяющий (как часть объявления XML), является ли этот документ автономным. |
String |
getXmlVersion() Атрибут, определяющий (как часть объявления XML) номер версии этого документа. |
Node |
importNode(Node importedNode,
boolean deep) Импортирует узел из другого документа в этот документ, не изменяя и не удаляя исходный узел из исходного документа; этот метод создаёт новую копию исходного узла. |
void |
normalizeDocument() Этот метод действует так, как будто документ проходит цикл сохранения и загрузки, переводя документ в «нормальную» форму. |
Node |
renameNode(Node n,
String namespaceURI,
String qualifiedName) Переименовывает существующий узел типа |
void |
setDocumentURI(String documentURI) Расположение документа или |
void |
setStrictErrorChecking(boolean strictErrorChecking) Атрибут, определяющий, включена ли проверка ошибок. |
void |
setXmlStandalone(boolean xmlStandalone) Атрибут, определяющий (как часть объявления XML), является ли этот документ автономным. |
void |
setXmlVersion(String xmlVersion) Атрибут, определяющий (как часть объявления XML) номер версии этого документа. |
Методы, унаследованные от интерфейса org.w3c.dom.Узел
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData Методы
getDoctype
DocumentType getDoctype()
Декларация типа документа (см. DocumentType) , связанная с этим документом. Для XML-документов без декларации типа документа возвращается null. Для HTML-документов может возвращаться объект DocumentType, независимо от наличия или отсутствия декларации типа документа в HTML-документе.
Это обеспечивает прямой доступ к узлу DocumentType, дочернему узлу этого Document. Этот узел можно задать во время создания документа и позже изменить с помощью методов манипулирования дочерними узлами, таких как Node.insertBefore, или Node.replaceChild. Однако, хотя некоторые реализации могут создавать объекты разных типов Document с дополнительными функциями, помимо "Основных", такими как "HTML" [DOM Level 2 HTML], на основе DocumentType , заданного во время создания, изменение его впоследствии вряд ли приведёт к изменению поддерживаемых функций.
- Since:
- DOM Level 3
getImplementation
DOMImplementation getImplementation()
Объект DOMImplementation, который обрабатывает этот документ. Приложение DOM может использовать объекты из нескольких реализаций.
getDocumentElement
Element getDocumentElement()
Это вспомогательный атрибут, обеспечивающий прямой доступ к дочернему узлу, являющемуся элементом документа.
createElement
Element createElement(String tagName)
throws DOMException
Создаёт элемент указанного типа. Обратите внимание, что возвращённый экземпляр реализует интерфейс Element, поэтому атрибуты можно задавать непосредственно на возвращённом объекте.
Кроме того, если известны атрибуты с значениями по умолчанию, узлы Attr , представляющие их, автоматически создаются и прикрепляются к элементу.
Для создания элемента с квалифицированным именем и URI пространства имён используйте метод createElementNS.
- Parameters:
-
tagName- Имя типа элемента для создания экземпляра. Для XML это чувствительно к регистру, в противном случае это зависит от чувствительности к регистру используемого языка разметки. В этом случае имя отображается в канонической форме этой разметки реализацией DOM. - Returns:
- Новый объект
Elementс атрибутомnodeName, установленным вtagName, и атрибутамиlocalName,prefix, иnamespaceURIустановленных вnull. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Вызывается, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
createDocumentFragment
DocumentFragment createDocumentFragment()
Создаёт пустой объект DocumentFragment.
- Returns:
- Новый
DocumentFragment.
createTextNode
Text createTextNode(String data)
Создаёт узел Text с заданной строкой.
- Parameters:
-
data- Данные для узла. - Returns:
- Новый объект
Text.
createComment
Comment createComment(String data)
Создаёт узел Comment с заданной строкой.
- Parameters:
-
data- Данные для узла. - Returns:
- Новый объект
Comment.
createCDATASection
CDATASection createCDATASection(String data)
throws DOMException
Создаёт узел CDATASection со значением заданной строки.
- Parameters:
-
data- Данные для содержимогоCDATASection. - Returns:
- Новый объект
CDATASection. - Throws:
-
DOMException- NOT_SUPPORTED_ERR: Вызывается, если этот документ является HTML-документом.
createProcessingInstruction
ProcessingInstruction createProcessingInstruction(String target,
String data)
throws DOMException
Создаёт узел ProcessingInstruction с заданными именем и данными.
- Parameters:
-
target- Целевая часть инструкции обработки.В отличие отDocument.createElementNSилиDocument.createAttributeNS, проверка корректности пространства имён для целевого имени не выполняется. Приложения должны вызыватьDocument.normalizeDocument()с параметром "namespaces", установленным вtrue, чтобы гарантировать корректность целевого имени в пространстве имён. -
data- Данные для узла. - Returns:
- Новый объект
ProcessingInstruction. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Вызывается, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NOT_SUPPORTED_ERR: Вызывается, если этот документ является HTML-документом.
createAttribute
Attr createAttribute(String name)
throws DOMException
Создаёт Attr с заданным именем. Обратите внимание, что экземпляр Attr может быть затем установлен на Element с помощью метода setAttributeNode.
Для создания атрибута с квалифицированным именем и URI пространства имён используйте метод createAttributeNS.
- Parameters:
-
name- Имя атрибута. - Returns:
- Новый объект
Attrс атрибутомnodeName, установленным вname, и атрибутамиlocalName,prefix, иnamespaceURIустановленных вnull. Значение атрибута - пустая строка. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Вызывается, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
createEntityReference
EntityReference createEntityReference(String name)
throws DOMException
Создаёт объект EntityReference. Кроме того, если связанная сущность известна, список дочерних узлов узла EntityReference делается таким же, как и у соответствующего узла Entity.
Примечание: Если у любого потомка узла Entity есть не связанный префикс пространства имён, соответствующий потомок созданного узла EntityReference также не связан; (его namespaceURI равно null). DOM Level 2 и 3 не поддерживают механизм разрешения префиксов пространства имён в этом случае.
- Parameters:
-
name- Имя сущности для ссылки. В отличие отDocument.createElementNSилиDocument.createAttributeNS, проверка корректности имени сущности в пространстве имён не выполняется. Приложения должны вызыватьDocument.normalizeDocument()с параметром "namespaces", установленным вtrue, чтобы гарантировать корректность имени сущности в пространстве имён. - Returns:
- Новый объект
EntityReference. - Throws:
-
DOMException- INVALID_CHARACTER_ERR: Вызывается, если указанное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NOT_SUPPORTED_ERR: Вызывается, если этот документ является HTML-документом.
getElementsByTagName
NodeList getElementsByTagName(String tagname)
Возвращает коллекцию NodeList всех Elements в порядке документа с заданным именем тега, содержащихся в документе.
- Parameters:
-
tagname- Имя тега для сопоставления. Специальное значение "*" соответствует всем тегам. Для XML параметрtagnameчувствителен к регистру, в противном случае это зависит от чувствительности к регистру используемого языка разметки. - Returns:
- Новый объект
NodeList, содержащий все соответствующиеElements.
importNode
Node importNode(Node importedNode,
boolean deep)
throws DOMException
Импортирует узел из другого документа в этот документ, без изменения или удаления исходного узла из исходного документа; этот метод создаёт новую копию исходного узла. Возвращаемый узел не имеет родителя; (parentNode это null).
Для всех узлов импорт узла создаёт объект узла, принадлежащий импортирующему документу, с атрибутами, идентичными nodeName и nodeType исходного узла, плюс атрибуты, связанные с пространствами имён (prefix, localName, и namespaceURI). Как и в операции cloneNode, исходный узел не изменяется. Данные пользователя, связанные с импортированным узлом, не переносятся. Однако, если были указаны какие-либо UserDataHandlers, вместе с соответствующими данными, эти обработчики будут вызваны с соответствующими параметрами перед возвратом этого метода.
Дополнительная информация копируется соответствующим образом в nodeType, пытаясь отразить поведение, ожидаемое при копировании фрагмента исходного XML или HTML из одного документа в другой, учитывая, что в случае XML два документа могут иметь разные DTD. В списке ниже описаны особенности для каждого типа узла.
- ATTRIBUTE_NODE
- Атрибут
ownerElementустанавливается вnull, а флагspecifiedустанавливается вtrueдля сгенерированногоAttr. Потомки исходногоAttrимпортируются рекурсивно, а результирующие узлы собираются для формирования соответствующего поддерева. Обратите внимание, что параметрdeepне влияет на узлыAttr; они всегда переносят свои дочерние элементы при импорте. - DOCUMENT_FRAGMENT_NODE
- Если параметр
deepбыл установлен вtrue, потомки исходногоDocumentFragmentимпортируются рекурсивно, а результирующие узлы собираются под импортированнымDocumentFragmentдля формирования соответствующего поддерева. В противном случае, это просто генерирует пустойDocument. - DOCUMENT_NODE
-
Documentузлы не могут быть импортированы. - DOCUMENT_TYPE_NODE
-
DocumentTypeузлы не могут быть импортированы. - ELEMENT_NODE
- Узлы атрибутов, указанные в исходном элементе, импортируются, и сгенерированные
Attrузлы присоединяются к сгенерированномуElementэлементу. Значения атрибутов по умолчанию не копируются, хотя если импортируемый документ определяет значения атрибутов по умолчанию для этого имени элемента, они будут назначены. Если параметрimportNodedeepбыл установлен вtrue, потомки исходного элемента импортируются рекурсивно, и результирующие узлы собираются для формирования соответствующего поддерева. - ENTITY_NODE
-
Entityузлы могут быть импортированы, однако в текущей версии DOM атрибутDocumentTypeявляется только для чтения. Возможность добавления этих импортированных узлов вDocumentTypeбудет рассмотрена для добавления в будущие версии DOM. При импорте атрибутыpublicId,systemId, иnotationNameкопируются. Если запрашивается импортdeep, потомки исходногоEntityимпортируются рекурсивно, и результирующие узлы собираются для формирования соответствующего поддерева. - ENTITY_REFERENCE_NODE
- Копируется только сам
EntityReference, даже если запрашивается импортdeep, поскольку исходные и целевые документы могут определить сущность по-разному. Если импортируемый документ предоставляет определение для этого имени сущности, его значение присваивается. - NOTATION_NODE
-
Notationузлы могут быть импортированы, однако в текущей версии DOM атрибутDocumentTypeявляется только для чтения. Возможность добавления этих импортированных узлов вDocumentTypeбудет рассмотрена для добавления в будущие версии DOM. При импорте атрибутыpublicIdиsystemIdкопируются. Обратите внимание, что параметрdeepне влияет на этот тип узлов, так как они не могут иметь дочерних элементов. - PROCESSING_INSTRUCTION_NODE
- Импортированный узел копирует значения
targetиdataиз исходного узла. Обратите внимание, что параметрdeepне влияет на этот тип узлов, так как они не могут иметь дочерних элементов. - TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
- Эти три типа узлов, наследуемых от
CharacterData, копируют атрибутыdataиlengthиз исходного узла. Обратите внимание, что параметрdeepне влияет на эти типы узлов, так как они не могут иметь дочерних элементов.
- Параметры:
-
importedNode- Узел для импорта. -
deep- Еслиtrue, рекурсивно импортировать поддерево под указанным узлом; еслиfalse, импортировать только сам узел, как описано выше. Это не влияет на узлы, которые не могут иметь дочерних элементов, и на узлыAttrиEntityReference. - Возвращает:
- Импортированный узел, принадлежащий этому
Document. - Исключения:
-
DOMException- NOT_SUPPORTED_ERR: Выбрасывается, если тип импортируемого узла не поддерживается.
INVALID_CHARACTER_ERR: Выбрасывается, если одно из импортированных имён не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersionНапример, это может произойти при импорте XML 1.1 [XML 1.1] элемента в документ XML 1.0. - С:
- DOM Level 2
createElementNS
Element createElementNS(String namespaceURI,
String qualifiedName)
throws DOMException Создаёт элемент с заданным полным именем и URI пространства имён.
В соответствии с [XML Namespaces] приложения должны использовать значение null в качестве параметра namespaceURI для методов, если они хотят не использовать пространство имён.
- Параметры:
-
namespaceURI- URI пространства имён создаваемого элемента. -
qualifiedName- Полное имя типа элемента, который необходимо создать. - Возвращает:
- Новый объект
Elementс следующими атрибутами:Атрибут Значение Node.nodeNamequalifiedNameNode.namespaceURInamespaceURINode.prefixПрефикс, извлечённый из qualifiedName, илиnullесли префикса нетNode.localNameЛокальное имя, извлечённое из qualifiedNameElement.tagNamequalifiedName - Исключения:
-
DOMException- INVALID_CHARACTER_ERR: Выбрасывается, если указанныйqualifiedNameне является именем XML в соответствии с версией XML, используемой в атрибутеDocument.xmlVersion.
NAMESPACE_ERR: Выбрасывается, еслиqualifiedNameявляется некорректно сформированным полным именем, если уqualifiedNameесть префикс иnamespaceURIравноnull, или если уqualifiedNameесть префикс "xml" иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace" [XML Namespaces] , или если уqualifiedNameили его префикс равно "xmlns" иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/", или еслиnamespaceURIравно "http://www.w3.org/2000/xmlns/" и ни уqualifiedNameни у его префикса не равно "xmlns".
NOT_SUPPORTED_ERR: Всегда выбрасывается, если текущий документ не поддерживает функцию"XML", так как пространства имён были определены в XML. - С:
- DOM Level 2
createAttributeNS
Attr createAttributeNS(String namespaceURI,
String qualifiedName)
throws DOMException Создаёт атрибут с заданным полным именем и URI пространства имён.
В соответствии с [XML Namespaces] приложения должны использовать значение null в качестве параметра namespaceURI для методов, если они не хотят использовать пространство имён.
- Параметры:
-
namespaceURI- URI пространства имён атрибута, который нужно создать. -
qualifiedName- Квалифицированное имя атрибута, который нужно создать. - Возвращает:
- Новый объект
Attrсо следующими атрибутами:Атрибут Значение Node.nodeNamequalifiedName Node.namespaceURInamespaceURINode.prefixпрефикс, извлечённый из qualifiedName, илиnullесли префикса нетNode.localNameлокальное имя, извлечённое из qualifiedNameAttr.namequalifiedNameNode.nodeValueпустая строка - Выбрасывает:
-
DOMException- INVALID_CHARACTER_ERR: Выбрасывается, если указанноеqualifiedNameне является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
NAMESPACE_ERR: Выбрасывается, еслиqualifiedNameимеет неправильный формат квалифицированного имени, если уqualifiedNameесть префикс иnamespaceURIравноnull, если уqualifiedNameесть префикс "xml" иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace", еслиqualifiedNameили его префикс равен "xmlns" иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/", или еслиnamespaceURIравно "http://www.w3.org/2000/xmlns/" и ниqualifiedNameни его префикс не равны "xmlns".
NOT_SUPPORTED_ERR: Всегда выбрасывается, если текущий документ не поддерживает функциональность"XML", так как пространства имён были определены в XML. - С тех пор:
- DOM Level 2
getElementsByTagNameNS
NodeList getElementsByTagNameNS(String namespaceURI,
String localName) Возвращает список всех элементов с заданным локальным именем и URI пространства имён в порядке следования в документе.
- Параметры:
-
namespaceURI- URI пространства имён элементов, которые нужно найти. Специальное значение"*"соответствует всем пространствам имён. -
localName- Локальное имя элементов, которые нужно найти. Специальное значение "*" соответствует всем локальным именам. - Возвращает:
- Новый список элементов, содержащий все совпадающие элементы.
- С тех пор:
- DOM Level 2
getElementById
Element getElementById(String elementId)
Возвращает элемент, у которого атрибут ID имеет заданное значение. Если такого элемента не существует, возвращает null. Если существует более одного элемента с атрибутом ID, содержащим это значение, поведение не определено.
Реализация DOM должна использовать атрибут Attr.isId для определения типа атрибута "ID".
Примечание: Атрибуты с именем "ID" или "id" не являются атрибутами типа ID, если явно не определены.
- Параметры:
-
elementId- Уникальное значениеidэлемента. - Возвращает:
- Соответствующий элемент или null, если такового нет.
- С тех пор:
- DOM Level 2
getInputEncoding
String getInputEncoding()
Атрибут, определяющий кодировку, используемую для данного документа во время разбора. Возвращает null, если кодировка неизвестна, например, когда документ создан в памяти.
- С тех пор:
- DOM Level 3
getXmlEncoding
String getXmlEncoding()
Атрибут, определяющий кодировку документа, как часть декларации XML. Возвращает null, если кодировка не указана или неизвестна, например, когда документ создан в памяти.
- С тех пор:
- DOM Level 3
getXmlStandalone
boolean getXmlStandalone()
Атрибут, определяющий, является ли документ автономным, как часть декларации XML. Возвращает null, если не указан.
Примечание: Проверка значения при установке не выполняется. Приложения должны использовать метод Document.normalizeDocument() с параметром "validate", чтобы проверить, соответствует ли значение ограничениям валидности для объявления автономного документа, как определено в [XML 1.0].
- С тех пор:
- DOM Level 3
setXmlStandalone
void setXmlStandalone(boolean xmlStandalone)
throws DOMException Атрибут, определяющий, является ли документ автономным, как часть декларации XML. Возвращает null, если не указан.
Примечание: Проверка значения при установке не выполняется. Приложения должны использовать метод Document.normalizeDocument() с параметром "validate", чтобы проверить, соответствует ли значение ограничениям валидности для объявления автономного документа, как определено в [XML 1.0].
- Выбрасывает:
-
DOMException- NOT_SUPPORTED_ERR: Выбрасывается, если этот документ не поддерживает функциональность "XML". - С тех пор:
- DOM Level 3
getXmlVersion
String getXmlVersion()
Атрибут, определяющий версию документа, как часть декларации XML. Если декларация отсутствует и документ поддерживает функциональность "XML", значение равно "1.0". Если документ не поддерживает функциональность "XML", значение всегда равно null. Изменение этого атрибута повлияет на методы, проверяющие некорректные символы в именах XML. Приложение должно вызвать Document.normalizeDocument() для проверки некорректных символов в Node которые уже присутствуют в этом Document.
Приложения DOM могут использовать метод DOMImplementation.hasFeature(feature, version) с параметрами "XMLVersion" и "1.0" (соответственно) для определения, поддерживает ли реализация [XML 1.0]. Приложения DOM могут использовать тот же метод с параметрами "XMLVersion" и "1.1" для определения, поддерживает ли реализация [XML 1.1]. В обоих случаях для поддержки XML реализация также должна поддерживать функциональность "XML", определённую в данном спецификации. Объекты Document поддерживающие версию функциональности "XMLVersion", не должны генерировать исключение NOT_SUPPORTED_ERR для того же номера версии при использовании Document.xmlVersion.
- С тех пор:
- DOM Level 3
setXmlVersion
void setXmlVersion(String xmlVersion)
throws DOMException Атрибут, определяющий версию документа, как часть декларации XML. Если декларация отсутствует и документ поддерживает функциональность "XML", значение равно "1.0". Если документ не поддерживает функциональность "XML", значение всегда равно null. Изменение этого атрибута повлияет на методы, проверяющие некорректные символы в именах XML. Приложение должно вызвать Document.normalizeDocument() для проверки некорректных символов в Node которые уже присутствуют в этом Document.
Приложения DOM могут использовать метод DOMImplementation.hasFeature(feature, version) с параметрами "XMLVersion" и "1.0" (соответственно) для определения, поддерживает ли реализация [XML 1.0]. Приложения DOM могут использовать тот же метод с параметрами "XMLVersion" и "1.1" для определения, поддерживает ли реализация [XML 1.1]. В обоих случаях для поддержки XML реализация также должна поддерживать функциональность "XML", определённую в данном спецификации. Объекты Document поддерживающие версию функциональности "XMLVersion", не должны генерировать исключение NOT_SUPPORTED_ERR для того же номера версии при использовании Document.xmlVersion.
- Выбрасывает:
-
DOMException- NOT_SUPPORTED_ERR: Выбрасывается, если версия установлена на значение, которое не поддерживается этимDocumentили если этот документ не поддерживает функциональность "XML". - С тех пор:
- DOM Level 3
getStrictErrorChecking
boolean getStrictErrorChecking()
Атрибут, определяющий, включена ли жёсткая проверка ошибок. Если установлено значение true, реализация может не проверять все возможные случаи ошибок, обычно определённые для операций DOM, и не генерировать исключения DOMException при выполнении операций DOM или при сообщении об ошибках во время использования Document.normalizeDocument(). В случае ошибки поведение не определено. По умолчанию этот атрибут равен false.
- С тех пор:
- DOM Level 3
setStrictErrorChecking
void setStrictErrorChecking(boolean strictErrorChecking)
Атрибут, определяющий, включена ли жёсткая проверка ошибок. Если установлено значение true, реализация может не проверять все возможные случаи ошибок, обычно определённые для операций DOM, и не генерировать исключения DOMException при выполнении операций DOM или при сообщении об ошибках во время использования Document.normalizeDocument(). В случае ошибки поведение не определено. По умолчанию этот атрибут равен false.
- С тех пор:
- DOM Level 3
getDocumentURI
String getDocumentURI()
Расположение документа или null, если не определено или если Document создан с помощью DOMImplementation.createDocument. При установке этого атрибута лексическая проверка не выполняется; это может привести к возвращению значения null при использовании Node.baseURI.
Обратите внимание, что когда Document поддерживает функциональность "HTML" [DOM Level 2 HTML] , атрибут href элемента HTML BASE имеет приоритет над этим атрибутом при вычислении Node.baseURI.
- С тех пор:
- DOM Level 3
УстановитьURLДокумента
void setDocumentURI(String documentURI)
Расположение документа или null если оно не определено или если Document было создано с использованием DOMImplementation.createDocument. При установке этого атрибута лексическая проверка не выполняется; это может привести к возврату значения null при использовании Node.baseURI .
Обратите внимание, что когда Document поддерживает функцию «HTML» [DOM Level 2 HTML], атрибут href элемента HTML BASE имеет приоритет над этим атрибутом при вычислении Node.baseURI.
- С тех пор:
- DOM Level 3
ПринятьУзел
Node adoptNode(Node source)
throws DOMException Попытка принять узел из другого документа в этот документ. При поддержке, изменяет ownerDocument исходного узла, его дочерних элементов, а также присоединённых атрибутов, если они есть. Если исходный узел имеет родителя, он сначала удаляется из списка дочерних элементов своего родителя. Это эффективно позволяет перемещать поддерево из одного документа в другой (в отличие от importNode() , которое создаёт копию исходного узла вместо его перемещения). В случае неудачи приложения должны использовать Document.importNode() вместо этого. Обратите внимание, что если принятый узел уже является частью этого документа (т.е. исходный и целевой документы одинаковы), этот метод всё равно удаляет исходный узел из списка дочерних элементов его родителя, если таковой имеется. Следующий список описывает особенности для каждого типа узла.
- ATTRIBUTE_NODE
- Атрибут
ownerElementустанавливается в значениеnull, а флагspecifiedустанавливается в значениеtrueдля принятогоAttr. Потомки исходногоAttrпринимаются рекурсивно. - DOCUMENT_FRAGMENT_NODE
- Потомки исходного узла принимаются рекурсивно.
- DOCUMENT_NODE
- Узлы типа
Documentне могут быть приняты. - DOCUMENT_TYPE_NODE
- Узлы типа
DocumentTypeне могут быть приняты. - ELEMENT_NODE
- Указанные атрибуты исходного элемента принимаются. Значения по умолчанию игнорируются, хотя, если принимающий документ определяет значения по умолчанию для этого имени элемента, они назначаются. Потомки исходного элемента принимаются рекурсивно.
- ENTITY_NODE
- Узлы типа
Entityне могут быть приняты. - ENTITY_REFERENCE_NODE
- Принимается только сам узел
EntityReference, потомки отбрасываются, так как исходные и целевые документы могут определять сущность по-разному. Если импортируемый документ предоставляет определение для этого имени сущности, его значение назначается. - NOTATION_NODE
-
Узлы типа
Notationне могут быть приняты. - PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
- Все эти узлы могут быть приняты. Без особых требований.
Примечание: Поскольку этот метод не создаёт новые узлы, в отличие от метода Document.importNode(), он не вызывает исключение INVALID_CHARACTER_ERR, и приложения должны использовать метод Document.normalizeDocument() для проверки, является ли импортированное имя не именем XML в соответствии с используемой версией XML.
- Параметры:
-
source- Узел для перемещения в этот документ. - Возвращает:
- Принятый узел или
nullесли операция завершается неудачно, например, когда исходный узел из другого модуля. - Выбрасывает:
-
DOMException- NOT_SUPPORTED_ERR: Вызывается, если исходный узел типаDOCUMENT,DOCUMENT_TYPE.
NO_MODIFICATION_ALLOWED_ERR: Вызывается, когда исходный узел только для чтения. - С тех пор:
- DOM Level 3
ПолучитьКонфигурациюDOM
DOMConfiguration getDomConfig()
Конфигурация, используемая при вызове Document.normalizeDocument().
- С тех пор:
- DOM Level 3
НормализоватьДокумент
void normalizeDocument()
Этот метод действует так, как если бы документ проходил цикл сохранения и загрузки, приводя документ в «нормальную» форму. Вследствие этого этот метод обновляет дерево замены узлов EntityReference и нормализует узлы Text, как определено в методе Node.normalize().
В противном случае фактический результат зависит от настроек, заданных в объекте Document.domConfig и управляющих выполняемыми операциями. Заметно, что этот метод также может сделать пространство имён документа хорошо сформированным в соответствии с алгоритмом, описанным в, проверить нормализацию символов, удалить узлы CDATASection и т.д. Подробнее см. DOMConfiguration.
// Keep in the document
the information defined // in the XML Information Set (Java example)
DOMConfiguration docConfig = myDocument.getDomConfig();
docConfig.setParameter("infoset", Boolean.TRUE);
myDocument.normalizeDocument(); При поддержке генерируются события мутации, отражающие происходящие изменения в документе.
Если во время вызова этого метода возникнут ошибки, такие как попытка обновить узел только для чтения или узел
Node.nodeName содержит недопустимый символ в соответствии с используемой версией XML, ошибки или предупреждения (DOMError.SEVERITY_ERROR или DOMError.SEVERITY_WARNING) будут сообщены с использованием объекта DOMErrorHandler , связанного с параметром «обработчик ошибок». Обратите внимание, что этот метод также может сообщать об ошибках критического уровня (DOMError.SEVERITY_FATAL_ERROR) , если реализация не может восстановиться от ошибки. - С тех пор:
- DOM Level 3
ПереименоватьУзел
Node renameNode(Node n,
String namespaceURI,
String qualifiedName)
throws DOMException Переименовать существующий узел типа ELEMENT_NODE или ATTRIBUTE_NODE.
Если это возможно, просто изменяет имя заданного узла, в противном случае создаёт новый узел с указанным именем и заменяет существующий узел новым узлом, как описано ниже.
Если простое изменение имени заданного узла невозможно, выполняются следующие операции: создаётся новый узел, любой зарегистрированный обработчик событий регистрируется на новом узле, любые данные пользователя, прикреплённые к старому узлу, удаляются с этого узла, старый узел удаляется из своего родителя, если он есть, дочерние элементы перемещаются в новый узел, если переименовываемый узел является Element , его атрибуты перемещаются в новый узел, новый узел вставляется в позицию, которую занимал старый узел в списке дочерних узлов своего родителя, если он есть, данные пользователя, прикреплённые к старому узлу, прикрепляются к новому узлу.
Если переименовываемый узел является Element , перемещаются только указанные атрибуты, значения атрибутов по умолчанию, полученные из DTD, обновляются в соответствии с новым именем элемента. Кроме того, реализация может обновить атрибуты по умолчанию из других схем. Приложения должны использовать Document.normalizeDocument() для гарантии актуальности этих атрибутов.
Если переименовываемый узел является Attr , который прикреплён к Element, узел сначала удаляется из карты атрибутов Element. Затем, после переименования, будь то путём изменения существующего узла или создания нового, как описано выше, он возвращается обратно.
Кроме того,
- генерируется событие данных пользователя
NODE_RENAMED, - при поддержке функции "MutationNameEvents" каждая операция мутации, участвующая в этом методе, генерирует соответствующее событие, и в конце генерируется событие {
http://www.w3.org/2001/xml-events,DOMElementNameChanged} или {http://www.w3.org/2001/xml-events,DOMAttributeNameChanged}.
- Параметры:
-
n- Узел для переименования. -
namespaceURI- Новый URI пространства имён. -
qualifiedName- Новое полное имя. - Возвращает:
- Переименованный узел. Это либо указанный узел, либо новый узел, созданный для замены указанного узла.
- Выбрасывает:
-
DOMException- NOT_SUPPORTED_ERR: Вызывается, если тип указанного узла неELEMENT_NODEи неATTRIBUTE_NODE, или если реализация не поддерживает переименование элемента документа.
INVALID_CHARACTER_ERR: Вызывается, если новое полное имя не является именем XML в соответствии с используемой версией XML, указанной в атрибутеDocument.xmlVersion.
WRONG_DOCUMENT_ERR: Вызывается, когда указанный узел был создан из другого документа, чем этот документ.
NAMESPACE_ERR: Вызывается, еслиqualifiedNameявляется неправильно сформированным полным именем, еслиqualifiedNameимеет префикс иnamespaceURIравноnull, или еслиqualifiedNameимеет префикс "xml" иnamespaceURIотличается от " http://www.w3.org/XML/1998/namespace" [XML Namespaces] . Также вызывается, когда переименовываемый узел является атрибутом, еслиqualifiedName, или его префикс, равен "xmlns", иnamespaceURIотличается от "http://www.w3.org/2000/xmlns/". - С тех пор:
- DOM Level 3
© 1993, 2020, 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.