- From: Robin LaFontaine <robin@monsell.co.uk>
- Date: Wed, 12 Jul 2000 18:15:33 +0100
- To: ht@cogsci.ed.ac.uk (Henry S. Thompson)
- Cc: xmlschema-dev@w3.org
Henry,
Thanks for your prompt reply to this query (you must spend a lot of
your time answering these queries, and people like me appreciate that
- thanks!).
The ordering seems to be more a property of the data than the
application. XML Schema does have the concept of keys as part of the
data integrity, and typically if an item has a key it can appear in
any order. But I do see why you did not go down this route!
Perhaps I can be more specific and say that I am writing an
application to determine whether two XML schemas are the same (or to
indicate where they differ). So, it is important to know which
elements can appear in a different order but make no difference to
the schema definition.
This is what I 'guessed', but perhaps you can tell me if I am wrong
(in this I have expanded all the entities and I am working with the
DTD at this point):
These elements are not-ordered:
<!ELEMENT all
((annotation)?,
(element | group | choice | sequence | any)*)>
<!ELEMENT attributeGroup
((annotation)?,
(attribute | attributeGroup)*,
(anyAttribute)?)>
<!ELEMENT choice
((annotation)?,
(element | group | choice | sequence | any)*)>
<!ELEMENT element
((annotation)?,
(complexType | simpleType)?,
(unique | key | keyref)*)>
<!ELEMENT schema
((include | import | annotation)*,
(simpleType | complexType | element | attribute | attributeGroup |
group | notation),
(annotation | simpleType | complexType | element | attribute |
attributeGroup | group | notation)*)>
<!ELEMENT simpleType
((annotation)?,
( (minInclusive | minExclusive) |
(maxInclusive | maxExclusive) | precision | scale | pattern |
enumeration | length | maxLength | minLength | encoding | period |
duration)*)>
<!ELEMENT unique
((annotation)?, selector,
(field)+)>
These elements are ordered:
<!ELEMENT annotation
(appinfo | documentation)*>
<!ELEMENT key
((annotation)?, selector,
(field)+)>
<!ELEMENT keyref
((annotation)?, selector,
(field)+)>
<!ELEMENT sequence
((annotation)?,
(element | group | choice | sequence | any)*)>
These elements are a mixture:
<!ELEMENT complexType
((annotation)?,
( ( (minInclusive | minExclusive) |
(maxInclusive | maxExclusive) | precision | scale | pattern |
enumeration | length | maxLength | minLength | encoding | period |
duration)* |
( (element | all | choice | sequence | group | any)*,
(attribute | attributeGroup)*,
(anyAttribute)?)))>
The first repeating CP is unordered, the second ordered and the third
unordered.
Are my guesses correct?
Kind regards,
Robin
At 4:43 pm +0100 12/7/00, Henry S. Thompson wrote:
>Robin LaFontaine <robin@monsell.co.uk> writes:
>
> > There is a basic requirement for most data structures to distinguish
> > between a 'list', which is ordered, and a 'set' which is not.
> >
> >
> > I cannot see how, in XML Schema, to make this distinction.
> >
> > For example:
> >
> > <element name="CoordGeom">
> > <complexType>
> > <choice minOccurs="0" maxOccurs="unbounded">
> > <element ref="Line"/>
> > <element ref="Curve"/>
> > <element ref="Spiral"/>
> > </choice>
> > </complexType>
> > </element>
> >
> > How can I indicate if the sequence of element instances within the
> > choice is significant ('list') or not ('set')?
> >
> >
> > I have not been able to determine the answer to this question from
> > reading the spec, except that by omission I think the answer is 'you
> > cannot do this in XML Schema'!
>
>You cannot _say_ this in XML Schema. You can do it just fine, but
>it's down to applications to know when order is significant in ordered
>elements and when it isn't.
>
>One way to think about this is: On the simple type side, we define
>both type-specific lexical and value spaces. On the complex type
>side, we define type-specific lexical spaces, but only a generic value
>space, based on the XML Infoset model. The children of element
>information items are ordered in that model: whether that order has
>application significance or not is not expressable at the infoset
>level.
>
>Given the difficulties of specifying a universal application data
>model for complex types, the WG decided not to step even a little bit
>down on to the slippery slope that allowing people to say 'list, set,
>bag, poset, ...' would represent.
>
>ht
>--
> Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
> W3C Fellow 1999--2001, part-time member of W3C Team
> 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
> Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
> URL: http://www.ltg.ed.ac.uk/~ht/
-- -----------------------------------------------------------------
Robin La Fontaine, Monsell EDM Ltd
(R&D Project Management, Engineering Data Exchange using XML, EDIF)
Tel: +44 1684 592 144 Fax: +44 1684 594 504 or +44 870 054 2811
Email: robin@monsell.co.uk http://www.monsell.co.uk
Received on Wednesday, 12 July 2000 13:14:15 UTC