<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="SwissGoodsDeclaration" type="SwissGoodsDeclarationCHZAIETyp">
    <xs:annotation>
      <xs:documentation>Version 001 - Release 013</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AdditionalTaxSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="type" type="n..4"/>
      <xs:element name="key" type="an..3" minOccurs="0"/>
      <xs:element name="quantity" type="n..12.3" minOccurs="0"/>
      <xs:element name="rate" type="n..7.2" minOccurs="0"/>
      <xs:element name="rateConfirmation" type="indicator" minOccurs="0"/>
      <xs:element name="alcoholLevel" type="n..4.1" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="an..1">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <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..12">
    <xs:restriction base="xs:string">
      <xs:maxLength value="12"/>
    </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..16">
    <xs:restriction base="xs:string">
      <xs:maxLength value="16"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..17">
    <xs:restriction base="xs:string">
      <xs:maxLength value="17"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..2">
    <xs:restriction base="xs:string">
      <xs:maxLength value="2"/>
    </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..22">
    <xs:restriction base="xs:string">
      <xs:maxLength value="22"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..26">
    <xs:restriction base="xs:string">
      <xs:maxLength value="26"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..27">
    <xs:restriction base="xs:string">
      <xs:maxLength value="27"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..280">
    <xs:restriction base="xs:string">
      <xs:maxLength value="280"/>
    </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..4">
    <xs:restriction base="xs:string">
      <xs:maxLength value="4"/>
    </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..50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..6">
    <xs:restriction base="xs:string">
      <xs:maxLength value="6"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..70">
    <xs:restriction base="xs:string">
      <xs:maxLength value="70"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..8">
    <xs:restriction base="xs:string">
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..9">
    <xs:restriction base="xs:string">
      <xs:maxLength value="9"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ApplicationInternalDataAdditionalDetailsDataType">
    <xs:sequence>
      <xs:element name="Key" type="an..35" minOccurs="0"/>
      <xs:element name="Value" type="an..100" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ApplicationInternalDataAdditionalDetailsType">
    <xs:sequence>
      <xs:element name="Data" type="ApplicationInternalDataAdditionalDetailsDataType" minOccurs="0" maxOccurs="999"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ApplicationInternalDataType">
    <xs:sequence>
      <xs:element name="AdditionalDetails" type="ApplicationInternalDataAdditionalDetailsType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AuthorizedConsigneeSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="authorizedConsigneeReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BailorSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="bailorReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CarrierSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="carrierReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConsigneeSecuritySwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="consigneeSecurityReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConsigneeSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="consigneeReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConsignorSecuritySwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="consignorSecurityReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConsignorSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="consignorReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DatenaustauschSCHWEIZTyp">
    <xs:sequence>
      <xs:element name="Transaktion" type="TransaktionSCHWEIZTyp" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DeclarantSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EinzelSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="ObjektIdentifizierung" type="ObjektidentifizierungCHZAIETyp" minOccurs="0"/>
      <xs:element name="Header" type="KopfSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="GoodsItem" type="PositionSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="999"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FeeSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="type" type="n..4"/>
      <xs:element name="quantity" type="n..10.1" minOccurs="0"/>
      <xs:element name="rate" type="n..7.2" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ImporterSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="importerReference" type="an..22" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="indicator">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1"/>
      <xs:pattern value="[ 0N1JY]"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="KopfSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="dispatchCountry" type="an..2" minOccurs="0"/>
      <xs:element name="dispatchCountryConfirmation" type="an..1" minOccurs="0"/>
      <xs:element name="transportInContainer" type="indicator" minOccurs="0"/>
      <xs:element name="consignor" type="ConsignorSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="importer" type="ImporterSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="consignee" type="ConsigneeSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="declarant" type="DeclarantSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="consignorSecurity" type="ConsignorSecuritySwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="consigneeSecurity" type="ConsigneeSecuritySwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="carrier" type="CarrierSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="vendee" type="VendeeSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="bailor" type="BailorSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="authorizedConsignee" type="AuthorizedConsigneeSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="incoterms" type="an..3" minOccurs="0"/>
      <xs:element name="deliveryDestination" type="an..2" minOccurs="0"/>
      <xs:element name="previousDocument" type="PreviousDocumentSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="9"/>
      <xs:element name="placeOfLoading" type="an..35" minOccurs="0"/>
      <xs:element name="bunchNumber" type="n..5" minOccurs="0"/>
      <xs:element name="clearanceLocation" type="n..1" minOccurs="0"/>
      <xs:element name="warehouseCoded" type="n..1" minOccurs="0"/>
      <xs:element name="declarationTime" type="n..2" minOccurs="0"/>
      <xs:element name="declarationType" type="n..2" minOccurs="0"/>
      <xs:element name="correctionCode" type="n..1" minOccurs="0"/>
      <xs:element name="correctionReason" type="n..5" minOccurs="0"/>
      <xs:element name="language" type="an..2" minOccurs="0"/>
      <xs:element name="customsOfficeNumber" type="an..8" minOccurs="0"/>
      <xs:element name="placeOfUnloading" type="an..35" minOccurs="0"/>
      <xs:element name="agreedLocationOfGoods" type="an..35" minOccurs="0"/>
      <xs:element name="injunctionType" type="n..2" minOccurs="0"/>
      <xs:element name="reason" type="an..5" minOccurs="0"/>
      <xs:element name="transferToTransitSystem" type="indicator" minOccurs="0"/>
      <xs:element name="uniqueConsignmentReferenceNumber" type="an..70" minOccurs="0"/>
      <xs:element name="security" type="indicator" minOccurs="0"/>
      <xs:element name="specificCircumstanceIndicator" type="an..1" minOccurs="0"/>
      <xs:element name="transportMeans" type="TransportMeansSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="postalShipment" type="PostalShipmentSwissGoodsDeclarationTyp" minOccurs="0"/>
      <xs:element name="customsAccount" type="n..8" minOccurs="0"/>
      <xs:element name="VATAccount" type="n..8" minOccurs="0"/>
      <xs:element name="VATNumber" type="an..12" minOccurs="0"/>
      <xs:element name="companyNumberTaxpayer" type="an..17" minOccurs="0"/>
      <xs:element name="specialMentionText" type="an..70" minOccurs="0" maxOccurs="99"/>
      <xs:element name="invoiceCurrencyType" type="n..2" minOccurs="0"/>
      <xs:element name="containerNumber" type="an..17" minOccurs="0" maxOccurs="9"/>
      <xs:element name="ApplicationInternalData" type="ApplicationInternalDataType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="n..1">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,1}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..10">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,10}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..10.1">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,9}([.,]\d{0,1}(0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..12.3">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,9}([.,]\d{0,3}(0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..16.2">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,14}([.,]\d{0,2}(0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..2">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,2}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..3">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,3}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..4">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,4}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..4.1">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,3}([.,]\d{0,1}(0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..5">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,5}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..7.2">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,5}([.,]\d{0,2}(0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="n..8">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)\d{0,8}([.,](0*))?( *)"/>
    </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="ObjektidentifizierungCHZAIETyp">
    <xs:sequence>
      <xs:element name="ObjektName" type="an..35"/>
      <xs:element name="ObjektAliasname" type="an..35" minOccurs="0"/>
      <xs:element name="BezugsnummerVorblendung" type="an..35" minOccurs="0"/>
      <xs:element name="User" type="an..100" minOccurs="0"/>
      <xs:element name="Passwort" type="an..10" minOccurs="0"/>
      <xs:element name="KopieVon" type="an..35" minOccurs="0"/>
      <xs:element name="ObjektAktion" type="an..10" maxOccurs="10"/>
      <xs:element name="Bearbeiter" type="an..70" minOccurs="0"/>
      <xs:element name="ArtDerAnmeldung" type="an..10"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PackagingSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="packagingType" type="an..3"/>
      <xs:element name="quantity" type="n..5" minOccurs="0"/>
      <xs:element name="packagingReferenceNumber" type="an..70" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PermitDetailSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="key" type="n..4" minOccurs="0"/>
      <xs:element name="value" type="an..50" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PermitSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="permitType" type="n..2"/>
      <xs:element name="permitAuthority" type="n..2" minOccurs="0"/>
      <xs:element name="tobaccoPermitType" type="an..30" minOccurs="0"/>
      <xs:element name="permitNumber" type="an..17" minOccurs="0"/>
      <xs:element name="issueDate" type="xs:date" minOccurs="0"/>
      <xs:element name="additionalInformation" type="an..70" minOccurs="0"/>
      <xs:element name="permitItemDetail" type="PermitDetailSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="99"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PositionSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="GoodsItemNumber" type="seq3"/>
      <xs:element name="traderItemID" type="an..16" minOccurs="0"/>
      <xs:element name="description" type="an..280" minOccurs="0"/>
      <xs:element name="grossMass" type="n..12.3" minOccurs="0"/>
      <xs:element name="grossMassConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="netMass" type="n..12.3" minOccurs="0"/>
      <xs:element name="netMassConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="commodityCode" type="an..10" minOccurs="0"/>
      <xs:element name="commodityCodeConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="statisticalCode" type="n..3" minOccurs="0"/>
      <xs:element name="customsNetWeight" type="n..10.1" minOccurs="0"/>
      <xs:element name="additionalUnit" type="n..10.1" minOccurs="0"/>
      <xs:element name="additionalUnitConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="storageType" type="n..2" minOccurs="0"/>
      <xs:element name="permitObligation" type="n..1" minOccurs="0"/>
      <xs:element name="nonCustomsLawObligation" type="n..1" minOccurs="0"/>
      <xs:element name="UNDangerousGoodsCode" type="an..4" minOccurs="0"/>
      <xs:element name="artikelCode" type="an..35" minOccurs="0"/>
      <xs:element name="statisticalValue" type="n..16.2" minOccurs="0"/>
      <xs:element name="statisticalValueCurrency" type="an..3" minOccurs="0"/>
      <xs:element name="statisticalValueConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="repair" type="n..1" minOccurs="0"/>
      <xs:element name="repairReason" type="an..120" minOccurs="0"/>
      <xs:element name="freightToBorder" type="n..10" minOccurs="0"/>
      <xs:element name="originCountry" type="an..2" minOccurs="0"/>
      <xs:element name="packaging" type="PackagingSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="99"/>
      <xs:element name="producedDocument" type="ProducedDocumentSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="99"/>
      <xs:element name="statisticCustomsClearanceType" type="n..2" minOccurs="0"/>
      <xs:element name="statisticCommercialGood" type="n..1" minOccurs="0"/>
      <xs:element name="originPreference" type="n..1" minOccurs="0"/>
      <xs:element name="originPreferenceConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="direction" type="n..1" minOccurs="0"/>
      <xs:element name="refinementType" type="n..1" minOccurs="0"/>
      <xs:element name="processType" type="n..1" minOccurs="0"/>
      <xs:element name="billingType" type="n..1" minOccurs="0"/>
      <xs:element name="temporaryAdmission" type="indicator" minOccurs="0"/>
      <xs:element name="positionType" type="n..1" minOccurs="0"/>
      <xs:element name="exportValue" type="n..10" minOccurs="0"/>
      <xs:element name="labourCost" type="n..10" minOccurs="0"/>
      <xs:element name="newMaterialValue" type="n..10" minOccurs="0"/>
      <xs:element name="goodsItemDetailName" type="an..20" minOccurs="0"/>
      <xs:element name="goodsItemDetailValue" type="an..50" minOccurs="0"/>
      <xs:element name="permit" type="PermitSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="99"/>
      <xs:element name="nonCustomsLawType" type="n..3" minOccurs="0" maxOccurs="9"/>
      <xs:element name="netDuty" type="indicator" minOccurs="0"/>
      <xs:element name="tareSupplement" type="n..4.1" minOccurs="0"/>
      <xs:element name="tareSupplementConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="customsFavourCode" type="n..3" minOccurs="0"/>
      <xs:element name="rate" type="n..7.2" minOccurs="0"/>
      <xs:element name="rateConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="VATValue" type="n..16.2" minOccurs="0"/>
      <xs:element name="VATValueCurrency" type="an..3" minOccurs="0"/>
      <xs:element name="VATValueConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="VATCode" type="n..2" minOccurs="0"/>
      <xs:element name="VATCodeConfirmation" type="n..1" minOccurs="0"/>
      <xs:element name="additionalTax" type="AdditionalTaxSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="99"/>
      <xs:element name="fee" type="FeeSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="9"/>
      <xs:element name="notificationCode" type="an..8" minOccurs="0" maxOccurs="99"/>
      <xs:element name="refundType" type="n..1" minOccurs="0"/>
      <xs:element name="VOCQuantity" type="n..12.3" minOccurs="0"/>
      <xs:element name="sensibleGoods" type="SensibleGoodsSwissGoodsDeclarationTyp" minOccurs="0" maxOccurs="9"/>
      <xs:element name="specialMentionText" type="an..70" minOccurs="0" maxOccurs="99"/>
      <xs:element name="ApplicationInternalData" type="ApplicationInternalDataType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PostalShipmentSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="postalShipmentType" type="n..1" minOccurs="0"/>
      <xs:element name="inspectionCode" type="indicator" minOccurs="0"/>
      <xs:element name="procedureType" type="n..1" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PreviousDocumentSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="previousDocumentType" type="an..6" minOccurs="0"/>
      <xs:element name="previousDocumentReference" type="an..20" minOccurs="0"/>
      <xs:element name="additionalInformation" type="an..26" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ProducedDocumentSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="documentType" type="an..4"/>
      <xs:element name="documentReferenceNumber" type="an..35" minOccurs="0"/>
      <xs:element name="additionalInformation" type="an..70" minOccurs="0"/>
      <xs:element name="issueDate" type="xs:date" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SensibleGoodsSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="type" type="n..2"/>
      <xs:element name="weight" type="n..12.3" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="seq3">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:pattern value="( *)(0*)[1-9]\d{0,2}([.,](0*))?( *)"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SwissGoodsDeclarationCHZAIETyp">
    <xs:complexContent>
      <xs:extension base="DatenaustauschSCHWEIZTyp">
        <xs:sequence>
          <xs:element name="EinzelAnmeldung" type="EinzelSwissGoodsDeclarationTyp" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TransaktionSCHWEIZTyp">
    <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:complexType name="TransportMeansSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="transportMode" type="n..2" minOccurs="0"/>
      <xs:element name="transportationType" type="n..2" minOccurs="0"/>
      <xs:element name="transportationCountry" type="an..2" minOccurs="0"/>
      <xs:element name="transportationNumber" type="an..27" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VendeeSwissGoodsDeclarationTyp">
    <xs:sequence>
      <xs:element name="name" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="nameSupplement2" type="an..35" minOccurs="0"/>
      <xs:element name="street" type="an..35" minOccurs="0"/>
      <xs:element name="addressSupplement1" type="an..35" minOccurs="0"/>
      <xs:element name="country" type="an..2" minOccurs="0"/>
      <xs:element name="postalCode" type="an..9" minOccurs="0"/>
      <xs:element name="city" type="an..35" minOccurs="0"/>
      <xs:element name="traderIdentificationNumber" type="an..17" minOccurs="0"/>
      <xs:element name="adressCode" type="an..10" minOccurs="0"/>
      <xs:element name="vendeeReference" type="an..35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
