<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:orc="http://www.theorchard.com/xml/film"
        xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.theorchard.com/xml/film"
        elementFormDefault="qualified">
 
  <xsd:element name="Metadata">
    <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="Movie" type="orc:MovieType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="TV" minOccurs="0" maxOccurs="unbounded" >
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="Series" type="orc:SeriesType" minOccurs="0" maxOccurs="unbounded" />
            <xsd:element name="Season" type="orc:SeasonType" minOccurs="0" maxOccurs="unbounded" />
            <xsd:element name="Episode" type="orc:EpisodeType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="Offer" type="orc:SalesWindowType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="SubscriptionOffer" type="orc:SubscriptionOfferType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="CommonMetdataType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Metadata common to any content type. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="PartnerName" type="xsd:string" />
      <xsd:element name="UniqueID" type="orc:UniqueIDType">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            An identifier for a title. The ID must be unique amongst all
            content for each partner.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="IMDB" type="xsd:token" minOccurs="0">
        <xsd:annotation>
        	<xsd:documentation>
        		IMDB "tt id"
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="CopyrightHolder" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="CopyrightYear" type="orc:YearType" minOccurs="0" />
      <xsd:element name="Language" type="xsd:language" minOccurs="0" />
      <xsd:element name="ContentInfo" type="orc:FileInfoType" minOccurs="0" />
      <xsd:element name="StillImageInfo" type="orc:FileInfoType" minOccurs="0" />
      <xsd:element name="PreviewInfo" type="orc:FileInfoType" minOccurs="0" />
      <xsd:element name="RuntimeInMinutes" type="xsd:int" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="MovieType">
    <xsd:complexContent>
      <xsd:extension base="orc:CommonMetdataType">
        <xsd:sequence>
            <xsd:element name="TitleInfo" type="orc:MovieMetadataType" maxOccurs="1" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="SeriesType">
    <xsd:complexContent>
      <xsd:extension base="orc:CommonMetdataType">
        <xsd:sequence>
            <xsd:element name="TitleInfo" type="orc:SeriesMetadataType" maxOccurs="1" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="SeasonType">
    <xsd:complexContent>
      <xsd:extension base="orc:CommonMetdataType">
        <xsd:sequence>
          <xsd:element name="SeriesID" type="orc:UniqueIDType" />
          <xsd:element name="TitleInfo" type="orc:SeasonMetadataType" maxOccurs="1" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="EpisodeType">
    <xsd:complexContent>
      <xsd:extension base="orc:CommonMetdataType">
        <xsd:sequence>
          <xsd:element name="SeriesID" type="orc:UniqueIDType" minOccurs="0" />
          <xsd:element name="SeasonID" type="orc:UniqueIDType" />
          <xsd:element name="TitleInfo" type="orc:EpisodeMetadataType" />
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="MovieMetadataType">
    <xsd:sequence>
      <xsd:element name="ISAN" type="xsd:string" minOccurs="0" />
      <xsd:element name="Title" type="xsd:string" />
      <xsd:element name="Synopses" type="orc:SynopsesType" />
      <xsd:element name="Actor" type="orc:ActorType" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Director" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Producer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Writer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Creator" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Studio" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="ItemType" type="orc:ItemType" fixed="downloadable-feature-films" />
      <xsd:element name="ReleaseDate" type="xsd:dateTime" minOccurs="0" />
      <xsd:element name="DVDStreetDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="Genre" type="orc:MovieGenreType" maxOccurs="5" />
      <xsd:element name="ColorState" type="orc:ColorStateType" minOccurs="0" />
      <xsd:element name="Rating" type="orc:MovieRatingType" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SeriesMetadataType">
    <xsd:sequence>
      <xsd:element name="Title" type="xsd:string" />
      <xsd:element name="Synopses" type="orc:SynopsesType" />
      <xsd:element name="Actor" type="orc:ActorType" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Director" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
      <xsd:element name="Producer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Writer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Creator" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Studio" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="StartYear" type="orc:YearType" />
      <xsd:element name="EndYear" type="orc:YearType" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SeasonMetadataType">
    <xsd:sequence>
      <xsd:element name="Sequence" type="xsd:int" />
      <xsd:element name="Title" type="xsd:string" />
      <xsd:element name="Synopses" type="orc:SynopsesType" />
      <xsd:element name="Actor" type="orc:ActorType" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Director" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Producer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Writer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Creator" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Studio" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="EpisodeMetadataType">
    <xsd:sequence>
      <xsd:element name="Sequence" type="xsd:int" />
      <xsd:element name="ISAN" type="xsd:string" minOccurs="0" />
      <xsd:element name="Title" type="xsd:string" />
      <xsd:element name="Synopses" type="orc:SynopsesType" />
      <xsd:element name="GuestActor" type="orc:GuestActorType" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Director" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
      <xsd:element name="Producer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Writer" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Creator" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="Studio" type="xsd:string" maxOccurs="unbounded" minOccurs="0" />
      <xsd:element name="ItemType" type="orc:ItemType" fixed="downloadable-television-shows" />
      <xsd:element name="DVDStreetDate" type="xsd:date" minOccurs="0" />
      <xsd:element name="Genre" type="orc:TVGenreType" maxOccurs="5" />
      <xsd:element name="ColorState" type="orc:ColorStateType" minOccurs="0" />
      <xsd:element name="Rating" type="orc:TVRatingType" minOccurs="0" />
      <xsd:element name="EpisodeProductionNumber" type="xsd:int" minOccurs="0" />
      <xsd:element name="OriginalAirDate" type="xsd:dateTime" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="SubscriptionOfferType">
    <xsd:sequence>
      <xsd:element name="SubscriptionID" type="orc:UniqueIDType" />
      <xsd:element name="PartnerName" type="xsd:string" />
      <xsd:element name="UniqueID" type="orc:UniqueIDType" />
      <xsd:element name="ContentType" type="orc:ContentTypeType" />
      <xsd:element name="Title" type="xsd:string" />
      
      <xsd:element name="IMDB" type="xsd:token" minOccurs="0"> 
        <xsd:annotation>
          <xsd:documentation>
              The IMDb ID of the title.  Recommended for movies.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>
      
      <xsd:element name="ReleaseYear" type="orc:YearType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
              The release year of the title.  Recommended for movies.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>

      <xsd:element name="SeriesID" type="orc:UniqueIDType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
              The parent series unique ID (SKU) for the title.  Recommended for TV episodes.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>	  
      
      <xsd:element name="SeasonID" type="orc:UniqueIDType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
              The parent season unique ID (SKU) for the title.  Recommended for TV episodes.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>	  
            
      <xsd:element name="Sequence" type="xsd:int" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
              The sequence of the episode in the season.  Recommended for TV episodes.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>	        

      <xsd:element name="OriginalAirDate" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
                The original-air-date of the title.  Recommended for TV episodes.
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>	  
	  
      <xsd:element name="WindowStart" type="orc:CurrentDateTimeType" />
      <xsd:element name="WindowEnd" type="orc:CurrentDateTimeType" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SalesWindowType">
    <xsd:sequence>
      <xsd:element name="PartnerName" type="xsd:string" />
      <xsd:element name="UniqueID" type="orc:UniqueIDType">
        <xsd:annotation>
          <xsd:documentation>
                The Unique ID of the content for which the start and (optional) end dates
                are to be applied
          </xsd:documentation>
        </xsd:annotation>     
      </xsd:element>
      <xsd:element name="Type" type="orc:OfferType" minOccurs="0" />
      <xsd:element name="Quality" type="orc:QualityType" minOccurs="0" />
      <xsd:element name="PublishDate" type="orc:CurrentDateTimeType" />
      <xsd:element name="WindowStart" type="orc:CurrentDateTimeType" />
      <xsd:element name="WindowEnd" type="orc:CurrentDateTimeType" minOccurs="0" />
      <xsd:element name="IsPreorder" type="xsd:boolean"  minOccurs="0" /> 
    </xsd:sequence>
  </xsd:complexType>

  <!-- Basic Metadata Types -->

  <xsd:simpleType name="YearType">
    <xsd:restriction base="xsd:integer">
      <xsd:minInclusive value="1900" />
      <xsd:maxInclusive value="2100" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="SynopsesType">
    <xsd:sequence>
      <xsd:element name="Short" type="orc:ShortSynopsisType" />
      <xsd:element name="Long" type="orc:LongSynopsisType" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="FileInfoType">
    <xsd:choice minOccurs="1" maxOccurs="2">
      <xsd:element name="Checksum" type="xsd:string" minOccurs="0" />
      <xsd:element name="Filename" type="xsd:string" />
    </xsd:choice>
  </xsd:complexType>

  <xsd:simpleType name="UniqueIDType">
    <xsd:restriction base="xsd:token">
      <xsd:minLength value="1" />
      <xsd:maxLength value="28" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ShortSynopsisType">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1" />
      <xsd:maxLength value="400" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="LongSynopsisType">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1" />
      <xsd:maxLength value="2000" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="ActorType">
    <xsd:sequence>
      <xsd:element name="ActorName" type="xsd:string" />
      <xsd:element name="Character" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="GuestActorType">
    <xsd:sequence>
      <xsd:element name="GuestActorName" type="xsd:string" />
      <xsd:element name="Character" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="ItemType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="downloadable-feature-films" />
      <xsd:enumeration value="downloadable-television-shows" />
      <!-- add other enumerations here -->
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ColorStateType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Color" />
      <xsd:enumeration value="BW" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="OfferType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="EST" />
      <xsd:enumeration value="VOD" />
    </xsd:restriction>
  </xsd:simpleType>  
  
  <xsd:simpleType name="QualityType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SD" />
      <xsd:enumeration value="HD" />
    </xsd:restriction>
  </xsd:simpleType>  

  <xsd:simpleType name="MovieRatingType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Use "none" when no MPAA rating is available.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NR" />
      <xsd:enumeration value="G" />
      <xsd:enumeration value="PG" />
      <xsd:enumeration value="PG-13" />
      <xsd:enumeration value="R" />
      <xsd:enumeration value="NC-17" />
      <xsd:enumeration value="Unrated" />
      <xsd:enumeration value="X" />
      <xsd:enumeration value="none"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="TVRatingType">
    <xsd:annotation>
      <xsd:documentation>
        Use "none" when no rating is available.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="TV-Y" />
      <xsd:enumeration value="TV-Y7" />
      <xsd:enumeration value="TV-Y7-FV" />
      <xsd:enumeration value="TV-G" />
      <xsd:enumeration value="TV-PG" />
      <xsd:enumeration value="TV-14" />
      <xsd:enumeration value="TV-MA" />
      <xsd:enumeration value="none" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="TVGenreType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Comedy" />
      <xsd:enumeration value="Animation" />
      <xsd:enumeration value="Horror" />
      <xsd:enumeration value="Drama" />
      <xsd:enumeration value="History" />
      <xsd:enumeration value="News" />
      <xsd:enumeration value="Religon and Spirituality" />
      <xsd:enumeration value="Health and Fitness" />
      <xsd:enumeration value="Documentary" />
      <xsd:enumeration value="Action &amp; Adventure" />
      <xsd:enumeration value="African American" />
      <xsd:enumeration value="Art House" />
      <xsd:enumeration value="Adult" />
      <xsd:enumeration value="Biography" />
      <xsd:enumeration value="Classics" />
      <xsd:enumeration value="Concert Footage" />
      <xsd:enumeration value="Educational &amp; Learning" />
      <xsd:enumeration value="Gay &amp; Lesbian" />
      <xsd:enumeration value="Game Show" />
      <xsd:enumeration value="Holiday" />
      <xsd:enumeration value="Independent" />
      <xsd:enumeration value="International" />
      <xsd:enumeration value="Kids &amp; Family" />
      <xsd:enumeration value="Martial Arts" />
      <xsd:enumeration value="Military &amp; War" />
      <xsd:enumeration value="Music &amp; Performing Arts" />
      <xsd:enumeration value="Mystery" />
      <xsd:enumeration value="New Age &amp; Metaphysics" />
      <xsd:enumeration value="Politics" />
      <xsd:enumeration value="Reality" />
      <xsd:enumeration value="Romance" />
      <xsd:enumeration value="Science Fiction &amp; Fantasy" />
      <xsd:enumeration value="Spanish Language" />
      <xsd:enumeration value="Sports" />
      <xsd:enumeration value="Talk Show" />
      <xsd:enumeration value="Teens" />
      <xsd:enumeration value="Thriller" />
      <xsd:enumeration value="Variety Show" />
      <xsd:enumeration value="Western" />

    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="MovieGenreType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Comedy" />
      <xsd:enumeration value="Animation" />
      <xsd:enumeration value="Horror" />
      <xsd:enumeration value="Drama" />
      <xsd:enumeration value="History" />
      <xsd:enumeration value="News" />
      <xsd:enumeration value="Religon and Spirituality" />
      <xsd:enumeration value="Health and Fitness" />
      <xsd:enumeration value="Documentary" />
      <xsd:enumeration value="Action &amp; Adventure" />
      <xsd:enumeration value="African American" />
      <xsd:enumeration value="Art House" />
      <xsd:enumeration value="Adult" />
      <xsd:enumeration value="Biography" />
      <xsd:enumeration value="Classics" />
      <xsd:enumeration value="Concert Footage" />
      <xsd:enumeration value="Educational &amp; Learning" />
      <xsd:enumeration value="Gay &amp; Lesbian" />
      <xsd:enumeration value="Game Show" />
      <xsd:enumeration value="Holiday" />
      <xsd:enumeration value="Independent" />
      <xsd:enumeration value="International" />
      <xsd:enumeration value="Kids &amp; Family" />
      <xsd:enumeration value="Martial Arts" />
      <xsd:enumeration value="Military &amp; War" />
      <xsd:enumeration value="Music &amp; Performing Arts" />
      <xsd:enumeration value="Mystery" />
      <xsd:enumeration value="New Age &amp; Metaphysics" />
      <xsd:enumeration value="Politics" />
      <xsd:enumeration value="Reality" />
      <xsd:enumeration value="Romance" />
      <xsd:enumeration value="Science Fiction &amp; Fantasy" />
      <xsd:enumeration value="Spanish Language" />
      <xsd:enumeration value="Sports" />
      <xsd:enumeration value="Talk Show" />
      <xsd:enumeration value="Teens" />
      <xsd:enumeration value="Thriller" />
      <xsd:enumeration value="Variety Show" />
      <xsd:enumeration value="Western" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="CurrentDateTimeType">
    <xsd:annotation>
      <xsd:documentation>
        Represents a reasonably current date and time from 01-January-2008
        through to 31-December-2050 inclusive.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:dateTime">
      <xsd:minInclusive value="1900-01-01T00:00:00Z" />
      <xsd:maxInclusive value="2050-12-31T00:00:00Z" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ContentTypeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Movie" />
      <xsd:enumeration value="Episode" />
    </xsd:restriction>
  </xsd:simpleType>

</schema>
