[Home] [By Thread] [By Date] [Recent Entries]


> 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:

<?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>



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member