<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="customsShipment" nillable="true" type="CustomsShipment" />
  <xs:complexType name="CustomsShipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="customsFlow" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code that determines the flow that needs to be executed</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="direction" nillable="true" type="DirectionEnum">
        <xs:annotation>
          <xs:documentation>Direction of the declaration:IN or OUT</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="expectedDateTimeOfMovement" nillable="true" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="externalReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unique reference to identify the customs shipment</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="messageType" nillable="true" type="MessageTypeEnum">
        <xs:annotation>
          <xs:documentation>Code that determines the state of the message: New, Update etc. If no value is provided, CAS defaults it to New.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="storageLocationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Storage location code (as known in CAS) from where an OUT customs shipment leaves or an IN customs shipment arrives</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="version" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>1.0</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="singleAdministrativeDocument" nillable="true" type="SingleAdministrativeDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="sourceSysRef" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="metadata" type="ArrayOfMetadata">
        <xs:annotation>
          <xs:documentation>Arbitrary custom attributes of a customs shipment, which leverage more sophisticated customs shipments or declarations lookup</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="exciseGoodsShipment" nillable="true" type="ExciseGoodsShipment" />
      <xs:element minOccurs="0" maxOccurs="1" name="attachments" type="ArrayOfAttachment" />
      <xs:element minOccurs="0" maxOccurs="1" name="options" nillable="true" type="Options" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="DirectionEnum">
    <xs:annotation>
      <xs:documentation>Direction of the declaration:IN or OUT</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="IN" />
      <xs:enumeration value="OUT" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MessageTypeEnum">
    <xs:annotation>
      <xs:documentation>Code that determines the state of the message: New, Update etc. If no value is provided, CAS defaults it to New</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="New" />
      <xs:enumeration value="Update" />
      <xs:enumeration value="Amend" />
      <xs:enumeration value="Invalidate" />
      <xs:enumeration value="Delete" />
      <xs:enumeration value="Replace" />
      <xs:enumeration value="Upsert" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SingleAdministrativeDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="accDateCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Date of acceptance of the declaration. Also referred to as tax point.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="addDeclType1" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional Declaration Type (A, B, C, D, E, F, X, Y, Z)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="addDeclType2" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Transit declaration/Proof of customs status type (T, T1, T2, T2L, T2LF)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="agentStatus" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Agent Status (1, 2, 3)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="amalgamate" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>In the context of MCP Destin8, indicates whether multiple consignments are combined under a single customs declaration.
            When set to true, the consignment is part of an amalgamated (grouped) shipment UCN.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="beginDatePeriod" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Begin date of the globalization period</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="endDatePeriod" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>/// 
            End date of the globalization period
            End date of the globalization period</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="declarationOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="declType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Declaration Type (IM, CO, EX)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="destinationOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="docRefNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>MRN - document reference number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="entryOfficeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Customs office of entry</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="exitOfficeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Customs office of exit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="functionRefNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>LRN - functional reference number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="invoiceCurrency" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="issueDate" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Declaration date - issue date at which a document was issued</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="presentationDate" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Presentation date - date at which goods are presented to customs (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="loadingDate" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Loading date - date at which goods are loaded (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="issuePlaceCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Declaration place - issue place at which a document was issued and when (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="pointOfExit" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>A free text field that may be used to determine the customs flow and possibly other deductions that are based on decision tables.It is not used by CAS other than that (format: an..64) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="pointOfEntry" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>A free text field that may be used to determine the customs flow and possibly other deductions that are based on decision tables.It is not used by CAS other than that (format: an..64) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="presentationOfficeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Customs office of presentation (format: an..17) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="status" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Status of the declaration (only used in return files)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="supervisingOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="totalInvoiceAmount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Total amount invoiced</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="totNumItems" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Total number of items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="additionalInformations" type="ArrayOfSADAdditionalInformation" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalParties" type="ArrayOfSADAdditionalParty" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalDocuments" type="ArrayOfSADAdditionalDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="agent" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="calculationReturns" type="ArrayOfSADCalculationReturn" />
      <xs:element minOccurs="0" maxOccurs="1" name="currencyExchange" nillable="true" type="SADCurrencyExchange" />
      <xs:element minOccurs="0" maxOccurs="1" name="declarant" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="dutyTaxFees" type="ArrayOfSADDutyTaxFee" />
      <xs:element minOccurs="0" maxOccurs="1" name="goodsMeasure" nillable="true" type="SADGoodsMeasure" />
      <xs:element minOccurs="0" maxOccurs="1" name="goodsShipment" nillable="true" type="SADGoodsShipment" />
      <xs:element minOccurs="0" maxOccurs="1" name="governmentProcedure" nillable="true" type="SADGovernmentProcedure" />
      <xs:element minOccurs="0" maxOccurs="1" name="importer" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="packaging" nillable="true" type="SADPackaging" />
      <xs:element minOccurs="0" maxOccurs="1" name="previousDocument" nillable="true" type="SADPreviousDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="statusHistories" type="ArrayOfSADStatusHistory" />
      <xs:element minOccurs="0" maxOccurs="1" name="referenceNumbers" type="ArrayOfSADReferenceNumber" />
      <xs:element minOccurs="0" maxOccurs="1" name="obligationGuarantee" nillable="true" type="SADObligationGuarantee">
        <xs:annotation>
          <xs:documentation>DEPRECATED - Use ObligationGuarantees instead</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="obligationGuarantees" type="ArrayOfSADObligationGuarantee" />
      <xs:element minOccurs="0" maxOccurs="1" name="authorizationHolders" type="ArrayOfSADAuthorizationHolder" />
      <xs:element minOccurs="0" maxOccurs="1" name="exportOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="previousDocuments" type="ArrayOfSADPreviousDocument">
        <xs:annotation>
          <xs:documentation>Gets or Sets Previous Documents (should be used instead of PreviousDocument property in the future)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="transitProcedure" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="writeoffRules" type="ArrayOfSADWriteoffRule" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADAdditionalInformation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalInformation" nillable="true" type="SADAdditionalInformation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalInformation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Coded form of an additional statement</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="text" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of an additional statement</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional statement type</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADAdditionalParty">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalParty" nillable="true" type="SADAdditionalParty" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalParty">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="partyType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets PartyType</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="party" nillable="true" type="SADAdditionalPartyParty">
        <xs:annotation>
          <xs:documentation>Gets or Sets Party</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalPartyParty">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="address" nillable="true" type="SADAdditionalPartyPartyAddress">
        <xs:annotation>
          <xs:documentation>Gets or Sets Address</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="contact" nillable="true" type="SADAdditionalPartyPartyContact">
        <xs:annotation>
          <xs:documentation>Gets or Sets Contact</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalPartyPartyAddress">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="box" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Box</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="city" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets City</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country subdivision of region</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="street" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Street</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="zipCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets ZipCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalPartyPartyContact">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="phoneNumber" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets PhoneNumber</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="spocName" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets SpocName</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADAdditionalDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalDocument" nillable="true" type="SADAdditionalDocument" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="category" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document category</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="issueDate" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The effective date of the document (e.g. license, visa, permit, certificate)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="lpcoExemptionCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document status code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="refNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Identifier of a document providing additional information</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="submitter" nillable="true" type="SADAdditionalDocumentSubmitter" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAdditionalDocumentSubmitter">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="roleCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets RoleCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BusinessPartner">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="address" nillable="true" type="BusinessPartnerAddress">
        <xs:annotation>
          <xs:documentation>Gets or Sets Address</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="contact" nillable="true" type="BusinessPartnerContact">
        <xs:annotation>
          <xs:documentation>Gets or Sets Contact</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="businessPartnerReferences" type="ArrayOfBusinessPartnerBusinessPartnerReference">
        <xs:annotation>
          <xs:documentation>Gets or Sets BusinessPartnerReferences</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BusinessPartnerAddress">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="box" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Box</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="city" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets City</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country subdivision of region</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="street" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Street</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="zipCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets ZipCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BusinessPartnerContact">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="emailAddress" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets EmailAddress</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="faxNumber" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets FaxNumber</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="phoneNumber" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets PhoneNumber</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="spocName" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets SpocName</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="language" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfBusinessPartnerBusinessPartnerReference">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="businessPartnerReference" nillable="true" type="BusinessPartnerBusinessPartnerReference" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BusinessPartnerBusinessPartnerReference">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Reference identifier (e.g. VAT number)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Type of reference for a specific business partner. International codes (e.g. DUNS, EAN)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADCalculationReturn">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="calculationReturn" nillable="true" type="SADCalculationReturn" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADCalculationReturn">
    <xs:annotation>
      <xs:documentation>Retro-active option: to provide total duty tax fees, to validate recalculated totals are the same (within a certain fault tolarance) Return message: Totals per type of returned duty tax fees as they where calculated by customs</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="basisQty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax base quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="basisValue" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax base amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="dutyRegime" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Duty regime</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="quotaId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Quota order number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax rate</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="reducedAssessed" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Amount of deduction from a duty or tax - assessed</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="payment" nillable="true" type="SADCalculationReturnPayment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADCalculationReturnPayment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Payable tax amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="assessed" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Payable tax amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="methodCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation Of Taxes – Method Of Payment (A, B, C, D, E, G, H, J, K, O, P, R, S, T, U, V)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADCurrencyExchange">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="currency" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Internal Currency Unit (ISO 4217 3-alpha code)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Exchange rate</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADDutyTaxFee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="dutyTaxFee" nillable="true" type="SADDutyTaxFee" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADDutyTaxFee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="basisQty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax base quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="basisValue" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax base amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="dutyRegime" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code specifying a type of duty regime</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="quotaId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Quota order number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax rate</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Tax type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="payment" nillable="true" type="SADDutyTaxFeePayment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADDutyTaxFeePayment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Payable tax amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="assessed" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Total assessed</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="methodCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation of taxes - Method of Payment (A, B, C, D, E, G, H, J, K, O, P, R, S, T, U, V)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGoodsMeasure">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="gmass" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gross mass (kg)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="nmass" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Net mass (kg)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGoodsShipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="exportCountry" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country of Dispatch/Export</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="trxNatCode" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="consignee" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="consignment" nillable="true" type="SADGSConsignment" />
      <xs:element minOccurs="0" maxOccurs="1" name="consignor" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="customsValuation" nillable="true" type="SADGSCustomsValuation" />
      <xs:element minOccurs="0" maxOccurs="1" name="destination" nillable="true" type="SADGSDestination">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="domesticDutyTaxParties" type="ArrayOfSADGSDomesticDutyTaxParty" />
      <xs:element minOccurs="0" maxOccurs="1" name="exporter" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="seller" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="buyer" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="surety" nillable="true" type="SADGSSurety" />
      <xs:element minOccurs="0" maxOccurs="1" name="tradeTerms" nillable="true" type="SADGSTradeTerms" />
      <xs:element minOccurs="0" maxOccurs="1" name="ucr" nillable="true" type="SADGSUcr" />
      <xs:element minOccurs="0" maxOccurs="1" name="warehouse" nillable="true" type="SADGSWarehouse" />
      <xs:element minOccurs="0" maxOccurs="1" name="elo" nillable="true" type="SADGSElo" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalReferences" type="ArrayOfAdditionalReference" />
      <xs:element minOccurs="0" maxOccurs="1" name="governmentAgencyGoodsItems" type="ArrayOfSADGSGovernmentAgencyGoodsItem" />
      <xs:element minOccurs="0" maxOccurs="1" name="invoice" nillable="true" type="SADGSInvoice" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="container" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Container (0,1)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="transitOfficeCodes" type="ArrayOfString" />
      <xs:element minOccurs="0" maxOccurs="1" name="arrivalTransportMeans" nillable="true" type="SADGSConsignmentArrivalTransportMeans" />
      <xs:element minOccurs="0" maxOccurs="1" name="borderTransportMeans" nillable="true" type="SADGSConsignmentBorderTransportMeans" />
      <xs:element minOccurs="0" maxOccurs="1" name="carrier" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="departureTransportMeans" nillable="true" type="SADGSConsignmentDepartureTransportMeans" />
      <xs:element minOccurs="0" maxOccurs="1" name="goodsLocation" nillable="true" type="SADGSConsignmentGoodsLocation" />
      <xs:element minOccurs="0" maxOccurs="1" name="itineraries" type="ArrayOfSADGSConsignmentItinerary" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportEquipments" type="ArrayOfSADGSConsignmentTransportEquipment" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportContractDocuments" type="ArrayOfSADGSConsignmentTransportContractDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportAndInsuranceCostsToTheDestination" nillable="true" type="SADGSConsignmentTransportAndInsuranceCostsToTheDestination" />
      <xs:element minOccurs="0" maxOccurs="1" name="loadingLocation" nillable="true" type="SADGSConsignmentLoadingLocation" />
      <xs:element minOccurs="0" maxOccurs="1" name="unloadingLocation" nillable="true" type="SADGSConsignmentUnloadingLocation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="transitOfficeCode" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentArrivalTransportMeans">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Identification</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identificationType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets IdentificationType</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="mode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Mode</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="journeyId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets JourneyId</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Name</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentBorderTransportMeans">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Nationality Of Active Means Of Transport Crossing The Border (ISO 3166-1 2-alpha code) (format: a2) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="bookingReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Used in the context of some port community systems (PCS). The vehicle booking reference (format: an..64) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="departureLocation" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Used in the context of some port community systems (PCS). Represent the terminal where the vehicle arrives. (format: an..17) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Identification of actual means of transport crossing the border (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identificationType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Type of actual means of transport crossing the border (format: an..4) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="mode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Mode Of Transport At The Border (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) (format: an..4) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isAccompanied" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>A flag indicating whether or not the goods are accompanied. Needed for mapping to customs (especially PCS): Which vehicle number to declare: Truck or trailer (format: bool) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentDepartureTransportMeans">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Identification</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identificationType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets IdentificationType</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="mode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Mode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentGoodsLocation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="identificationType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code/Identifier for the identification of the goods location</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="address" nillable="true" type="SADGSConsignmentGoodsLocationAddress" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalIdentifier" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentGoodsLocationAddress">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="box" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Box</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="city" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets City</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country subdivision of region</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="street" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Street</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="zipCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets ZipCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSConsignmentItinerary">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="itinerary" nillable="true" type="SADGSConsignmentItinerary" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentItinerary">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="seqNum" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Sequence number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="routeId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="routeIdType" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSConsignmentTransportEquipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="transportEquipment" nillable="true" type="SADGSConsignmentTransportEquipment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentTransportEquipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="seqNum" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Sequence number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Marks (letters and/or numbers) which identify equipment e.g. unit load device/container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Type of transport equipment (format: a2)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="sealQuantity" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Number of seals</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="seals" type="ArrayOfSADGSConsignmentTransportEquipmentSeal" />
      <xs:element minOccurs="0" maxOccurs="1" name="goodsReferences" type="ArrayOfString1" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSConsignmentTransportEquipmentSeal">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="seal" nillable="true" type="SADGSConsignmentTransportEquipmentSeal" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentTransportEquipmentSeal">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="seqNum" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Sequence number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Seal identifier</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString1">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="goodsReference" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSConsignmentTransportContractDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="transportContractDocument" nillable="true" type="SADGSConsignmentTransportContractDocument" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentTransportContractDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="id" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Transport contract document id</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="typeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Transport contract document type code</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentTransportAndInsuranceCostsToTheDestination">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>The amount of postal charges paid</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="currency" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Currency (ISO 4217 3-alpha code)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentLoadingLocation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="placeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Place code (format: an..17) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="place" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Place (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country (format: a2) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSConsignmentUnloadingLocation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="dateArrival" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Date of arrival at the unloading location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="placeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Place code (format: an..17) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="place" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Place (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country (format: a2) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSCustomsValuation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="chargeDeductions" type="ArrayOfSADGSCustomsValuationChargeDeduction">
        <xs:annotation>
          <xs:documentation>Gets or Sets ChargeDeductions</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSCustomsValuationChargeDeduction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="chargeDeduction" nillable="true" type="SADGSCustomsValuationChargeDeduction" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSCustomsValuationChargeDeduction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="currencyExchange" nillable="true" type="SADGSCustomsValuationChargeDeductionCurrencyExchange">
        <xs:annotation>
          <xs:documentation>Gets or Sets CurrencyExchange</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="otherChargeDeductionAmount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets OtherChargeDeductionAmount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Type</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSCustomsValuationChargeDeductionCurrencyExchange">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="currency" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Currency</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets Rate</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSDestination">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSDomesticDutyTaxParty">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="domesticDutyTaxParty" nillable="true" type="SADGSDomesticDutyTaxParty" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSDomesticDutyTaxParty">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>To identify a party responsible for the national VAT or Goods &amp; Services Tax</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="roleCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>VAT-related fiscal references: FR1 (importer), FR2 (customer), FR3 (tax representative), FR4 (holder of the deferred payment authorisation)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="address" nillable="true" type="SADGSDomesticDutyTaxPartyAddress" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSDomesticDutyTaxPartyAddress">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="box" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Box</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="city" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets City</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country subdivision of region</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="street" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Street</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="zipCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets ZipCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSSurety">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The identifier of the party who agrees to be responsible for the debt or obligation of another</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="date" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSTradeTerms">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="placeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="place" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Name of the point or port of departure, shipment or destination, as required under the applicable terms of delivery, e.g. Incoterm</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="termsCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Delivery Terms (DAF, EXW, FCA, CPT, CIP, DAT, DAP, DDP, DDU, FAS, FOB, CFR, CIF, DES, DEQ, XXX)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="countryRelationshipCode" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Indication whether the place specified for the performance of a (contractual) obligation is located in the country where the declaration is made, in another member country of the same economic or Customs union, or in a third country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSUcr">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="traderReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSWarehouse">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Identification Of Warehouse (T, B, s, D, E, FS specific; procedure, X, Y, Z)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="externalReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Identification of warehouse</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSElo">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="lorryType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Lorry type (possible values: PLEIN, VIDE)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="fisheryGoods" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Fishery goods</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="tirAtaFormalities" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>TIR/ATA formalities</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="sanitaryGoods" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Sanitary goods</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="postalGoods" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Postal goods</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="emptyPackaging" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Empty packaging</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="transportContracts" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Transport contracts</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfAdditionalReference">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalReference" nillable="true" type="AdditionalReference" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AdditionalReference">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="id" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>`
            Reference number for any additional declarations made which is not covered by Supporting Document, transport document or additional information (format: an..70) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="typeCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional reference type code (format: an..4) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGovernmentAgencyGoodsItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="governmentAgencyGoodsItem" nillable="true" type="SADGSGovernmentAgencyGoodsItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGovernmentAgencyGoodsItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="addDeclType2" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Transit declaration/Proof of customs status type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="containerIdentification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>If container is used, this data element is mandatory</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="customsValue" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="productReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unique identifier for a specific product or batch (e.g. serial number, VIN, batch number)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="seqNum" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Goods item (sequence) number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="statValue" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Statistical value</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="trxNatCode" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="heatId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Heat ID</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="supplierHeatId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Supplier Heat ID</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="undgs" type="ArrayOfString2">
        <xs:annotation>
          <xs:documentation>UN Dangerous Goods Codes</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="additionalDocuments" type="ArrayOfSADGSGagiAdditionalDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalInformations" type="ArrayOfSADGSGagiAdditionalInformation" />
      <xs:element minOccurs="0" maxOccurs="1" name="commodity" nillable="true" type="SADGSGagiCommodity" />
      <xs:element minOccurs="0" maxOccurs="1" name="customsValuation" nillable="true" type="SADGSGagiCustomsValuation" />
      <xs:element minOccurs="0" maxOccurs="1" name="destination" nillable="true" type="SADGSGagiDestination">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="goodsMeasure" nillable="true" type="SADGSGagiGoodsMeasure" />
      <xs:element minOccurs="0" maxOccurs="1" name="governmentProcedure" nillable="true" type="SADGSGagiGovernmentProcedure" />
      <xs:element minOccurs="0" maxOccurs="1" name="materials" type="ArrayOfSADGSGagiMaterial">
        <xs:annotation>
          <xs:documentation>Materials used in the goods, used for transactional bill of materials</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="origins" type="ArrayOfSADGSGagiOrigin" />
      <xs:element minOccurs="0" maxOccurs="1" name="packagings" type="ArrayOfSADGSGagiPackaging" />
      <xs:element minOccurs="0" maxOccurs="1" name="innerPackagings" type="ArrayOfSADGSGagiInnerPackaging" />
      <xs:element minOccurs="0" maxOccurs="1" name="previousDocuments" type="ArrayOfSADGSGagiPreviousDocument" />
      <xs:element minOccurs="0" maxOccurs="1" name="tradeTerms" nillable="true" type="SADGSGagiTradeTerms" />
      <xs:element minOccurs="0" maxOccurs="1" name="ucr" nillable="true" type="SADGSGAGIUcr" />
      <xs:element minOccurs="0" maxOccurs="1" name="valuationAdjustments" type="ArrayOfSADGSGagiValuationAdjustment" />
      <xs:element minOccurs="0" maxOccurs="1" name="consignee" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="processingType" nillable="true" type="ProcessingTypeEnum">
        <xs:annotation>
          <xs:documentation>The type of processing</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="exporter" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="additionalReferences" type="ArrayOfAdditionalReference" />
      <xs:element minOccurs="0" maxOccurs="1" name="exciseGoodsItem" nillable="true" type="ExciseGoodsItem" />
      <xs:element minOccurs="0" maxOccurs="1" name="blendResult" nillable="true" type="SADGSGagiBlendResult" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString2">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="undg" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiAdditionalDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalDocument" nillable="true" type="SADGSGagiAdditionalDocument" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiAdditionalDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="category" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document category</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="issueDate" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The effective date of the document (e.g. license, visa, permit, certificate)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="lpcoExemptionCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document status code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="refNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document status code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional document type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="submitter" nillable="true" type="SADGSGagiAdditionalDocumentSubmitter" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Free text description for additional document - additional document name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="writeOff" nillable="true" type="SADGSGagiAdditionalDocumentWriteOff" />
      <xs:element minOccurs="0" maxOccurs="1" name="lineNumber" nillable="true" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiAdditionalDocumentSubmitter">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Name</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="roleCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets RoleCode</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiAdditionalDocumentWriteOff">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets Quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="unit" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Unit</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiAdditionalInformation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="additionalInformation" nillable="true" type="SADGSGagiAdditionalInformation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiAdditionalInformation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Coded form of an additional statement</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="text" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of an additional statement</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional statement type</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="description" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of goods</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isBonded" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is bonded. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isTemporaryAdmission" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is Temporary Admission. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="itemId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>External reference of the item (as known in CAS in article master data)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="storageLocationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Storage location code (as known in CAS) from where an line item leaves or arrives (or where it is produced). Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classifications" type="ArrayOfSADGSGagiCommodityClassification" />
      <xs:element minOccurs="0" maxOccurs="1" name="dutyTaxFees" type="ArrayOfSADGSGagiCommodityDutyTaxFee" />
      <xs:element minOccurs="0" maxOccurs="1" name="invoiceLine" nillable="true" type="SADGSGagiCommodityInvoiceLine" />
      <xs:element minOccurs="0" maxOccurs="1" name="calculationReturns" type="ArrayOfSADCalculationReturn" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportEquipments" type="ArrayOfSADGSGagiCommodityTransportEquipment" />
      <xs:element minOccurs="0" maxOccurs="1" name="isExcise" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is excise. Only applicable for special procedures</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isProductExcise" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the product linked to the line item (Gagi) is excise. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isEndUse" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is end use. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="containsOutwardProcessing" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is outward processing. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="receivingStorageLocationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>To be provided when the customs shipment will be used to transfer the goods within the same or different SP authorisation, where a declaration is needed. For example when ownership and valuation changes</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="receivingAuthorizationId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>To be provided when the customs shipment will be used to transfer the goods within the same or different SP authorisation, where a declaration is needed. For example when ownership and valuation changes</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiCommodityClassification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="classification" nillable="true" type="SADGSGagiCommodityClassification" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodityClassification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Classification code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Classification type (e.g. TARIC, UKGTImEx, MEURS, ...)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiCommodityDutyTaxFee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="dutyTaxFee" nillable="true" type="SADGSGagiCommodityDutyTaxFee" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodityDutyTaxFee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="basisQty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax base quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="basisValue" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax base amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="dutyRegime" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="quotaId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Quota order number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax rate</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Tax type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="nationalType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – National tax type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="payment" nillable="true" type="SADGSGagiCommodityDutyTaxFeePayment" />
      <xs:element minOccurs="0" maxOccurs="1" name="unitQualifier" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="unitType" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="rateId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The rate id for the VAT taxes applicable.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodityDutyTaxFeePayment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Payable tax amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="assessed" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Calculation of taxes – Payable tax amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="methodCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Calculation Of Taxes – Method Of Payment (A, B, C, D, E, G, H, J, K, O, P, R, S, T, U, V)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodityInvoiceLine">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="itemAmount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Item price/amount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="unitPrice" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Unit price of the goods, specified in the invoice currency</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiCommodityTransportEquipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="transportEquipment" nillable="true" type="SADGSGagiCommodityTransportEquipment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCommodityTransportEquipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="seqNum" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Sequence number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="identification" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Marks (letters and/or numbers) which identify equipment e.g. unit load device/container</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCustomsValuation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="valuationMethod" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Valuation Method (1, 2, 3, 4, 5, 6)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="chargeDeductions" type="ArrayOfSADGSGagiCustomsValuationChargeDeduction" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiCustomsValuationChargeDeduction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="chargeDeduction" nillable="true" type="SADGSGagiCustomsValuationChargeDeduction" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCustomsValuationChargeDeduction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="otherChargeDeductionAmount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets OtherChargeDeductionAmount</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="otherPercentage" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets OtherPercentage</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="currencyExchange" nillable="true" type="SADGSGagiCustomsValuationChargeDeductionCurrencyExchange">
        <xs:annotation>
          <xs:documentation>Gets or Sets CurrencyExchange</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiCustomsValuationChargeDeductionCurrencyExchange">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="currency" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Currency</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="rate" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gets or Sets Rate</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiDestination">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiGoodsMeasure">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="gmass" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Gross mass (kg)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="nmass" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Net mass (kg)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="qty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Quantity of the goods in the base unit of measure (as defined in CAS article master data - used to manage stock records)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="supQty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Supplementary units</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="supQtyUom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unit of measure for supplementary units (SupQty).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="uom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Base unit of measure of the goods (as defined in CAS article master data - used to manage stock records)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="quantities" type="ArrayOfSADGSGagiGoodsMeasureQuantity" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiGoodsMeasureQuantity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="quantity" nillable="true" type="SADGSGagiGoodsMeasureQuantity" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiGoodsMeasureQuantity">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>An additional quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="uom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The UoM of the additional quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiGovernmentProcedure">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="proc" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code specifying a procedure</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="prevProc" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code specifying the previous procedure</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="declProcType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Declaration procedure code (A,B,C,D,E,F,G,H,I,J,K) that defines the Government Agency data setNote: only needed for BE</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="procEU" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional EU government procedure code as defined by Council Regulation (EC) No 1186/2009</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="procNat1" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional national government procedure code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="procNat2" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Additional national government procedure code</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiMaterial">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="material" nillable="true" type="SADGSGagiMaterial" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiMaterial">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="equivalent" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Gets or Sets Equivalent</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isBonded" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Identifier that determines whether the line item (Gagi) is bonded. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="itemId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>ItemId of the materials used in the goods, used for transactional bill of materials (as known in the CAS article master data)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="itemGroup" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>ItemGroup of the materials used in the goods, used for transactional bill of materials (as known in the CAS article master data)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="origin" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>County of origin</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="qty" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Quantity of the goods in the base unit of measure (as defined in CAS article master data - used to manage stock records)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="storageLocationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Storage location code (as known in CAS) from where an the materials which were used in processing. Only applicable for special procedures.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="uom" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Base unit of measure of the goods (as defined in CAS article master data - used to manage stock records)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="serialBatchReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Unique serial or batch number of the (semi-)produced product</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiOrigin">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="origin" nillable="true" type="SADGSGagiOrigin" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiOrigin">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country of origin (ISO 3166-1 2-alpha code)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="region" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Country subdivision of region</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Origin type (PreferentialOrigin, NonPreferentialOrigin)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiPackaging">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="packaging" nillable="true" type="SADGSGagiPackaging" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiPackaging">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Number of individual items packaged in such a way that they cannot be divided without first undoing the packing</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="shippingMarks" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Shipping marks - Free form description of the marks and numbers on a transport unit or package</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code specifying the type of package of an item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="commercialSealIdentification" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sealInformation" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sealInformationLanguage" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiInnerPackaging">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="innerPackaging" nillable="true" type="SADGSGagiInnerPackaging" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiInnerPackaging">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Number of inner packages</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Code specifying the type of inner package of an item</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiPreviousDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="previousDocument" nillable="true" type="SADGSGagiPreviousDocument" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiPreviousDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="art" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="billOfLoading" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="category" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="date" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Date of the previous document in accordance with national legislation</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="item" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="lineNumber" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Item number pertaining to the previous Customs filing</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="loc" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The number of a previous document</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Type of document used for declaration previously presented</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="typeOfPackages" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Type of packages</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="numberOfPackages" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Number of packages</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="measurementUnitAndQualifier" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Measurement unit and qualifier</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Quantity of packages</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiTradeTerms">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="placeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="place" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Name of the point or port of departure, shipment or destination, as required under the applicable terms of delivery, e.g. Incoterm</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="termsCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Delivery Terms (DAF, EXW, FCA, CPT, CIP, DAT, DAP, DDP, DDU, FAS, FOB, CFR, CIF, DES, DEQ, XXX)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="countryRelationshipCode" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Indication whether the place specified for the performance of a (contractual) obligation is located in the country where the declaration is made, in another member country of the same economic or Customs union, or in a third country</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="country" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGAGIUcr">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="traderReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element can only be given once, either on header level or on item level.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiValuationAdjustment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="valuationAdjustment" nillable="true" type="SADGSGagiValuationAdjustment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiValuationAdjustment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Monetary amount by which the valuation was adjusted</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="qualifier" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>This data element is required when using valuation method 1 (transaction of the imported goods), otherwise it should be left blank.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ProcessingTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="0" />
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="4" />
      <xs:enumeration value="8" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ExciseGoodsItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="uom" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="alcoholicStrengthByVolumeInPercentage" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="degreePlato" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="fiscalMark" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="fiscalMarkLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="fiscalMarkUsedFlag" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="designationOfOrigin" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="designationOfOriginLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sizeOfProducer" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="density" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="commercialDescription" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="commercialDescriptionLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="brandNameOfProducts" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="brandNameOfProductsLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="maturationPeriodOrAgeOfProducts" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="maturationPeriodOrAgeOfProductsLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="independentSmallProducersDeclaration" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="independentSmallProducersDeclarationLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="wineProduct" nillable="true" type="WineProduct" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="WineProduct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="wineProductCategory" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="wineGrowingZoneCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="thirdCountryOfOrigin" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="otherInformation" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="otherInformationLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="wineOperations" nillable="true" type="ArrayOfWineOperation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfWineOperation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="wineOperation" nillable="true" type="WineOperation" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="WineOperation">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="wineOperationCode" nillable="true" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiBlendResult">
    <xs:annotation>
      <xs:documentation>Represents the outcome of blending goods within a customs or tax warehouse, typically for energy excise products (e.g., fuel) combined in a storage tank. This class captures key identifiers and measurement details of the resulting blended product.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="itemId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Reference to the master data item representing the result of the blend</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="productReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Typically the batch number or unique identifier for the blended product</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classifications" type="ArrayOfSADGSGagiBlendResultClassification">
        <xs:annotation>
          <xs:documentation>Used to provide the excise product code for the blended result (e.g., E430) and/or the tariff classification</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADGSGagiBlendResultClassification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="classification" nillable="true" type="SADGSGagiBlendResultClassification" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSGagiBlendResultClassification">
    <xs:annotation>
      <xs:documentation>Used to provide the excise product code for the blended result (e.g., E430) and/or the tariff classification</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Main types to be used:
            - CN: Combined nomenclature, 8 digits
            - TARIC: Taric code, 10 digits
            - UKGTExport: Combined nomenclature, 8 digits, used for GB
            - UKGTImEx: Taric code, 10 digits; used for GB
            - ExciseProductCode; excise product code e.g., E430</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="code" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The classification code</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGSInvoice">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="date" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADGovernmentProcedure">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="proc" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Proc</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="prevProc" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets PrevProc</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADPackaging">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="quantity" nillable="true" type="xs:int">
        <xs:annotation>
          <xs:documentation>Number of packages</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADPreviousDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="billOfLoading" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="category" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of an additional statement</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="date" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Date of the previous document in accordance with national legislation</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The number of a previous document</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The number of a previous document</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADStatusHistory">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="statusHistory" nillable="true" type="SADStatusHistory" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADStatusHistory">
    <xs:annotation>
      <xs:documentation>List of statuses of the declaration (only used in return files)</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="status" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Historic status of the declaration (only used in return files)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="statusDateTime" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADReferenceNumber">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="referenceNumber" nillable="true" type="SADReferenceNumber" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADReferenceNumber">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="number" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Reference number (format: an..35) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Reference type (format: an..15) (cardinality: 1x)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADObligationGuarantee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="securityDetails" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Guarantee type</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="reference" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="access" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="amount" nillable="true" type="xs:decimal">
        <xs:annotation>
          <xs:documentation>Amount (in the currency of the jurisdiction of the declaration as per SingleAdministrativeDocument.CurrencyExchange.Currency)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="excludedCountries" type="ArrayOfString3" />
      <xs:element minOccurs="0" maxOccurs="1" name="declarationOffice" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString3">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="excludedCountry" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADObligationGuarantee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="obligationGuarantee" nillable="true" type="SADObligationGuarantee" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADAuthorizationHolder">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="authorizationHolder" nillable="true" type="SADAuthorizationHolder" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADAuthorizationHolder">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="authorizationId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Authorization Id</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="categoryCode" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Category Code</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="authorizationReference" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or Sets Authorization Reference</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADPreviousDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="previousDocument" nillable="true" type="SADPreviousDocument" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfSADWriteoffRule">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="writeoffRule" nillable="true" type="SADWriteoffRule" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SADWriteoffRule">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="authorizationId" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the authorisation as defined in master data</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="customsStatus" nillable="true" type="WriteOffCustomsStatus">
        <xs:annotation>
          <xs:documentation>One of:
            - Bonded
            - Free</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="isOfPreferentialOrigin" nillable="true" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>One of
            0: If stock needs to be picked that isn’t of preferential origin
            1: If stock needs to be picked that is of preferential origin, regardless of country of preferential origin. Typically used when goods need to be released for free circulation so that reduced duties need can be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="preferentialOriginCountry" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The country of preferential origin to pick stock for</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="nonPreferentialOriginCountry" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The country of non-preferential origin to pick stock for</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="inboundDocRefNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The MRN of the inbound declaration from which stock is written off</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="inboundFunctionRefNum" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The LRN of the inbound declaration from which stock is written off
            (It is advised to only use InboundFunctionRefNum if the inbound declaration was an EIDR, and thus doesn’t have an MRN)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="WriteOffCustomsStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="Free" />
      <xs:enumeration value="Bonded" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfMetadata">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="metadataElement" nillable="true" type="Metadata" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Metadata">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="key" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or sets Metadata key</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Gets or sets Metadata value</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ExciseGoodsShipment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="submissionMessageType" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="deferredSubmissionFlag" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="exciseMovement" nillable="true" type="ExciseMovement" />
      <xs:element minOccurs="0" maxOccurs="1" name="consigneeTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="consignorTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="placeOfDispatchTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="dispatchImportOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="destinationOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="deliveryPlaceTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="deliveryPlaceCustomsOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="competentAuthorityDispatchOfficeCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportArrangerTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="firstTransporterTrader" nillable="true" type="BusinessPartner" />
      <xs:element minOccurs="0" maxOccurs="1" name="complementConsigneeTrader" nillable="true" type="ComplementConsigneeTrader" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportDetails" nillable="true" type="ArrayOfTransportDetails" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentCertificates" nillable="true" type="ArrayOfDocumentCertificate" />
      <xs:element minOccurs="0" maxOccurs="1" name="headerEadEsad" nillable="true" type="HeaderEadEsad" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportMode" nillable="true" type="TransportMode" />
      <xs:element minOccurs="0" maxOccurs="1" name="movementGuarantee" nillable="true" type="MovementGuarantee" />
      <xs:element minOccurs="0" maxOccurs="1" name="EadEsad" nillable="true" type="EadEsad" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ExciseMovement">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="administrativeReferenceCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="consignorFunctionRefNum" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="dateAndTimeOfValidationOfEadEsad" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ComplementConsigneeTrader">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="memberStateCode" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="serialNumberOfCertificateOfExemption" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfTransportDetails">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="transportDetail" nillable="true" type="TransportDetails" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TransportDetails">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="transportUnitCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="identityOfTransportUnits" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="commercialSealIdentification" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="complementaryInformation" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="complementaryInformationLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sealInformation" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sealInformationLanguage" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfDocumentCertificate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="documentCertificate" nillable="true" type="DocumentCertificate" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DocumentCertificate">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="documentType" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentReference" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentDescription" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentDescriptionLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="referenceOfDocument" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="referenceOfDocumentLanguage" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="issueDate" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="issuingAuthority" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeaderEadEsad">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="sequenceNumber" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="destinationTypeCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="journeyTime" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="transportArrangement" nillable="true" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TransportMode">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="transportModeCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="complementaryInformation" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="complementaryInformationLanguage" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MovementGuarantee">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="guarantorTypeCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="guarantorTraders" nillable="true" type="ArrayOfBusinessPartner" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfBusinessPartner">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="guarantorTrader" nillable="true" type="BusinessPartner" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EadEsad">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="originTypeCode" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="dateTimeOfDispatch" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="importSads" nillable="true" type="ArrayOfImportSad" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfImportSad">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="importSad" nillable="true" type="ImportSad" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ImportSad">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="importSadNumber" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfAttachment">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="attachment" nillable="true" type="Attachment" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Attachment">
    <xs:annotation>
      <xs:documentation>Represents an attachment associated with a customs shipment, including metadata and binary content.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="type" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The type that determines the kind of file that is attached.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="complementaryInformation" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The type that determine additional information that complements the attachment type.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="contentType" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The media type of the provided content must be application/pdf.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="fileName" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The original file name of the attachment, typically used for display purposes in declaration details.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="content" nillable="true" type="xs:base64Binary">
        <xs:annotation>
          <xs:documentation>The binary content of the attachment.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Options">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="reason" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The reason for the change. Can be used in customs messages where reason is required.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="actionsOnSuccess" type="ArrayOfActionOnSuccess">
        <xs:annotation>
          <xs:documentation>The actions to perform on success</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfActionOnSuccess">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="actionOnSuccess" nillable="true" type="ActionOnSuccess" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ActionOnSuccess">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="action" nillable="true" type="SuccessActionType">
        <xs:annotation>
          <xs:documentation>The action to perform on success</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="customsFlowStep" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>The customs flow step to apply the action to</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SuccessActionType">
    <xs:annotation>
      <xs:documentation>The type of action to perform on success</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="submit" />
      <xs:enumeration value="amend" />
      <xs:enumeration value="submitOrAmend" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>