Skip to content

Commit a96f452

Browse files
committed
copy schema
1 parent 1622fa8 commit a96f452

File tree

1 file changed

+357
-0
lines changed

1 file changed

+357
-0
lines changed

src/main/resources/findologic_20.xsd

Lines changed: 357 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,357 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3+
4+
<!-- General structure and metadata, without items in detail. -->
5+
<xs:element name="findologic">
6+
<xs:complexType>
7+
<xs:sequence>
8+
<xs:element name="items">
9+
<xs:complexType>
10+
<xs:sequence>
11+
<xs:element type="itemType" name="item" maxOccurs="unbounded" minOccurs="0"/>
12+
</xs:sequence>
13+
<xs:attribute type="xs:unsignedInt" name="start" use="required"/>
14+
<xs:attribute type="xs:unsignedInt" name="count" use="required"/>
15+
<xs:attribute type="xs:unsignedLong" name="total" use="required"/>
16+
</xs:complexType>
17+
18+
<xs:unique name="id-is-unique">
19+
<xs:selector xpath="item"/>
20+
<xs:field xpath="@id"/>
21+
</xs:unique>
22+
</xs:element>
23+
</xs:sequence>
24+
<xs:attribute type="xs:string" name="version"/>
25+
</xs:complexType>
26+
</xs:element>
27+
28+
<!-- Structure of items. -->
29+
<xs:complexType name="itemType">
30+
<xs:all>
31+
<!-- Mandatory -->
32+
<xs:element type="allOrdernumbersType" name="allOrdernumbers" minOccurs="1" maxOccurs="1"/>
33+
<xs:element type="namesType" name="names" minOccurs="1" maxOccurs="1"/>
34+
<xs:element type="summariesType" name="summaries" minOccurs="1" maxOccurs="1"/>
35+
<xs:element type="descriptionsType" name="descriptions" minOccurs="1" maxOccurs="1"/>
36+
<xs:element type="pricesType" name="prices" minOccurs="1" maxOccurs="1"/>
37+
<xs:element type="urlsType" name="urls" minOccurs="1" maxOccurs="1"/>
38+
<xs:element type="allImagesType" name="allImages" minOccurs="1" maxOccurs="1"/>
39+
<xs:element type="allAttributesType" name="allAttributes" minOccurs="1" maxOccurs="1"/>
40+
<xs:element type="allKeywordsType" name="allKeywords" minOccurs="1" maxOccurs="1"/>
41+
<xs:element type="salesFrequenciesType" name="salesFrequencies" minOccurs="1" maxOccurs="1"/>
42+
<xs:element type="usergroupsType" name="usergroups" minOccurs="1" maxOccurs="1"/>
43+
<xs:element type="dateAddedsType" name="dateAddeds" minOccurs="1" maxOccurs="1"/>
44+
<xs:element type="allPropertiesType" name="allProperties" minOccurs="1" maxOccurs="1"/>
45+
<!-- Optional -->
46+
<xs:element type="bonusesType" name="bonuses" minOccurs="0" maxOccurs="1"/>
47+
<xs:element type="sortsType" name="sorts" minOccurs="0" maxOccurs="1"/>
48+
<xs:element type="visibilitiesType" name="visibilities" minOccurs="0" maxOccurs="1"/>
49+
</xs:all>
50+
<xs:attribute type="nonEmptyString" name="id" use="required"/>
51+
</xs:complexType>
52+
53+
<!-- Images -->
54+
<xs:complexType name="allImagesType">
55+
<xs:sequence>
56+
<xs:element type="imagesType" name="images" minOccurs="0" maxOccurs="unbounded"/>
57+
</xs:sequence>
58+
</xs:complexType>
59+
60+
<xs:complexType name="imagesType">
61+
<xs:sequence>
62+
<xs:element type="imageType" name="image" minOccurs="0" maxOccurs="unbounded"/>
63+
</xs:sequence>
64+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
65+
</xs:complexType>
66+
67+
<xs:complexType name="imageType">
68+
<xs:simpleContent>
69+
<xs:extension base="httpURI">
70+
<xs:attribute type="imageTypeType" name="type" use="optional"/>
71+
</xs:extension>
72+
</xs:simpleContent>
73+
</xs:complexType>
74+
75+
<xs:simpleType name="imageTypeType">
76+
<xs:restriction base="xs:string">
77+
<xs:enumeration value="thumbnail"/>
78+
</xs:restriction>
79+
</xs:simpleType>
80+
81+
<!-- Keywords -->
82+
<xs:complexType name="allKeywordsType">
83+
<xs:sequence>
84+
<xs:element name="keywords" minOccurs="0" maxOccurs="unbounded">
85+
<xs:complexType>
86+
<xs:sequence>
87+
<xs:element type="xs:string" name="keyword" maxOccurs="unbounded" minOccurs="0"/>
88+
</xs:sequence>
89+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
90+
</xs:complexType>
91+
</xs:element>
92+
</xs:sequence>
93+
</xs:complexType>
94+
95+
<!-- Properties -->
96+
<xs:complexType name="allPropertiesType">
97+
<xs:sequence>
98+
<xs:element type="propertiesType" name="properties" maxOccurs="unbounded" minOccurs="0"/>
99+
</xs:sequence>
100+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
101+
</xs:complexType>
102+
103+
<xs:complexType name="propertiesType">
104+
<xs:sequence>
105+
<xs:element type="keyValuePair" name="property" maxOccurs="unbounded" minOccurs="0"/>
106+
</xs:sequence>
107+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
108+
</xs:complexType>
109+
110+
<!-- Names -->
111+
<xs:complexType name="namesType">
112+
<xs:sequence>
113+
<xs:element type="nameWithUsergroup" name="name" minOccurs="1" maxOccurs="unbounded"/>
114+
</xs:sequence>
115+
</xs:complexType>
116+
117+
<!-- Attributes -->
118+
<xs:complexType name="allAttributesType">
119+
<xs:sequence>
120+
<xs:element name="attributes" maxOccurs="unbounded" minOccurs="0">
121+
<xs:complexType>
122+
<xs:sequence>
123+
<xs:element type="keyValuesPair" name="attribute" maxOccurs="unbounded" minOccurs="0"/>
124+
</xs:sequence>
125+
</xs:complexType>
126+
</xs:element>
127+
</xs:sequence>
128+
</xs:complexType>
129+
130+
<!-- URLs -->
131+
<xs:complexType name="urlsType">
132+
<xs:sequence>
133+
<xs:element name="url" minOccurs="1" maxOccurs="unbounded">
134+
<xs:complexType>
135+
<xs:simpleContent>
136+
<xs:extension base="httpURI">
137+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
138+
</xs:extension>
139+
</xs:simpleContent>
140+
</xs:complexType>
141+
</xs:element>
142+
</xs:sequence>
143+
</xs:complexType>
144+
145+
<!-- Summaries -->
146+
<xs:complexType name="summariesType">
147+
<xs:sequence>
148+
<xs:element type="stringWithUsergroup" name="summary" minOccurs="0" maxOccurs="unbounded"/>
149+
</xs:sequence>
150+
</xs:complexType>
151+
152+
<!-- Prices -->
153+
<xs:complexType name="pricesType">
154+
<xs:sequence>
155+
<xs:element name="price" minOccurs="1" maxOccurs="unbounded">
156+
<xs:complexType>
157+
<xs:simpleContent>
158+
<xs:extension base="xs:decimal">
159+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
160+
</xs:extension>
161+
</xs:simpleContent>
162+
</xs:complexType>
163+
</xs:element>
164+
</xs:sequence>
165+
</xs:complexType>
166+
167+
<!-- Ordernumber -->
168+
<xs:complexType name="allOrdernumbersType">
169+
<xs:sequence>
170+
<xs:element name="ordernumbers" maxOccurs="unbounded" minOccurs="0">
171+
<xs:complexType>
172+
<xs:sequence>
173+
<xs:element type="xs:string" name="ordernumber" maxOccurs="unbounded" minOccurs="0"/>
174+
</xs:sequence>
175+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
176+
</xs:complexType>
177+
</xs:element>
178+
</xs:sequence>
179+
</xs:complexType>
180+
181+
<!-- Descriptions -->
182+
<xs:complexType name="descriptionsType">
183+
<xs:sequence>
184+
<xs:element type="stringWithUsergroup" name="description" minOccurs="0" maxOccurs="unbounded"/>
185+
</xs:sequence>
186+
</xs:complexType>
187+
188+
<!-- Simple type variations -->
189+
<xs:simpleType name="httpURI">
190+
<xs:restriction base="xs:anyURI">
191+
<xs:pattern value="http[s]?://.*"/>
192+
</xs:restriction>
193+
</xs:simpleType>
194+
<xs:simpleType name="money">
195+
<xs:restriction base="xs:decimal">
196+
<xs:fractionDigits value="2"/>
197+
</xs:restriction>
198+
</xs:simpleType>
199+
200+
<!-- Usergroup support -->
201+
<xs:simpleType name="usergroupHash">
202+
<xs:restriction base="xs:string">
203+
<xs:minLength value="1"/>
204+
</xs:restriction>
205+
</xs:simpleType>
206+
<xs:complexType name="stringWithUsergroup">
207+
<xs:simpleContent>
208+
<xs:extension base="xs:string">
209+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
210+
</xs:extension>
211+
</xs:simpleContent>
212+
</xs:complexType>
213+
<xs:simpleType name="nonEmptyString">
214+
<xs:restriction base="xs:string">
215+
<xs:minLength value="1"/>
216+
<xs:whiteSpace value="collapse"/>
217+
</xs:restriction>
218+
</xs:simpleType>
219+
<xs:complexType name="nameWithUsergroup">
220+
<xs:simpleContent>
221+
<xs:extension base="nonEmptyString">
222+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
223+
</xs:extension>
224+
</xs:simpleContent>
225+
</xs:complexType>
226+
<xs:complexType name="moneyWithUsergroup">
227+
<xs:simpleContent>
228+
<xs:extension base="money">
229+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
230+
</xs:extension>
231+
</xs:simpleContent>
232+
</xs:complexType>
233+
234+
<!-- Generic structure for key with multiple values elements -->
235+
<xs:complexType name="keyValuesPair">
236+
<xs:sequence>
237+
<xs:element name="key">
238+
<xs:simpleType>
239+
<xs:restriction base="xs:string">
240+
<xs:minLength value="1"/>
241+
</xs:restriction>
242+
</xs:simpleType>
243+
</xs:element>
244+
<xs:element type="attributeValues" name="values"/>
245+
</xs:sequence>
246+
</xs:complexType>
247+
248+
<!-- Generic structure for key-value-pair elements -->
249+
<xs:complexType name="keyValuePair">
250+
<xs:sequence>
251+
<xs:element name="key">
252+
<xs:simpleType>
253+
<xs:restriction base="xs:string">
254+
<xs:minLength value="1"/>
255+
</xs:restriction>
256+
</xs:simpleType>
257+
</xs:element>
258+
<xs:element name="value">
259+
<xs:simpleType>
260+
<xs:restriction base="xs:string">
261+
<xs:minLength value="1"/>
262+
</xs:restriction>
263+
</xs:simpleType>
264+
</xs:element>
265+
</xs:sequence>
266+
</xs:complexType>
267+
268+
<xs:complexType name="attributeValues">
269+
<xs:sequence>
270+
<xs:element name="value" maxOccurs="unbounded" minOccurs="1">
271+
<xs:simpleType>
272+
<xs:restriction base="xs:string">
273+
<xs:minLength value="1"/>
274+
<xs:maxLength value="16383"/>
275+
</xs:restriction>
276+
</xs:simpleType>
277+
</xs:element>
278+
</xs:sequence>
279+
</xs:complexType>
280+
281+
<xs:complexType name="salesFrequenciesType">
282+
<xs:sequence>
283+
<xs:element name="salesFrequency" minOccurs="0" maxOccurs="unbounded">
284+
<xs:complexType>
285+
<xs:simpleContent>
286+
<xs:extension base="xs:nonNegativeInteger">
287+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
288+
</xs:extension>
289+
</xs:simpleContent>
290+
</xs:complexType>
291+
</xs:element>
292+
</xs:sequence>
293+
</xs:complexType>
294+
295+
<xs:complexType name="usergroupsType">
296+
<xs:sequence>
297+
<xs:element type="usergroupHash" name="usergroup" minOccurs="0" maxOccurs="unbounded"/>
298+
</xs:sequence>
299+
</xs:complexType>
300+
301+
<xs:complexType name="dateAddedsType">
302+
<xs:sequence>
303+
<xs:element name="dateAdded" minOccurs="0" maxOccurs="unbounded">
304+
<xs:complexType>
305+
<xs:simpleContent>
306+
<xs:extension base="xs:dateTime">
307+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
308+
</xs:extension>
309+
</xs:simpleContent>
310+
</xs:complexType>
311+
</xs:element>
312+
</xs:sequence>
313+
</xs:complexType>
314+
315+
<xs:complexType name="bonusesType">
316+
<xs:sequence>
317+
<xs:element name="bonus" minOccurs="0" maxOccurs="unbounded">
318+
<xs:complexType>
319+
<xs:simpleContent>
320+
<xs:extension base="xs:decimal">
321+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
322+
</xs:extension>
323+
</xs:simpleContent>
324+
</xs:complexType>
325+
</xs:element>
326+
</xs:sequence>
327+
</xs:complexType>
328+
329+
<xs:complexType name="sortsType">
330+
<xs:sequence>
331+
<xs:element name="sort" minOccurs="0" maxOccurs="unbounded">
332+
<xs:complexType>
333+
<xs:simpleContent>
334+
<xs:extension base="xs:integer">
335+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
336+
</xs:extension>
337+
</xs:simpleContent>
338+
</xs:complexType>
339+
</xs:element>
340+
</xs:sequence>
341+
</xs:complexType>
342+
343+
<xs:complexType name="visibilitiesType">
344+
<xs:sequence>
345+
<xs:element name="visible" minOccurs="0" maxOccurs="unbounded">
346+
<xs:complexType>
347+
<xs:simpleContent>
348+
<xs:extension base="xs:boolean">
349+
<xs:attribute type="usergroupHash" name="usergroup" use="optional"/>
350+
</xs:extension>
351+
</xs:simpleContent>
352+
</xs:complexType>
353+
</xs:element>
354+
</xs:sequence>
355+
</xs:complexType>
356+
357+
</xs:schema>

0 commit comments

Comments
 (0)