Spec-Zone.ru › OpenJDK 27

Интерфейс 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

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

Поля, объявленные в интерфейсе 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
Модификатор и тип Поле Описание
static final short ATTRIBUTE_NODE
Узел является Attr.
static final short CDATA_SECTION_NODE
Узел является CDATASection.
static final short COMMENT_NODE
Узел является Comment.
static final short DOCUMENT_FRAGMENT_NODE
Узел является DocumentFragment.
static final short DOCUMENT_NODE
Узел является Document.
static final short DOCUMENT_POSITION_CONTAINED_BY
Узел содержится в опорном узле.
static final short DOCUMENT_POSITION_CONTAINS
Узел содержит опорный узел.
static final short DOCUMENT_POSITION_DISCONNECTED
Два узла не связаны.
static final short DOCUMENT_POSITION_FOLLOWING
Узел следует за опорным узлом.
static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
Определение того, какой узел предшествует другому, зависит от реализации.
static final short DOCUMENT_POSITION_PRECEDING
Второй узел предшествует опорному узлу.
static final short DOCUMENT_TYPE_NODE
Узел является DocumentType.
static final short ELEMENT_NODE
Узел является Element.
static final short ENTITY_NODE
Узел является Entity.
static final short ENTITY_REFERENCE_NODE
Узел является EntityReference.
static final short NOTATION_NODE
Узел является Notation.
static final short PROCESSING_INSTRUCTION_NODE
Узел является ProcessingInstruction.
static final short TEXT_NODE
Узел является узлом Text.

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

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

Методы, объявленные в интерфейсе 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
Модификатор и тип Метод Описание
Node appendChild(Node newChild)
Добавляет узел newChild в конец списка дочерних узлов этого узла.
Node cloneNode(boolean deep)
Возвращает копию этого узла, то есть служит универсальным конструктором копирования для узлов.
short compareDocumentPosition(Node other)
Сравнивает опорный узел (узел, для которого вызывается этот метод) с другим узлом, переданным в качестве параметра, по их положению в документе и в соответствии с порядком документа.
NamedNodeMap getAttributes()
NamedNodeMap, содержащий атрибуты этого узла (если он является Element), или null в противном случае.
String getBaseURI()
Абсолютный базовый URI этого узла или null, если реализации не удалось получить абсолютный URI.
NodeList getChildNodes()
NodeList, содержащий все дочерние узлы этого узла.
Object getFeature(String feature, String version)
Этот метод возвращает специализированный объект, реализующий специализированные API указанной функциональности и версии, как указано в .
Node getFirstChild()
Первый дочерний узел этого узла.
Node getLastChild()
Последний дочерний узел этого узла.
String getLocalName()
Локальная часть квалифицированного имени этого узла.
String getNamespaceURI()
URI пространства имен этого узла или null, если он не задан (см. ).
Node getNextSibling()
Узел, непосредственно следующий за этим узлом.
String getNodeName()
Имя этого узла в зависимости от его типа; см. таблицу выше.
short getNodeType()
Код, представляющий тип базового объекта, как определено выше.
String getNodeValue()
Значение этого узла в зависимости от его типа; см. таблицу выше.
Document getOwnerDocument()
Объект Document, связанный с этим узлом.
Node getParentNode()
Родительский узел этого узла.
String getPrefix()
Префикс пространства имен этого узла или null, если он не задан.
Node getPreviousSibling()
Узел, непосредственно предшествующий этому узлу.
String getTextContent()
Этот атрибут возвращает текстовое содержимое данного узла и его потомков.
Object getUserData(String key)
Получает объект, связанный с ключом в этом узле.
boolean hasAttributes()
Возвращает сведения о том, есть ли у этого узла атрибуты (если он является элементом).
boolean hasChildNodes()
Возвращает сведения о том, есть ли у этого узла дочерние узлы.
Node insertBefore(Node newChild, Node refChild)
Вставляет узел newChild перед существующим дочерним узлом refChild.
boolean isDefaultNamespace(String namespaceURI)
Этот метод проверяет, является ли указанный namespaceURI пространством имен по умолчанию.
boolean isEqualNode(Node arg)
Проверяет, равны ли два узла.
boolean isSameNode(Node other)
Возвращает сведения о том, является ли этот узел тем же узлом, что и указанный.
boolean isSupported(String feature, String version)
Проверяет, реализует ли реализация DOM определенную функциональность и поддерживается ли эта функциональность данным узлом, как указано в .
String lookupNamespaceURI(String prefix)
Находит URI пространства имен, связанный с указанным префиксом, начиная поиск с этого узла.
String lookupPrefix(String namespaceURI)
Находит префикс, связанный с указанным URI пространства имен, начиная поиск с этого узла.
void normalize()
Приводит все узлы Text на всей глубине поддерева под этим Node, включая узлы атрибутов, к «нормальной» форме, в которой узлы Text разделяются только структурой (например, элементами, комментариями, инструкциями обработки, разделами CDATA и ссылками на сущности); то есть смежных узлов Text и пустых узлов Text нет.
Node removeChild(Node oldChild)
Удаляет дочерний узел, указанный в oldChild, из списка дочерних узлов и возвращает его.
Node replaceChild(Node newChild, Node oldChild)
Заменяет дочерний узел oldChild узлом newChild в списке дочерних узлов и возвращает узел oldChild.
void setNodeValue(String nodeValue)
Значение этого узла в зависимости от его типа; см. таблицу выше.
void setPrefix(String prefix)
Префикс пространства имен этого узла или null, если он не задан.
void setTextContent(String textContent)
Этот атрибут возвращает текстовое содержимое данного узла и его потомков.
Object setUserData(String key, Object data, UserDataHandler handler)
Связывает объект с ключом в этом узле.

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

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 . Реализация может использовать несколько способов, чтобы определить, известно ли, что узел атрибута содержит идентификатор:
  • Если при загрузке документа или вызове Document.normalizeDocument() выполнялась проверка с использованием XML Schema [XML Schema Part 1], для определения того, является ли этот атрибут атрибутом ID, определяемым схемой, используются значения дополнений к набору информации после проверки схемы (PSVI) согласно определению ID, определяемого схемой в [XPointer] .
  • Если при загрузке документа или вызове Document.normalizeDocument() выполнялась проверка с использованием DTD, для определения того, является ли этот атрибут атрибутом ID, определяемым DTD, используется значение элемента набора информации [определение типа] согласно определению ID, определяемого DTD в [XPointer] .
  • при использовании методов Element.setIdAttribute(), Element.setIdAttributeNS() или Element.setIdAttributeNode(), то есть когда это атрибут ID, определяемый пользователем;

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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