<!-- (C) 2020 - FreightTrust and Clearing Corporation
   - SPDX-License-Identifier: MPL-2.0
   - SPDXVersion: SPDX-2.2
   - SPDX-FileCopyrightText
   - This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at https://mozilla.org/MPL/2.0/. -->
<xs:schema
    targetNamespace="http://www.freighttrust.com/Schemas/Native/2020/09"
    version="2.0"
    elementFormDefault="qualified"
    xmlns="http://www.freighttrust.com/Schemas/Native/2020/09"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:include schemaLocation="Native.xsd" />
  <xs:element name="Rate" type="RateData" />
  <xs:complexType name="RateData">
    <xs:all>
      <xs:element name="RatingHeader" type="NativeRate" />
    </xs:all>
    <xs:attribute name="version" type="xs:token" />
  </xs:complexType>
  <xs:complexType name="NativeRate">
    <xs:all>
      <!-- Candidate Key: OrgHeader.PK + GlbCompany.PK + RateType + QuoteNumber + GlobalRateLevel -->
      <xs:element name="PK" minOccurs="0" type="xs:string" />
      <xs:element name="QuoteNumber" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="QuoteDate" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="QuoteEndDate" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="FollowUpDate" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="Accepted" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="RateType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GlobalRateLevel" minOccurs="0" type="xs:short" />
      <xs:element name="GlobalRateDescription" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="35" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AirCFX" minOccurs="0" type="xs:decimal" />
      <xs:element name="SeaCFX" minOccurs="0" type="xs:decimal" />
      <xs:element name="ExportAirCFX" minOccurs="0" type="xs:decimal" />
      <xs:element name="ExportSeaCFX" minOccurs="0" type="xs:decimal" />
      <xs:element name="SystemLastEditTimeUtc" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="SystemCreateTimeUtc" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="QuoteCancellationReason" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="IsLocked" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsOneOffQuoteConsumed" minOccurs="0" type="xs:boolean" />
      <xs:element name="PrintRateLevelOriginCharges" minOccurs="0" type="xs:boolean" />
      <xs:element name="PrintRateLevelDestinationCharges" minOccurs="0" type="xs:boolean" />
      <xs:element name="PrintInheritedOriginCharges" minOccurs="0" type="xs:boolean" />
      <xs:element name="PrintInheritedDestinationCharges" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsCancelled" minOccurs="0" type="xs:boolean" />
      <xs:element name="OneTimeQuote" minOccurs="0" type="xs:boolean" />
      <xs:element name="FirstSignatory" minOccurs="0">
        <xs:complexType>
          <xs:all>
            <!-- Candidate Key: Code + LoginName -->
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="3" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LoginName" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="104" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PK" minOccurs="0" type="xs:string" />
          </xs:all>
          <xs:attribute name="Action" type="Action" />
          <xs:attribute name="TableName" type="xs:string" />
        </xs:complexType>
      </xs:element>
      <xs:element name="SecondSignatory" minOccurs="0">
        <xs:complexType>
          <xs:all>
            <!-- Candidate Key: Code + LoginName -->
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="3" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="LoginName" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="104" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PK" minOccurs="0" type="xs:string" />
          </xs:all>
          <xs:attribute name="Action" type="Action" />
          <xs:attribute name="TableName" type="xs:string" />
        </xs:complexType>
      </xs:element>
      <xs:element name="OrgHeader" minOccurs="0">
        <xs:complexType>
          <xs:all>
            <!-- Candidate Key: Code -->
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="12" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PK" minOccurs="0" type="xs:string" />
          </xs:all>
          <xs:attribute name="Action" type="Action" />
        </xs:complexType>
      </xs:element>
      <xs:element name="GlbCompany" minOccurs="0">
        <xs:complexType>
          <xs:all>
            <!-- Candidate Key: Code -->
            <xs:element name="Code" minOccurs="0">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="3" />
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="PK" minOccurs="0" type="xs:string" />
          </xs:all>
          <xs:attribute name="Action" type="Action" />
        </xs:complexType>
      </xs:element>
      <xs:element name="RateEntryCollection" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="RateEntry" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:all>
                  <xs:element name="PK" minOccurs="0" type="xs:string" />
                  <xs:element name="LineOrder" minOccurs="0" type="xs:int" />
                  <xs:element name="RateStartDate" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="RateEndDate" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="Frequency" minOccurs="0" type="xs:int" />
                  <xs:element name="CartagePickupAddressPostCode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="10" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="CartageDeliveryAddressPostCode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="10" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="OriginLRC" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="DestinationLRC" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="ViaLRC" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="PageHeading" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="80" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="PageOpeningText" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string" />
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="PageClosingText" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string" />
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="QuotePageIncoTerm" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="BuyersConsolRateMode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SystemCreateTimeUtc" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="SystemLastEditTimeUtc" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="ContractNumber" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="35" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="IsCrossTrade" minOccurs="0" type="xs:boolean" />
                  <xs:element name="DataChecked" minOccurs="0" type="xs:boolean" />
                  <xs:element name="MatchContainerRateClass" minOccurs="0" type="xs:boolean" />
                  <xs:element name="TransitTime" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="FrequencyUnit" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="10" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Mode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="RateCategory" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="FromID" minOccurs="0" type="xs:string" />
                  <xs:element name="FromTableCode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="ToId" minOccurs="0" type="xs:string" />
                  <xs:element name="ToTableCode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="IsTact" minOccurs="0" type="xs:boolean" />
                  <xs:element name="PaymentTerm" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="GatewayAgentType" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="PlannedDischargeLRC" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="PlannedLoadLRC" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="5" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Currency" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="3" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Supplier" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="TransportProvider" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Consignor" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Consignee" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CartagePickupAddressOverride" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: OrgHeader.PK + Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="25" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="OrgHeader" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: Code -->
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="12" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CartageDeliveryAddressOverride" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: OrgHeader.PK + Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="25" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="OrgHeader" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: Code -->
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="12" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="ServiceLevel_NI" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="3" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="AgentOverride" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="RefContainer" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="10" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CarrierServiceLevel" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code + OrgMiscServ.PK + CarrierServiceLevelDescription -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="3" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="CarrierServiceLevelDescription" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="35" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="OrgMiscServ" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: OrgHeader.PK -->
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                              <xs:element name="OrgHeader" minOccurs="0">
                                <xs:complexType>
                                  <xs:all>
                                    <!-- Candidate Key: Code -->
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                          <xs:maxLength value="12" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="PK" minOccurs="0" type="xs:string" />
                                  </xs:all>
                                  <xs:attribute name="Action" type="Action" />
                                </xs:complexType>
                              </xs:element>
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="DestinationZone" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: ZoneName + RateTransportProvider.PK -->
                        <xs:element name="ZoneName" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="35" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="RateTransportProvider" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="OriginZone" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: ZoneName + RateTransportProvider.PK -->
                        <xs:element name="ZoneName" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="35" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="RateTransportProvider" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CommodityCode" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="4" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="ControllingCustomer" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="12" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="Publisher" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="3" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="RateLinesCollection" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="RateLines" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:all>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                              <xs:element name="LineOrder" minOccurs="0" type="xs:short" />
                              <xs:element name="RateDesc" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="100" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="ConversionFactor" minOccurs="0" type="xs:decimal" />
                              <xs:element name="WeightVolume" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="WeightVolumeMultiple" minOccurs="0" type="xs:decimal" />
                              <xs:element name="RateCalculator" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="CompanyTariffLevel" minOccurs="0" type="xs:short" />
                              <xs:element name="Rounding" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="RoundingFactor" minOccurs="0" type="xs:decimal" />
                              <xs:element name="ActualPercentage" minOccurs="0" type="xs:short" />
                              <xs:element name="IsWhsJobLevelCharge" minOccurs="0" type="xs:boolean" />
                              <xs:element name="IsOnPallets" minOccurs="0" type="xs:boolean" />
                              <xs:element name="Condition" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="RateDescLocal" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="100" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FeeChargeLevel" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FeeChargeType" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FactorNumerator" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FactorDenominator" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="ConditionalExpression" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="256" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="ConditionalExpressionDescription" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="ContainerOwnership" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Currency" minOccurs="0">
                                <xs:complexType>
                                  <xs:all>
                                    <!-- Candidate Key: Code -->
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                          <xs:maxLength value="3" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="PK" minOccurs="0" type="xs:string" />
                                  </xs:all>
                                  <xs:attribute name="Action" type="Action" />
                                  <xs:attribute name="TableName" type="xs:string" />
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="AccChargeCode" minOccurs="0">
                                <xs:complexType>
                                  <xs:all>
                                    <!-- Candidate Key: Code + GlbCompany.PK -->
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                          <xs:maxLength value="10" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="PK" minOccurs="0" type="xs:string" />
                                    <xs:element name="GlbCompany" minOccurs="0">
                                      <xs:complexType>
                                        <xs:all>
                                          <!-- Candidate Key: Code -->
                                          <xs:element name="Code" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="3" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="PK" minOccurs="0" type="xs:string" />
                                        </xs:all>
                                        <xs:attribute name="Action" type="Action" />
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:all>
                                  <xs:attribute name="Action" type="Action" />
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="RateLineItemsCollection" minOccurs="0">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="RateLineItems" minOccurs="0" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:all>
                                          <xs:element name="PK" minOccurs="0" type="xs:string" />
                                          <xs:element name="LineOrder" minOccurs="0" type="xs:short" />
                                          <xs:element name="Type" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="3" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="BreakMinimum" minOccurs="0" type="xs:decimal" />
                                          <xs:element name="Break" minOccurs="0" type="xs:decimal" />
                                          <xs:element name="BreakWeightVolume" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="3" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="Value" minOccurs="0" type="xs:decimal" />
                                          <xs:element name="AgentDeclaredRate" minOccurs="0" type="xs:decimal" />
                                          <xs:element name="FlatAmount" minOccurs="0" type="xs:decimal" />
                                          <xs:element name="Text" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="80" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="UnitMultiple" minOccurs="0" type="xs:int" />
                                          <xs:element name="CallForPricing" minOccurs="0" type="xs:boolean" />
                                          <xs:element name="PercentOf" minOccurs="0">
                                            <xs:complexType>
                                              <xs:all>
                                                <!-- Candidate Key: Code + GlbCompany.PK -->
                                                <xs:element name="Code" minOccurs="0">
                                                  <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                      <xs:maxLength value="10" />
                                                    </xs:restriction>
                                                  </xs:simpleType>
                                                </xs:element>
                                                <xs:element name="PK" minOccurs="0" type="xs:string" />
                                                <xs:element name="GlbCompany" minOccurs="0">
                                                  <xs:complexType>
                                                    <xs:all>
                                                      <!-- Candidate Key: Code -->
                                                      <xs:element name="Code" minOccurs="0">
                                                        <xs:simpleType>
                                                          <xs:restriction base="xs:string">
                                                            <xs:maxLength value="3" />
                                                          </xs:restriction>
                                                        </xs:simpleType>
                                                      </xs:element>
                                                      <xs:element name="PK" minOccurs="0" type="xs:string" />
                                                    </xs:all>
                                                    <xs:attribute name="Action" type="Action" />
                                                  </xs:complexType>
                                                </xs:element>
                                              </xs:all>
                                              <xs:attribute name="Action" type="Action" />
                                              <xs:attribute name="TableName" type="xs:string" />
                                            </xs:complexType>
                                          </xs:element>
                                          <xs:element name="DomesticZone" minOccurs="0">
                                            <xs:complexType>
                                              <xs:all>
                                                <!-- Candidate Key: ZoneName + RateTransportProvider.PK -->
                                                <xs:element name="ZoneName" minOccurs="0">
                                                  <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                      <xs:maxLength value="35" />
                                                    </xs:restriction>
                                                  </xs:simpleType>
                                                </xs:element>
                                                <xs:element name="PK" minOccurs="0" type="xs:string" />
                                                <xs:element name="RateTransportProvider" minOccurs="0">
                                                  <xs:complexType>
                                                    <xs:all>
                                                      <xs:element name="PK" minOccurs="0" type="xs:string" />
                                                    </xs:all>
                                                    <xs:attribute name="Action" type="Action" />
                                                  </xs:complexType>
                                                </xs:element>
                                              </xs:all>
                                              <xs:attribute name="Action" type="Action" />
                                              <xs:attribute name="TableName" type="xs:string" />
                                            </xs:complexType>
                                          </xs:element>
                                        </xs:all>
                                        <xs:attribute name="Action" type="Action" />
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="StmNoteCollection" minOccurs="0">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="StmNote" minOccurs="0" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:all>
                                          <xs:element name="PK" minOccurs="0" type="xs:string" />
                                          <xs:element name="NoteData" minOccurs="0" type="xs:base64Binary" />
                                          <xs:element name="NoteText" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string" />
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="NoteType" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="3" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="NoteContext" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="3" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="IsCustomDescription" minOccurs="0" type="xs:boolean" />
                                          <xs:element name="ForceRead" minOccurs="0" type="xs:boolean" />
                                          <xs:element name="Description" minOccurs="0">
                                            <xs:simpleType>
                                              <xs:restriction base="xs:string">
                                                <xs:maxLength value="50" />
                                              </xs:restriction>
                                            </xs:simpleType>
                                          </xs:element>
                                          <xs:element name="RelatedCompany" minOccurs="0">
                                            <xs:complexType>
                                              <xs:all>
                                                <!-- Candidate Key: Code -->
                                                <xs:element name="Code" minOccurs="0">
                                                  <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                      <xs:maxLength value="3" />
                                                    </xs:restriction>
                                                  </xs:simpleType>
                                                </xs:element>
                                                <xs:element name="PK" minOccurs="0" type="xs:string" />
                                              </xs:all>
                                              <xs:attribute name="Action" type="Action" />
                                              <xs:attribute name="TableName" type="xs:string" />
                                            </xs:complexType>
                                          </xs:element>
                                        </xs:all>
                                        <xs:attribute name="Action" type="Action" />
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:all>
                <xs:attribute name="Action" type="Action" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="JobDocAddressCollection" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobDocAddress" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:all>
                  <!-- Candidate Key: AddressType + RatingHeader.PK + AddressSequence -->
                  <xs:element name="AddressType" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Contact" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="256" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="CompanyName" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="100" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Address1" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Address2" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="City" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Postcode" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="10" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="State" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="25" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Phone" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Fax" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Email" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="254" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Mobile" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="AddressSequence" minOccurs="0" type="xs:short" />
                  <xs:element name="GovRegNum" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="35" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="GovRegNumType" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="IsResidential" minOccurs="0" type="xs:boolean" />
                  <xs:element name="AddressOverride" minOccurs="0" type="xs:boolean" />
                  <xs:element name="AddressMap" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="SuppressAddressValidationError" minOccurs="0" type="xs:boolean" />
                  <xs:element name="SystemCreateTimeUtc" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="SystemLastEditTimeUtc" minOccurs="0" type="emptiableDateTime" />
                  <xs:element name="ScreeningStatus" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="3" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="AdditionalAddressInformation" minOccurs="0">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                  <xs:element name="Address" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: OrgHeader.PK + Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="25" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="OrgHeader" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: Code -->
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="12" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="CountryCode" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="2" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="DepartmentCode" minOccurs="0">
                    <xs:complexType>
                      <xs:all>
                        <!-- Candidate Key: Code + OrgHeader.PK -->
                        <xs:element name="Code" minOccurs="0">
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="3" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:element>
                        <xs:element name="PK" minOccurs="0" type="xs:string" />
                        <xs:element name="Customer" minOccurs="0">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: Code -->
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="12" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                            <xs:attribute name="TableName" type="xs:string" />
                          </xs:complexType>
                        </xs:element>
                      </xs:all>
                      <xs:attribute name="Action" type="Action" />
                      <xs:attribute name="TableName" type="xs:string" />
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="OrgAddressCollection" minOccurs="0">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="OrgAddress" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                            <xs:all>
                              <!-- Candidate Key: JobDocAddress.PK + Code -->
                              <xs:element name="PK" minOccurs="0" type="xs:string" />
                              <xs:element name="Code" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="25" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="CompanyNameOverride" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="100" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Address1" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Address2" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="City" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="State" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="25" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PostCode" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="10" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Phone" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="20" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Fax" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="20" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Mobile" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="20" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="PickupFromTimeOnly" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="PickupToTimeOnly" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="DeliverFromTimeOnly" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="DeliverToTimeOnly" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="DoNotAttendFrom" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="DoNotAttendTo" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="ContainerHandling" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="AccessPoint" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="LabourRequired" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="CommunicationRequired" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="Dock_Height" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="FCLEquipmentNeeded" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="LCLEquipmentNeeded" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="AIREquipmentNeeded" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="DockLeveler" minOccurs="0" type="xs:boolean" />
                              <xs:element name="ForkLift" minOccurs="0" type="xs:boolean" />
                              <xs:element name="PalletJack" minOccurs="0" type="xs:boolean" />
                              <xs:element name="IsActive" minOccurs="0" type="xs:boolean" />
                              <xs:element name="Email" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="254" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="OtherWarehouseFacilities" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string" />
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="LoadingUnloadingConstraints" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string" />
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="AddressMap" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="UseCumulativeFreeWaitingTime" minOccurs="0" type="xs:boolean" />
                              <xs:element name="DeliveryRoute" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="DeliveryRouteSequence" minOccurs="0" type="xs:int" />
                              <xs:element name="AuthorityToLeave" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="3" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="GroupNumber" minOccurs="0" type="xs:int" />
                              <xs:element name="AdditionalAddressInformation" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="50" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="SuppressAddressValidationError" minOccurs="0" type="xs:boolean" />
                              <xs:element name="VerifiesContainerGrossWeight" minOccurs="0" type="xs:boolean" />
                              <xs:element name="SystemCreateTimeUtc" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="SystemLastEditTimeUtc" minOccurs="0" type="emptiableDateTime" />
                              <xs:element name="Language" minOccurs="0">
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:maxLength value="7" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:element>
                              <xs:element name="JobLoadingDuration" minOccurs="0" type="xs:int" />
                              <xs:element name="RelatedPortCode" minOccurs="0">
                                <xs:complexType>
                                  <xs:all>
                                    <!-- Candidate Key: Code -->
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                          <xs:maxLength value="5" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="PK" minOccurs="0" type="xs:string" />
                                  </xs:all>
                                  <xs:attribute name="Action" type="Action" />
                                  <xs:attribute name="TableName" type="xs:string" />
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="CountryCode" minOccurs="0">
                                <xs:complexType>
                                  <xs:all>
                                    <!-- Candidate Key: Code -->
                                    <xs:element name="Code" minOccurs="0">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                          <xs:maxLength value="2" />
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="PK" minOccurs="0" type="xs:string" />
                                  </xs:all>
                                  <xs:attribute name="Action" type="Action" />
                                  <xs:attribute name="TableName" type="xs:string" />
                                </xs:complexType>
                              </xs:element>
                            </xs:all>
                            <xs:attribute name="Action" type="Action" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:all>
                <xs:attribute name="Action" type="Action" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="Action" type="Action" />
  </xs:complexType>
</xs:schema>
