schema error in nxml mode

I’m getting an error about an undefined pattern variable.names when
trying to use the csl schema in nxml mode.

I’m not exactly sure why, unless it’s because the pattern is
referenced in the file before it’s actually defined.

Any ideas?

I would test this further with the java tools, but my java isn’t setup


… or maybe not error, but warning.

Actually, it’s flagging the csl.terms.rnc file as the problem.

Not really sure why, since I’m specifying to validate against rnc.csl,
and that includes this file.

I ended up just combining the schemas into a single file, using trang
and jing. It’s here if anyone could use it.

FWIW I’m using the schema in nxml mode all the time without issues.

Hmm … interesting. Which version? Master?

yes, downloaded from github.

I’ve never used nxml, but Jing (version jing-20091111) doesn’t report
any problems for csl.rnc in the “master” branch. Maybe you could test
whether you can fix the issue by rearranging

include "csl-terms.rnc"
include "csl-types.rnc"
include “csl-variables.rnc”

in csl.rnc to

include "csl-variables.rnc"
include "csl-terms.rnc"
include “csl-types.rnc”

? If it does, we can change the order for future versions of CSL. I
can dig into the RELAX NG spec to see if the “include”-order is ever
supposed to matter, although seems silent on
the matter. Probably just a bug in nxml.


I will check.

A bug in nxml is certainly possible. Except James Clark wrote it, and aside
from being widely considered a master programmer, he’s also the author of
relax ng.