<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="location">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cidn"/>
        <xs:element ref="name"/>
        <xs:element ref="type" minOccurs="0"/>
        <xs:element ref="languages" minOccurs="0"/>
        <xs:element ref="street" minOccurs="0"/>
        <xs:element ref="postal-code"/>
        <xs:element ref="place" minOccurs="0"/>
        <xs:element ref="geocode" minOccurs="0"/>
        <xs:element ref="rooms" minOccurs="0"/>
        <xs:element ref="urls" minOccurs="0"/>
        <xs:element ref="telephone" minOccurs="0"/>
        <xs:element ref="fax" minOccurs="0"/>
        <xs:element ref="email" minOccurs="0"/>
        <xs:element ref="media" minOccurs="0"/>
        <xs:element ref="tags" 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="languages">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="language"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="language">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="sortname" minOccurs="0"/>
        <xs:element ref="short-description" minOccurs="0"/>
        <xs:element ref="description" minOccurs="0"/>
        <xs:element ref="opening-hours" minOccurs="0"/>
        <xs:element ref="ov-info" minOccurs="0"/>
        <xs:element ref="handicapped-info" minOccurs="0"/>
        <xs:element ref="pricing-information" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="locale" use="required" type="localeType"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="sortname" type="xs:string"/>
  <xs:element name="short-description" type="xs:string"/>
  <xs:element name="description" type="xs:string"/>
  <xs:element name="street">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="name"/>
        <xs:element ref="number"/>
        <xs:element ref="addition"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="number" type="xs:string"/>
  <xs:element name="addition" type="xs:string"/>
  <xs:element name="postal-code" type="xs:string"/>
  <xs:element name="place" type="xs:string"/>
  <xs:element name="geocode">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="latitude"/>
        <xs:element minOccurs="0" ref="longitude"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="latitude" type="xs:string"/>
  <xs:element name="longitude" type="xs:string"/>
  <xs:element name="rooms">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="room"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="room" type="xs:string"/>
  <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="opening-hours" type="xs:string"/>
  <xs:element name="its" type="xs:integer"/>
  <xs:element name="ov-info" type="xs:string"/>
  <xs:element name="handicapped-info" type="xs:string"/>
  <xs:element name="pricing-information" type="xs:string"/>
  <xs:element name="telephone" type="xs:string"/>
  <xs:element name="fax" type="xs:string"/>
  <xs:element name="email" 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="title" type="xs:string"/>
  <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="editions">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="edition" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="edition" type="xs:string"/>
  <xs:element name="name" 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: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="CINEMA"/>
      <xs:enumeration value="OUTDOORLOCATION"/>
      <xs:enumeration value="GALLERY"/>
      <xs:enumeration value="MUSEUM"/>
      <xs:enumeration value="THEATER"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="metaStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="delivered"/>
      <xs:enumeration value="published"/>
      <xs:enumeration value="deleted"/>
    </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>

