> I don't want to do something like id="num1" because then I
 > would have to parse it, etc.  
It's not that bad, really.  Try id=n00001, id=n00002, etc., and just
strip off the first character in your application (no significant
parsing required).
That said, if there is not an obvious way to represent a particular
validation constraint using a DTD, you usually shouldn't try -- XML
itself is just a representation syntax; it shouldn't become a Golden
Hammer for every type of work.  XML has to work together with other
technologies to provide any real-world application.
All the best,
David
-- David Megginson david@megginson.com http://www.megginson.com/