<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:fl="http://xsd.dakosy.de/fairatlink/messages20.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://xsd.dakosy.de/fairatlink/messages20.xsd">
  <xs:element name="FL_TPA_RESPONSE" type="fl:FL_TPA_RESPONSE"/>
  <xs:complexType name="Address">
    <xs:sequence>
      <xs:element name="CC_BuildingID" type="fl:string_6" minOccurs="0"/>
      <xs:element name="Street" type="fl:string_100" minOccurs="0"/>
      <xs:element name="StreetNumber" type="fl:string_6" minOccurs="0"/>
      <xs:element name="ISO_CountryCode" type="fl:ISO3166_2LC" minOccurs="0"/>
      <xs:element name="Postcode" type="fl:string_12" minOccurs="0"/>
      <xs:element name="City" type="fl:string_35"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Appointment">
    <xs:sequence>
      <xs:element name="ETA_DATE" type="xs:date"/>
      <xs:element name="ETA_TIME" type="xs:time" minOccurs="0"/>
      <xs:element name="RampId" type="fl:string_35" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EORI">
    <xs:sequence>
      <xs:element name="EORINumber" type="xs:string" minOccurs="0"/>
      <xs:element name="BranchOfficeId" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="E_Mail_Address">
    <xs:restriction base="xs:string">
      <xs:maxLength value="254"/>
      <xs:pattern value="([_A-Za-z0-9-])+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="FL_Message_Header">
    <xs:sequence>
      <xs:element name="Version" type="fl:msg_version" default="2.0"/>
      <xs:element name="FL_MSG_ID" type="fl:ID35"/>
      <xs:element name="FL_Sender_ID" type="fl:ID07"/>
      <xs:element name="FL_Recipient_ID" type="fl:ID07"/>
      <xs:element name="CreationTime" type="xs:dateTime"/>
      <xs:element name="Testindicator" type="xs:boolean" default="false"/>
      <xs:element name="SentInternal" type="fl:string_35" default="false" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FL_Response_Header">
    <xs:sequence>
      <xs:element name="FL_TPA_ID" type="fl:ID35"/>
      <xs:element name="TPA_Recipient" type="fl:Participant"/>
      <xs:element name="TPA_Issuer" type="fl:Participant"/>
      <xs:element name="Haulier" type="fl:Haulier" minOccurs="0"/>
      <xs:element name="Appointment" type="fl:Appointment" minOccurs="0"/>
      <xs:element name="IssuingPerson" type="fl:Person"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FL_TPA_RESPONSE">
    <xs:sequence>
      <xs:element name="FL_Message_Header" type="fl:FL_Message_Header"/>
      <xs:element name="FL_Response_Header" type="fl:FL_Response_Header"/>
      <xs:element name="TPA_Response" type="fl:TPA_Response"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Haulier">
    <xs:complexContent>
      <xs:extension base="fl:Participant"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ID07">
    <xs:restriction base="xs:string">
      <xs:minLength value="0"/>
      <xs:maxLength value="7"/>
      <xs:pattern value="[a-zA-Z0-9_/=-]*"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ID35">
    <xs:restriction base="xs:string">
      <xs:minLength value="0"/>
      <xs:maxLength value="35"/>
      <xs:pattern value="[a-zA-Z0-9_/=-]*"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ISO3166_2LC">
    <xs:restriction base="xs:string">
      <xs:minLength value="2"/>
      <xs:maxLength value="2"/>
      <xs:pattern value="[A-Z]{2}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="msg_version">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="7"/>
      <xs:pattern value="[0-9]+\.?[0-9]+"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Participant">
    <xs:sequence minOccurs="0">
      <xs:element name="FL_ID" type="fl:ID07" minOccurs="0"/>
      <xs:element name="CompanyName" type="fl:string_35" minOccurs="0"/>
      <xs:element name="Address" type="fl:Address" minOccurs="0"/>
      <xs:element name="EORI" type="fl:EORI" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Person">
    <xs:sequence>
      <xs:element name="Name" type="fl:string_35"/>
      <xs:element name="TelephoneNumber" type="fl:string_35" minOccurs="0"/>
      <xs:element name="eMailAddress" type="fl:E_Mail_Address" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="string_100">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="string_12">
    <xs:restriction base="xs:string">
      <xs:maxLength value="12"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="string_255">
    <xs:restriction base="xs:string">
      <xs:maxLength value="255"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="string_35">
    <xs:restriction base="xs:string">
      <xs:maxLength value="35"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="string_350">
    <xs:restriction base="xs:string">
      <xs:maxLength value="350"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="string_6">
    <xs:restriction base="xs:string">
      <xs:maxLength value="6"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TPA_Response">
    <xs:sequence>
      <xs:element name="ResponseType" type="fl:string_6"/>
      <xs:element name="GHAReference" type="fl:string_35" minOccurs="0"/>
      <xs:element name="TPA_UUID" type="fl:string_255" minOccurs="0"/>
      <xs:element name="Original_FL_MSG_ID" type="xs:string" minOccurs="0"/>
      <xs:element name="Reason" type="fl:string_350" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
