Skip to content

Commit 7398748

Browse files
authored
Merge pull request #17 from findologic/add_variants_to_schema
add variants(FINDO-9595)
2 parents 7ee2276 + 53442b9 commit 7398748

File tree

2 files changed

+52
-21
lines changed

2 files changed

+52
-21
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.findologic</groupId>
55
<artifactId>xml-export</artifactId>
66
<packaging>jar</packaging>
7-
<version>2.0.0-SNAPSHOT</version>
7+
<version>2.1.0-SNAPSHOT</version>
88
<name>xml-export</name>
99
<url>http://maven.apache.org</url>
1010
</project>

src/main/resources/findologic_20.xsd

+51-20
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,28 @@
4747
<xs:element type="bonusesType" name="bonuses" minOccurs="0" maxOccurs="1"/>
4848
<xs:element type="sortsType" name="sorts" minOccurs="0" maxOccurs="1"/>
4949
<xs:element type="visibilitiesType" name="visibilities" minOccurs="0" maxOccurs="1"/>
50+
<xs:element type="variantsType" name="variants" minOccurs="0" maxOccurs="1"/>
51+
</xs:all>
52+
<xs:attribute type="nonEmptyString" name="id" use="required"/>
53+
</xs:complexType>
54+
55+
<xs:complexType name="variantsType">
56+
<xs:sequence>
57+
<xs:element type="variantType" name="variant" minOccurs="0" maxOccurs="unbounded"/>
58+
</xs:sequence>
59+
</xs:complexType>
60+
61+
<xs:complexType name="variantType">
62+
<xs:all>
63+
<!-- Mandatory -->
64+
<xs:element type="allOrdernumbersType" name="allOrdernumbers" minOccurs="1" maxOccurs="1"/>
65+
<xs:element type="variantsAttributesType" name="allAttributes" minOccurs="1" maxOccurs="1"/>
66+
<!-- Optional -->
67+
<xs:element type="namesType" name="names" minOccurs="0" maxOccurs="1"/>
68+
<xs:element type="pricesType" name="prices" minOccurs="0" maxOccurs="1"/>
69+
<xs:element type="groupsType" name="groups" minOccurs="0" maxOccurs="1"/>
70+
<xs:element type="allPropertiesType" name="allProperties" minOccurs="0" maxOccurs="1"/>
71+
<xs:element type="overriddenPricesType" name="overriddenPrices" minOccurs="0" maxOccurs="1"/>
5072
</xs:all>
5173
<xs:attribute type="nonEmptyString" name="id" use="required"/>
5274
</xs:complexType>
@@ -127,6 +149,17 @@
127149
</xs:element>
128150
</xs:sequence>
129151
</xs:complexType>
152+
<xs:complexType name="variantsAttributesType">
153+
<xs:sequence>
154+
<xs:element name="attributes" maxOccurs="unbounded" minOccurs="1">
155+
<xs:complexType>
156+
<xs:sequence>
157+
<xs:element type="keyValuesPair" name="attribute" maxOccurs="unbounded" minOccurs="1"/>
158+
</xs:sequence>
159+
</xs:complexType>
160+
</xs:element>
161+
</xs:sequence>
162+
</xs:complexType>
130163

131164
<!-- URLs -->
132165
<xs:complexType name="urlsType">
@@ -153,18 +186,18 @@
153186
<!-- Prices -->
154187
<xs:complexType name="pricesType">
155188
<xs:sequence>
156-
<xs:element name="price" minOccurs="1" maxOccurs="unbounded">
157-
<xs:complexType>
158-
<xs:simpleContent>
159-
<xs:extension base="xs:decimal">
160-
<xs:attribute type="nonEmptyString" name="usergroup" use="optional"/>
161-
</xs:extension>
162-
</xs:simpleContent>
163-
</xs:complexType>
164-
</xs:element>
189+
<xs:element type="basePriceType" name="price" minOccurs="1" maxOccurs="unbounded"/>
165190
</xs:sequence>
166191
</xs:complexType>
167192

193+
<xs:complexType name="basePriceType">
194+
<xs:simpleContent>
195+
<xs:extension base="xs:decimal">
196+
<xs:attribute type="nonEmptyString" name="usergroup" use="optional"/>
197+
</xs:extension>
198+
</xs:simpleContent>
199+
</xs:complexType>
200+
168201
<!-- Ordernumber -->
169202
<xs:complexType name="allOrdernumbersType">
170203
<xs:sequence>
@@ -189,7 +222,7 @@
189222
<!-- Simple type variations -->
190223
<xs:simpleType name="httpURI">
191224
<xs:restriction base="xs:anyURI">
192-
<xs:pattern value="http[s]?://.*"/>
225+
<xs:pattern value="(http[s]?:/)?/.*"/>
193226
</xs:restriction>
194227
</xs:simpleType>
195228

@@ -299,15 +332,7 @@
299332

300333
<xs:complexType name="overriddenPricesType">
301334
<xs:sequence>
302-
<xs:element name="overriddenPrice" minOccurs="0" maxOccurs="unbounded">
303-
<xs:complexType>
304-
<xs:simpleContent>
305-
<xs:extension base="xs:decimal">
306-
<xs:attribute type="nonEmptyString" name="usergroup" use="optional"/>
307-
</xs:extension>
308-
</xs:simpleContent>
309-
</xs:complexType>
310-
</xs:element>
335+
<xs:element type="basePriceType" name="overriddenPrice" minOccurs="1" maxOccurs="unbounded"/>
311336
</xs:sequence>
312337
</xs:complexType>
313338

@@ -316,7 +341,7 @@
316341
<xs:element name="bonus" minOccurs="0" maxOccurs="unbounded">
317342
<xs:complexType>
318343
<xs:simpleContent>
319-
<xs:extension base="xs:decimal">
344+
<xs:extension base="bonusRangeType">
320345
<xs:attribute type="nonEmptyString" name="usergroup" use="optional"/>
321346
</xs:extension>
322347
</xs:simpleContent>
@@ -325,6 +350,12 @@
325350
</xs:sequence>
326351
</xs:complexType>
327352

353+
<xs:simpleType name="bonusRangeType">
354+
<xs:restriction base="xs:decimal">
355+
<xs:minInclusive value="-0.9"/>
356+
</xs:restriction>
357+
</xs:simpleType>
358+
328359
<xs:complexType name="sortsType">
329360
<xs:sequence>
330361
<xs:element name="sort" minOccurs="0" maxOccurs="unbounded">

0 commit comments

Comments
 (0)