<!-- (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="CommodityCode" type="CommodityCodeData" />
  <xs:complexType name="CommodityCodeData">
    <xs:all>
      <xs:element name="RefCommodityCode" type="NativeCommodityCode" />
    </xs:all>
    <xs:attribute name="version" type="xs:token" />
  </xs:complexType>
  <xs:complexType name="NativeCommodityCode">
    <xs:all>
      <!-- Candidate Key: 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="4" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Description" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ExpiryDate" minOccurs="0" type="emptiableDateTime" />
      <xs:element name="ReeferMinTemperature" minOccurs="0" type="xs:decimal" />
      <xs:element name="ReeferMaxTemperature" minOccurs="0" type="xs:decimal" />
      <xs:element name="ContainerVentRequired" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsActive" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsTimber" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsPerishable" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsFlammable" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsHazardous" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsForwarding" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsLandTransport" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsShipping" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsPersonalEffects" minOccurs="0" type="xs:boolean" />
      <xs:element name="IsSystem" minOccurs="0" type="xs:boolean" />
      <xs:element name="UniversalCommodityGroup" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="10" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NMFC" 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="15" />
                </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:schema>
