IDs and IDREFs are used in XML to uniquely identify elements within a document and to create references to those elements. This is useful, for example, to create footnotes and references to them, or to create hyperlinks to specific sections of XHTML documents.
Typically, an attribute is used as an ID to uniquely represent the element that carries it.[*] The value of that ID attribute must be a valid NCName (an XML name with no colon).
xml:id (in the http://www.w3.org/XML/1998/namespace namespace) are always considered to be IDs. Attributes with other names can also be considered IDs if they are declared to have the built-in type
in a schema or DTD.
Example 20-4 shows an XML document that contains some ID attributes, namely the
id attribute of the
section element, and the
fnid attribute of the
fn element. Each
fn element is uniquely identified by an ID value, such as
The example assumes that this document was validated with a schema that declares these attributes to be of type
id attributes are not automatically considered to be IDs because they are not in the appropriate namespace. In fact, the name is irrelevant if it is not
xml:id; an attribute named
foo can have the type
xs:ID, and an attribute named
id can have the type
Example 20-4. XML document with IDs and IDREFs (book.xml)
<book> <section id="preface">This book introduces XQuery... The examples are downloadable<fnref ref="fn1"/>... ...