public interface Attr extends Node
Attr
interface represents an attribute in an
Element
object. Typically the allowable values for the
attribute are defined in a document type definition.
Attr
objects inherit the Node
interface, but
since they are not actually child nodes of the element they describe, the
DOM does not consider them part of the document tree. Thus, the
Node
attributes parentNode
,
previousSibling
, and nextSibling
have a
null
value for Attr
objects. The DOM takes the
view that attributes are properties of elements rather than having a
separate identity from the elements they are associated with; this should
make it more efficient to implement such features as default attributes
associated with all elements of a given type. Furthermore,
Attr
nodes may not be immediate children of a
DocumentFragment
. However, they can be associated with
Element
nodes contained within a
DocumentFragment
. In short, users and implementors of the
DOM need to be aware that Attr
nodes have some things in
common with other objects inheriting the Node
interface, but
they also are quite distinct.
The attribute's effective value is determined as follows: if this
attribute has been explicitly assigned any value, that value is the
attribute's effective value; otherwise, if there is a declaration for
this attribute, and that declaration includes a default value, then that
default value is the attribute's effective value; otherwise, the
attribute does not exist on this element in the structure model until it
has been explicitly added. Note that the Node.nodeValue
attribute on the Attr
instance can also be used to retrieve
the string version of the attribute's value(s).
In XML, where the value of an attribute can contain entity references,
the child nodes of the Attr
node may be either
Text
or EntityReference
nodes (when these are
in use; see the description of EntityReference
for
discussion).
The DOM Core represents all attribute values as simple strings, even if the DTD or schema associated with the document declares them of some specific type such as tokenized.
See also the Document Object Model (DOM) Level 2 Core Specification and the Document Object Model (DOM) Level 3 Core Specification.
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
Modifier and Type | Method and Description |
---|---|
String |
getName()
Returns the name of this attribute.
|
Element |
getOwnerElement()
The
Element node this attribute is attached to or
null if this attribute is not in use. |
boolean |
getSpecified()
If this attribute was explicitly given a value in the original
document, this is
true ; otherwise, it is
false . |
String |
getValue()
Returns the value of this attribute.
|
boolean |
isId()
Returns whether this attribute is known to be of type ID or not.
|
void |
setValue(String value)
Sets the value of this attribute.
|
appendChild, cloneNode, getAttributes, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
String getName()
Node.localName
is
different from null
, this attribute is a qualified name.boolean getSpecified()
true
; otherwise, it is
false
. Note that the implementation is in charge of this
attribute, not the user. If the user changes the value of the
attribute (even if it ends up having the same value as the default
value) then the specified
flag is automatically flipped
to true
. To re-specify the attribute as the default
value from the DTD, the user must delete the attribute. The
implementation will then make a new attribute available with
specified
set to false
and the default
value (if one exists).
specified
is true
, and the value is
the assigned value. If the attribute has no assigned value in the
document and has a default value in the DTD, then
specified
is false
, and the value is the
default value in the DTD. If the attribute has no assigned value in
the document and has a value of #IMPLIED in the DTD, then the
attribute does not appear in the structure model of the document. If
the ownerElement
attribute is null
(i.e.
because it was just created or was set to null
by the
various removal and cloning operations) specified
is
true
.true
if this attribute was explicitly specified, otherwise false
String getValue()
getAttribute
on the
Element
interface.
Text
node with the unparsed
contents of the string. I.e. any characters that an XML processor
would recognize as markup are instead treated as literal text. See
also the method Element.setAttribute
.
void setValue(String value) throws DOMException
Text
node with the unparsed
contents of the string. I.e. any characters that an XML processor
would recognize as markup are instead treated as literal text. See
also the method Element.setAttribute
.
value
- a String containing the value of this attributeDOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.Element getOwnerElement()
Element
node this attribute is attached to or
null
if this attribute is not in use.Element
node this attribute is attached to, or null
boolean isId()
ownerElement
of this attribute
can be retrieved using the method Document.getElementById
.
Note: The JSR 280 DOM subset does not support XML schema or
Document.normalizeDocument()
, and thus supports only
a subset of the DOM 3 mechanisms for identifying ID attributes:
Element.setIdAttribute()
,
Element.setIdAttributeNS()
, or
Element.setIdAttributeNode()
, i.e. it is an
user-determined ID attribute.true
if the attribute is of type ID, otherwise false