B.5. Attribute Information Items
The Attribute Information Items are the contents of the
[attributes] property in the element information item.
Although the attributes are presented in an order through
the Attributes class, there is no
expectation that this order reflects an order in the document
or its DTD.
Property |
Callbacks |
Explanation |
[namespace name] |
Attributes.getURI()
|
|
[local name] |
Attributes.getLocalName()
|
|
[prefix] |
Attributes.getQName()
(when available)
|
The QName (namespace-prefixed name) includes any
prefix available; for example, a QName
xhtml:href uses the prefix
xhtml.
|
[normalized value] |
Attributes.getValue()
|
If you're generating a stream of Infoset
data programmatically, don't forget to
normalize these values correctly.
The XML specification explains how to normalize this text;
it mostly translates whitespace (but not character
references) into space characters
and eliminates unneeded spaces for values
that aren't CDATA.
|
[specified] |
unavailable |
SAX2 does not distinguish between attribute
values that were specified in document text
and those that have been defaulted from a DTD.
It's likely that an upcoming extension API
will provide this information.
|
[attribute type] |
Attributes.getType(),
DeclHandler.attributeDecl()
|
For most types of attribute,
getType() gives all the type
data needed, but you may want to distinguish
types that are actual CDATA versus (invalid)
ones that just look like CDATA because the
attribute was not declared.
Attribute values that are constrained to an enumerated set are reported with special
syntax in attributeDecl() callbacks.
Enumerations use a parenthesized syntax, like
(true|false), to enumerate all possibilities.
NOTATION enumerations prepend the string
"NOTATION " (with a space) to that syntax.
|
[references] |
|
For NOTATION type values, see the section
on Notation Information Items. For ENTITY or ENTITIES
type values, see the section on Unparsed Entity Information
Items. For IDREF or IDREFS type values, applications
must track attributes by using
the [attribute type] IDs reported
as keys to application-specific
representations of elements, and they must be ready to
handle forward references. (ENTITIES and IDREFS
values must be tokenized by the application.)
|
[owner element] |
|
Attributes are associated with the element
signified by the startElement()
call providing the Attributes
object.
|
Note that DOM extends this information item to
expose entities (expanded or not) within attribute values.
That is not widely believed to be a useful feature.
Since SAX doesn't extend the Infoset in that way, you
can't implement that part of DOM using pure SAX.
| | | B.4. Element Information Items | | B.6. Processing Instruction Information Items |
Copyright © 2002 O'Reilly & Associates. All rights reserved.
|
|