- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Sat, 05 Feb 2005 11:40:40 +0000
- To: "G. Ken Holman" <gkholman@CraneSoftwrights.com>
- Cc: <xmlschema-dev@w3.org>
Two points, neither of them likely to leave you very happy:
1) From the clause numbers you cite, I conclude you're looking at the
original REC, not the second edition [1], which did clean up this
aspect of things somewhat. However, the changes _don't_ change that
the 'mixed' on the <xs:complex...> of the _derived_ type determines
the mixed of the result.
2) Even were this not to be the case, you can't get what you want,
because extending a content model _always_ results in a sequence of
the old model and the new. So if the old were e.g.
(a | b)*
and you extend it with (emph), you get
((a | b)* , emph)
which is not what you want anyway.
To achieve what your clients appear to want, you have to go around the
houses in the following way:
mixed.xsd:
<xs:group name="bits">
<xs:choice>
<xs:element ref="a"/>
<xs:element ref="b"/>
</xs:choice>
</xs:group>
<xs:complexType name="mixedBase" mixed="true">
<xs:group ref="bits" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
ext.xsd:
<xs:redefine schemaLocation="mixed.xsd">
<xs:group name="bits">
<xs:choice>
<xs:group ref="bits"/>
<xs:element ref="emph"/>
</xs:choice>
</xs:group>
</xs:redefine>
ht
[1] http://www.w3.org/TR/xmlschema-1/#declare-type
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
Received on Saturday, 5 February 2005 12:46:50 UTC