attributes (of element-expression)?
The built-in shelf
attributes represents the set of all declared attributes of an element. The
name of the attribute is used as the key, and the value of the attribute is stored in the value of the shelf
item. The type of the
attributes shelf is
declared-attribute, while each of its items is either
specified-attribute or the
implied-attribute type. The items whose type is
specified-attribute will also be present in the
specified attributes shelf.
To reference the attributes of a specific element, the element can be qualified in all of the same ways as
attribute references. The
attributes shelf does not really have a name, so aliases are used
to identify items in the set of attributes. There is no default current item in a set of attributes.
The items of the
attributes shelf are indexed in the order in which the attributes are declared,
instead of the order in which the attributes occur in the element's start tag. To access the attributes in the
same order they appear in the start tag, use the
specified attributes shelf instead.
For example, the following output action gives the value of the first attribute declared for the current
element, no matter what its name or where its value is specified in a start tag. The following is an error if
there are no attributes declared for the currently opened element, or if the first declared attribute does not
have a specified (or defaulted) value:
has key test to the
attributes shelf determines whether an element has
a declared attribute. Note, however, that just because an attribute is declared, it does not necessarily have a
value. The set of keys present in the
attributes shelf is a superset of the set of keys of the
specified attributes shelf, whose all items have values.
The number of attributes declared for an element can be determined by applying
number of to
The following example shows how the
of parent element qualifier can be used to refer to an
attribute of the parent element, instead of the currently opened element:
The following rule uses the attributes shelf to add
id attributes to elements that can have