1 <?xml version=
"1.0" encoding=
"UTF-8" ?>
3 A format for describing pottery glazes, samples and pieces.
6 <xs:schema xmlns:
xs=
"http://www.w3.org/2001/XMLSchema"
7 targetNamespace=
"tag:fenglich.fastmail.fm,2007:Pottery"
8 xmlns=
"tag:fenglich.fastmail.fm,2007:Pottery"
9 elementFormDefault=
"qualified">
12 <xs:import schemaLocation=
"xml.xsd"
13 namespace=
"http://www.w3.org/XML/1998/namespace"/>
15 <!-- xml:id per http://www.w3.org/TR/2005/REC-xml-id-20050909/ -->
17 <xs:import schemaLocation="xmlid.xsd"
18 namespace="http://www.w3.org/XML/1998/namespace"/>
21 <xs:simpleType name=
"sampleIDsType">
22 <xs:list itemType=
"sampleIDType"/>
25 <xs:simpleType name=
"sampleIDType">
26 <xs:restriction base=
"xs:string">
27 <xs:pattern value=
"(T|W)\d+"/>
31 <xs:element name=
"pottery" type=
"potteryType"/>
33 <xs:complexType name=
"potteryType">
35 <xs:restriction base=
"xs:anyType">
37 <xs:element name=
"pieces"
41 <xs:unique name=
"unique-pieces">
42 <xs:selector xpath=
"piece"/>
43 <xs:field xpath=
"@id"/>
47 <xs:element name=
"samples"
51 <xs:unique name=
"unique-samples">
52 <xs:selector xpath=
"sample"/>
53 <xs:field xpath=
"brick/@id"/>
57 <xs:element name=
"clays"
61 <xs:unique name=
"unique-clays-id">
62 <xs:selector xpath=
"clay"/>
63 <xs:field xpath=
"@id"/>
65 <xs:unique name=
"unique-clays-name">
66 <xs:selector xpath=
"clay"/>
67 <xs:field xpath=
"@name"/>
71 <xs:element name=
"glazes"
75 <xs:unique name=
"unique-glazes-id">
76 <xs:selector xpath=
"glaze"/>
77 <xs:field xpath=
"@id"/>
80 <xs:unique name=
"unique-glazes-name">
81 <xs:selector xpath=
"glaze"/>
82 <xs:field xpath=
"@name"/>
88 <xs:attribute name=
"version" type=
"xs:decimal"/>
89 <xs:attribute ref=
"xml:lang" use=
"required"/>
94 <xs:complexType name=
"samplesType">
96 <xs:element name=
"sample" type=
"sampleType" minOccurs=
"1" maxOccurs=
"unbounded"/>
100 <xs:complexType name=
"piecesType">
102 <xs:element name=
"piece" type=
"pieceType" minOccurs=
"0" maxOccurs=
"unbounded"/>
106 <xs:complexType name=
"pieceType">
108 <xs:restriction base=
"xs:anyType">
110 <xs:element name=
"clayref"
113 maxOccurs=
"unbounded"/>
114 <xs:element name=
"glazing"
117 maxOccurs=
"unbounded"/>
118 <xs:element name=
"note"
121 maxOccurs=
"unbounded"/>
123 <xs:attribute ref=
"xml:id" use=
"required"/>
128 <xs:complexType name=
"noteType">
130 <xs:extension base=
"xs:normalizedString">
131 <xs:attribute name=
"date" use=
"required" type=
"xs:date"/>
136 <xs:complexType name=
"claysType">
138 <xs:element name=
"clay" type=
"clayType" minOccurs=
"0" maxOccurs=
"unbounded"/>
142 <xs:complexType name=
"clayType">
143 <xs:attribute ref=
"xml:id" use=
"required"/>
144 <xs:attribute name=
"name" type=
"xs:normalizedString" use=
"required"/>
145 <xs:attribute name=
"manufacturer" type=
"xs:normalizedString" use=
"required"/>
146 <xs:attribute name=
"productID" type=
"xs:normalizedString" use=
"required"/>
149 <xs:complexType name=
"clayrefType">
150 <xs:attribute name=
"idref" type=
"xs:NCName" use=
"required"/>
151 <xs:attribute name=
"weightWhenWet" type=
"xs:positiveInteger" use=
"optional"/>
154 <xs:complexType name=
"glazesType">
156 <xs:element name=
"glaze" type=
"glazeType" minOccurs=
"0" maxOccurs=
"unbounded"/>
160 <xs:complexType name=
"glazeType">
161 <xs:attribute ref=
"xml:id" use=
"required"/>
162 <xs:attribute name=
"name" type=
"xs:normalizedString" use=
"required"/>
163 <xs:attribute name=
"manufacturer" type=
"xs:normalizedString" use=
"required"/>
164 <xs:attribute name=
"productID" type=
"xs:normalizedString" use=
"optional"/>
165 <xs:attribute name=
"description" type=
"xs:normalizedString" use=
"optional"/>
168 <xs:complexType name=
"sampleType">
170 <xs:element name=
"brick" type=
"brickType" minOccurs=
"1" maxOccurs=
"unbounded"/>
171 <xs:element name=
"glazing" type=
"glazingType" minOccurs=
"0" maxOccurs=
"unbounded"/>
172 <xs:element name=
"clayref" type=
"clayrefType" minOccurs=
"0" maxOccurs=
"unbounded"/>
173 <xs:element name=
"note" type=
"xs:normalizedString" minOccurs=
"1"/>
175 <xs:attribute name=
"date" type=
"xs:date" use=
"required"/>
178 <xs:complexType name=
"brickType">
179 <xs:attribute ref=
"xml:id" use=
"required"/>
182 <xs:complexType name=
"glazingType">
183 <xs:attribute name=
"idref" use=
"required" type=
"xs:NCName"/>
184 <xs:attribute name=
"viscosity" use=
"optional" type=
"viscosityType"/>
185 <xs:attribute name=
"trickled" use=
"optional" type=
"xs:boolean" default=
"false"/>
188 <xs:simpleType name=
"viscosityType">
189 <xs:restriction base=
"xs:integer"/>
193 vim: et:ts=4:sw=4:sts=4