- From: <Simon.Cox@csiro.au>
- Date: Tue, 12 Mar 2002 09:48:27 +0800
- To: xmlschema-dev@w3.org
- Cc: jeni@jenitennison.com, dareo@microsoft.com
So after all this, do I understand that:
(a) Dare agrees with MSXML that my original schema[1] is invalid;
while
(b) Jeni originally agreed with Henry that it was OK, but now thinks it is
unclear
?
I'm having some difficult untangling the thread
and relating it to my original question!
Meanwhile, if Dare and MSXML are correct,
then perhaps I should rephrase the question:
How can I define
a base type that will accept *any* elements in its content model,
and then define
a type derived from this by restriction that confines the
content to a specific vocabulary?
(to be used for elements in a substitution group)
Am I reduced to using the very weak inheritance method
of first emptying the content and then extending it?
[1] http://lists.w3.org/Archives/Public/xmlschema-dev/2002Mar/0015.html
_____
Simon.Cox@csiro.au CSIRO Exploration & Mining
26 Dick Perry Avenue, Kensington WA 6151
PO Box 1130, Bentley WA 6102 AUSTRALIA
T: +61 (8) 6436 8639 F: +61 (8) 6436 8555 C: +61 (4) 0330 2672
http://www.csiro.au/page.asp?type=resume&id=CoxSimon
> -----Original Message-----
> From: Jeni Tennison [mailto:jeni@jenitennison.com]
> Sent: Saturday, 9 March 2002 7:51 PM
> To: Dare Obasanjo
> Cc: xmlschema-dev@w3.org
> Subject: Re: Derivation by restriction from <any>
>
>
> Hi Dare,
>
> >> By the rules of the Schema Component Constraint: Particle Valid
> >> (Restriction)
> >> (http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict),
> >> the sequence in the base model group is "pointless" so the
> >> base model group is equivalent to:
> >
> [snip]
> > The rules for pointlessness for an xs:sequence are
> >
> > <sequence>
> > One of the following must be true:
> > 2.2.1 {particles} is empty. [Dare - Nope, not in this case]
> >
> > 2.2.2 All of the following must be true:
> > 2.2.2.1 The particle within which this <sequence>
> appears has
> > {max occurs} and {min occurs} of 1. [Dare - the sequence does not
> > appear in a particle. Now it is possible that somewhere in the spec
> > defines some implicit particle similar to how there is an implicit
> > xs:complexContent child of a xs:complexType when it has particles as
> > children. If this is the case I'd appreciate it if you
> could point this
> > out]
>
> Yes :) I admit that I performed a little 'interpretation' of the spec
> here, and went with what I felt was the spirit rather than the letter.
>
> It's clear that 2.2.2.1 does not apply to a <sequence> that is the
> top-level particle in a content model, since it does not appear within
> a particle itself. The question is whether the fact that it does not
> appear within a particle means that the condition is met or not met,
> in other words, does 2.2.2.1 mean:
>
> "If the <sequence> appears within a particle, then the particle
> within which this <sequence> appears has {max occurs} and {min
> occurs} of 1."
>
> or does it mean:
>
> "The <sequence> appears within a particle and the particle
> within which this <sequence> appears has {max occurs} and {min
> occurs} of 1."
>
> I think that both interpretations are valid interpretations based on
> the letter of the Rec. I think that the former interpretation, which
> is the one that I made, makes more sense, by extension, since if you
> had:
>
> <choice>
> <sequence>
> <any maxOccurs="unbounded" />
> </sequence>
> <element ref="baz" />
> </choice>
>
> being restricted to:
>
> <choice>
> <sequence>
> <element ref="foo" />
> <element ref="bar" />
> </sequence>
> <element ref="baz" />
> </choice>
>
> Then that would be OK - the sequence in the base is *definitely*
> pointless, and the map from the base any to the restricted sequence
> is fine (as I demonstrated in the last message).
>
> But then again, if you have the base particle:
>
> <sequence maxOccurs="unbounded">
> <any />
> </sequence>
>
> and the restriction:
>
> <sequence>
> <element ref="foo" />
> <element ref="bar" />
> </sequence>
>
> To my eyes, that looks like a valid restriction, but according to the
> Rec I don't think it is. The sequence/sequence derivation rule states
> that the there must be an order-preserving functional mapping between
> the particles making up the two sequences, which there clearly isn't
> in this case - there's nothing for the second element to map on to.
>
> And if it doesn't work for the above base model group, then it
> shouldn't work for the model group:
>
> <sequence>
> <any maxOccurs="unbounded" />
> </sequence>
>
> which I think is functionally equivalent.
>
> As usual with these things, the not-quite-errata document registers
> that there's already been a comment about the pointlessness rules:
>
> http://www.w3.org/2001/05/xmlschema-rec-comments#pfipointless
>
> Apparently it's been resolved:
>
> "The WG has decided that although the rules have some awkward
> results, they are not in error. It will be put on the list of
> issues to consider for a future revision of XML Schema."
>
> So there you go. I guess that means that one-to-many mappings are
> possible in some cases but not in others (with a little ambiguity
> about which examples fall into which class).
>
> Cheers,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.com/
>
Received on Monday, 11 March 2002 20:58:09 UTC