﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           attributeFormDefault="unqualified"
           elementFormDefault="qualified"
           >
  <xs:element name="PRODUCTSFEED">
    <xs:complexType>
      <xs:all>
        <xs:element name="PRODUCTS" minOccurs="1" maxOccurs="1" nillable="false">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PRODUCT" maxOccurs="unbounded" nillable="false">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="ID" type="xs:string" />
                    <xs:element name="NAME" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false">
                      <xs:annotation>
                        <xs:documentation>
                          Přesný název produktu
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Popis daného produktu. Podporovaný formát textu je plain text nebo markdown syntaxe
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="BRAND" minOccurs="1" maxOccurs="1" nillable="false">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="ID" type="xs:unsignedByte" use="optional" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="CATEGORY" minOccurs="1" maxOccurs="1" nillable="false">
                      <xs:annotation>
                        <xs:documentation>
                          Produkt musí mít danou kategorii. Pro přesné zařazení uvádějte ID naší kategorie přímo v těle elementu,
                          pro pokus o napárování vaší kategorie s naší stačí zadat do těla elementu název vaší kategorie
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="ID" type="xs:unsignedByte" use="optional" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MANUFACTURER" minOccurs="0" maxOccurs="1" nillable="false">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="ID" type="xs:unsignedByte" use="optional" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="NUMBER" type="xs:string" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="GROUPINGID" type="xs:string" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="CODE" minOccurs="0" maxOccurs="1" nillable="false">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="EAN" minOccurs="1" maxOccurs="1" nillable="false">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>
                                  Platný EAN13 kód výrobku. Musí se jednat o validní kód včetně
                                  kontrolní číslice
                                </xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:pattern value="\d{8,14}"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="ISBN" minOccurs="0" maxOccurs="1" nillable="false">
                            <xs:simpleType>
                              <xs:annotation>
                                <xs:documentation>
                                  ISBN alfanumerický kód určený pro jednoznačnou identifikaci knižních
                                  vydání. Formáty ISBN-10 a ISBN-13.
                                </xs:documentation>
                              </xs:annotation>
                              <xs:restriction base="xs:string">
                                <xs:minLength value="10"/>
                                <xs:maxLength value="20"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="ATTRIBUTES" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>
                          Zde se definují atributy produktu
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ATTRIBUTE" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="VAL" type="xs:string" />
                                <xs:element name="UNIT" type="xs:string" minOccurs="0" maxOccurs="1" nillable="false"/>
                              </xs:sequence>
                              <xs:attribute name="NAME" type="xs:string" use="optional"/>
                              <xs:attribute name="ID" type="xs:unsignedByte" use="optional" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IMAGES" minOccurs="0" maxOccurs="1">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="IMAGE" maxOccurs="30">
                            <xs:annotation>
                              <xs:documentation>Url adresa obrázku produktu</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:attribute name="URL" type="xs:anyURI" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RELEASEDATE" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="PRODUCTURL" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:attribute name="VERSION" type="xs:unsignedByte" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>