A DSD can declare special application document attribute types:
(ID and IDRef originate from DTD.)
A DSD may also impose a points-to requirement on a reference: this is a boolean expression which must evaluate to true on the referenced node. This allows semi-structured data to be expressed.
Special attribute types are declared along with the attribute. Example:
<AttributeDecl Name="book-reference" IDType="IDRef"> <PointsTo> <Context><Element Name="book"></Context> </PointsTo> </AttributeDecl> |
(a book-reference attribute has type IDRef and must refer to an attribute of type ID occuring in a book element.)