- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 13 Jul 2000 09:59:04 +0100
- To: Robin LaFontaine <robin@monsell.co.uk>
- Cc: xmlschema-dev@w3.org
Robin LaFontaine <robin@monsell.co.uk> writes:
> 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!).
You're welcome.
> 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.
Maybe that's true for data from databases, but it certainly is _not_
true for data from documents -- consider the keys on the chapters of a
book!
> 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.
Interesting -- at some point I'll release the canonicalisation tool I
use for comparing schemas.
> 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)*>
I'd say not, actually
> <!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?
I've noted one disagreement above.
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/
Received on Thursday, 13 July 2000 04:59:07 UTC