Consider the two documents attached to this message. If you attempt to validate testpipe.xml with xproc.rnc, it validates just fine:
$ jing -i -c http://tests.xproc.org/schema/xproc.rnc /tmp/testpipe.xml If you attempt to validate test.xml, which contains a copy of testpipe.xml as the content of the t:pipeline element, using the testsuite.rnc grammar, it doesn't validate: $ jing -i -c http://tests.xproc.org/schema/testsuite.rnc /tmp/test.xml /tmp/test.xml:43:41: error: element "root2" not allowed in this context /tmp/test.xml:43:49: error: element "root3" not allowed in this context And finally, if you look at the pattern that matches t:pipeline, you'll find: InlinePipeline = element t:pipeline { grammar { include "xproc.rnc" } } Why on earth does the pipeline validate against xproc.rnc when it's standing alone, but not when it's nested inside a t:pipeline? MSV gives the equivalent error, so it seems to be a nuance of RELAX NG of which I've been hitherto unaware. Someone got a clue-by-four handy? Be seeing you, norm
test.xml
Description: Binary data
testpipe.xml
Description: Binary data
-- Norman Walsh <[email protected]> | The First Amendment is often http://nwalsh.com/ | inconvenient. But that is besides the | point. Inconvenience does not absolve | the government of its obligation to | tolerate speech.--Justice Anthony | Kennedy, in 91-155
pgpnQUnf7Qu7l.pgp
Description: PGP signature
