What about other schema languages? Does RELAX NG, for example, have
this ability?
I'm not a RELAX NG user because it isn't supported for what I need, but I am
led to understand that it cannot do things like that, and that Scehamtron is
pretty much the only schema language that can.
You can embed Schematron in either XML Schema or in RELAX NG, and most decent
XML editors can use the embedded Schematron if you tell them to (I use
<oXygen/> for this).
I'm starting to see, though, that even though it's a separate file and a bit
harder to keep clean and legible, using a custom xsl file might be the better
way to go. For one thing, you can use XSLT 2.0 without worrying about whether
your editor supports XSLT 2.0 functionality in Schematron, and for another
thing, you don't have to figure out how you're going to use Schematron to
validate documents in an application using, say, MSXML.