OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Elements order:



 From: "Joe English" <jenglish@flightlab.com>
 
> Christopher R > 
> It's not hard to express in Schematron either.  I don't
> think this construct is even possible to specify with
> W3C XML Schemas (though I may be mistaken).

To say that you can have elements x,y,z in any order in e

  <rule context="e">
        <assert test="x">The element e should contain one or more x elements</assert>
        <assert test="y">The element e should contain one or more y elements</assert>
        <assert test="z">The element e should contain one or more z elements</assert>
 </rule>

It is easy to do open and order-neutral schemas in Schematron. It is easy
to add partial orders too:

  <rule context="e/x">
        <report test="previous-sibling::y">The element x should not come after a y element</report>
 </rule>

or numeric constraints

  <rule context="e">
        <assert test="count(x) = count (y) "
        >There should be the same number of x elements as y elements</assert>
 </rule>

There are two schools of thought w.r.t. schemas: those who want maximal openness/flexibility
in their schemas (i.e. no constraints that are artifacts of using a schema language) and those
who want minimal randomness in their data (i.e. it doesn't matter if the schema language imposes
artificial constraints, such as requiring order even for unordered collections.)  


Cheers
Rick Jelliffe