Relax NG seems to offer more possibilities than DTD, including data type checking,
but I suspect the XRC file format gives the same problem as for the DTD
(is it possible to restrict child elements based on object's class attribute?)
Here's a starting point for RNG validation - RNG files generated from DTD by Exchanger XML Lite
Validators
- Jing (Relax NG Validator in Java)
- Online validation for RELAX NG (seems to be broken)