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


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] choice, sequence, all: 'easy' XML Schema question

[ Lists Home | Date Index | Thread Index ]

Huh? Grammars aren't good at expressing position independence? I'm 
having troubling thinking of any grammars for any language (not just 
XML) that don't handle constraints similar to the one that the poster 
describes. Heck, even attributes are order independent.  XML elements 
are _all_ about structure, so having a schema that let's someone 
describe that structure should have been a higher priority. XML 
Schema was a classic case of design by committee with individual 
features grafted onto it by the different participants. Heck, even 
attributes are order independent.

Don Bate

At 5:45 AM +1100 2/17/05, Rick Jelliffe wrote:
>  > John Graybeal wrote:
>>>  We are writing XML of the form:
>>>  <element>
>>>     <required_element/>
>>>     <optional_element1/>
>>>     <optional_element2/>
>>>  </element>
>>>  We would like to specify (for example), that there can be only one of
>>>  required_element, only one of optional_element1, but as many as desired
>>>  of optional_element2.  Plus, we would like to be able to specify the
>>>  elements in any order.
>XML Schemas is a grammar-based schema language, which brings with it
>a lot of limitations as far as modeling capabilities. It has some
>extensions (as does RELAX NG) to make it easier to declare some
>simple structures which are otherwise cumbersome to express in regular
>grammars. In particular, grammars typically use element position to key
>occurrence, which makes it difficult to model when occurrences are
>The advantage of using a grammar is that validation and processing can
>be performed using automata and other techniques, which are theoretically
>well understood. (How much this actually helps implementations to be good
>is another matter.)
>Many people who use XML Schemas and DTDs (& RELAX NG to a lesser extent)
>come to the realization that they are better off only modelling in
>grammars the kinds of constraints that grammars lend themselves to, and to
>add additional constraints in a different language. For example, you might
>model in your XML Schema the equivalent (in DTD notation) of
>   <!ELEMENT element
>        (required_element | optional_element | optional_element3)*>
>then add the following Schematron schema to validate the other constraints"
><schema xmlns="http://www.ascc.net/xml/schematron";>
>   <title>Example for John Graybeal</title>
>   <pattern>
>     <rule context="element">
>       <assert test="count(required_element)=1">
>       There must be one required_element</assert>
>       <assert test="count(optional_element)&lt;=1">
>       There may be one optional_element</assert>
>     </rule>
>   </pattern>
>See Schematron.com for info on Schematron.
>Rick Jelliffe
>The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
>initiative of OASIS <http://www.oasis-open.org>
>The list archives are at http://lists.xml.org/archives/xml-dev/
>To subscribe or unsubscribe from this list use the subscription
>manager: <http://www.oasis-open.org/mlmanage/index.php>

Don Bate               | Specializing in Consulting and Mentoring in
Bate Consulting, Inc   | Object-Oriented Technologies,
                        | Software Architecture, and Software Process
(972) 618-0208 voice
(972) 618-0216 fax


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS