<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="StornierungBescheid" type="StornierungBescheidREVTyp"/>
  <xs:complexType name="AbgabeREVTyp">
    <xs:sequence>
      <xs:element name="AbgabeArt" type="an..5" minOccurs="0"/>
      <xs:element name="AbgabeArtAbgabenbetrag" type="n11.2" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="an..10">
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..100">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..120">
    <xs:restriction base="xs:string">
      <xs:maxLength value="120"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..20">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..2000">
    <xs:restriction base="xs:string">
      <xs:maxLength value="2000"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..21">
    <xs:restriction base="xs:string">
      <xs:maxLength value="21"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..28">
    <xs:restriction base="xs:string">
      <xs:maxLength value="28"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..3">
    <xs:restriction base="xs:string">
      <xs:maxLength value="3"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..30">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..35">
    <xs:restriction base="xs:string">
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..5">
    <xs:restriction base="xs:string">
      <xs:maxLength value="5"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..6">
    <xs:restriction base="xs:string">
      <xs:maxLength value="6"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DatenaustauschFreierVerkehrTyp">
    <xs:sequence>
      <xs:element name="Transaktion" type="TransaktionFreierVerkehrTyp"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EinzelStornierungBescheidTyp">
    <xs:sequence>
      <xs:element name="ObjektIdentifizierung" type="ObjektIdentifizierungREVTyp" minOccurs="0"/>
      <xs:element name="KopfDaten" type="KopfDatenStornierungBescheidTyp" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="KopfDatenStornierungBescheidTyp">
    <xs:sequence>
      <xs:element name="ZollBearbeiter" type="an..30" minOccurs="0"/>
      <xs:element name="StornierteRegistrierNr" type="an..21" minOccurs="0"/>
      <xs:element name="WaehrungKz" type="an..3" minOccurs="0"/>
      <xs:element name="RegistrierNrNeu" type="an..21" minOccurs="0"/>
      <xs:element name="Stornierungstexte" type="n1" minOccurs="0"/>
      <xs:element name="StornierungGrund" type="an..2000" minOccurs="0"/>
      <xs:element name="DienststelleBezeichnung" type="an..120" minOccurs="0"/>
      <xs:element name="DienststelleTelefonNr" type="an..30" minOccurs="0"/>
      <xs:element name="DienststelleStrasseHausNr" type="an..30" minOccurs="0"/>
      <xs:element name="DienststellePLZS" type="an..6" minOccurs="0"/>
      <xs:element name="DienststelleOrtS" type="an..35" minOccurs="0"/>
      <xs:element name="DienststelleOrtsteil" type="an..30" minOccurs="0"/>
      <xs:element name="DienststellePostfach" type="an..20" minOccurs="0"/>
      <xs:element name="DienststellePLZP" type="an..6" minOccurs="0"/>
      <xs:element name="DienststelleOrtP" type="an..35" minOccurs="0"/>
      <xs:element name="RegistrierKz" type="an..28" minOccurs="0"/>
      <xs:element name="Gesamtbetrag" type="n11.2" minOccurs="0"/>
      <xs:element name="Abgabe" type="AbgabeREVTyp" minOccurs="0" maxOccurs="18"/>
      <xs:element name="SicherheitsregistrierKz" type="an..28" minOccurs="0"/>
      <xs:element name="ZuLeistendeBarsicherheitBetrag" type="n11.2" minOccurs="0"/>
      <xs:element name="ZollzahlstelleBezeichnung" type="an..120" minOccurs="0"/>
      <xs:element name="ZollzahlstelleTelefonNr" type="an..30" minOccurs="0"/>
      <xs:element name="ZollzahlstelleStrasseHausNr" type="an..30" minOccurs="0"/>
      <xs:element name="ZollzahlstellePLZS" type="an..6" minOccurs="0"/>
      <xs:element name="ZollzahlstelleOrtS" type="an..35" minOccurs="0"/>
      <xs:element name="ZollzahlstelleOrtsteil" type="an..30" minOccurs="0"/>
      <xs:element name="ZollzahlstellePostfach" type="an..20" minOccurs="0"/>
      <xs:element name="ZollzahlstellePLZP" type="an..6" minOccurs="0"/>
      <xs:element name="ZollzahlstelleOrtP" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="n1">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:pattern value="\d{1}"/>
      <xs:totalDigits value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n11.2">
    <xs:restriction base="xs:decimal">
      <xs:pattern value="\d{9}\.\d{2}"/>
      <xs:maxInclusive value="999999999.99"/>
      <xs:minInclusive value="0"/>
      <xs:totalDigits value="11"/>
      <xs:fractionDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n3">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:pattern value="\d{3}"/>
      <xs:totalDigits value="3"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ObjektIdentifizierungREVTyp">
    <xs:sequence>
      <xs:element name="ObjektName" type="an..35"/>
      <xs:element name="ObjektAlias" type="an..35" minOccurs="0"/>
      <xs:element name="EDIFACTNachrichtenNr" type="an..35"/>
      <xs:element name="ZeitpunktEingang" type="xs:dateTime"/>
      <xs:element name="ShipmentReferenz" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="StornierungBescheidREVTyp">
    <xs:complexContent>
      <xs:extension base="DatenaustauschFreierVerkehrTyp">
        <xs:sequence>
          <xs:element name="EinzelStornierungBescheid" type="EinzelStornierungBescheidTyp" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TransaktionFreierVerkehrTyp">
    <xs:sequence>
      <xs:element name="IOPartner" type="an..100"/>
      <xs:element name="IODivision1" type="an..10" minOccurs="0"/>
      <xs:element name="IODivision2" type="an..10" minOccurs="0"/>
      <xs:element name="IODivision3" type="an..10" minOccurs="0"/>
      <xs:element name="IOReferenz" type="an..35"/>
      <xs:element name="IODatumZeit" type="xs:dateTime"/>
      <xs:element name="Version" type="n3" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
