I probably didn’t make my point
clear: I do not want to enumerate all excepted patterns. If I have to except
all patterns I don’t want validated against the anyElement definition,
then every time I had new pattern to the schema, then I have to remember to add
a new exception… But what if the anyElement (with <except>
clause) is in a schema I don’t control? If I modify my base schema by
adding new elements to it, then those elements will not be validated by anyElement
(as they would be for <any processContent=”lax”> in XSD).
There doesn’t seem to be a way to automatically exclude definitions by
wildcard. From: Radu Cernuta
[mailto:radu.cernuta@gmail.com] Hello Jeff, Try using <except>
with <anyName> to eliminate the elements for which you want to provide
definitions and avoid ambiguity and conflicts. This way you can tell the
processor "don't bother with any of these, except the ones for which I have
provided definitions". This is lax. Greetings, 2007/2/6, Jeff Lowery <jlowery@myrio.com>: Compact syntax: start = anyElement anyElement = element * { (attribute * { text } | text | anyElement)* } This validates an element of any name with an attribute of
any name with content of same. I'm no RNG expert, but I've tried this and
one problem is that this definition conflicts with element definitions already
defined that have ID/IDREF's (I get an error when parsing with Jing). I
don't have time right now to give a complete example, but I'm thinking (perhaps
wrongly) that the above definition will not restrict content for those elements
already defined, so it's more like processContent="skip" than
"lax". From: Radu Cernuta [mailto:radu.cernuta@gmail.com]
For lax validation in RELAX NG you could take a look
at the RELAX NG Tutorial by James Clark and Murata Makoto. Section 11 (Name
Classes) handles this issue. 2007/2/6,
Jeff Lowery <jlowery@myrio.com
>: This has got to be a FAQ, but no luck with googling:
|