<xs:schema targetNamespace="http://phaidra.univie.ac.at/XML/europeana"
	xmlns="http://phaidra.unibl.org/XML/europeana"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

<xs:element name="europeana">
	<xs:complexType>
	<xs:sequence>
		<xs:element name="title" minOccurs="1" maxOccurs="unbounded"  type="CharacterString"/>
		<xs:element name="alternative" minOccurs="0" maxOccurs="unbounded"  type="CharacterString"/>
		<xs:element name="creator" minOccurs="1" maxOccurs="1" type="CharacterString"/>
		<xs:element name="subject" minOccurs="1" maxOccurs="unbounded" type="CharacterString"/>
		<xs:element name="description" minOccurs="1" maxOccurs="unbounded" type="CharacterString"/>
		<xs:element name="tableOfContents" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="publisher" minOccurs="0" maxOccurs="unbounded" type="CharacterString"/>
		<xs:element name="contributor" minOccurs="0" maxOccurs="unbounded" type="CharacterString"/>
		<xs:element name="date" minOccurs="1" maxOccurs="1" type="xs:dateTime"/>
		<xs:element name="created" minOccurs="1" maxOccurs="1" type="xs:dateTime"/>
		<xs:element name="issued" minOccurs="0" maxOccurs="1" type="xs:dateTime"/>
		<xs:element name="type" minOccurs="1" maxOccurs="unbounded" type="EuropeanaObjectType"/>
		<xs:element name="format" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="extent" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="medium" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="identifier" minOccurs="1" maxOccurs="1" type="Identifier"/>
		<xs:element name="source" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="language" minOccurs="1" maxOccurs="1" type="Language"/>
		<xs:element name="relation" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isVersionOf" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="hasVersion" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isReplacedBy" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="replaces" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isRequiredBy" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="requires" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isPartOf" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="hasPart" minOccurs="0" maxOccurs="1" type="Identifier"/>
		<xs:element name="isReferencedBy" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="references" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isFormatOf" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="hasFormat" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="conformsTo" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="coverage" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="spatial" minOccurs="1" maxOccurs="1" type="CharacterString"/>
		<xs:element name="temporal" minOccurs="1" maxOccurs="1" type="CharacterString"/>
		<xs:element name="rights" minOccurs="1" maxOccurs="1" type="CharacterString"/>
		<xs:element name="provenance" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="userTag" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="unstored" minOccurs="1" maxOccurs="1" type="CharacterString"/>
		<xs:element name="object" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="note" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="year" minOccurs="0" maxOccurs="1" type="CharacterString"/>
		<xs:element name="isShownBy" minOccurs="0" maxOccurs="1">
			<xs:complexType>
				<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="role" use="optional" type="EuropeanaObjectType" />
					<xs:attribute name="title" use="optional" type="xs:string"/>
				</xs:extension>
				</xs:simpleContent>
			</xs:complexType>
		</xs:element>
		<xs:element name="isShownAt" minOccurs="0" maxOccurs="1" type="xs:anyURI"/>
	</xs:sequence>
	</xs:complexType>
</xs:element>

<xs:simpleType name="CharacterString">
        <xs:restriction base="xs:string" />
</xs:simpleType>

<xs:simpleType name="EuropeanaObjectType">
	<xs:restriction base="xs:string">
		<xs:enumeration value="Image" />
		<xs:enumeration value="Sound" />
		<xs:enumeration value="Video" />
		<xs:enumeration value="Text" />
		<xs:enumeration value="Unknown" />
	</xs:restriction>
</xs:simpleType>

<xs:simpleType name="Identifier">
        <xs:restriction base="xs:token">
                <xs:pattern value="o:\d+" />
        </xs:restriction>
</xs:simpleType>

