<?xml version="1.0" encoding="UTF-8"?>
<xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:dcterms="http://purl.org/dc/terms/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:picotype="http://purl.org/pico/1.0/picotype/"
            targetNamespace="http://purl.org/pico/1.0/"
            version="1.0"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="it">
      Schema XSD PICO
 
      Created: 2008-06-14
      Creator: Davide Merlitti (davide@merlitti.it)
      Contributor: Irene Buonazia (i.buonazia@sns.it)
      Contributor: Maria Emilia Masci (e.masci@sns.it)
      Contributor: Karim Ben Hamida (karim.benhamida@beniculturali.it)
      
      Questo schema dichiara un elemento "record" che può contenere elementi "pico", "dc" e "dcterms".
      
    </xs:documentation>
	
	<xs:documentation xml:lang="en">
      Schema XSD PICO
 
      Created: 2008-06-14
      Creator: Davide Merlitti (davide@merlitti.it)
      Contributor: Irene Buonazia (i.buonazia@sns.it)
      Contributor: Maria Emilia Masci (e.masci@sns.it)
      Contributor: Karim Ben Hamida (karim.benhamida@beniculturali.it)
      
      This schema declares a "record" element that can contain "pico", "dc" and "dcterms" elements.
      
    </xs:documentation>

  </xs:annotation>

  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
    schemaLocation="http://www.w3.org/2001/03/xml.xsd">
  </xs:import>
  
  <xs:import namespace="http://purl.org/pico/1.0/picotype/"
    schemaLocation="http://purl.org/pico/1.0/picotype.xsd"/>
  
  <xs:import namespace="http://purl.org/dc/elements/1.1/"
    schemaLocation="http://www.dublincore.org/schemas/xmls/qdc/dc.xsd"/>
  
  <xs:import namespace="http://purl.org/dc/terms/"
    schemaLocation="http://www.dublincore.org/schemas/xmls/qdc/dcterms.xsd"/>

  <xs:element name="author" substitutionGroup="dc:creator"/>
  <xs:element name="commissioner" substitutionGroup="dc:creator"/>
  <xs:element name="agentName" substitutionGroup="dc:creator"/>
  <xs:element name="agentAlternative" substitutionGroup="dc:creator"/>
  <xs:element name="agentIdentifier" substitutionGroup="dc:creator"/>
  <xs:element name="agentProfession" substitutionGroup="dc:creator"/>
  
  <xs:element name="iiifStandard" substitutionGroup="dcterms:conformsTo"/>
    
  <xs:element name="editor" substitutionGroup="dc:contributor"/>
  <xs:element name="performer" substitutionGroup="dc:contributor"/>
  <xs:element name="producer" substitutionGroup="dc:contributor"/>
  <xs:element name="responsible" substitutionGroup="dc:contributor"/>
  <xs:element name="translator" substitutionGroup="dc:contributor"/>

  <xs:element name="printer" substitutionGroup="dc:publisher"/>
  <xs:element name="distributor" substitutionGroup="dc:publisher"/>

  <xs:element name="materialAndTechnique" substitutionGroup="dc:format"/>
  <xs:element name="digitalFormat" substitutionGroup="dc:format"/>

  <xs:element name="information" substitutionGroup="dc:description"/>
  <xs:element name="contact" substitutionGroup="dc:description"/>
      
  <xs:element name="dateOfBirth" substitutionGroup="dc:coverage"/>
  <xs:element name="dateOfDeath" substitutionGroup="dc:coverage"/>
  <xs:element name="timeSpanName" substitutionGroup="dc:coverage"/>
  <xs:element name="timeSpanIdentifier" substitutionGroup="dc:coverage"/>
  
  <xs:element name="currentLocationLit" substitutionGroup="dc:coverage"/>
  <xs:element name="currentLocationRef" substitutionGroup="dc:coverage"/>  
  <xs:element name="placeOfBirth" substitutionGroup="dc:coverage"/>
  <xs:element name="placeOfBirthId" substitutionGroup="dc:coverage"/>
  <xs:element name="placeOfDeath" substitutionGroup="dc:coverage"/>
  <xs:element name="placeOfDeathId" substitutionGroup="dc:coverage"/>
  <xs:element name="placeLat" substitutionGroup="dc:coverage"/>
  <xs:element name="placeLong" substitutionGroup="dc:coverage"/>
  <xs:element name="placeName" substitutionGroup="dc:coverage"/>
  <xs:element name="placeIdentifier" substitutionGroup="dc:coverage"/>
  
  <xs:element name="dateBegin" substitutionGroup="dc:date"/>
  <xs:element name="dateEnd" substitutionGroup="dc:date"/>
  
  <xs:element name="contributesTo" substitutionGroup="dc:relation"/>
  <xs:element name="digitises" substitutionGroup="dc:relation"/>
  <xs:element name="manages" substitutionGroup="dc:relation"/>
  <xs:element name="performs" substitutionGroup="dc:relation"/>
  <xs:element name="produces" substitutionGroup="dc:relation"/>
  <xs:element name="promotes" substitutionGroup="dc:relation"/>
  <xs:element name="hasAsContributor" substitutionGroup="dc:relation"/>
  <xs:element name="hasAsResponsible" substitutionGroup="dc:relation"/>
  <xs:element name="isDigitisedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isManagedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isOwnerOf" substitutionGroup="dc:relation"/>
  <xs:element name="isOwnedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isPerfomedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isProducedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isPromotedBy" substitutionGroup="dc:relation"/>
  <xs:element name="isResponsibleFor" substitutionGroup="dc:relation"/>
  <xs:element name="service" substitutionGroup="dc:relation"/>

  <xs:element name="preview" substitutionGroup="dc:relation"/>
  <xs:element name="object" substitutionGroup="dc:relation"/>
  <xs:element name="iiifImage" substitutionGroup="dc:relation"/>
  <xs:element name="iiifManifest" substitutionGroup="dc:relation"/>
  <xs:element name="iiifImplementation" substitutionGroup="dc:relation"/>
  <xs:element name="iiifResource" substitutionGroup="dc:relation"/>
  <xs:element name="iiifCompliant" substitutionGroup="dc:relation"/>  

  <xs:element name="licenseMetadata" substitutionGroup="dc:rights"/>      
  
  <xs:element name="conceptResourceAlternative" substitutionGroup="dc:type"/>      
  <xs:element name="conceptResourceName" substitutionGroup="dc:type"/>      
  <xs:element name="conceptResourceIdentifier" substitutionGroup="dc:type"/>      
  <xs:element name="conceptResourceNote" substitutionGroup="dc:type"/>      
        
  <xs:complexType name="recordType">
    <xs:annotation>
      <xs:documentation xml:lang="en">
        This is included as a convenience for schema authors who need to define a root
        or container element for all of the DC elements and element refinements.
      </xs:documentation>
    </xs:annotation>        
    <xs:complexContent>
      <xs:extension base="dcterms:elementOrRefinementContainer">
        <xs:sequence>
          <xs:choice>                                
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>        
  </xs:complexType>

  <xs:complexType name="PICOType">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="picotype:PICOType"/>
        </xs:simpleType>
        <xs:attribute ref="xml:lang" use="prohibited"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="AAT">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Anchor">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Iconclass">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="ISBN">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string">          
            <xs:pattern value="([0-9]{13})|([0-9]{10})|([0-9]{3}\-[0-9]{2}\-[0-9]{5}\-[0-9]{2}\-[0-9])|([0-9]{2}-[0-9]{4}-[0-9]{3}-[0-9])"></xs:pattern>
          </xs:restriction>
        </xs:simpleType>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="ISSN">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="ISTAT">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string" />
        </xs:simpleType>
        <xs:attribute ref="xml:lang" use="prohibited"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="PostalAddress">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>   
          <xs:restriction base="xs:string"/>
        </xs:simpleType> 
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Thesaurus">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
        <xs:attribute ref="xml:lang" use="prohibited"/>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="PRISMResourceType">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
        <xs:attribute ref="xml:lang" use="prohibited"/>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="PRISMResourceCategory">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>
          <xs:restriction base="xs:string"/>
        </xs:simpleType>
        <xs:attribute ref="xml:lang" use="prohibited"/>
      </xs:restriction>  
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="ULAN">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>   
          <xs:restriction base="xs:string"/>
        </xs:simpleType> 
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="UNESCO">
    <xs:simpleContent>
      <xs:restriction base="dc:SimpleLiteral">
        <xs:simpleType>   
          <xs:restriction base="xs:string"/>
        </xs:simpleType> 
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:element name="record" type="dcterms:elementOrRefinementContainer"/>

</xs:schema>