[
Lists Home |
Date Index |
Thread Index
]
Jeff Lowery wrote:
>>Kawaguchi-san wrote an
>>interesting article about this a couple of months ago [1]
>>where he gives
>>another example of a derivation by restriction that look
>>correct but isn't.
>>
>>Cheers,
>>/Eddie
>>
>>[1] http://www.xml.com/pub/a/2001/06/06/schemasimple.html?page=1
>>
>>
>
>I think intuition would expect (incorrectly) the following to be a valid
>restriction:
>
So true. Type derivation involving anonymous types is another example
where the derivation looks fine but is in fact incorrect.
Cheers,
/Eddie
>
><?xml version="1.0" encoding="UTF-8"?>
><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>xmlns:qux="http://www.example.com/foobar"
>targetNamespace="http://www.example.com/foobar"
>elementFormDefault="qualified" attributeFormDefault="unqualified">
>
> <xs:simpleType name="name_t">
> <xs:restriction base="xs:string">
> <xs:pattern value="[A-Z][a-z]*"/>
> </xs:restriction>
> </xs:simpleType>
>
> <xs:complexType name="foo">
> <xs:sequence>
> <xs:element name="firstName" type="qux:name_t"/>
>
> <xs:element name="lastName" nillable="false">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:pattern
>value="[A-Z][a-z]*"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
>
> </xs:sequence>
> </xs:complexType>
>
> <xs:complexType name="bar">
> <xs:complexContent>
> <xs:restriction base="qux:foo">
> <xs:sequence>
> <xs:element name="firstName">
> <xs:simpleType>
> <xs:restriction
>base="qux:name_t">
> <xs:pattern
>value="L[a-z]*"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
>
> <xs:element name="lastName"
>nillable="false">
> <xs:simpleType>
> <xs:restriction
>base="xs:string">
> <xs:pattern
>value="[A-Z][a-z]*"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
>
> </xs:sequence>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
></xs:schema>
>
>
>
>
|