Spec-Zone.ru › OpenJDK 17

Интерфейс Attr

Все суперинтерфейсы:
Node
public interface Attr extends Node
Интерфейс Attr представляет атрибут в объекте Element. Обычно допустимые значения атрибута определяются в схеме, связанной с документом.

Объекты Attr наследуют интерфейс Node, но поскольку они фактически не являются дочерними узлами элемента, который они описывают, DOM не считает их частью дерева документа. Таким образом, атрибуты Node parentNode, previousSibling, и nextSibling имеют значение null для объектов Attr. DOM рассматривает атрибуты как свойства элементов, а не как имеющие отдельную идентичность от элементов, с которыми они связаны; это должно повысить эффективность реализации таких функций, как атрибуты по умолчанию, связанные со всеми элементами данного типа. Кроме того, узлы Attr могут не быть непосредственными дочерними узлами DocumentFragment. Однако они могут быть связаны с узлами Element, содержащимися внутри DocumentFragment. Короче говоря, пользователи и разработчики DOM должны понимать, что узлы Attr имеют некоторые общие черты с другими объектами, наследующими интерфейс Node, но также они существенно отличаются.

Эффективное значение атрибута определяется следующим образом: если этому атрибуту явно присвоено какое-либо значение, это значение является эффективным значением атрибута; в противном случае, если существует объявление для этого атрибута, и это объявление включает значение по умолчанию, то это значение по умолчанию является эффективным значением атрибута; в противном случае атрибут не существует в структуре модели этого элемента до тех пор, пока он не будет явно добавлен. Обратите внимание, что атрибут Node.nodeValue экземпляра Attr также может быть использован для получения строкового представления значения(значений) атрибута.

Если атрибуту в документе-экземпляре явно не было присвоено значение, но в схеме, связанной с документом, задано значение по умолчанию, то будет создан узел атрибута со значением specified равным false. Удаление узлов атрибутов, для которых в схеме определено значение по умолчанию, создает новый узел атрибута со значением по умолчанию и specified равным false. Если при вызове Document.normalizeDocument() произошла валидация, узлы атрибутов с specified равным false пересчитываются в соответствии со значениями атрибутов по умолчанию, предоставленными схемой. Если для этого атрибута в схеме не задано значение по умолчанию, узел атрибута отбрасывается.

В XML, где значение атрибута может содержать ссылки на сущности, дочерними узлами узла Attr могут быть либо узлы Text, либо узлы EntityReference (когда они используются; см. описание EntityReference для обсуждения).

DOM Core представляет все значения атрибутов как простые строки, даже если DTD или схема, связанная с документом, объявляют их определенного типа, например, токенизированного.

Способ нормализации значений атрибутов реализацией DOM зависит от того, насколько реализация знает о используемой схеме. Обычно атрибуты value и nodeValue узла Attr изначально возвращают нормализованное значение, предоставленное анализатором. Это также верно после вызова Document.normalizeDocument() (при условии, что установлены соответствующие параметры). Но это может быть не так после мутации, независимо от того, выполняется ли мутация путем непосредственного задания строкового значения или путем изменения дочерних узлов Attr. В частности, это справедливо, когда участвуют символьные ссылки, поскольку они не представлены в DOM и влияют на нормализацию значения атрибута. С другой стороны, если реализация знает о используемой схеме, когда значение атрибута изменяется, и оно имеет тип, отличный от CDATA, она может нормализовать его снова в этот момент. Это особенно справедливо для специализированных реализаций DOM, таких как реализации SVG DOM, которые хранят значения атрибутов во внутреннем формате, отличном от строки.

В следующей таблице приведены примеры взаимосвязей между значением атрибута в исходном документе (атрибут, полученный при анализе), значением, показанным в DOM, и сериализацией значения:

Примеры исходного, нормализованного и сериализованного значений
Примеры Значение атрибута при анализе Начальное значение Attr.value Сериализованное значение атрибута
Символьная ссылка
"x²=5"
"x²=5"
"x²=5"
Встроенная сущность символа
"y<6"
"y<6"
"y&lt;6"
Буквальная перенос строки между
 "x=5&#10;y=6"
"x=5 y=6"
"x=5&#10;y=6"
Нормализованная перенос строки между
"x=5
 y=6"
"x=5 y=6"
"x=5 y=6"
Сущность e с буквальной перенос строки
 <!ENTITY e '...&#10;...'> [...]> "x=5&e;y=6"
Зависит от реализации и параметров загрузки Зависит от реализации и параметров загрузки/сохранения

См. также Спецификацию документа Object Model (DOM) Level 3 Core.

Краткое описание полей

Поля, объявленные в интерфейсе org.w3c.dom.Node

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

Краткое описание методов

