|
47 | 47 | <xs:element type="bonusesType" name="bonuses" minOccurs="0" maxOccurs="1"/>
|
48 | 48 | <xs:element type="sortsType" name="sorts" minOccurs="0" maxOccurs="1"/>
|
49 | 49 | <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"/> |
50 | 72 | </xs:all>
|
51 | 73 | <xs:attribute type="nonEmptyString" name="id" use="required"/>
|
52 | 74 | </xs:complexType>
|
|
127 | 149 | </xs:element>
|
128 | 150 | </xs:sequence>
|
129 | 151 | </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> |
130 | 163 |
|
131 | 164 | <!-- URLs -->
|
132 | 165 | <xs:complexType name="urlsType">
|
|
153 | 186 | <!-- Prices -->
|
154 | 187 | <xs:complexType name="pricesType">
|
155 | 188 | <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"/> |
165 | 190 | </xs:sequence>
|
166 | 191 | </xs:complexType>
|
167 | 192 |
|
| 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 | + |
168 | 201 | <!-- Ordernumber -->
|
169 | 202 | <xs:complexType name="allOrdernumbersType">
|
170 | 203 | <xs:sequence>
|
|
189 | 222 | <!-- Simple type variations -->
|
190 | 223 | <xs:simpleType name="httpURI">
|
191 | 224 | <xs:restriction base="xs:anyURI">
|
192 |
| - <xs:pattern value="http[s]?://.*"/> |
| 225 | + <xs:pattern value="(http[s]?:/)?/.*"/> |
193 | 226 | </xs:restriction>
|
194 | 227 | </xs:simpleType>
|
195 | 228 |
|
|
299 | 332 |
|
300 | 333 | <xs:complexType name="overriddenPricesType">
|
301 | 334 | <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"/> |
311 | 336 | </xs:sequence>
|
312 | 337 | </xs:complexType>
|
313 | 338 |
|
|
316 | 341 | <xs:element name="bonus" minOccurs="0" maxOccurs="unbounded">
|
317 | 342 | <xs:complexType>
|
318 | 343 | <xs:simpleContent>
|
319 |
| - <xs:extension base="xs:decimal"> |
| 344 | + <xs:extension base="bonusRangeType"> |
320 | 345 | <xs:attribute type="nonEmptyString" name="usergroup" use="optional"/>
|
321 | 346 | </xs:extension>
|
322 | 347 | </xs:simpleContent>
|
|
325 | 350 | </xs:sequence>
|
326 | 351 | </xs:complexType>
|
327 | 352 |
|
| 353 | + <xs:simpleType name="bonusRangeType"> |
| 354 | + <xs:restriction base="xs:decimal"> |
| 355 | + <xs:minInclusive value="-0.9"/> |
| 356 | + </xs:restriction> |
| 357 | + </xs:simpleType> |
| 358 | + |
328 | 359 | <xs:complexType name="sortsType">
|
329 | 360 | <xs:sequence>
|
330 | 361 | <xs:element name="sort" minOccurs="0" maxOccurs="unbounded">
|
|
0 commit comments