XML Schema (http://www.w3.org/XML/Schema) provides a mechanism to define arbitrary keys and key references that is designed explicitly to handle the type of scenario that you described. I would also
assume that Schematron should also be able to enforce that type of constraint also. XML Schema and Schematron are two of several initiatives designed to provide more extensive datatyping and
constraints than possible with DTD, see http://www.oasis-open.org/cover/schemas.html and an enormous amount of intellectual effort has being going to provide XML with richer document definition and
constraint languages.