<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="production">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cidn"/>
        <xs:element ref="title"/>
        <xs:element ref="type" minOccurs="0"/>
        <xs:element ref="country" minOccurs="0"/>
        <xs:element ref="language" minOccurs="0"/>
        <xs:element ref="subtitles" minOccurs="0"/>
        <xs:element ref="lnp" minOccurs="0"/>
        <xs:element ref="languages" minOccurs="0"/>
        <xs:element ref="age" minOccurs="0"/>
        <xs:element ref="genres"/>
        <xs:element ref="urls" minOccurs="0"/>
        <xs:element ref="media" minOccurs="0"/>
        <xs:element ref="tags" minOccurs="0"/>
        <xs:element ref="notes" minOccurs="0"/>
        <xs:element ref="editions" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="date-created" use="required" type="xs:dateTime"/>
      <xs:attribute name="date-modified" type="xs:dateTime"/>
      <xs:attribute name="owner" use="required" type="xs:string"/>
      <xs:attribute name="source" use="required" type="xs:string"/>
      <xs:attribute name="resource-status" use="required" type="resourceStatusType"/>
      <xs:attribute name="workflow-status" use="required" type="workflowStatusType"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="cidn" type="xs:string"/>
  <xs:element name="country" type="xs:string"/>
  <xs:element name="subtitles" type="xs:string"/>
  <xs:element name="lnp" type="xs:boolean"/>
  <xs:element name="languages">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="language"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="year" type="xs:integer"/>
  <xs:element name="age">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="lower"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="upper"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="lower" type="xs:integer"/>
  <xs:element name="upper" type="xs:integer"/>
  <xs:element name="genres">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="genre" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="genre">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="key" use="required" type="xs:string"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="urls">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="url"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="url" type="xs:anyURI"/>
  <xs:element name="media">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="medium"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="medium">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element ref="ref"/>
        <xs:element ref="alt"/>
        <xs:element ref="description"/>
        <xs:element ref="type"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ref" type="xs:anyURI"/>
  <xs:element name="alt" type="xs:string"/>
  <xs:element name="tags">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tag"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="tag" type="xs:string"/>
  <xs:element name="notes" type="xs:string"/>
  <xs:element name="editions">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="edition"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="edition" type="xs:string"/>
  <xs:element name="title" type="xs:string"/>
  <xs:element name="type">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="key" type="typeType"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="language">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="title"/>
        <xs:element ref="short-description"/>
        <xs:element ref="description"/>
        <xs:element ref="party"/>
        <xs:element ref="people"/>
      </xs:choice>
      <xs:attribute name="locale" type="localeType"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="short-description" type="xs:string"/>
  <xs:element name="description" type="xs:string"/>
  <xs:element name="party" type="xs:string"/>
  <xs:element name="people" type="xs:string"/>
  
  <xs:simpleType name="localeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="nl_NL"/>
      <xs:enumeration value="fy_NL"/>
      <xs:enumeration value="en_US"/>
      <xs:enumeration value="en_UK"/>
      <xs:enumeration value="fr_FR"/>
      <xs:enumeration value="de_DE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="typeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EXHIBITION"/>
      <xs:enumeration value="PERFORMANCE"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="resourceStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="concept"/>
      <xs:enumeration value="active"/>
      <xs:enumeration value="deleted"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="workflowStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="delivered"/>
      <xs:enumeration value="pending"/>
      <xs:enumeration value="published"/>
    </xs:restriction>
  </xs:simpleType>
  
</xs:schema>

