xs:IDREF — Definition of references to unique identifiers.
xs:enumeration, xs:length, xs:maxLength, xs:minLength, xs:pattern, xs:whiteSpace
<xs:simpleType name="IDREF" id="IDREF"> <xs:restriction base="xs:NCName"/> </xs:simpleType>
The xs:IDREF
datatype defines references to the
identifiers defined by the ID datatype and, therefore, emulates the
IDREF attribute type of the XML DTDs, even though it can be used for
simple content elements as well as for attributes.
The lexical space of xs:IDREF
is, like the lexical
space of xs:ID
, nonqualified XML names (NCName).
The constraint added by this datatype beyond the
xs:NCName
datatype from which it is derived is the
values of all the attributes and elements that have a
xs:IDREF
datatype must match an ID defined within
the same document.
Applications that need to maintain a level of compatibility with DTDs should not use this datatype for elements but should reserve it for attributes.
The lexical domain (NCName) of this datatype doesn’t allow definition of numerical key references or references containing whitespaces.
W3C XML Schema provides another mechanism to define key reference
constraints using the xs:keyref
elements when more
flexibility is needed.
<xs:element name="book"> <xs:complexType> <xs:sequence> <xs:element name="isbn" type="xs:int"/> <xs:element name="title" type="xs:string"/> <xs:element name="author-ref"> <xs:complexType> <xs:attribute name="ref" type="xs:IDREF" use="required"/> </xs:complexType> </xs:element> <xs:element name="character-refs" type="xs:IDREFS"/> </xs:sequence> <xs:attribute name="identifier" type="xs:ID" use="required"/> </xs:complexType> </xs:element>