libxml2
<?xml version="1.0"?> <!DOCTYPE doc [ <!ELEMENT doc (src | dest)*> <!ELEMENT src EMPTY> <!ELEMENT dest EMPTY> <!ATTLIST src ref IDREF #IMPLIED> <!ATTLIST dest id ID #IMPLIED> ]> <doc> <src ref="foo"/> <dest id="foo"/> <src ref="foo"/> </doc>