- From: "Radu Cernuta" <radu.cernuta@g...>
- To: "Jeff Lowery" <jlowery@m...>
- Date: Wed, 7 Feb 2007 10:56:23 +0100
Sorry, I've overlooked the <optional> element. Rule 4.12 comes first in this case and adds a <group>, then 7.15. The basic idea stays the same: you cannot have several roots in an XML document.
2007/2/7, Radu Cernuta <radu.cernuta@g...>:
It's not about recursion. This won't work because the reference you make in the <start> element is resolved to zeroOrMore elements and a document cannot have several roots.
See RELAX NG specification:
Simplification, section 4.15 zeroOrMore element http://relaxng.org/spec-20011203.html#IDAGHZR
Restrictions, section 7.15 start element http://relaxng.org/spec-20011203.html#context-start
2007/2/7, Jeff Lowery <
jlowery@m...>:
Thanks for your help. I'm thankful for what functionality there is in RELAX NG, trust me.
Just for kicks I tried self-referencing back to the schema, but recursion is not allowed (ah well).
Test.rng
:
<?xml version="1.0"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://foo.org/bar">
<start> <ref name="children"></ref> </start>
<define name="children"> <zeroOrMore> <element>
<anyName> <except> <nsName/> </except> </anyName> <ref name="children"></ref>
</element> </zeroOrMore> <optional> <ref name="interestingElements"></ref> </optional> </define>
<define name="interestingElements"> <choice> <externalRef href=""Test.rng"/> </choice> </define>
</grammar>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
|