<?xml version="1.0" encoding="UTF-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <s:element name="ediMessage" minOccurs="0" maxOccurs="unbounded">
    <s:complexType>
      <s:sequence>
        <s:element name="messageHeader" minOccurs="0" maxOccurs="unbounded">
          <s:complexType>
            <s:sequence>
              <s:element name="messageId" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="messageDate" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="messageTime" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="messageType" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="messageVersion" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="messageScope" type="s:string" minOccurs="0" maxOccurs="1"/>
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="dispatchConfirmationStatus" minOccurs="0" maxOccurs="unbounded">
          <s:complexType>
            <s:sequence>
              <s:element name="statusTypeIdentifier" type="s:string" minOccurs="0" maxOccurs="1"/>
            </s:sequence>
          </s:complexType>
        </s:element>
        <s:element name="dispatchConfirmation" minOccurs="0" maxOccurs="unbounded">
          <s:complexType>
            <s:sequence>
              <s:element name="warehouse" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="location" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="operative" type="s:string" minOccurs="0" maxOccurs="1"/>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="dispatchOrderId" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="customerReference1" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="customerReference2" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="orderReference" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="orderDate" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="date" type="s:string" minOccurs="0" maxOccurs="1"/>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="receiver" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="partyCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name1" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name2" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name3" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="address1" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="address2" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="city" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="zipCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="state" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="countryCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="shippingMode" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="deliveryTerm" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="deliveryTermCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="deliveryTermLocation" type="s:string" minOccurs="0" maxOccurs="1"/>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="deliveryNoteNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="forwarder" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="partyCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name1" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name2" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="name3" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="address1" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="address2" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="city" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="zipCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="state" type="s:string" minOccurs="0" maxOccurs="1"/>
                    <s:element name="countryCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="shipmentTrackingId" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="shipmentTrackingUrl" type="s:string" minOccurs="0" maxOccurs="1"/>
              <s:element name="positions" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="position" minOccurs="0" maxOccurs="unbounded">
                      <s:complexType>
                        <s:sequence>
                          <s:element name="positionNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="clientPositionNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="deliveryNotePositionNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="customerPositionReference" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="quantity" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="variableQuantity" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemDescription1" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemDescription2" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemDescription3" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemDescription4" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemVolume" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="measureOfVolume" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="itemWeight" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="measureOfWeight" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="eanCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="sscc" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="batchNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="allocationNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="mhe" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="mheReference" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="packagingType" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="customsReference" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="clearingUnit" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="pricePerItem" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="totalPrice" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="currencyCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="productionDate" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="date" type="s:string" minOccurs="0" maxOccurs="1"/>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                          <s:element name="bestBeforeDate" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="date" type="s:string" minOccurs="0" maxOccurs="1"/>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                          <s:element name="packagingUnits" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="packagingUnit" minOccurs="0" maxOccurs="unbounded">
                                  <s:complexType>
                                    <s:sequence>
                                      <s:element name="packagingType" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="packagingLevel" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="pieces" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="turnoverClass" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="stockRestriction" type="s:string" minOccurs="0" maxOccurs="1"/>
                                    </s:sequence>
                                  </s:complexType>
                                </s:element>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                          <s:element name="serialNumbers" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="serialNumber" type="s:string" minOccurs="0" maxOccurs="unbounded"/>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                        </s:sequence>
                      </s:complexType>
                    </s:element>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="packages" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="package" minOccurs="0" maxOccurs="unbounded">
                      <s:complexType>
                        <s:sequence>
                          <s:element name="packageNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="packagingType" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="quantity" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="packageReference" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="length" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="width" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="height" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="measureOfDimension" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="volume" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="measureOfVolume" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="weight" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="measureOfWeight" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="trackingId" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="trackingUrl" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="packageItems" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="packageItem" minOccurs="0" maxOccurs="unbounded">
                                  <s:complexType>
                                    <s:sequence>
                                      <s:element name="itemCode" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="quantity" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="packagingType" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="deliveryNotePositionNumber" type="s:string" minOccurs="0" maxOccurs="1"/>
                                      <s:element name="serialNumbers" minOccurs="0" maxOccurs="unbounded">
                                        <s:complexType>
                                          <s:sequence>
                                            <s:element name="serialNumber" type="s:string" minOccurs="0" maxOccurs="unbounded"/>
                                          </s:sequence>
                                        </s:complexType>
                                      </s:element>
                                    </s:sequence>
                                  </s:complexType>
                                </s:element>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                        </s:sequence>
                      </s:complexType>
                    </s:element>
                  </s:sequence>
                </s:complexType>
              </s:element>
              <s:element name="shipments" minOccurs="0" maxOccurs="unbounded">
                <s:complexType>
                  <s:sequence>
                    <s:element name="shipment" minOccurs="0" maxOccurs="unbounded">
                      <s:complexType>
                        <s:sequence>
                          <s:element name="trackingId" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="provider" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="trackingURL" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="parcelShipmentURL" type="s:string" minOccurs="0" maxOccurs="1"/>
                          <s:element name="parcels" minOccurs="0" maxOccurs="unbounded">
                            <s:complexType>
                              <s:sequence>
                                <s:element name="parcel" minOccurs="0" maxOccurs="unbounded">
                                  <s:complexType>
                                    <s:sequence>
                                      <s:element name="licensePlate" type="s:string" minOccurs="0" maxOccurs="1"/>
                                    </s:sequence>
                                  </s:complexType>
                                </s:element>
                              </s:sequence>
                            </s:complexType>
                          </s:element>
                        </s:sequence>
                      </s:complexType>
                    </s:element>
                  </s:sequence>
                </s:complexType>
              </s:element>
            </s:sequence>
          </s:complexType>
        </s:element>
      </s:sequence>
    </s:complexType>
  </s:element>
</s:schema>
