<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="createtraffic_standard" targetNamespace="http://api.dmds.com/api/v1/requestschemas/traffic_standard" elementFormDefault="qualified" xmlns="http://api.dmds.com/api/v1/requestschemas/traffic_standard" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="TrafficOrder" type="TrafficOrder" />
  <!-- Order element definition -->
  <xs:complexType name="TrafficOrder">
    <xs:all minOccurs="0">
      <!-- Set this to true in order to throw an error (preventing a save operation) if any warnings occur -->
      <xs:element name="ThrowErrorOnWarning" type="xs:boolean" default="false" />
      <!-- An order name must be specified -->
      <xs:element name="OrderName" type="DMDSString" />
      <xs:element name="Brand" type="DMDSString" />
      <xs:element name="Product" type="DMDSString" />
      <xs:element name="Campaign" type="DMDSString" />
      <xs:element name="ContactName" type="DMDSString" />
      <xs:element name="ContactEmail" type="DMDSString" />
      <xs:element name="ContactPhone" type="DMDSString" />
      <xs:element name="Website" type="DMDSString" />
      <xs:element name="ClientAdvertiser" type="DMDSString" />
      <xs:element name="BillTo" type="DMDSString" />
      <xs:element name="PONumber" type="DMDSString" />
      <xs:element name="JobNumber" type="DMDSString" />
      <xs:element name="EstimateNumber" type="DMDSString" />
      <xs:element name="FlightStartDate" type="DMDSDateTimeFormat" />
      <xs:element name="Destinations" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Organization" type="Organization" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="TrafficDocuments" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="TrafficDocument" type="TrafficDocument" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TrafficDocument">
    <xs:choice>
      <xs:element name="TrafficDocumentID" type="xs:integer" />
      <xs:element name="TrafficDocumentName" type="DMDSString" />
      <xs:element name="DocumentType">
        <xs:simpleType>
          <xs:annotation>
            <xs:documentation>Select one of the values: {PDF, DOC, DOCX, XLS, XLSX, TXT}</xs:documentation>
          </xs:annotation>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PDF" />
            <xs:enumeration value="DOC" />
            <xs:enumeration value="DOCX" />
            <xs:enumeration value="XLS" />
            <xs:enumeration value="XLSX" />
            <xs:enumeration value="TXT" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Document" type="xs:base64Binary"></xs:element>
    </xs:choice>
  </xs:complexType>
  <!-- Organization type defintion -->
  <xs:complexType name="Organization">
    <xs:choice>
      <!-- Use any of the following identifiers to match the organization from the request to the organization in DMDS -->
      <xs:element name="OrganizationID" type="xs:integer" />
      <xs:element name="TrafficDocumentName" type="DMDSString" />
    </xs:choice>
  </xs:complexType>
  <!-- Data field definitions -->
  <xs:simpleType name="DMDSString">
    <xs:annotation>
      <xs:documentation>Defines custom DMDS string length for All string values</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="400" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DMDSDateTimeFormat">
    <xs:annotation>
      <xs:documentation>Defines custom DMDS date time format: YYYY-MM-DDTHH:mm:ss (eg 2013-01-01T14:00:00), note all DateTime strings must be EST, GMT -5</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:dateTime">
      <xs:pattern value="((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9]{2})|([1-9][0-9]{3}))-((0[1-9])|(1[012]))-((0[1-9])|([12][0-9])|(3[01]))T(([01][0-9])|(2[0-3]))(:[0-5][0-9])(:00)" />
      <xs:maxInclusive value="2079-06-06T23:59:00" />
      <xs:minInclusive value="1900-01-01T00:00:00" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>