<snip/> Yes, in the modern world there are several ways to deal with this. A little Schematron embedded in your RELAX NG would probably be the easiest way to do it. (The fact that MSV has an extension to do both at the same time is *way* cool.)
Sorry for my ignorance... MSV? 'We talkin' *the* MS?
...edN
