- From: Michael Kay <mike@saxonica.com>
- Date: Mon, 14 Jul 2008 09:13:41 +0100
- To: "'jorma kala'" <jjkk73@gmail.com>, <xmlschema-dev@w3.org>
- Message-ID: <E1976EF1716D457DB86371908714C77C@Sealion>
The idea of type derivation is that derived types are substitutable for their base types, so any assumptions that the document recipient makes based on knowledge of the base type will not be invalidated if a derived type is used. In that context, one might ask why derivation by extension is allowed at all. The answer is that it only allows addition of extra child elements at the end of the contents, and document recipients are not supposed to make assumptions that such extra elements will not be there. One can question whether extension should be allowed at all, but if it is allowed, it certainly needs to be limited in what it can do. Michael Kay http://www.saxonica.com/ _____ From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] On Behalf Of jorma kala Sent: 13 July 2008 12:19 To: xmlschema-dev@w3.org Subject: why is it not possible to define a simple type as an extension in the range of values of another simple type (newbie question) I'm quite new to xml schemas. I do not really understand why if it is possible to define a simple type as a restriction on the range of values of another simple type, like this for instance: <xsd:simpleType name="type1"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="100"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="type2"> <xsd:restriction base="type1"> <xsd:minInclusive value="10"/> <xsd:maxInclusive value="20"/> </xsd:restriction> </xsd:simpleType> the reciprocal operation of defining a simple type as an extension on the range of values of another simple type is an error (at least I get an error with the apache parser): <xsd:simpleType name="type1"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="100"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="type2"> <xsd:extension base="type1"> <xsd:minInclusive value="-100"/> <xsd:maxInclusive value="200"/> </xsd:extension > </xsd:simpleType> thanks a lot. jorma k
Received on Monday, 14 July 2008 08:25:17 UTC