Re: [xml-dev] RELAX NG equivalent of <xsd:any processContents="lax">?

From
Radu Cernuta <>
To
Jeff Lowery <>
Date
2007-02-07T08:18:40Z
ID
<>
Thread
Re: [xml-dev] RELAX NG equivalent of <xsd:any processContents="lax">?
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 <[email protected]>:
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>