[Home] [By Thread] [By Date] [Recent Entries]


>
>
>Hi Eddie
>
>Thanks -- this is certainly getting close to what I would ideally like.
>
>Your 3 schemas are a great step forward, but they do admit a false
>positive (taking the RELAX NG definition as canonical) by passing
>the following document as valid:
>
><a:frog xmlns:a="http://www.example.com/a">
> <name> Spotted tree frog </name>
> <colour> Blue with red spots </colour>
> <leap> minimal </leap>
></a:frog>
>
>Great step forward; can you (or anyone) do even better?
>
No, I think this is as close as you can get using W3C XML Schema. You 
can include a Schematron rule to check the root element but that might 
be overkill for your needs:

....
    <xs:element name="example">
        <xs:annotation>
            <xs:appinfo>
                <sch:pattern name="Test document element" 
xmlns:sch="http://www.ascc.net/xml/schematron">
                    <sch:rule context="/">
                        <sch:assert test="example">The document element 
must be &lt;example></sch:assert>
                    </sch:rule>
                </sch:pattern>
            </xs:appinfo>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="a:frog"/>
                <xs:element ref="b:frog"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
.....

Cheers,
/Eddie



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member