<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="event">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cidn"/>
        <xs:element maxOccurs="2" ref="link"/>
        <xs:element ref="datetime-start"/>
        <xs:element ref="datetime-end"/>
        <xs:element ref="status"/>
        <xs:element ref="age" minOccurs="0"/>
        <xs:element ref="free" minOccurs="0"/>
        <xs:element ref="room" minOccurs="0"/>
        <xs:element ref="title" minOccurs="0"/>
        <xs:element ref="description" minOccurs="0"/>
        <xs:element ref="pricetags" minOccurs="0"/>
        <xs:element ref="media" 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="office" use="required" type="xs:string"/>
      <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="link">
    <xs:complexType>
      <xs:attribute name="ref" use="required" type="xs:anyURI"/>
      <xs:attribute name="type" use="required" type="resourceType"/>
      <xs:attribute name="cidn" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="cidn" type="xs:string"/>
  <xs:element name="datetime-start" type="xs:dateTime"/>
  <xs:element name="datetime-end" type="xs:dateTime"/>
  <xs:element name="status">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="key" type="statusType"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="title" type="xs:string"/>
  <xs:element name="description" type="xs:string"/>
  <xs:element name="pricetags">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pricetag"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="pricetag">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="description"/>
        <xs:element ref="highest" minOccurs="0"/>
        <xs:element ref="lowest" minOccurs="0"/>
        <xs:element ref="ticketsalesinformation"/>
        <xs:element ref="ticketsalesphone"/>
        <xs:element ref="ticketsalesurl"/>
        <xs:element ref="type"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="highest" type="xs:decimal"/>
  <xs:element name="lowest" type="xs:decimal"/>
  <xs:element name="ticketsalesinformation" type="xs:string"/>
  <xs:element name="ticketsalesphone" type="xs:string"/>
  <xs:element name="ticketsalesurl" type="xs:anyURI"/>
  <xs:element name="type" type="xs:string"/>
  <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="editions">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="edition"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <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="free" type="xs:boolean"/>
  <xs:element name="room" type="xs:string"/>
  
  <xs:element name="edition" 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="statusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NORMAL"/>
      <xs:enumeration value="POSTPONED"/>
      <xs:enumeration value="CANCELLED"/>
      <xs:enumeration value="SOLDOUT"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="typeMetaStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DRAFT"/>
      <xs:enumeration value="ACTIVE"/>
      <xs:enumeration value="INACTIVE"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="resourceType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="production"/>
      <xs:enumeration value="location"/>
    </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>

