- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 10 Jan 2001 14:03:13 +0000
- To: MarkH@i2.co.uk
- Cc: xmlschema-dev@w3.org
MarkH@i2.co.uk writes:
> > -----Original Message-----
> > From: ht@cogsci.ed.ac.uk [mailto:ht@cogsci.ed.ac.uk]
> > Forget that, then. In the XML Schema context, here's the relevant
> > text [1]:
> >
> > "If the {particles} [of a model group] contains, either directly,
> > indirectly (that is, within the {particles} of a contained model
> > group, recursively) or implicitly two or more element declaration
> > particles with the same {name} and {target namespace}, all their
> > {type definition}s must be the same."
> >
> > A model group is (the schema component corresponding to) a <choice>,
> > <all> or <sequence>.
> >
> > Hope this helps
> Yes, thanks. And that appears to rule it out throughout a document since all
> elements in a document will always share a common model group at the top of
> the hierarchy?
No, there is no (or not necessarilty or normally) any common model
group at the top of the hierarchy.
> On my travels I read the bit about the scope under "definition of an
> element" [2] - which indeed says that the scope is indeed a content model.
> If you then look up content model you find that
>
> A particle can be used in a complex type definition to constrain the
> validation of the [children] of an element information item; such a
> particle is called a content model. [3]
>
> And you'll be under the impression that the scope can be restricted to allow
> multiple elements with same name, different type, so long as the scope is
> restricted to a "particle" (such as <sequence>).
restricted to a single complex type's content model == particle
> And then (with Henry's help) you find the restriction which precludes this
> [1]!!!
>
> Life is full of disappointments that make it interesting!! :-)
Well, just to be sure we agree that you _shouldn't_ be disappointed,
the following is just fine:
<xs:schema ...>
<xs:complexType name="bibItem">
<xs:sequence> *1*
...
<xs:element name="title" type="xs:string"/> *2*
...
</xs:sequence>
</xs:complexType>
...
<xs:complexType name="person">
<xs:sequence> *1*
. . .
<xs:element name="title" type="xs:NMTOKEN"/> *2*
. . .
</xs:sequence>
</xs:complexType>
</xs:schema>
The two particles (= content models, given where they occur) marked
*1* are distinct contexts, so the two element declarations marked *2*
are just fine, even though they share a name and target namespace,
but their types are manifestly not the same.
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 Wednesday, 10 January 2001 09:03:15 UTC