Working with IDs

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).

Attributes named 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 xs:ID 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 section and fn element is uniquely identified by an ID value, such as fn1, preface, or context.

The example assumes that this document was validated with a schema that declares these attributes to be of type xs:ID. The 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 xs:integer.

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"/>... ...

Get XQuery now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.