<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cat="http://www.iro.umontreal.ca/lapalme/wine-catalog">
<xs:import namespace="http://www.iro.umontreal.ca/lapalme/wine-catalog"
schemaLocation="WineCatalog.xsd"/>
<xs:element name="cellar">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="wine" type="Wine"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Wine">
<xs:sequence>
<xs:element name="purchaseDate" type="xs:date"/>
<xs:element name="quantity" type="xs:nonNegativeInteger"/>
<xs:element name="rating" minOccurs="0">
<xs:complexType>
<xs:attribute name="stars" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
<xs:element name="comment" type="cat:Comment" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="code" type="xs:IDREF" use="required"/>
</xs:complexType>
<xs:element name="name">
<xs:complexType>
<xs:all>
<xs:element name="first" type="xs:string" minOccurs="0"/>
<xs:element name="family" type="xs:string" minOccurs="0"/>
<xs:element name="initial" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="cellar-book">
<xs:complexType>
<xs:sequence>
<xs:element ref="cat:wine-catalog"/>
<xs:element name="owner" type="Owner"/>
<xs:element name="location" minOccurs="0">
<xs:complexType>
<xs:group ref="address"/>
</xs:complexType>
</xs:element>
<xs:element ref="cellar"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group name="address">
<xs:sequence>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="province" type="ProvinceCA"/>
<xs:element name="postal-code" type="PostalCodeCA"/>
</xs:sequence>
</xs:group>
<xs:simpleType name="ProvinceCA">
<xs:restriction base="xs:string">
<xs:enumeration value="AB"/>
<xs:enumeration value="BC"/>
<xs:enumeration value="MB"/>
<xs:enumeration value="NB"/>
<xs:enumeration value="NL"/>
<xs:enumeration value="NT"/>
<xs:enumeration value="NS"/>
<xs:enumeration value="NU"/>
<xs:enumeration value="ON"/>
<xs:enumeration value="QC"/>
<xs:enumeration value="SK"/>
<xs:enumeration value="YT"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Owner">
<xs:sequence>
<xs:element ref="name"/>
<xs:group ref="address"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="PostalCodeCA">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][0-9][A-Z] [0-9][A-Z][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>