<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="Import">
    <xs:annotation>
      <xs:documentation>Instrukce pro řízení importu</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Entity" type="entityType" minOccurs="0" maxOccurs="unbounded">
          <xs:annotation>
            <xs:documentation>Jednotlivé importované entity</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="instructionsType">
    <xs:sequence>
      <xs:element name="Key">
        <xs:annotation>
          <xs:documentation>Definice spojovacího klíče</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Field" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Identifikace údaje</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="name" type="xs:string" use="required"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="auto" type="xs:boolean" use="optional" default="0"/>
          <xs:attribute name="description" type="xs:string" use="optional"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="Mode">
        <xs:annotation>
          <xs:documentation>Definice zpracování podle porovnání klíčů</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name="newValue" use="optional" default="Append">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="Append"/>
                <xs:enumeration value="NoAction"/>
                <xs:enumeration value="Error"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="existingValue" use="optional" default="Update">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="Append"/>
                <xs:enumeration value="Update"/>
                <xs:enumeration value="NoAction"/>
                <xs:enumeration value="Delete"/>
                <xs:enumeration value="Auto"/>
                <xs:enumeration value="Error"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="noValue" use="optional" default="Error">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="Append"/>
                <xs:enumeration value="NoAction"/>
                <xs:enumeration value="Error"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="entityType">
    <xs:sequence>
      <xs:element name="StandAlone" type="instructionsType">
        <xs:annotation>
          <xs:documentation>Instrukce pro samostatnou entitu</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Embedded" type="instructionsType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Instrukce pro entitu vnořenou v jiné entitě</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="description" type="xs:string" use="optional"/>
    <xs:attribute name="enabled" type="xs:boolean" use="optional" default="0"/>
  </xs:complexType>
</xs:schema>