<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="CancellationAtExit" type="CancellationAtExitElementType"/>
  <xs:simpleType name="an..12">
    <xs:restriction base="xs:string">
      <xs:maxLength value="12"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..14">
    <xs:restriction base="xs:string">
      <xs:maxLength value="14"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..4">
    <xs:restriction base="xs:string">
      <xs:maxLength value="4"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="CancellationAtExitElementType">
    <xs:complexContent>
      <xs:extension base="CancellationAtExitExchangeType">
        <xs:sequence>
          <xs:element name="Message" type="CancellationAtExitMessageType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CancellationAtExitExchangeType">
    <xs:sequence>
      <xs:element name="Transaction" type="CancellationAtExitTransactionType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CancellationAtExitMessageType">
    <xs:sequence>
      <xs:element name="MRN" type="mrnType">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Master Reference Number (vormals Movement Reference Number) die am Ausgang abgebrochen werden soll</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Forwarder" type="ForwarderType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CancellationAtExitTransactionType">
    <xs:sequence>
      <xs:element name="IOPartner" type="an..4">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">DAKOSY Teilnehmercode</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IOReference" type="an..14">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Einmalige und eindeutige Transaktionsidentifikationsreferenz</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IODateTime" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Datum und Uhrzeit der Nachrichtenerstellung - ISO 8601 Koordinierte Weltzeit (UTC) oder lokale Zeit mit Differenz zu UTC.</xs:documentation>
          <xs:documentation xml:lang="EN" source="Desc">Date and time of message creation - ISO 8601 Coordinated Universal Time (UTC) or local time with offset to UTC.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MessageVersion" type="an..12">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Verwendete Nachrichtenversion</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TestIndicator" type="xs:boolean" minOccurs="0">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Testkennzeichen - Gibt an, ob es sich bei der Nachricht um eine Testnachricht handelt. Wenn das Element nicht oder als "true" angegeben wurde, handelt es sich um eine Produktionsnachricht.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="eoriNumberType">
    <xs:restriction base="xs:string">
      <xs:minLength value="4"/>
      <xs:maxLength value="17"/>
      <xs:pattern value="[A-Z]{2}[0-9A-Z]{2,15}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ForwarderType">
    <xs:sequence>
      <xs:element name="DakosyCode" type="an..4">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">DAKOSY Teilnehmercode</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Identification" type="IdentificationType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="IdentificationType">
    <xs:sequence>
      <xs:element name="EORINumber" type="eoriNumberType">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">EORI-Nummer</xs:documentation>
          <xs:documentation xml:lang="EN" source="Desc">EORI number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BranchNumber" type="n4">
        <xs:annotation>
          <xs:documentation xml:lang="DE" source="Desc">Niederlassungsnummer, wurde keine Niederlassungsnummer beantragt, ist 0000 einzutragen.</xs:documentation>
          <xs:documentation xml:lang="EN" source="Desc">Branch number, set to 0000 if not registered.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="mrnType">
    <xs:restriction base="xs:string">
      <xs:length value="18"/>
      <xs:pattern value="\d{2}[A-Z]{2}[a-zA-Z\d]{14}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n4">
    <xs:restriction base="xs:integer">
      <xs:pattern value="\d{4}"/>
      <xs:totalDigits value="4"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
