<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:imp="https://imp.dakosy.de"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="https://imp.dakosy.de">
  <xs:element name="ImpStatusRequest" type="imp:StatusRequest"/>
  <xs:complexType name="AdditionalValues">
    <xs:sequence>
      <xs:element name="AdditionalValue" type="imp:AdditionalValueType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AdditionalValueType">
    <xs:sequence>
      <xs:element name="Name" type="imp:CodeTypeContent"/>
      <xs:element name="Value" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="an..14Type">
    <xs:restriction base="xs:string">
      <xs:maxLength value="14"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..17Type">
    <xs:restriction base="xs:string">
      <xs:maxLength value="17"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..35Type">
    <xs:restriction base="xs:string">
      <xs:maxLength value="35"/>
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an..7Type">
    <xs:restriction base="xs:string">
      <xs:maxLength value="7"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="an18Type">
    <xs:restriction base="xs:string">
      <xs:length value="18"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ATBNumber">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="21"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="BillOfLadingID">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="CodeTypeContent">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:complexType name="Contact">
    <xs:sequence>
      <xs:element name="Name" type="imp:Name"/>
      <xs:element name="Telephone" type="imp:Phone" minOccurs="0"/>
      <xs:element name="Fax" type="imp:Fax" minOccurs="0"/>
      <xs:element name="Email" type="imp:Email" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContainerDetails">
    <xs:sequence>
      <xs:element name="ContainerID" type="imp:ContainerID"/>
      <xs:element name="ShippersOwnIndicator" type="imp:ShippersOwnIndicator" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContainerID">
    <xs:complexContent>
      <xs:extension base="imp:ContainerIDType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContainerIDType">
    <xs:simpleContent>
      <xs:extension base="xs:string"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="CustomerReferenceID">
    <xs:restriction base="imp:an..35Type">
      <xs:minLength value="1"/>
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="CustomsData">
    <xs:sequence>
      <xs:element name="SeqNumber" type="xs:integer" minOccurs="0"/>
      <xs:element name="CustomsProceduresTypeCode" type="imp:CustomsProceduresTypeCode" minOccurs="0"/>
      <xs:element name="CustomsReference" type="imp:an..35Type" minOccurs="0"/>
      <xs:element name="CustomsDeclarationPosition" type="xs:integer" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CustomsDataList">
    <xs:sequence>
      <xs:element name="CustomsData" type="imp:CustomsData" minOccurs="0" maxOccurs="999"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="CustomsProceduresTypeCode">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:complexType name="DeclarantParty">
    <xs:complexContent>
      <xs:extension base="imp:PartyType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="DocumentCreationTime">
    <xs:restriction base="xs:dateTime"/>
  </xs:simpleType>
  <xs:simpleType name="DocumentExchangeNumber">
    <xs:restriction base="imp:an..14Type">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Email">
    <xs:restriction base="xs:string">
      <xs:minLength value="3"/>
      <xs:maxLength value="70"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="EstimatedDepartureDateType">
    <xs:sequence>
      <xs:element name="EstimatedDepartureDate" type="xs:date" minOccurs="0"/>
      <xs:element name="EstimatedDepartureTime" type="xs:time" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Fax">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IMPReferenceID">
    <xs:restriction base="xs:string">
      <xs:minLength value="18"/>
      <xs:maxLength value="18"/>
      <xs:pattern value="[IS]{1}[A-Z]{2}\d{6}[012]\d{8}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IndicatorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="0"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="false"/>
      <xs:enumeration value="true"/>
      <xs:maxLength value="5"/>
      <xs:pattern value="[01]|true|false"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Interchange">
    <xs:sequence>
      <xs:element name="CreationTime" type="imp:DocumentCreationTime"/>
      <xs:element name="ExchangeNumber" type="imp:DocumentExchangeNumber"/>
      <xs:element name="TestIndicator" type="xs:boolean" minOccurs="0"/>
      <xs:element name="MessageCount" type="imp:MessageCount" minOccurs="0"/>
      <xs:element name="Sender" type="imp:Participant"/>
      <xs:element name="Recipient" type="imp:Participant"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LocationID">
    <xs:simpleContent>
      <xs:extension base="imp:LocationIDType"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="LocationIDType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="25"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="LocationType">
    <xs:sequence>
      <xs:element name="LocationID" type="imp:LocationID" minOccurs="0"/>
      <xs:element name="SubLocationOne" type="imp:SubLocation" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Message">
    <xs:sequence>
      <xs:element name="MessageHeader" type="imp:MessageHeader"/>
    </xs:sequence>
    <xs:attribute name="MessageType" type="xs:string"/>
    <xs:attribute name="MessageVersionID" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:simpleType name="MessageCount">
    <xs:restriction base="xs:positiveInteger"/>
  </xs:simpleType>
  <xs:simpleType name="MessageFunction">
    <xs:restriction base="imp:an..7Type">
      <xs:enumeration value="1"/>
      <xs:enumeration value="5"/>
      <xs:enumeration value="9"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="MessageHeader">
    <xs:sequence>
      <xs:element name="MessageFunction" type="imp:MessageFunction"/>
      <xs:element name="MessageReferenceNumber" type="imp:MessageReferenceNumber"/>
      <xs:element name="PreviousMessageReferenceNumber" type="imp:MessageReferenceNumber" minOccurs="0"/>
      <xs:element name="MessageSender" type="imp:Participant"/>
      <xs:element name="MessageRecipient" type="imp:Participant" maxOccurs="9"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="MessageReferenceNumber">
    <xs:restriction base="imp:an..35Type"/>
  </xs:simpleType>
  <xs:simpleType name="MRN">
    <xs:restriction base="imp:an18Type">
      <xs:pattern value="[0-9]{2}[A-Z]{2}[A-Z0-9]{14}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Name">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Participant">
    <xs:sequence>
      <xs:element name="ParticipantCode" type="imp:ParticipantCode"/>
      <xs:element name="Contact" type="imp:Contact" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParticipantCode">
    <xs:simpleContent>
      <xs:extension base="imp:ParticipantCodeType">
        <xs:attribute name="AgencyID" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="ParticipantCodeType">
    <xs:restriction base="imp:an..17Type">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PartyID">
    <xs:simpleContent>
      <xs:extension base="imp:PartyIDType">
        <xs:attribute name="schemeID" type="xs:string"/>
        <xs:attribute name="agencyID" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="PartyIDType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="17"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PartyType">
    <xs:sequence>
      <xs:element name="PartyID" type="imp:PartyID" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Phone">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="35"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ShippersOwnIndicator">
    <xs:restriction base="imp:IndicatorType"/>
  </xs:simpleType>
  <xs:complexType name="StatusRequest">
    <xs:sequence>
      <xs:element name="Interchange" type="imp:Interchange"/>
      <xs:element name="StatusRequestMessage" type="imp:StatusRequestMessage" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="StatusRequestMessage">
    <xs:complexContent>
      <xs:extension base="imp:Message">
        <xs:sequence>
          <xs:element name="StatusRequestMessageType" type="imp:StatusRequestMessageType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="StatusRequestMessageType">
    <xs:sequence>
      <xs:element name="Container" type="imp:ContainerDetails" minOccurs="0"/>
      <xs:element name="MRN" type="imp:MRN" minOccurs="0"/>
      <xs:element name="ATBNumber" type="imp:ATBNumber" minOccurs="0"/>
      <xs:element name="BillOfLadingID" type="imp:BillOfLadingID" minOccurs="0"/>
      <xs:element name="IMPReferenceID" type="imp:IMPReferenceID" minOccurs="0"/>
      <xs:element name="PriorIMPReferenceID" type="imp:IMPReferenceID" minOccurs="0"/>
      <xs:element name="CustomerReferenceID" type="imp:CustomerReferenceID" minOccurs="0"/>
      <xs:element name="StatusRequestType" type="imp:StatusRequestTypeCode"/>
      <xs:element name="StatusRequestRole" type="imp:StatusRequestRoleTypeCode"/>
      <xs:element name="Terminal" type="imp:TerminalLocation" minOccurs="0"/>
      <xs:element name="LoadingTerminal" type="imp:TerminalLocation" minOccurs="0"/>
      <xs:element name="DeclarantParty" type="imp:DeclarantParty" minOccurs="0"/>
      <xs:element name="SubsequentCustomsProcedure" type="imp:SubsequentCustomsProcedure" minOccurs="0"/>
      <xs:element name="SubsequentCustomsProcedureLocation" type="imp:TerminalLocation" minOccurs="0"/>
      <xs:element name="CustomsDataList" type="imp:CustomsDataList" minOccurs="0"/>
      <xs:element name="OnCarriageTransportMeans" type="imp:TransportMeans" minOccurs="0"/>
      <xs:element name="AdditionalValues" type="imp:AdditionalValues" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="StatusRequestRoleCodeContent">
    <xs:restriction base="imp:an..17Type">
      <xs:enumeration value="COMBINED"/>
      <xs:enumeration value="DECLARANT"/>
      <xs:enumeration value="LANDSIDE"/>
      <xs:enumeration value="ON_CARRIAGE"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="StatusRequestRoleTypeCode">
    <xs:simpleContent>
      <xs:extension base="imp:StatusRequestRoleCodeContent"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="StatusRequestTypeCode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="BB"/>
      <xs:enumeration value="FCL"/>
      <xs:maxLength value="3"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SubLocation">
    <xs:sequence>
      <xs:element name="LocationID" type="imp:LocationID" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SubsequentCustomsProcedure">
    <xs:restriction base="imp:an..17Type">
      <xs:enumeration value="AT-AV"/>
      <xs:enumeration value="AT-ZL"/>
      <xs:enumeration value="NCTS"/>
      <xs:enumeration value="TBN"/>
      <xs:enumeration value="ZB"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TerminalLocation">
    <xs:complexContent>
      <xs:extension base="imp:LocationType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TransportMeans">
    <xs:sequence>
      <xs:element name="TransportMeansTypeCode" type="imp:TransportMeansTypeCode" minOccurs="0"/>
      <xs:element name="TransportMeansID" type="imp:TransportMeansID" minOccurs="0"/>
      <xs:element name="EstimatedDepartureDateType" type="imp:EstimatedDepartureDateType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TransportMeansID">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="schemeID" type="xs:string" default="103"/>
        <xs:attribute name="agencyID" type="xs:string" default="11"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="TransportMeansTypeCode">
    <xs:simpleContent>
      <xs:extension base="imp:TransportMeansTypeCodeContent">
        <xs:attribute name="listID" type="xs:string" default="8179"/>
        <xs:attribute name="agencyID" type="xs:string" default="8067"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="TransportMeansTypeCodeContent">
    <xs:restriction base="xs:string">
      <xs:enumeration value="11"/>
      <xs:enumeration value="13"/>
      <xs:enumeration value="16"/>
      <xs:enumeration value="31"/>
      <xs:enumeration value="210"/>
      <xs:enumeration value="TBN"/>
      <xs:minLength value="1"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
