<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="GroupedFiles" targetNamespace="http://api.dmds.com/api/v1/schemas/groupedFiles" elementFormDefault="qualified" xmlns="http://api.dmds.com/api/v1/schemas/groupedFiles" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <!-- Files type definition -->
  <xs:complexType name="Assets">
    <xs:all>
      <xs:element name="Audios" nillable="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="AdAudio" type="AdAudio" minOccurs="0" maxOccurs="unbounded" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="Videos" nillable="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="AdVideo" type="AdVideo" minOccurs="0" maxOccurs="unbounded" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="Documents" nillable="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="AdDocument" type="AdDocument" minOccurs="0" maxOccurs="unbounded" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="Image" nillable="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="AdImage" type="AdImage" minOccurs="0" maxOccurs="unbounded" />
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <!-- Destinations type definition -->
  <xs:complexType name="Destinations">
    <xs:sequence>
      <xs:element name="Destination" type="Destination" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <!-- Destination type definition -->
  <xs:complexType name="Destination">
    <xs:all>
      <xs:element name="ID" type="xs:integer" />
      <xs:element name="Name" type="xs:string" />
    </xs:all>
  </xs:complexType>
  <!-- AdAudio type definition -->
  <xs:complexType name="AdAudio">
    <xs:all>
      <xs:element name="AudioID" type="xs:integer" />
      <xs:element name="CreationDate" type="xs:string" />
      <xs:element name="MetaTypeID" type="xs:integer" />
      <xs:element name="Owner" type="xs:integer" />
      <xs:element name="IsLocked" type="xs:integer" />
      <xs:element name="IsShared" type="xs:integer" />
      <xs:element name="FileStateID" type="xs:integer" />
      <xs:element name="Status" type="xs:integer" />
      <xs:element name="TrackNumber" type="xs:integer" />
      <xs:element name="Title" type="xs:string" />
      <xs:element name="Brand" type="xs:string" />
      <xs:element name="ISCI" type="xs:string" />
      <xs:element name="OrderNumber" type="xs:string" />
      <xs:element name="ProductionHouse" type="xs:string" />
      <xs:element name="FilenameMediaValueID" type="xs:integer" />
      <xs:element name="Length" type="xs:string" />
      <xs:element name="Intro" type="xs:string" />
      <xs:element name="Outro" type="xs:string" />
      <xs:element name="Website" type="xs:string" />
      <xs:element name="CopyrightOwner" type="xs:string" />
      <xs:element name="Name" type="xs:string" />
      <xs:element name="SampleRate" type="xs:string" />
      <xs:element name="CopyrightDate" type="xs:string" />
      <xs:element name="DirectResponse" type="xs:string" />
      <xs:element name="MediaFileStateID" type="xs:int" />
      <xs:element name="FileState" type="xs:string" />
      <xs:element name="Destinations" type="Destinations" minOccurs="1" maxOccurs="1" />
    </xs:all>
  </xs:complexType>
  <!-- AdVideo type definition -->
  <xs:complexType name="AdVideo">
    <xs:all>
      <xs:element name="VideoID" type="xs:integer" />
      <xs:element name="CreationDate" type="xs:string" />
      <xs:element name="MetaTypeID" type="xs:integer" />
      <xs:element name="Owner" type="xs:integer" />
      <xs:element name="IsLocked" type="xs:integer" />
      <xs:element name="IsShared" type="xs:integer" />
      <xs:element name="FileStateID" type="xs:integer" />
      <xs:element name="Title" type="xs:string" />
      <xs:element name="Distributor" type="xs:string" />
      <xs:element name="ProductionHouse" type="xs:string" />
      <xs:element name="Director" type="xs:string" />
      <xs:element name="Producer" type="xs:string" />
      <xs:element name="Language" type="xs:string" />
      <xs:element name="ClosedCaption" type="xs:string" />
      <xs:element name="Status" type="xs:integer" />
      <xs:element name="ISCI" type="xs:string" />
      <xs:element name="JobNumber" type="xs:string" />
      <xs:element name="FileNameMediaValueID" type="xs:integer" />
      <xs:element name="Length" type="xs:string" />
      <xs:element name="FrameRate" type="xs:string" />
      <xs:element name="Type" type="xs:string" />
      <xs:element name="Brand" type="xs:string" />
      <xs:element name="QualityControl" type="xs:string" />
      <xs:element name="VideoSDHD" type="xs:string" />
      <xs:element name="AudioConfig" type="xs:string" />
      <xs:element name="SourceLoudness" type="xs:decimal" />
      <xs:element name="SourcePeak" type="xs:decimal" />
      <xs:element name="SCC" type="xs:string" />
      <xs:element name="TelecasterNumber" type="xs:string" />
      <xs:element name="SOM" type="xs:string" />
      <xs:element name="EOM" type="xs:string" />
      <xs:element name="Duration" type="xs:string" />
      <xs:element name="Slate" type="xs:string" />
      <xs:element name="AFD" type="xs:string" />
      <xs:element name="QualityControlStatus" type="xs:string" />
      <xs:element name="DirectResponse" type="xs:string" />
      <xs:element name="DescriptiveVideo" type="xs:string" />
      <xs:element name="MediaFileStateID" type="xs:int" />
      <xs:element name="FileState" type="xs:string" />
      <xs:element name="Destinations" type="Destinations" minOccurs="1" maxOccurs="1" />
    </xs:all>
  </xs:complexType>
  <!-- AdDocument type definition -->
  <xs:complexType name="AdDocument">
    <xs:all>
      <xs:element name="DocumentID" type="xs:integer" />
      <xs:element name="CreationDate" type="xs:string" />
      <xs:element name="MetaTypeID" type="xs:integer" />
      <xs:element name="Owner" type="xs:integer" />
      <xs:element name="IsLocked" type="xs:integer" />
      <xs:element name="IsShared" type="xs:integer" />
      <xs:element name="FileStateID" type="xs:integer" />
      <xs:element name="Title" type="xs:string" />
      <xs:element name="FilenameMediaValueID" type="xs:integer" />
      <xs:element name="MediaFileStateID" type="xs:int" />
      <xs:element name="FileState" type="xs:string" />
      <xs:element name="Destinations" type="Destinations" minOccurs="1" maxOccurs="1" />
    </xs:all>
  </xs:complexType>
  <!-- AdImage type definition -->
  <xs:complexType name="AdImage">
    <xs:all>
      <xs:element name="ImageID" type="xs:integer" />
      <xs:element name="CreationDate" type="xs:string" />
      <xs:element name="MetaTypeID" type="xs:integer" />
      <xs:element name="Owner" type="xs:integer" />
      <xs:element name="IsLocked" type="xs:integer" />
      <xs:element name="IsShared" type="xs:integer" />
      <xs:element name="FileStateID" type="xs:integer" />
      <xs:element name="Title" type="xs:string" />
      <xs:element name="Caption" type="xs:string" />
      <xs:element name="FilenameMediaValueID" type="xs:integer" />
      <xs:element name="MediaFileStateID" type="xs:int" />
      <xs:element name="FileState" type="xs:string" />
      <xs:element name="Destinations" type="Destinations" minOccurs="1" maxOccurs="1" />
    </xs:all>
  </xs:complexType>
</xs:schema>