Spec-Zone.ru › OpenJDK 8

Интерфейс Attr

Все суперинтерфейсы:
Узел

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, таких как реализации DOM SVG, которые хранят значения атрибутов во внутреннем формате, отличном от строки.

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

Примеры Значение атрибута (парсинг) Начальное значение в DOM Сериализованное значение атрибута
Ссылка на символ
"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"
Зависит от реализации и параметров загрузки Зависит от реализации и параметров загрузки/сохранения

См. также Спецификацию Объектной модели документа (DOM) Level 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

Методы

Модификатор и тип Метод и описание
String getName()

Возвращает имя этого атрибута.

Element getOwnerElement()

Узел Element, к которому прикреплен этот атрибут, или null, если этот атрибут не используется.

TypeInfo getSchemaTypeInfo()

Информация о типе, связанная с этим атрибутом.

boolean getSpecified()

True если этому атрибуту было явно присвоено значение в документе-экземпляре, false в противном случае.

String getValue()

При получении значение атрибута возвращается как строка.

boolean isId()

Возвращает, известно ли, что этот атрибут имеет тип ID (т.е.

void setValue(String value)

При получении значение атрибута возвращается как строка.

Методы, унаследованные от интерфейса 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

Методы

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, если этот атрибут не используется.

С:
DOM Level 2

getSchemaTypeInfo

TypeInfo getSchemaTypeInfo()

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

С:
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(), используется значение вклада информационного набора [type definition] для определения того, является ли этот атрибут атрибутом ID, определённым DTD, используя определение DTD-determined ID в [XPointer] .
  • из использования методов Element.setIdAttribute(), Element.setIdAttributeNS(), или Element.setIdAttributeNode(), то есть это атрибут ID, определённый пользователем;

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

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

Если валидация была выполнена при вызове Document.normalizeDocument(), все атрибуты ID, определённые пользователем, сбрасываются, а вся информация об ID узлов атрибутов переоценивается в соответствии с используемой схемой. Вследствие этого, если атрибут Attr.schemaTypeInfo содержит тип ID, isId всегда возвращает true.
С:
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.

Spec-Zone.ru

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