[
Lists Home |
Date Index |
Thread Index
]
>
>
>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 <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
|