- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Thu, 21 Mar 2002 08:53:07 +0100
- To: Bruno Chatel <bcha@chadocs.net>
- Cc: xmlschema-dev@w3.org, patt <pattar@tireme.fr>, bcha@chadocs.com
Bruno Chatel wrote:
>>Not really, simple and complex types are very different beasts (despite
>>similarities which are IMO exagerated in the W3C Recommendation) and the
>>kind of derivations which you will be able to do on those types is
>>different.
>
> My initial understanding of the difference was that simpleType was used
> for data (i.e. content of leaf nodes) and complexType for "structured" content
> model (including attribute definitions).
Yep, that's what I meant :) ...
> So, it means that the way to decide if I use a simpleType or a complexType for
> defining "unit" is driven by the usage (in term of derivation) of it ?
It's one of the driving factors, yes.
> And not by the content model it describes ?
The content model does drive it too, you're right, but in the case which
you've mentioned the datatype used as "interface" was describing a
simple content complex type without attribute which can also be
described as a simple type...
>
> Then imagine that I want to use unit for
> 1- apply a facet (for example maxExclusive) for defining a particular limited unit
> AND
> 2- define a complexType in an other schema (importing this one) by redefine
> mecanism
>
> I can't do this because :
> 1- implies to use a simpleType
> 2- implies to use a complexType
You're right and in the general case you may want to provide both
"interfaces":
In the imported schema:
<xs:simpleType name="unit-s">
<xs:restriction base="xs:integer">
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="unit-c">
<xs:simpleContent>
<xs:extension base="unit-s"/>
</xs:simpleContent>
</xs:complexType>
The importing schema can then redefine "unit-c" and/or "unit-s":
<xs:redefine schemaLocation="unit.xsd">
<xs:simpleType name="unit-s">
<xs:restriction base="unit-s">
<xs:minInclusive value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="unit-c">
<xs:simpleContent>
<xs:extension base="unit-c">
<xs:attribute name="otherVal" type="xs:integer" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:redefine>
Hopes this help.
Eric
--
See you in Paris.
http://www.afnet.fr/afnet/net200x/programme.html#T9
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
http://xsltunit.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
Received on Thursday, 21 March 2002 02:53:36 UTC