cdon_feed_validator 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +94 -0
- data/Guardfile +70 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/cdon_feed_validator.gemspec +48 -0
- data/lib/.DS_Store +0 -0
- data/lib/cdon_feed_validator.rb +13 -0
- data/lib/cdon_feed_validator/product.rb +11 -0
- data/lib/cdon_feed_validator/validator.rb +44 -0
- data/lib/xsd/.DS_Store +0 -0
- data/lib/xsd/attributes.xsd +1986 -0
- data/lib/xsd/availability.xsd +56 -0
- data/lib/xsd/categories.xsd +2255 -0
- data/lib/xsd/dimensions.xsd +68 -0
- data/lib/xsd/energy.xsd +43 -0
- data/lib/xsd/identities.xsd +44 -0
- data/lib/xsd/media.xsd +48 -0
- data/lib/xsd/price.xsd +174 -0
- data/lib/xsd/product.xsd +117 -0
- data/lib/xsd/types.xsd +26 -0
- data/lib/xsd/variants.xsd +84 -0
- metadata +184 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema
|
|
3
|
+
attributeFormDefault="unqualified"
|
|
4
|
+
elementFormDefault="qualified"
|
|
5
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
6
|
+
|
|
7
|
+
<xs:include schemaLocation="types.xsd" />
|
|
8
|
+
|
|
9
|
+
<xs:simpleType name="dimensionValue">
|
|
10
|
+
<xs:restriction base="nonNegativeDecimal">
|
|
11
|
+
<xs:fractionDigits value="3" />
|
|
12
|
+
</xs:restriction>
|
|
13
|
+
</xs:simpleType>
|
|
14
|
+
|
|
15
|
+
<xs:simpleType name="sizeUnit">
|
|
16
|
+
<xs:restriction base="xs:token">
|
|
17
|
+
<xs:enumeration value="um" />
|
|
18
|
+
<xs:enumeration value="µm" />
|
|
19
|
+
<xs:enumeration value="mm" />
|
|
20
|
+
<xs:enumeration value="cm" />
|
|
21
|
+
<xs:enumeration value="dm" />
|
|
22
|
+
<xs:enumeration value="m" />
|
|
23
|
+
<xs:enumeration value="km" />
|
|
24
|
+
<xs:enumeration value="in" />
|
|
25
|
+
<xs:enumeration value="ft" />
|
|
26
|
+
<xs:enumeration value="yd" />
|
|
27
|
+
</xs:restriction>
|
|
28
|
+
</xs:simpleType>
|
|
29
|
+
|
|
30
|
+
<xs:complexType name="size">
|
|
31
|
+
<xs:sequence>
|
|
32
|
+
<xs:element name="value" minOccurs="1" maxOccurs="1" type="dimensionValue" />
|
|
33
|
+
<xs:element name="unit" minOccurs="1" maxOccurs="1" type="sizeUnit" />
|
|
34
|
+
</xs:sequence>
|
|
35
|
+
</xs:complexType>
|
|
36
|
+
|
|
37
|
+
<xs:simpleType name="massUnit">
|
|
38
|
+
<xs:restriction base="xs:token">
|
|
39
|
+
<xs:enumeration value="mcg" />
|
|
40
|
+
<xs:enumeration value="µg" />
|
|
41
|
+
<xs:enumeration value="mg" />
|
|
42
|
+
<xs:enumeration value="g" />
|
|
43
|
+
<xs:enumeration value="hg" />
|
|
44
|
+
<xs:enumeration value="kg" />
|
|
45
|
+
<xs:enumeration value="t" />
|
|
46
|
+
<xs:enumeration value="gr" />
|
|
47
|
+
<xs:enumeration value="oz" />
|
|
48
|
+
<xs:enumeration value="lb" />
|
|
49
|
+
</xs:restriction>
|
|
50
|
+
</xs:simpleType>
|
|
51
|
+
|
|
52
|
+
<xs:complexType name="mass">
|
|
53
|
+
<xs:sequence>
|
|
54
|
+
<xs:element name="value" minOccurs="1" maxOccurs="1" type="dimensionValue" />
|
|
55
|
+
<xs:element name="unit" minOccurs="1" maxOccurs="1" type="massUnit" />
|
|
56
|
+
</xs:sequence>
|
|
57
|
+
</xs:complexType>
|
|
58
|
+
|
|
59
|
+
<xs:complexType name="dimensions">
|
|
60
|
+
<xs:sequence>
|
|
61
|
+
<xs:element name="height" minOccurs="0" maxOccurs="1" type="size" />
|
|
62
|
+
<xs:element name="width" minOccurs="0" maxOccurs="1" type="size" />
|
|
63
|
+
<xs:element name="length" minOccurs="0" maxOccurs="1" type="size" />
|
|
64
|
+
<xs:element name="weight" minOccurs="0" maxOccurs="1" type="mass" />
|
|
65
|
+
</xs:sequence>
|
|
66
|
+
</xs:complexType>
|
|
67
|
+
|
|
68
|
+
</xs:schema>
|
data/lib/xsd/energy.xsd
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema
|
|
3
|
+
attributeFormDefault="unqualified"
|
|
4
|
+
elementFormDefault="qualified"
|
|
5
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
6
|
+
|
|
7
|
+
<xs:include schemaLocation="types.xsd" />
|
|
8
|
+
|
|
9
|
+
<xs:simpleType name="energyClass">
|
|
10
|
+
<xs:annotation>
|
|
11
|
+
<xs:documentation>
|
|
12
|
+
For more information, please visit https://europa.eu/youreurope/business/environment/energy-labels/index_en.htm
|
|
13
|
+
</xs:documentation>
|
|
14
|
+
</xs:annotation>
|
|
15
|
+
<xs:restriction base="xs:token">
|
|
16
|
+
<xs:enumeration value="APlusPlusPlus" />
|
|
17
|
+
<xs:enumeration value="APlusPlus" />
|
|
18
|
+
<xs:enumeration value="APlus" />
|
|
19
|
+
<xs:enumeration value="A" />
|
|
20
|
+
<xs:enumeration value="B" />
|
|
21
|
+
<xs:enumeration value="C" />
|
|
22
|
+
<xs:enumeration value="D" />
|
|
23
|
+
<xs:enumeration value="E" />
|
|
24
|
+
<xs:enumeration value="F" />
|
|
25
|
+
<xs:enumeration value="G" />
|
|
26
|
+
</xs:restriction>
|
|
27
|
+
</xs:simpleType>
|
|
28
|
+
|
|
29
|
+
<xs:complexType name="energyClassification">
|
|
30
|
+
<xs:annotation>
|
|
31
|
+
<xs:documentation>
|
|
32
|
+
The URLs accept JPEG or PNG images, and also PDF (in which case it is converted to an image).
|
|
33
|
+
</xs:documentation>
|
|
34
|
+
</xs:annotation>
|
|
35
|
+
<xs:sequence>
|
|
36
|
+
<xs:element name="class" minOccurs="1" maxOccurs="1" type="energyClass" />
|
|
37
|
+
<xs:element name="label" minOccurs="1" maxOccurs="1" type="url" />
|
|
38
|
+
<xs:element name="arrow" minOccurs="1" maxOccurs="1" type="url" />
|
|
39
|
+
<xs:element name="sheet" minOccurs="1" maxOccurs="1" type="url" />
|
|
40
|
+
</xs:sequence>
|
|
41
|
+
</xs:complexType>
|
|
42
|
+
|
|
43
|
+
</xs:schema>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema
|
|
3
|
+
attributeFormDefault="unqualified"
|
|
4
|
+
elementFormDefault="qualified"
|
|
5
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
6
|
+
|
|
7
|
+
<xs:include schemaLocation="types.xsd" />
|
|
8
|
+
|
|
9
|
+
<xs:simpleType name="id">
|
|
10
|
+
<xs:restriction base="xs:token">
|
|
11
|
+
<xs:pattern value="[a-zA-Z0-9/_-]{1,40}" />
|
|
12
|
+
</xs:restriction>
|
|
13
|
+
</xs:simpleType>
|
|
14
|
+
|
|
15
|
+
<xs:simpleType name="gtin">
|
|
16
|
+
<xs:restriction base="xs:token">
|
|
17
|
+
<xs:pattern value="[0-9]{8}|[0-9]{12,14}" />
|
|
18
|
+
</xs:restriction>
|
|
19
|
+
</xs:simpleType>
|
|
20
|
+
|
|
21
|
+
<xs:simpleType name="mpn">
|
|
22
|
+
<xs:restriction base="xs:token">
|
|
23
|
+
<xs:minLength value="1" />
|
|
24
|
+
<xs:maxLength value="50" />
|
|
25
|
+
</xs:restriction>
|
|
26
|
+
</xs:simpleType>
|
|
27
|
+
|
|
28
|
+
<xs:simpleType name="sku">
|
|
29
|
+
<xs:restriction base="xs:token">
|
|
30
|
+
<xs:minLength value="1" />
|
|
31
|
+
<xs:maxLength value="50" />
|
|
32
|
+
</xs:restriction>
|
|
33
|
+
</xs:simpleType>
|
|
34
|
+
|
|
35
|
+
<xs:complexType name="identity">
|
|
36
|
+
<xs:sequence>
|
|
37
|
+
<xs:element minOccurs="1" maxOccurs="1" name="id" type="id" />
|
|
38
|
+
<xs:element minOccurs="0" maxOccurs="1" name="gtin" type="gtin" />
|
|
39
|
+
<xs:element minOccurs="0" maxOccurs="1" name="mpn" type="mpn" />
|
|
40
|
+
<xs:element minOccurs="0" maxOccurs="1" name="sku" type="sku" />
|
|
41
|
+
</xs:sequence>
|
|
42
|
+
</xs:complexType>
|
|
43
|
+
|
|
44
|
+
</xs:schema>
|
data/lib/xsd/media.xsd
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema id="media"
|
|
3
|
+
targetNamespace="https://schemas.cdon.com/product/4.0/4.1.0/media"
|
|
4
|
+
xmlns="https://schemas.cdon.com/product/4.0/4.1.0/media"
|
|
5
|
+
attributeFormDefault="unqualified"
|
|
6
|
+
elementFormDefault="qualified"
|
|
7
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
8
|
+
|
|
9
|
+
<xs:include schemaLocation="identities.xsd" />
|
|
10
|
+
<xs:include schemaLocation="types.xsd" />
|
|
11
|
+
|
|
12
|
+
<xs:complexType name="images">
|
|
13
|
+
<xs:sequence>
|
|
14
|
+
<xs:element name="main" type="url" minOccurs="1" maxOccurs="1" />
|
|
15
|
+
<xs:element name="extra" type="url" minOccurs="0" maxOccurs="10" />
|
|
16
|
+
</xs:sequence>
|
|
17
|
+
</xs:complexType>
|
|
18
|
+
|
|
19
|
+
<xs:simpleType name="youtubeId">
|
|
20
|
+
<xs:restriction base="xs:token">
|
|
21
|
+
<xs:minLength value="1" />
|
|
22
|
+
<xs:maxLength value="20" />
|
|
23
|
+
</xs:restriction>
|
|
24
|
+
</xs:simpleType>
|
|
25
|
+
|
|
26
|
+
<xs:complexType name="videos">
|
|
27
|
+
<xs:sequence>
|
|
28
|
+
<xs:element name="youtube" type="youtubeId" minOccurs="0" maxOccurs="1" />
|
|
29
|
+
</xs:sequence>
|
|
30
|
+
</xs:complexType>
|
|
31
|
+
|
|
32
|
+
<xs:complexType name="product">
|
|
33
|
+
<xs:sequence>
|
|
34
|
+
<xs:element name="id" type="id" />
|
|
35
|
+
<xs:element name="images" type="images" minOccurs="1" maxOccurs="1" />
|
|
36
|
+
<xs:element name="videos" type="videos" minOccurs="0" maxOccurs="1" />
|
|
37
|
+
</xs:sequence>
|
|
38
|
+
</xs:complexType>
|
|
39
|
+
|
|
40
|
+
<xs:element name="marketplace">
|
|
41
|
+
<xs:complexType>
|
|
42
|
+
<xs:sequence>
|
|
43
|
+
<xs:element name="product" type="product" minOccurs="1" maxOccurs="unbounded" />
|
|
44
|
+
</xs:sequence>
|
|
45
|
+
</xs:complexType>
|
|
46
|
+
</xs:element>
|
|
47
|
+
|
|
48
|
+
</xs:schema>
|
data/lib/xsd/price.xsd
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema id="price"
|
|
3
|
+
targetNamespace="https://schemas.cdon.com/product/4.0/4.1.0/price"
|
|
4
|
+
xmlns="https://schemas.cdon.com/product/4.0/4.1.0/price"
|
|
5
|
+
attributeFormDefault="unqualified"
|
|
6
|
+
elementFormDefault="qualified"
|
|
7
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
8
|
+
|
|
9
|
+
<xs:include schemaLocation="identities.xsd" />
|
|
10
|
+
<xs:include schemaLocation="types.xsd" />
|
|
11
|
+
|
|
12
|
+
<xs:simpleType name="money">
|
|
13
|
+
<xs:annotation>
|
|
14
|
+
<xs:documentation>Amount includes VAT</xs:documentation>
|
|
15
|
+
</xs:annotation>
|
|
16
|
+
<xs:restriction base="xs:decimal">
|
|
17
|
+
<xs:fractionDigits value="2" />
|
|
18
|
+
<xs:minInclusive value="0" />
|
|
19
|
+
<xs:maxInclusive value="1000000" />
|
|
20
|
+
</xs:restriction>
|
|
21
|
+
</xs:simpleType>
|
|
22
|
+
|
|
23
|
+
<xs:simpleType name="vatPercentage">
|
|
24
|
+
<xs:annotation>
|
|
25
|
+
<xs:documentation>This is a percentage value, i.e. 25 for 25%, not 0.25.</xs:documentation>
|
|
26
|
+
</xs:annotation>
|
|
27
|
+
<xs:restriction base="xs:decimal">
|
|
28
|
+
<xs:minInclusive value="0" />
|
|
29
|
+
<xs:maxInclusive value="100" />
|
|
30
|
+
<xs:fractionDigits value="2" />
|
|
31
|
+
</xs:restriction>
|
|
32
|
+
</xs:simpleType>
|
|
33
|
+
|
|
34
|
+
<xs:complexType name="marketSE">
|
|
35
|
+
<xs:complexContent>
|
|
36
|
+
<xs:extension base="market">
|
|
37
|
+
<xs:sequence>
|
|
38
|
+
<xs:element name="shippingCost" minOccurs="1" maxOccurs="1">
|
|
39
|
+
<xs:simpleType>
|
|
40
|
+
<xs:restriction base="xs:decimal">
|
|
41
|
+
<xs:enumeration value="0" />
|
|
42
|
+
<xs:enumeration value="19" />
|
|
43
|
+
<xs:enumeration value="29" />
|
|
44
|
+
<xs:enumeration value="39" />
|
|
45
|
+
<xs:enumeration value="49" />
|
|
46
|
+
<xs:enumeration value="59" />
|
|
47
|
+
<xs:enumeration value="79" />
|
|
48
|
+
<xs:enumeration value="99" />
|
|
49
|
+
<xs:enumeration value="199" />
|
|
50
|
+
<xs:enumeration value="395" />
|
|
51
|
+
<xs:enumeration value="495" />
|
|
52
|
+
</xs:restriction>
|
|
53
|
+
</xs:simpleType>
|
|
54
|
+
</xs:element>
|
|
55
|
+
</xs:sequence>
|
|
56
|
+
</xs:extension>
|
|
57
|
+
</xs:complexContent>
|
|
58
|
+
</xs:complexType>
|
|
59
|
+
|
|
60
|
+
<xs:complexType name="marketDK">
|
|
61
|
+
<xs:complexContent>
|
|
62
|
+
<xs:extension base="market">
|
|
63
|
+
<xs:sequence>
|
|
64
|
+
<xs:element name="shippingCost" minOccurs="1" maxOccurs="1">
|
|
65
|
+
<xs:simpleType>
|
|
66
|
+
<xs:restriction base="xs:decimal">
|
|
67
|
+
<xs:enumeration value="0" />
|
|
68
|
+
<xs:enumeration value="19" />
|
|
69
|
+
<xs:enumeration value="29" />
|
|
70
|
+
<xs:enumeration value="39" />
|
|
71
|
+
<xs:enumeration value="49" />
|
|
72
|
+
<xs:enumeration value="59" />
|
|
73
|
+
<xs:enumeration value="79" />
|
|
74
|
+
<xs:enumeration value="99" />
|
|
75
|
+
<xs:enumeration value="199" />
|
|
76
|
+
<xs:enumeration value="495" />
|
|
77
|
+
</xs:restriction>
|
|
78
|
+
</xs:simpleType>
|
|
79
|
+
</xs:element>
|
|
80
|
+
</xs:sequence>
|
|
81
|
+
</xs:extension>
|
|
82
|
+
</xs:complexContent>
|
|
83
|
+
</xs:complexType>
|
|
84
|
+
|
|
85
|
+
<xs:complexType name="marketNO">
|
|
86
|
+
<xs:complexContent>
|
|
87
|
+
<xs:extension base="market">
|
|
88
|
+
<xs:sequence>
|
|
89
|
+
<xs:element name="shippingCost" minOccurs="1" maxOccurs="1">
|
|
90
|
+
<xs:simpleType>
|
|
91
|
+
<xs:restriction base="xs:decimal">
|
|
92
|
+
<xs:enumeration value="0" />
|
|
93
|
+
<xs:enumeration value="19" />
|
|
94
|
+
<xs:enumeration value="39" />
|
|
95
|
+
<xs:enumeration value="49" />
|
|
96
|
+
<xs:enumeration value="59" />
|
|
97
|
+
<xs:enumeration value="79" />
|
|
98
|
+
<xs:enumeration value="99" />
|
|
99
|
+
<xs:enumeration value="399" />
|
|
100
|
+
<xs:enumeration value="799" />
|
|
101
|
+
<xs:enumeration value="995" />
|
|
102
|
+
</xs:restriction>
|
|
103
|
+
</xs:simpleType>
|
|
104
|
+
</xs:element>
|
|
105
|
+
</xs:sequence>
|
|
106
|
+
</xs:extension>
|
|
107
|
+
</xs:complexContent>
|
|
108
|
+
</xs:complexType>
|
|
109
|
+
|
|
110
|
+
<xs:complexType name="marketFI">
|
|
111
|
+
<xs:complexContent>
|
|
112
|
+
<xs:extension base="market">
|
|
113
|
+
<xs:sequence>
|
|
114
|
+
<xs:element name="shippingCost" minOccurs="1" maxOccurs="1">
|
|
115
|
+
<xs:simpleType>
|
|
116
|
+
<xs:restriction base="xs:decimal">
|
|
117
|
+
<xs:enumeration value="0" />
|
|
118
|
+
<xs:enumeration value="1.95" />
|
|
119
|
+
<xs:enumeration value="2.95" />
|
|
120
|
+
<xs:enumeration value="3.95" />
|
|
121
|
+
<xs:enumeration value="4.90" />
|
|
122
|
+
<xs:enumeration value="4.95" />
|
|
123
|
+
<xs:enumeration value="5.95" />
|
|
124
|
+
<xs:enumeration value="7.95" />
|
|
125
|
+
<xs:enumeration value="9.95" />
|
|
126
|
+
<xs:enumeration value="59" />
|
|
127
|
+
<xs:enumeration value="79" />
|
|
128
|
+
</xs:restriction>
|
|
129
|
+
</xs:simpleType>
|
|
130
|
+
</xs:element>
|
|
131
|
+
</xs:sequence>
|
|
132
|
+
</xs:extension>
|
|
133
|
+
</xs:complexContent>
|
|
134
|
+
</xs:complexType>
|
|
135
|
+
|
|
136
|
+
<xs:complexType name="marketB2B">
|
|
137
|
+
<xs:complexContent>
|
|
138
|
+
<xs:extension base="market" />
|
|
139
|
+
</xs:complexContent>
|
|
140
|
+
</xs:complexType>
|
|
141
|
+
|
|
142
|
+
<xs:complexType name="market" abstract="true">
|
|
143
|
+
<xs:annotation>
|
|
144
|
+
<xs:documentation>
|
|
145
|
+
Please see the documentation regarding valid values for the "shippingCost"- and "vatPercentage"-elements.
|
|
146
|
+
</xs:documentation>
|
|
147
|
+
</xs:annotation>
|
|
148
|
+
<xs:sequence>
|
|
149
|
+
<xs:element name="salePrice" type="money" minOccurs="1" maxOccurs="1" />
|
|
150
|
+
<xs:element name="originalPrice" type="money" minOccurs="1" maxOccurs="1" />
|
|
151
|
+
<xs:element name="vatPercentage" type="vatPercentage" minOccurs="1" maxOccurs="1" />
|
|
152
|
+
</xs:sequence>
|
|
153
|
+
</xs:complexType>
|
|
154
|
+
|
|
155
|
+
<xs:complexType name="product">
|
|
156
|
+
<xs:sequence>
|
|
157
|
+
<xs:element name="id" type="id" minOccurs="1" maxOccurs="1" />
|
|
158
|
+
<xs:element name="se" type="marketSE" minOccurs="0" maxOccurs="1" />
|
|
159
|
+
<xs:element name="dk" type="marketDK" minOccurs="0" maxOccurs="1" />
|
|
160
|
+
<xs:element name="no" type="marketNO" minOccurs="0" maxOccurs="1" />
|
|
161
|
+
<xs:element name="fi" type="marketFI" minOccurs="0" maxOccurs="1" />
|
|
162
|
+
<xs:element name="b2b_se" type="marketB2B" minOccurs="0" maxOccurs="1" />
|
|
163
|
+
</xs:sequence>
|
|
164
|
+
</xs:complexType>
|
|
165
|
+
|
|
166
|
+
<xs:element name="marketplace">
|
|
167
|
+
<xs:complexType>
|
|
168
|
+
<xs:sequence>
|
|
169
|
+
<xs:element name="product" type="product" minOccurs="1" maxOccurs="unbounded" />
|
|
170
|
+
</xs:sequence>
|
|
171
|
+
</xs:complexType>
|
|
172
|
+
</xs:element>
|
|
173
|
+
|
|
174
|
+
</xs:schema>
|
data/lib/xsd/product.xsd
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema id="product"
|
|
3
|
+
targetNamespace="https://schemas.cdon.com/product/4.0/4.1.0/product"
|
|
4
|
+
xmlns="https://schemas.cdon.com/product/4.0/4.1.0/product"
|
|
5
|
+
attributeFormDefault="unqualified"
|
|
6
|
+
elementFormDefault="qualified"
|
|
7
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
8
|
+
|
|
9
|
+
<xs:include schemaLocation="identities.xsd" />
|
|
10
|
+
<xs:include schemaLocation="types.xsd" />
|
|
11
|
+
<xs:include schemaLocation="dimensions.xsd" />
|
|
12
|
+
<xs:include schemaLocation="energy.xsd" />
|
|
13
|
+
<xs:include schemaLocation="categories.xsd" />
|
|
14
|
+
<xs:include schemaLocation="attributes.xsd" />
|
|
15
|
+
<xs:include schemaLocation="variants.xsd" />
|
|
16
|
+
|
|
17
|
+
<xs:simpleType name="titleString">
|
|
18
|
+
<xs:restriction base="xs:token">
|
|
19
|
+
<xs:minLength value="1" />
|
|
20
|
+
<xs:maxLength value="150" />
|
|
21
|
+
</xs:restriction>
|
|
22
|
+
</xs:simpleType>
|
|
23
|
+
|
|
24
|
+
<xs:complexType name="title">
|
|
25
|
+
<xs:sequence>
|
|
26
|
+
<xs:element name="default" minOccurs="1" maxOccurs="1" type="titleString" />
|
|
27
|
+
<xs:element name="se" minOccurs="0" maxOccurs="1" type="titleString" />
|
|
28
|
+
<xs:element name="dk" minOccurs="0" maxOccurs="1" type="titleString" />
|
|
29
|
+
<xs:element name="no" minOccurs="0" maxOccurs="1" type="titleString" />
|
|
30
|
+
<xs:element name="fi" minOccurs="0" maxOccurs="1" type="titleString" />
|
|
31
|
+
<xs:element name="b2b_se" minOccurs="0" maxOccurs="1" type="titleString" />
|
|
32
|
+
</xs:sequence>
|
|
33
|
+
</xs:complexType>
|
|
34
|
+
|
|
35
|
+
<xs:simpleType name="descriptionString">
|
|
36
|
+
<xs:restriction base="xs:token">
|
|
37
|
+
<xs:minLength value="1" />
|
|
38
|
+
<xs:maxLength value="2000" />
|
|
39
|
+
</xs:restriction>
|
|
40
|
+
</xs:simpleType>
|
|
41
|
+
|
|
42
|
+
<xs:complexType name="description">
|
|
43
|
+
<xs:sequence>
|
|
44
|
+
<xs:element name="default" minOccurs="1" maxOccurs="1" type="descriptionString" />
|
|
45
|
+
<xs:element name="se" minOccurs="0" maxOccurs="1" type="descriptionString" />
|
|
46
|
+
<xs:element name="dk" minOccurs="0" maxOccurs="1" type="descriptionString" />
|
|
47
|
+
<xs:element name="no" minOccurs="0" maxOccurs="1" type="descriptionString" />
|
|
48
|
+
<xs:element name="fi" minOccurs="0" maxOccurs="1" type="descriptionString" />
|
|
49
|
+
<xs:element name="b2b_se" minOccurs="0" maxOccurs="1" type="descriptionString" />
|
|
50
|
+
</xs:sequence>
|
|
51
|
+
</xs:complexType>
|
|
52
|
+
|
|
53
|
+
<xs:simpleType name="brand">
|
|
54
|
+
<xs:restriction base="xs:token">
|
|
55
|
+
<xs:minLength value="1" />
|
|
56
|
+
<xs:maxLength value="70" />
|
|
57
|
+
</xs:restriction>
|
|
58
|
+
</xs:simpleType>
|
|
59
|
+
|
|
60
|
+
<xs:simpleType name="uspString">
|
|
61
|
+
<xs:restriction base="xs:token">
|
|
62
|
+
<xs:minLength value="1" />
|
|
63
|
+
<xs:maxLength value="50" />
|
|
64
|
+
</xs:restriction>
|
|
65
|
+
</xs:simpleType>
|
|
66
|
+
|
|
67
|
+
<xs:complexType name="uspValue">
|
|
68
|
+
<xs:sequence>
|
|
69
|
+
<xs:element name="default" minOccurs="1" maxOccurs="1" type="uspString" />
|
|
70
|
+
<xs:element name="se" minOccurs="0" maxOccurs="1" type="uspString" />
|
|
71
|
+
<xs:element name="dk" minOccurs="0" maxOccurs="1" type="uspString" />
|
|
72
|
+
<xs:element name="no" minOccurs="0" maxOccurs="1" type="uspString" />
|
|
73
|
+
<xs:element name="fi" minOccurs="0" maxOccurs="1" type="uspString" />
|
|
74
|
+
<xs:element name="b2b_se" minOccurs="0" maxOccurs="1" type="uspString" />
|
|
75
|
+
</xs:sequence>
|
|
76
|
+
</xs:complexType>
|
|
77
|
+
|
|
78
|
+
<xs:complexType name="usp">
|
|
79
|
+
<xs:sequence>
|
|
80
|
+
<xs:element name="value" minOccurs="1" maxOccurs="5" type="uspValue" />
|
|
81
|
+
</xs:sequence>
|
|
82
|
+
</xs:complexType>
|
|
83
|
+
|
|
84
|
+
<xs:simpleType name="releaseDate">
|
|
85
|
+
<xs:restriction base="xs:date">
|
|
86
|
+
<xs:minExclusive value="1900-01-01" />
|
|
87
|
+
<xs:maxInclusive value="2079-06-06" />
|
|
88
|
+
</xs:restriction>
|
|
89
|
+
</xs:simpleType>
|
|
90
|
+
|
|
91
|
+
<xs:complexType name="product">
|
|
92
|
+
<xs:sequence>
|
|
93
|
+
<xs:element minOccurs="1" maxOccurs="1" name="identity" type="identity" />
|
|
94
|
+
<xs:element minOccurs="1" maxOccurs="1" name="title" type="title" />
|
|
95
|
+
<xs:element minOccurs="1" maxOccurs="1" name="description" type="description" />
|
|
96
|
+
<xs:element minOccurs="1" maxOccurs="1" name="category" type="category" />
|
|
97
|
+
<xs:element minOccurs="0" maxOccurs="1" name="brand" type="brand" />
|
|
98
|
+
<xs:element minOccurs="0" maxOccurs="1" name="usp" type="usp" />
|
|
99
|
+
<xs:element minOccurs="0" maxOccurs="1" name="energy" type="energyClassification" />
|
|
100
|
+
<xs:element minOccurs="0" maxOccurs="1" name="dimensions" type="dimensions" />
|
|
101
|
+
<xs:element minOccurs="0" maxOccurs="1" name="releaseDate" type="releaseDate" />
|
|
102
|
+
<xs:element minOccurs="0" maxOccurs="1" name="isAdult" type="xs:boolean" />
|
|
103
|
+
<xs:element minOccurs="0" maxOccurs="1" name="isDrug" type="xs:boolean" />
|
|
104
|
+
<xs:element minOccurs="0" maxOccurs="1" name="isPreOwned" type="xs:boolean" />
|
|
105
|
+
<xs:element minOccurs="0" maxOccurs="1" name="variants" type="variants" />
|
|
106
|
+
</xs:sequence>
|
|
107
|
+
</xs:complexType>
|
|
108
|
+
|
|
109
|
+
<xs:element name="marketplace">
|
|
110
|
+
<xs:complexType>
|
|
111
|
+
<xs:sequence>
|
|
112
|
+
<xs:element name="product" type="product" minOccurs="1" maxOccurs="unbounded" />
|
|
113
|
+
</xs:sequence>
|
|
114
|
+
</xs:complexType>
|
|
115
|
+
</xs:element>
|
|
116
|
+
|
|
117
|
+
</xs:schema>
|