Spec-Zone.ru › OpenJDK 24

Интерфейс 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"
Зависит от реализации и параметров загрузки Зависит от реализации и параметров загрузки/сохранения

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

С момента:
1.4, DOM Level 2

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

Поля, объявленные в интерфейсе 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 contributions) для определения, является ли этот атрибут атрибутом ID, определяемым схемой, используя определение «схемно-определенного ID» в [ schema-determined ID] в [XPointer] .
  • Если проверка выполнена с использованием DTD во время загрузки документа или вызова Document.normalizeDocument(), используется значение вкладов в информационной модели [определение типа] для определения, является ли этот атрибут атрибутом ID, определяемым DTD, используя определение «DTD-определенного ID» в [ DTD-determined ID] в [XPointer] .
  • с помощью методов Element.setIdAttribute(), Element.setIdAttributeNS() или Element.setIdAttributeNode(), т.е. это атрибут ID, определяемый пользователем;

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

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

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

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

Spec-Zone.ru

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