<xs:simpleType name="Language">
        <xs:restriction base="xs:string">
         <xs:enumeration value="aa" />
			<xs:enumeration value="ab" />
			<xs:enumeration value="ae" />
			<xs:enumeration value="af" />
			<xs:enumeration value="ak" />
			<xs:enumeration value="am" />
			<xs:enumeration value="an" />
			<xs:enumeration value="ar" />
			<xs:enumeration value="as" />
			<xs:enumeration value="av" />
			<xs:enumeration value="ay" />
			<xs:enumeration value="az" />
			<xs:enumeration value="ba" />
			<xs:enumeration value="be" />
			<xs:enumeration value="bg" />
			<xs:enumeration value="bh" />
			<xs:enumeration value="bi" />
			<xs:enumeration value="bm" />
			<xs:enumeration value="bn" />
			<xs:enumeration value="bo" />
			<xs:enumeration value="br" />
			<xs:enumeration value="bs" />
			<xs:enumeration value="ca" />
			<xs:enumeration value="ce" />
			<xs:enumeration value="ch" />
			<xs:enumeration value="co" />
			<xs:enumeration value="cr" />
			<xs:enumeration value="cs" />
			<xs:enumeration value="cu" />
			<xs:enumeration value="cv" />
			<xs:enumeration value="cy" />
			<xs:enumeration value="da" />
			<xs:enumeration value="de" />
			<xs:enumeration value="dv" />
			<xs:enumeration value="dz" />
			<xs:enumeration value="ee" />
			<xs:enumeration value="el" />
			<xs:enumeration value="en" />
			<xs:enumeration value="eo" />
			<xs:enumeration value="es" />
			<xs:enumeration value="et" />
			<xs:enumeration value="eu" />
			<xs:enumeration value="fa" />
			<xs:enumeration value="ff" />
			<xs:enumeration value="fi" />
			<xs:enumeration value="fj" />
			<xs:enumeration value="fo" />
			<xs:enumeration value="fr" />
			<xs:enumeration value="fy" />
			<xs:enumeration value="ga" />
			<xs:enumeration value="gd" />
			<xs:enumeration value="gl" />
			<xs:enumeration value="gn" />
			<xs:enumeration value="gu" />
			<xs:enumeration value="gv" />
			<xs:enumeration value="ha" />
			<xs:enumeration value="he" />
			<xs:enumeration value="hi" />
			<xs:enumeration value="ho" />
			<xs:enumeration value="hr" />
			<xs:enumeration value="ht" />
			<xs:enumeration value="hu" />
			<xs:enumeration value="hy" />
			<xs:enumeration value="hz" />
			<xs:enumeration value="ia" />
			<xs:enumeration value="id" />
			<xs:enumeration value="ie" />
			<xs:enumeration value="ig" />
			<xs:enumeration value="ii" />
			<xs:enumeration value="ik" />
			<xs:enumeration value="in" />
			<xs:enumeration value="io" />
			<xs:enumeration value="is" />
			<xs:enumeration value="it" />
			<xs:enumeration value="iu" />
			<xs:enumeration value="iw" />
			<xs:enumeration value="ja" />
			<xs:enumeration value="ji" />
			<xs:enumeration value="jv" />
			<xs:enumeration value="jw" />
			<xs:enumeration value="ka" />
			<xs:enumeration value="kg" />
			<xs:enumeration value="ki" />
			<xs:enumeration value="kj" />
			<xs:enumeration value="kk" />
			<xs:enumeration value="kl" />
			<xs:enumeration value="km" />
			<xs:enumeration value="kn" />
			<xs:enumeration value="ko" />
			<xs:enumeration value="kr" />
			<xs:enumeration value="ks" />
			<xs:enumeration value="ku" />
			<xs:enumeration value="kv" />
			<xs:enumeration value="kw" />
			<xs:enumeration value="ky" />
			<xs:enumeration value="la" />
			<xs:enumeration value="lb" />
			<xs:enumeration value="lg" />
			<xs:enumeration value="li" />
			<xs:enumeration value="ln" />
			<xs:enumeration value="lo" />
			<xs:enumeration value="lt" />
			<xs:enumeration value="lu" />
			<xs:enumeration value="lv" />
			<xs:enumeration value="mg" />
			<xs:enumeration value="mh" />
			<xs:enumeration value="mi" />
			<xs:enumeration value="mk" />
			<xs:enumeration value="ml" />
			<xs:enumeration value="mn" />
			<xs:enumeration value="mo" />
			<xs:enumeration value="mr" />
			<xs:enumeration value="ms" />
			<xs:enumeration value="mt" />
			<xs:enumeration value="my" />
			<xs:enumeration value="na" />
			<xs:enumeration value="nb" />
			<xs:enumeration value="nd" />
			<xs:enumeration value="ne" />
			<xs:enumeration value="ng" />
			<xs:enumeration value="nl" />
			<xs:enumeration value="nn" />
			<xs:enumeration value="no" />
			<xs:enumeration value="nr" />
			<xs:enumeration value="nv" />
			<xs:enumeration value="ny" />
			<xs:enumeration value="oc" />
			<xs:enumeration value="oj" />
			<xs:enumeration value="om" />
			<xs:enumeration value="or" />
			<xs:enumeration value="os" />
			<xs:enumeration value="pa" />
			<xs:enumeration value="pi" />
			<xs:enumeration value="pl" />
			<xs:enumeration value="ps" />
			<xs:enumeration value="pt" />
			<xs:enumeration value="qu" />
			<xs:enumeration value="rm" />
			<xs:enumeration value="rn" />
			<xs:enumeration value="ro" />
			<xs:enumeration value="ru" />
			<xs:enumeration value="rw" />
			<xs:enumeration value="sa" />
			<xs:enumeration value="sc" />
			<xs:enumeration value="sd" />
			<xs:enumeration value="se" />
			<xs:enumeration value="sg" />
			<xs:enumeration value="sh" />
			<xs:enumeration value="si" />
			<xs:enumeration value="sk" />
			<xs:enumeration value="sl" />
			<xs:enumeration value="sm" />
			<xs:enumeration value="sn" />
			<xs:enumeration value="so" />
			<xs:enumeration value="sq" />
			<xs:enumeration value="sr" />
			<xs:enumeration value="ss" />
			<xs:enumeration value="st" />
			<xs:enumeration value="su" />
			<xs:enumeration value="sv" />
			<xs:enumeration value="sw" />
			<xs:enumeration value="ta" />
			<xs:enumeration value="te" />
			<xs:enumeration value="tg" />
			<xs:enumeration value="th" />
			<xs:enumeration value="ti" />
			<xs:enumeration value="tk" />
			<xs:enumeration value="tl" />
			<xs:enumeration value="tn" />
			<xs:enumeration value="to" />
			<xs:enumeration value="tr" />
			<xs:enumeration value="ts" />
			<xs:enumeration value="tt" />
			<xs:enumeration value="tw" />
			<xs:enumeration value="ty" />
			<xs:enumeration value="ug" />
			<xs:enumeration value="uk" />
			<xs:enumeration value="ur" />
			<xs:enumeration value="uz" />
			<xs:enumeration value="vi" />
			<xs:enumeration value="vo" />
			<xs:enumeration value="wa" />
			<xs:enumeration value="wo" />
			<xs:enumeration value="xh" />
			<xs:enumeration value="yi" />
			<xs:enumeration value="yo" />
			<xs:enumeration value="za" />
			<xs:enumeration value="zh" />
			<xs:enumeration value="zu" />

        </xs:restriction>
</xs:simpleType>

</xs:schema>

