ID and IDREF
May 3, 1999
ID represents a unique ID name for the attribute that
identifies the element within the context of the document.
IDs are much like internal links in plain HTML. For the
most part, ID is used primarily by programs or scripting
languages that process the document. The value for ID must
be a valid XML name beginning with a letter and containing
alphanumeric characters or the underscore character without
any whitespace.
|
NOTE: ID is incompatible with the #FIXED default but usually
appears in conjunction with the #REQUIRED default.
Of course, while ID is usually #REQUIRED, the reverse is
definitely not true.
Also, take care that your ID values are _unique_ within a
document!
|
<?xml version = "1.0"
encoding="UTF-8"
standalone = "yes"?>
<!DOCTYPE CONTACTS [
<!ELEMENT CONTACTS ANY>
<!ELEMENT CONTACT (NAME, EMAIL)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ATTLIST CONTACT CONTACT_NUM ID #REQUIRED>
]>
<CONTACTS>
<CONTACT CONTACT_NUM = "1">
<NAME>Lok Siu</NAME>
<EMAIL>siu@lok.com</EMAIL>
</CONTACT>
<CONTACT CONTACT_NUM = "2">
<NAME>Joseph Misuraca</NAME>
<EMAIL>joe@misuraca.com</EMAIL>
</CONTACT>
</CONTACTS>
The IDREF type allows the value of one attribute to be
an element elsewhere in the document provided that the
value of the IDREF is the ID value of the referenced element.
Consider the following example:
<?xml version = "1.0"
encoding="UTF-8"
standalone = "yes"?>
<!DOCTYPE CONTACTS [
<!ELEMENT CONTACTS ANY>
<!ELEMENT CONTACT (NAME, EMAIL)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ATTLIST CONTACT CONTACT_NUM ID #REQUIRED>
<!ATTLIST CONTACT MOTHER IDREF #IMPLIED>
]>
<CONTACTS>
<CONTACT CONTACT_NUM = "2">
<NAME>Teri Mancuso</NAME>
<EMAIL>teri@teri.com</EMAIL>
</CONTACT>
<CONTACT CONTACT_NUM = "1" MOTHER = "2">
<NAME>Kristin Mancuso</NAME>
<EMAIL>kristin@kristin.com</EMAIL>
</CONTACT>
</CONTACTS>
ENUMERATED (the keyword is not actually used)
Introduction to XML For Web Developers | Table of Contents
NMTOKEN and NMTOKENS
|