655
|
1 |
=head1 NAME
|
|
2 |
|
|
3 |
XML::DOM::Attr - An XML attribute in XML::DOM
|
|
4 |
|
|
5 |
=head1 DESCRIPTION
|
|
6 |
|
|
7 |
XML::DOM::Attr extends L<XML::DOM::Node>.
|
|
8 |
|
|
9 |
The Attr nodes built by the XML::DOM::Parser always have one child node
|
|
10 |
which is a Text node containing the expanded string value (i.e. EntityReferences
|
|
11 |
are always expanded.) EntityReferences may be added when modifying or creating
|
|
12 |
a new Document.
|
|
13 |
|
|
14 |
The Attr interface represents an attribute in an Element object.
|
|
15 |
Typically the allowable values for the attribute are defined in a
|
|
16 |
document type definition.
|
|
17 |
|
|
18 |
Attr objects inherit the Node interface, but since they are not
|
|
19 |
actually child nodes of the element they describe, the DOM does not
|
|
20 |
consider them part of the document tree. Thus, the Node attributes
|
|
21 |
parentNode, previousSibling, and nextSibling have a undef value for Attr
|
|
22 |
objects. The DOM takes the view that attributes are properties of
|
|
23 |
elements rather than having a separate identity from the elements they
|
|
24 |
are associated with; this should make it more efficient to implement
|
|
25 |
such features as default attributes associated with all elements of a
|
|
26 |
given type. Furthermore, Attr nodes may not be immediate children of a
|
|
27 |
DocumentFragment. However, they can be associated with Element nodes
|
|
28 |
contained within a DocumentFragment. In short, users and implementors
|
|
29 |
of the DOM need to be aware that Attr nodes have some things in common
|
|
30 |
with other objects inheriting the Node interface, but they also are
|
|
31 |
quite distinct.
|
|
32 |
|
|
33 |
The attribute's effective value is determined as follows: if this
|
|
34 |
attribute has been explicitly assigned any value, that value is the
|
|
35 |
attribute's effective value; otherwise, if there is a declaration for
|
|
36 |
this attribute, and that declaration includes a default value, then
|
|
37 |
that default value is the attribute's effective value; otherwise, the
|
|
38 |
attribute does not exist on this element in the structure model until
|
|
39 |
it has been explicitly added. Note that the nodeValue attribute on the
|
|
40 |
Attr instance can also be used to retrieve the string version of the
|
|
41 |
attribute's value(s).
|
|
42 |
|
|
43 |
In XML, where the value of an attribute can contain entity references,
|
|
44 |
the child nodes of the Attr node provide a representation in which
|
|
45 |
entity references are not expanded. These child nodes may be either
|
|
46 |
Text or EntityReference nodes. Because the attribute type may be
|
|
47 |
unknown, there are no tokenized attribute values.
|
|
48 |
|
|
49 |
=head2 METHODS
|
|
50 |
|
|
51 |
=over 4
|
|
52 |
|
|
53 |
=item getValue
|
|
54 |
|
|
55 |
On retrieval, the value of the attribute is returned as a string.
|
|
56 |
Character and general entity references are replaced with their values.
|
|
57 |
|
|
58 |
=item setValue (str)
|
|
59 |
|
|
60 |
DOM Spec: On setting, this creates a Text node with the unparsed contents of the
|
|
61 |
string.
|
|
62 |
|
|
63 |
=item getName
|
|
64 |
|
|
65 |
Returns the name of this attribute.
|
|
66 |
|
|
67 |
=back
|