il.co.iter.dbdom
Class DBAttr
java.lang.Object
|
+--il.co.iter.dbdom.DBNode
|
+--il.co.iter.dbdom.DBAttr
- All Implemented Interfaces:
- Attr, Node
- public class DBAttr
- extends DBNode
- implements Attr
The 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 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). Because the DOM Core is not aware of attribute types, it
treats all attribute values as simple strings, even if the DTD or schema
declares them as having tokenized types.
See also the Document Object Model (DOM) Level 2 Core Specification.
Fields inherited from interface org.w3c.dom.Node |
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 |
Method Summary |
java.lang.String |
getName()
Returns the name of this attribute. |
Element |
getOwnerElement()
Not Implemented
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 . |
java.lang.String |
getValue()
On retrieval, the value of the attribute is returned as a string. |
void |
setValue(java.lang.String value)
|
Methods inherited from class il.co.iter.dbdom.DBNode |
appendChild, cloneNode, getAttributes, getChildNodes, getDbDomImplementation, getFirstChild, getId, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.w3c.dom.Node |
appendChild, cloneNode, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix |
DBAttr
protected DBAttr(DBDOMImplementation dbDomImplementation,
long id)
- Calls super(dbDomImplementation, id)
getName
public java.lang.String getName()
- Returns the name of this attribute.
- Specified by:
getName
in interface Attr
getSpecified
public boolean getSpecified()
- If this attribute was explicitly given a value in the original
document, this is
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).
In summary: If the attribute has an assigned value in the document
then 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
.
- Specified by:
getSpecified
in interface Attr
getValue
public java.lang.String getValue()
- On retrieval, the value of the attribute is returned as a string.
Character and general entity references are replaced with their
values. See also the method
getAttribute
on the
Element
interface.
On setting, this creates a 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 setAttribute
on the Element
interface.
- Specified by:
getValue
in interface Attr
- Throws:
DOMException
- NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
setValue
public void setValue(java.lang.String value)
throws DOMException
- Specified by:
setValue
in interface Attr
getOwnerElement
public Element getOwnerElement()
- Not Implemented
The
Element
node this attribute is attached to or
null
if this attribute is not in use.
- Specified by:
getOwnerElement
in interface Attr
- Since:
- DOM Level 2