<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:doc="http://www.ros.ie/schemas/customs/doc"
    xmlns:base="http://www.ros.ie/schemas/customs/base"
    xmlns:simple="http://www.ros.ie/schemas/customs/simple"
    xmlns:complex="http://www.ros.ie/schemas/customs/complex"
    xmlns="http://www.ros.ie/schemas/customs/ETD15"
    targetNamespace="http://www.ros.ie/schemas/customs/ETD15" elementFormDefault="qualified"
    version="1.00">



    <!--===== Includes =====-->
    <xs:import namespace="http://www.ros.ie/schemas/customs/base" schemaLocation="AIS_base.xsd"/>
    <xs:import namespace="http://www.ros.ie/schemas/customs/simple" schemaLocation="AIS_simple.xsd"/>
    <xs:import namespace="http://www.ros.ie/schemas/customs/complex"
        schemaLocation="AIS_complex.xsd"/>

    <!--===== Root Element =====-->
    <xs:element name="ETD15" type="ETD15">
        <xs:annotation>
            <xs:documentation>
                <doc:description value="D3 - Electronic Transport Document"/>
            </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="ETD15">
        <xs:sequence>
            <xs:element name="Declaration" type="DeclarationType">
                <xs:annotation>
                    <xs:documentation>
                            <doc:description value="Declaration"/>
                        </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="GoodsShipment" type="GoodsShipmentType">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods Shipment"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


    <!-- DeclarationType -->
    <xs:complexType name="DeclarationType">
        <xs:sequence>
            <xs:element name="LRN_2_5" type="simple:LRN_type" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="2/5: LRN"/>
                        <doc:wco name="D026"/>
                        <doc:rule name="R0676"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="TransitDeclaration_1_3" type="simple:TransitDeclaration_type"
                minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="1/3: Transit declaration/Proof of customs status type"/>
                        <doc:wco name="166"/>
                        <doc:rule name="BR0020"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="GoodsInformation" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods Information"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="GrossMass_6_5" type="simple:Quantity_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="6/5: Gross mass (kg)"/>
                                    <doc:wco name="131"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="TotalPackageNumber_6_18" type="simple:PackageNumber_type"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="6/18: Total packages"/>
                                    <doc:wco name="146"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

            <xs:element name="CustomsOffices" minOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Customs Offices"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="1">
                        <xs:element name="CustomsOfficeLodgement" type="simple:CustomsOffice_type"
                            minOccurs="1" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                   <doc:description value="Customs office of lodgement"/>
                                   <doc:codeList name="NationalCustomsOffice" type="business"/>
                                   <doc:rule name="BR0020"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="CustomsOfficeOfDestination5_6"
                            type="simple:CustomsOffice_type" minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="5/6: Customs office of destination"/>
                                    <doc:wco name="G010"/>
                                    <doc:rule name="BR0020"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Parties" minOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Parties"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="1">
                        <xs:element name="Representative"
                            type="complex:Representative_Optional_type" minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>      
                                    <doc:rule name="BR3181"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="HolderOfTheTransitProcedure"
                            type="complex:HolderOfTheTransitProcedure_type" minOccurs="1"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>      
                                    <doc:rule name="BR3181"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <!--Guarantee-->


    <!-- GoodsShipmentType -->
    <xs:complexType name="GoodsShipmentType">
        <xs:sequence>
            <xs:element name="DocumentsAuthorisations" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 2: Documents, certificates, authorisations"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="SimplifiedDeclarationDocumentWritingOff_2_01"
                            type="complex:SimplifiedDeclarationDocumentWritingOff_Header_type"
                            minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="AdditionalInformation_2_2"
                            type="complex:AdditionalInformation_type" minOccurs="0" maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:condition name="C0632"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ProducedDocumentsWritingOff_2_03"
                            type="complex:ProducedDocumentsWritingOff__Header_type" minOccurs="0"
                            maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:condition name="C0632"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="UCR_2_4" type="simple:UCR_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="2/4: Reference number/UCR"/>
                                    <doc:wco value="009"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Parties" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 3: Parties"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="Consignee" type="complex:Consignee_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>      
                                    <doc:rule name="BR3181"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="SupplyChainActor_3_37"
                            type="complex:SupplyChainActor_type" minOccurs="0" maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation> 
                                    <doc:rule name="BR3181"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DatesPlaces" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Dates and Places"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="CountryDestination_5_8" type="simple:CountryCode_type"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                   <doc:description value="5/8: Country of destination code"/>
                                    <doc:wco name="465"/>
                                    <doc:codeList name="CountryCodesFullList" type="business"/>
                                    <doc:condition name="C0642"/>
                                    <doc:rule value="DE0100"/>
                               </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="TransportationPlace"
                            type="complex:TransportationPlace_type" minOccurs="0" maxOccurs="1">
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="TransportInformation" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 7: Transport Information"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="DepartureTransportMeans7_7"
                            type="complex:DepartureTransportMeans_type" minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>                                
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Nationality_7_8" type="simple:Nationality_Type"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="7/8: Nationality"/>
                                    <doc:condition name="C0642"/>
                                    <doc:rule name="BR0020"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ContainerIdentificationNumber_7_10"
                            type="complex:ContainerIdentificationNumber_multi_type" minOccurs="0"
                            maxOccurs="unbounded"> </xs:element>
                        <xs:element name="Seal" type="complex:Seal_type" minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="7/18: Seals"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>

                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GoodsShipmentItem" type="GoodsShipmentItemType" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods Shipment Item"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <!-- GoodsShipmenItemtType-->
    <xs:complexType name="GoodsShipmentItemType">
        <xs:annotation>
            <xs:documentation>
                <doc:description value="Goods Shipment Item"/>
                <doc:wco name="68A"/>
            </xs:documentation>
        </xs:annotation>



        <xs:sequence>
            <xs:element name="GoodsItemNumber_1_6" type="simple:GoodsItemNumber_type">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="1/6: Goods item number"/>
                        <doc:wco name="006"/>
                        <doc:rule name="R0007"/>  
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="TransitDeclaration_1_3" type="simple:TransitDeclaration_type"
                minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="1/3: Transit declaration/Proof of customs status type"/>
                        <doc:wco name="166"/>
                        <doc:rule name="BR0020"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DocumentsAuthorisations" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 2: Documents, certificates, authorisations"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="SimplifiedDeclarationDocumentWritingOff_2_01"
                            type="complex:SimplifiedDeclarationDocumentWritingOff_Header_type"
                            minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                                <xs:documentation>                                
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="AdditionalInformation_2_2"
                            type="complex:AdditionalInformation_type" minOccurs="0" maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:condition name="C0632"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ProducedDocumentsWritingOff_2_03"
                            type="complex:ProducedDocumentsWritingOff__Header_type" minOccurs="0"
                            maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:condition name="C0632"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="UCR_2_4" type="simple:UCR_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="2/4: Reference number/UCR"/>
                                    <doc:wco value="009"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Parties" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 3: Parties"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="Consignee" type="complex:Consignee_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>        
                                    <doc:rule name="BR3181"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="SupplyChainActor_3_37"
                            type="complex:SupplyChainActor_type" minOccurs="0" maxOccurs="99">
                            <xs:annotation>
                                <xs:documentation>      
                                    <doc:rule name="BR3181"/>
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DatesPlaces" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Dates and Places"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="CountryDestination_5_8" type="simple:CountryCode_type"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="5/8: Country of destination code"/>
                                    <doc:wco name="465"/>
                                    <doc:codeList name="CountryCodesFullList" type="business"/>
                                    <doc:condition name="C0642"/>
                                    <doc:rule name="BR0020"/>
                                    <doc:rule value="DE0100"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="GoodsInformation">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods Information"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="GrossMass_6_5" type="simple:Quantity_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="6/5: Gross mass (kg)"/>
                                    <doc:wco name="126"/>
                                    <doc:rule name="BR6053"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="GoodsDescription_6_8" type="simple:FreeText512_type"
                            minOccurs="1" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="6/8: Description of goods"/>
                                    <doc:wco name="137"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Packaging" type="Packages" maxOccurs="99"/>

                        <xs:element name="CusCode_6_13" type="simple:CUSCode_type" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="6/13: CUS code"/>
                                    <doc:wco name="145"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="CommodityCode" minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="Commodity Code"/>
                                    <doc:wco name="21A"/>
                                </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:sequence minOccurs="0">
                                    <xs:element name="CombinedNomenclatureCode_6_14"
                                        type="simple:CombinedNomenclatureCNCode_type" minOccurs="0"
                                        maxOccurs="1">
                                        <xs:annotation>
                                            <xs:documentation>
                                                <doc:description value="6/14: Commodity code - Combined Nomenclature code"/>
                                                <doc:wco name="145"/>
                                                <doc:rule name="BR0020"/>
                                                <doc:codeList name="NomenclatureCodeCN" type="business"/>
                                            </xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="TransportInformation" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Group 7: Transport Information"/>
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence minOccurs="0">
                        <xs:element name="DepartureTransportMeans7_7"
                            type="complex:DepartureTransportMeans_type" minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>                                
                                    <doc:condition name="C0642"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Nationality_7_8" type="simple:Nationality_Type"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>
                                    <doc:description value="7/8: Nationality"/>
                                    <doc:condition name="C0642"/>
                                    <doc:rule name="BR0020"/>
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="ContainerIdentificationNumber_7_10"
                            type="complex:ContainerIdentificationNumber_multi_type" minOccurs="0"
                            maxOccurs="unbounded"> </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Packages">
        <xs:annotation>
            <xs:documentation>
                <doc:description value="Packaging"/>
                <doc:wco name="93A"/>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="TypePackage_6_9" type="simple:PackageType_type" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="6/9: Type of packages"/>
                        <doc:wco name="141"/>
                        <doc:codeList name="KindOfPackages" type="business"/>
                        <doc:rule name="BR0020"/>
                        <doc:rule name="BR6101"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PackageNumber_6_10" type="simple:PackageNumber_type" minOccurs="0"
                maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="6/10: Number of packages"/>
                        <doc:wco name="144"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ShippingMarks_6_11" type="simple:FreeText512_type" maxOccurs="1"
                minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="6/11: Shipping marks"/>
                        <doc:wco name="142"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

</xs:schema>
