<?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/docH7"
    xmlns:base="http://www.ros.ie/schemas/customs/baseH7"
    xmlns:simple="http://www.ros.ie/schemas/customs/simpleH7"
    xmlns:complex="http://www.ros.ie/schemas/customs/complexH7"
    xmlns="http://www.ros.ie/schemas/customs/IM415H7"
    targetNamespace="http://www.ros.ie/schemas/customs/IM415H7" elementFormDefault="qualified"
    version="1.00">



    <!--===== Includes =====-->
    <xs:import namespace="http://www.ros.ie/schemas/customs/baseH7" schemaLocation="AIS_baseH7.xsd"/>
    <xs:import namespace="http://www.ros.ie/schemas/customs/simpleH7"
        schemaLocation="AIS_simpleH7.xsd"/>
    <xs:import namespace="http://www.ros.ie/schemas/customs/complexH7"
        schemaLocation="AIS_complexH7.xsd"/>


    <!--===== Root Element =====-->
    <xs:element name="IM415">
        <xs:annotation>
            <xs:documentation>
                <doc:description value="Customs Declaration"/>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <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>
    </xs:element>


    <!-- DeclarationType -->
    <xs:complexType name="DeclarationType">
        <xs:sequence>
            <xs:element name="LRN" type="simple:LRN_type" minOccurs="1" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="LRN"/>
                        <doc:wco name="D026"/>
                        <doc:refID6 name="12 09 001 000"/>
                        <doc:refID5 name="DE 2/5"/>
                        <doc:rule name="BR8063"/>
                        <doc:rule name="R0676"/>
                        <doc:rule name="R0677"/>
                        <doc:rule name="BR599999"/>
                        <doc:condition name="CD0339"/>
                        
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="AdditionalDeclarationType"
                type="simple:AdditionalDeclarationType_type" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Additional declaration type"/>
                        <doc:wco name="D013"/>
                        <doc:refID6 name="11 02 001 000"/>
                        <doc:refID5 name="DE 1/2"/>
                        <doc:codeList name="Additionaldeclarationtype"/>
                        <doc:rule name="BR0020"/>
                        <doc:rule name="BR8063"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="CustomsOffices" type="complex:CustomsOffices_type" minOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Customs Offices"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DeferredPayment" type="complex:DeferredPayment_type" minOccurs="0"
                maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Deferred payment"/>
                        <doc:wco name="D005"/>
                        <doc:refID6 name="12 10 000 000"/>
                        <doc:refID5 name="DE 2/6"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Parties" type="complex:Parties_type" minOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Parties"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PreferredPaymentMethod" type="simple:PreferredPaymentMethod_Type"
                minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Preferred Payment Method"/>
                        <doc:codeList name="TaxPaymentMethod" type="business"/>
                        <doc:wco value="107"/>
                        <doc:refID6 name="14 03 038 000"/>
                        <doc:refID5 name="DE 4/8"/>
                        <doc:rule name="BR0010"/>
                        <doc:rule name="BR0020"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <!-- GoodsShipmentType -->
    <xs:complexType name="GoodsShipmentType">
        <xs:sequence>
            <xs:element name="DocumentsAuthorisations" type="complex:DocumentsAuth_type"
                minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Documents and Authorisations"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Parties" type="complex:Parties02_type" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Parties"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ValuationInformation" type="complex:ValuationInformation_type"
                minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Valuation information"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="GoodsInformation" type="complex:GoodsInformation02_type" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods information"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DatesPlaces" type="complex:LocationOfGoodsGNSS_type" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Dates and Places"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="GovernmentAgencyGoodsItem" type="GoodsShipmentItemType" minOccurs="1"
                maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Government Agency Goods 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"/>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="GoodsItemNumber" type="simple:GoodsItemNumber_type">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods item number"/>
                        <doc:refID6 name="11 03 000 000"/>
                        <doc:wco name="006"/>
                        <doc:rule name="R0007"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Procedure" type="complex:AdditionalProcedure_type" minOccurs="1"
                maxOccurs="99">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Procedure"/>
                        </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DocumentsAuthorisations" type="complex:DocumentsAuth_type"
                minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Documents and Authorisations"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Parties" type="complex:Parties03_type" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Parties"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Taxes" type="complex:Taxes_type" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Taxes"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ItemAmountInvoicedIntrinsicValue"
                type="complex:ValuationInformation02_type">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Item Amount Invoiced Intrinsic Value"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="GoodsInformation" type="complex:GoodsInformation_type">
                <xs:annotation>
                    <xs:documentation>
                        <doc:description value="Goods information"/>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

</xs:schema>
