<?xml version="1.0" encoding="UTF-8"?>
<!--
Titre:		schéma XML pour les métadonnées de la Plateforme d'Archivage du Cines
Fonction:	descriptif du schéma de versement sip.xsd	
Date:		2013/05/17
Auteur:		Olivier Rouchon, équipe PAC
Dernière modification: 
	- LBD 2013/05/17 refonte majeure : ajout blocs "evaluation", "communicabilite", "planClassement", 
	attribut "language", normalisation contenu "language", "structureDocument" en 0-n, maj définitions
	- JPT 2014/06/11 ajout des formats GoTIFF et JPEG2000 dans la liste de controle des formats
	- JPT 2015/09/04 suppression du format HTML dans la liste fermée des formats de fichiers
	- AGR 2016/03/10 ajout de TEI et OGG/VORBIS
	- JPT/AGR 2017/10/17 ajout de PLY
	- AGR 2018/03/21 plan de classement obligatoire
	- LBD 2018/10/01 définitions bloc de métadonnées  "workflow"
-->
<xsd:schema xmlns="http://www.cines.fr/pac/sip" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ISO-639-3="urn:un:unece:uncefact:codelist:draft:DAF:languageCode:2011-10-07" xmlns:RA="urn:un:unece:uncefact:codelist:draft:DAF:accessRestrictionCode:2009-08-18" targetNamespace="http://www.cines.fr/pac/sip" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0">
	
	
	<xsd:include schemaLocation="ip.xsd"/>
	
	<xsd:element name="pac" type="pacType"/>
	
	<xsd:complexType name="pacType">
		<xsd:sequence>
			<xsd:element ref="DocDC" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="DocMeta" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="FichMeta" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="DocDC" type="DocDCType"/>
	
	
<!-- 
============================================
Métadonnées Dublin Core de niveau Document
============================================
-->	
	
	 <xsd:complexType name="DocDCType">
	 	<xsd:annotation>
	 		<xsd:documentation xml:lang="fr">Métadonnées descriptives du document sur une base Dublin Core</xsd:documentation>
	 	</xsd:annotation>
	 	<xsd:sequence>
			<xsd:element ref="title" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="creator" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="subject" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="description" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="publisher" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="date" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="type" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="format" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="source" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="language" minOccurs="1" maxOccurs="unbounded"/>
			<xsd:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="rights" minOccurs="1" maxOccurs="unbounded"/> 
		</xsd:sequence>
	 </xsd:complexType>
	
<!-- 
============================================
Métadonnées CINES de niveau Document
============================================
-->	
	<xsd:element name="DocMeta" type="DocMetaType"/>
	
	<xsd:complexType name="DocMetaType">
		<xsd:annotation>
			<xsd:documentation xml:lang="fr">Métadonnées de gestion du document</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>		
			<xsd:element ref="identifiantDocProducteur" minOccurs="1" maxOccurs="1"/> 
			<xsd:element ref="docRelation" minOccurs="0" maxOccurs="unbounded"/> 
			<xsd:element ref="evaluation" minOccurs="0" maxOccurs="1"/> 
			<xsd:element ref="communicabilite" minOccurs="0" maxOccurs="1"/> 
			<xsd:element ref="noteDocument" minOccurs="0" maxOccurs="1"/>
			<xsd:element ref="serviceVersant" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="planClassement" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="structureDocument" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="version" minOccurs="0" maxOccurs="1"/>
			<xsd:element ref="versionPrecedente" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

<!-- 
============================================
Métadonnées CINES de niveau Fichier
============================================
-->	
	
	<xsd:element name="FichMeta" type="FichMetaType"/>
	
	<xsd:complexType name="FichMetaType">
		<xsd:annotation>
			<xsd:documentation xml:lang="fr">Métadonnées des fichiers composant le document</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="compression" minOccurs="0" maxOccurs="1"/>
			<xsd:element ref="encodage" minOccurs="0" maxOccurs="1"/>
			<xsd:element ref="formatFichier" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="nomFichier" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="empreinteOri" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="noteFichier" minOccurs="0" maxOccurs="1"/>
			<xsd:element ref="structureFichier" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="workflow" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="workflow" type="WorkflowType"/>
	
	<xsd:complexType name="WorkflowType">
		<xsd:annotation>
			<xsd:documentation xml:lang="fr">L'élément workflow permet de préciser les opérations à effectuer sur le fichier courant. Il s'exprime en terme de service</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="service" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="service" type="ServiceType"/>
	
	<xsd:complexType name="ServiceType">
		<xsd:annotation>
			<xsd:documentation>Permet de préciser un service à effectuer sur le fichier. Par exemple, un traitement OCR.
			Il est nécessaire de spécifier l'ordre d'application du service s'il y en a plusieurs. 
			Il est également possible de préciser un paramètre (par exemple pour traitement OCR : avec ou sans détourage)
			L'attribut @skip permet dans le cas contraire d'annuler la réalisation d'un service qui serait prévu dans la classe de service.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="param" type="xsd:string" use="optional"/>
				<xsd:attribute name="skip" type="xsd:boolean" use="optional"/>
				<xsd:attribute name="order" type="xsd:integer" use="optional"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>

</xsd:schema>