Модификатор и тип Метод Описание
String getName()
Возвращает имя этого атрибута.
Element getOwnerElement()
Узел Element, к которому прикреплен этот атрибут, или null, если этот атрибут не используется.
TypeInfo getSchemaTypeInfo()
Информация о типе, связанная с этим атрибутом.
boolean getSpecified()
True если этому атрибуту было явно присвоено значение в документе-экземпляре, false в противном случае.
String getValue()
При получении значение атрибута возвращается как строка.
boolean isId()
Возвращает, является ли этот атрибут известным как атрибут типа ID (т.е. содержит ли он идентификатор для элемента-владельца) или нет.
void setValue(String value)
При получении значение атрибута возвращается как строка.

Методы, объявленные в интерфейсе org.w3c.dom.Node

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

Подробное описание методов

getName

String getName()
Возвращает имя этого атрибута. Если Node.localName отличается от null, этот атрибут является квалифицированным именем.

getSpecified

boolean getSpecified()
True если этому атрибуту явно было присвоено значение в документе экземпляра, false в противном случае. Если приложение изменило значение этого атрибута узла (даже если оно в конечном итоге получит то же значение, что и значение по умолчанию), то оно устанавливается в true. Реализация может аналогичным образом обрабатывать атрибуты со значениями по умолчанию из других схем, но приложения должны использовать Document.normalizeDocument() для гарантии, что эта информация актуальна.

getValue

String getValue()
При получении значение атрибута возвращается в виде строки. Ссылок на символы и общие ссылки заменяются их значениями. См. также метод getAttribute на интерфейсе Element.
При установке создается узел Text с необработанным содержимым строки, то есть любые символы, которые процессор XML распознает как разметку, вместо этого обрабатываются как буквенный текст. См. также метод Element.setAttribute().
Некоторые специализированные реализации, такие как некоторые реализации [SVG 1.1], могут выполнять нормализацию автоматически, даже после изменения; в таком случае значение при получении может отличаться от значения при установке.

setValue

void setValue(String value) throws DOMException
При получении значение атрибута возвращается в виде строки. Ссылок на символы и общие ссылки заменяются их значениями. См. также метод getAttribute на интерфейсе Element.
При установке создается узел Text с необработанным содержимым строки, то есть любые символы, которые процессор XML распознает как разметку, вместо этого обрабатываются как буквенный текст. См. также метод Element.setAttribute().
Некоторые специализированные реализации, такие как некоторые реализации [SVG 1.1], могут выполнять нормализацию автоматически, даже после изменения; в таком случае значение при получении может отличаться от значения при установке.
Возбуждает:
DOMException - NO_MODIFICATION_ALLOWED_ERR: Возникает, когда узел только для чтения.

getOwnerElement

Element getOwnerElement()
Узел Element , к которому прикреплен этот атрибут, или null , если этот атрибут не используется.
С момента:
1.4, DOM Level 2

getSchemaTypeInfo

TypeInfo getSchemaTypeInfo()
Информация о типе, связанная с этим атрибутом. Хотя информация о типе, содержащаяся в этом атрибуте, гарантированно будет корректной после загрузки документа или вызова Document.normalizeDocument(), schemaTypeInfo может быть ненадежной, если узел был перемещен.
С момента:
1.5, DOM Level 3

isId

boolean isId()
Возвращает, является ли этот атрибут известным как атрибут типа ID (т.е. содержит ли он идентификатор для элемента-владельца) или нет. Когда он является таковым и его значение уникально, значение ownerElement этого атрибута можно получить с помощью метода Document.getElementById . Реализация может использовать несколько способов определения того, является ли узел атрибута узлом, известным как содержащий идентификатор:
  • Если валидация произошла с использованием XML Schema [XML Schema Part 1] при загрузке документа или при вызове Document.normalizeDocument(), используются значения вкладов пост-схемовой валидации (PSVI вклады) для определения того, является ли этот атрибут атрибутом ID, определенным схемой, с использованием определения schema-determined ID в [XPointer] .
  • Если валидация произошла с использованием DTD при загрузке документа или при вызове Document.normalizeDocument(), используется значение вклада инфосети [определение типа] для определения того, является ли этот атрибут атрибутом ID, определенным DTD, с использованием определения DTD-determined ID в [XPointer] .
  • из использования методов Element.setIdAttribute(), Element.setIdAttributeNS(), или Element.setIdAttributeNode(), т.е. это атрибут ID, определенный пользователем;

    Примечание: фреймворк XPointer (см. раздел 3.2 в [XPointer] ) считает атрибут DOM, определенный пользователем, частью определения внешнего ID XPointer.

  • с использованием механизмов, которые выходят за рамки этой спецификации, это атрибут ID, определенный внешне. Это включает использование языков схем, отличных от XML-схемы и DTD.

Если валидация произошла во время вызова Document.normalizeDocument(), все атрибуты ID, определенные пользователем, сбрасываются, и вся информация об атрибутах узлов ID переоценивается в соответствии с используемой схемой. Вследствие этого, если атрибут Attr.schemaTypeInfo содержит тип ID, isId всегда вернет true.
С момента:
1.5, DOM Level 3

© 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/Attr.html

Spec-Zone.ru

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