<?xml version="1.0" encoding="UTF-8"?>
<!-- Organisme : Bibliothèque nationale de France
Auteur : BnF/DSR/DSI/SED/BEA
Auteur : Jean-Philippe Tramoni

Version 4 du 20 mai 2014
Ajout de valeurs dans roleAgentType pour ADAPTATIF
Ajout d'une valeur dans typeOutilType pour ADAPTATIF
Ajout de valeurs dans typeResultatType pour ADAPTATIF et EPUB

Version 3 du 30 mars 2012
Ajout de valeurs dans roleAgentType
Ajout d'une valeur dans typeOutilType
Ajout de valeurs dans typeResultatType

Version 1.1 du 15 février 2008
Statut : validée
Ajout de nouvelles valeurs de types de résultats
CONTENUNONSIGNIFICATIF, DENSITEMICROFORME, PAGEDEPUBLICITE, PROBLEMEDESEGMENTATION, TAUXOCRDEBASE, TAUXOCRDEBASECORRIGE, TRANSPARENCEPAPIER

Version 1.0 du 13 décembre 2007
Statut : validée
Version initiale
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:detailsOperation="http://bibnum.bnf.fr/ns/detailsOperation" targetNamespace="http://bibnum.bnf.fr/ns/detailsOperation" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="detailsOperation">
		<xs:annotation>
			<xs:documentation>Dans le cadre de la description de  l'historique des traitements qui ont touché le document numérique. Cet élément permet de décrire le contenu des opérations. La granularité de description la plus fine est requise.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="detailsOperation:agent" maxOccurs="unbounded"/>
				<xs:element ref="detailsOperation:outil" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="detailsOperation:entree" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="detailsOperation:description" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="detailsOperation:resultat" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="agent">
		<xs:annotation>
			<xs:documentation>Cet élément permet d'identifier l'agent auteur de l'opération: atelier interne ou prestataire.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:token">
					<xs:attribute name="type" type="detailsOperation:typeAgentType" use="required"/>
					<xs:attribute name="role" type="detailsOperation:roleAgentType" use="optional"/>
					<xs:attribute name="specificite" type="detailsOperation:specificiteAgentType" use="optional"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="outil" type="detailsOperation:outilType">
		<xs:annotation>
			<xs:documentation>Cet élément décrit l'outil utilisé pour réaliser l'opération.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="outilType">
		<xs:annotation>
			<xs:documentation>Ce type permet la description d'un outil.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="identifiant" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Identification de l'outil. Numéro de série.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="nom" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nom du logiciel ou du type de matériel utilisé.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="origine" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Créateur ou éditeur de l'outil.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="version" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Version de l'outil.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="composant" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Eléments incorporés dans l'outil. Par exemple, firmware ou pilotes.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="detailsOperation:outil" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="type" type="detailsOperation:typeOutilType" use="required"/>
	</xs:complexType>
	<xs:element name="entree" type="xs:string">
		<xs:annotation>
			<xs:documentation>Cet élément décrit les objets proposés en entrée de l'opération décrite. C’est dans cette balise qu’on indiquera notamment une demande BnF pour un traitement spécifique. Par exemple, on mettra ici HQNONPERTINENT quand la BnF demande la saisie de la table des matières même si celle-ci est presque illisible. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="description" type="detailsOperation:descriptionType">
		<xs:annotation>
			<xs:documentation>Cet élément décrit l'opération elle-même.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="resultat">
		<xs:annotation>
			<xs:documentation>Cet élément décrit le résultat obtenu après exécution de l'opération sur les objets présentés en entrée.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="type" type="detailsOperation:typeResultatType" use="required"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="typeAgentType">
		<xs:annotation>
			<xs:documentation>Liste des types d'agent. Cette liste permet de décrire les types d'agents responsables d'une opération.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="ATELIER"/>
			<xs:enumeration value="OPERATEUR"/>
			<xs:enumeration value="SOCIETE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="roleAgentType">
		<xs:annotation>
			<xs:documentation>Liste des rôles d'agent. Cette liste permet notamment de décrire les tâches de l'atelier et celles de l'opérateur.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="CLASSIFICATIONDEWEY"/>
			<xs:enumeration value="CONTROLEALTO"/>
			<xs:enumeration value="CONTROLEIMAGES">
				<xs:annotation>
					<xs:documentation>Ce rôle correspond au contrôle qualité des images du typage du foliotage et de la segmentation.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CONTROLEPOSTPRODUCTION"/>
			<xs:enumeration value="CONVERSIONALTO"/>
			<xs:enumeration value="CONVERSIONOCR"/>
			<xs:enumeration value="CORRECTIONOCRHQ"/>
			<xs:enumeration value="INTEGRATIONFICHIERS"/>
			<xs:enumeration value="NUMERISATIONMASSICOT"/>
			<xs:enumeration value="NUMERISATIONMICROFORMES"/>
			<xs:enumeration value="NUMERISATIONPATRIMOINE"/>
			<xs:enumeration value="SAISIEOCRHQ"/>
			<xs:enumeration value="SAISIETDM"/>
			<xs:enumeration value="SEGMENTATIONOCR"/>
			<xs:enumeration value="TYPAGE">
				<xs:annotation>
					<xs:documentation>Ce rôle recouvre les activités de découpage, typage et foliotage.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CONVERSIONEPUB"/>
			<xs:enumeration value="GENERATIONEPUB"/>
			<xs:enumeration value="GENERATIONADAPTATIF"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="specificiteAgentType">
		<xs:annotation>
			<xs:documentation>Liste des spécificités d'agent. Cette liste permet de décrire les spécificités de l'atelier ou de la chaîne selon l'organisation du titulaire. Il s'agit ici de décrire la compétence de l'agent. Par exemple, dans le cas particulier où, pour une raison quelconque, on est amené à faire le choix de numériser un "massicot" dans l'atelier reliés, il faut bien distinguer le rôle de l'agent (NUMERISATIONMASSICOT) de sa spécificité ou compétence habituelle (NUMERISATIONPATRIMOINE). Cette information peut être utile pour expliquer certains types d'erreurs.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="NUMERISATIONARCHIVES"/>
			<xs:enumeration value="NUMERISATIONCHEQUES"/>
			<xs:enumeration value="NUMERISATIONFORMULAIRES"/>
			<xs:enumeration value="NUMERISATIONMASSICOT"/>
			<xs:enumeration value="NUMERISATIONMICROFORMES"/>
			<xs:enumeration value="NUMERISATIONPATRIMOINE"/>
			<xs:enumeration value="PAGINATION"/>
			<xs:enumeration value="SAISIEOCRHQ"/>
			<xs:enumeration value="SAISIETDM"/>
			<xs:enumeration value="TRAITEMENTIMAGE"/>
			<xs:enumeration value="TYPAGE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="typeOutilType">
		<xs:annotation>
			<xs:documentation>Liste des types d'outil. Cette liste permet de décrire les types d'outils matériels ou logiciels utilisés pour réaliser l'opération.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="LOGICIELAUTRE"/>
			<xs:enumeration value="LOGICIELOCR"/>
			<xs:enumeration value="LOGICIELSAISIE"/>
			<xs:enumeration value="LOGICIELTRAITEMENTDIMAGE"/>
			<xs:enumeration value="LOGICIELTYPAGE"/>
			<xs:enumeration value="NUMERISEUR"/>
			<xs:enumeration value="PILOTE"/>
			<xs:enumeration value="POSTE"/>
			<xs:enumeration value="SERVEUR"/>
			<xs:enumeration value="LOGICIELCREATIONEPUB"/>
			<xs:enumeration value="LOGICIELCREATIONADAPTATIF"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="descriptionType">
		<xs:annotation>
			<xs:documentation>Liste des descriptions d'opération. Cette liste permet de décrire la nature des traitements effectués.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="BINARISATION"/>
			<xs:enumeration value="CONVERSIONALTO"/>
			<xs:enumeration value="CONVERSIONTIFF"/>
			<xs:enumeration value="CORRECTIONOCRHQ"/>
			<xs:enumeration value="DECOUPAGE"/>
			<xs:enumeration value="DEQUALIFICATIONHQOCRHQ"/>
			<xs:enumeration value="DEQUALIFICATIONHQTDM"/>
			<xs:enumeration value="DETOURAGE"/>
			<xs:enumeration value="DETYPAGETDM">
				<xs:annotation>
					<xs:documentation>Ce type de description permet d'indiquer qu'une page de table des matières a bien été typée au niveau de l'atelier de typage mais que sa saisie est impossible.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="OCERISATION"/>
			<xs:enumeration value="PAGINATION"/>
			<xs:enumeration value="REDRESSEMENT"/>
			<xs:enumeration value="ROTATION"/>
			<xs:enumeration value="SAISIETDM"/>
			<xs:enumeration value="SEGMENTATIONOCR"/>
			<xs:enumeration value="TYPAGE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="typeResultatType">
		<xs:annotation>
			<xs:documentation>Liste des types de résultats d'opération. Cette liste indique les types de résultats fournis pour une opération donnée.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="NOMBREDEPAGESTYPEESINDEX"/>
			<xs:enumeration value="NOMBREDEPAGESTYPEESLOGO"/>
			<xs:enumeration value="NOMBREDEPAGESTYPEESTDM"/>
			<xs:enumeration value="NOMBREDEPAGESTYPEESTITRE"/>
			<xs:enumeration value="NOMBRESDEPAGESSAISIESINDEX"/>
			<xs:enumeration value="NOMBRESDEPAGESSAISIESOCRHQ"/>
			<xs:enumeration value="NOMBRESDEPAGESSAISIESTDM"/>
			<xs:enumeration value="NQAMOYEN">
				<xs:annotation>
					<xs:documentation>Ce type de résultat correspond au NQA moyen (pondéré) du document. Les ponctuations, chiffres, caractères illisibles, etc. sont exclus du calcul de ce taux de qualité OCR.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="STATUT">
				<xs:annotation>
					<xs:documentation>Ce type de résultat correspond au "event outcome" de premis. Les valeurs possibles sont SUCCES, ECHEC, ATTENTE ou REFUS.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CONTENUNONSIGNIFICATIF">
				<xs:annotation>
					<xs:documentation>A compléter par un texte explicitant le problème rencontré (ex : page similaire à une page de titre, pages liminaires, pages de fin d'ouvrage).</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="PAGEDEPUBLICITE"/>
			<xs:enumeration value="PROBLEMEDESEGMENTATION">
				<xs:annotation>
					<xs:documentation>A compléter par un texte explicitant le problème rencontré.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="TAUXOCRDEBASE">
				<xs:annotation>
					<xs:documentation>C'est le taux de qualité OCR de la page calculé par le moteur OCR : c'est 1 - ( le nombre de caractères suspects / le nombre total de caractères).</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="TAUXOCRDEBASECORRIGE">
				<xs:annotation>
					<xs:documentation>Le taux OCR de base corrigé se calcule à partir du taux OCR de base.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="TRANSPARENCEPAPIER"/>
			<xs:enumeration value="DENSITEMICROFORME">
				<xs:annotation>
					<xs:documentation>A compléter par un texte explicitant l'opacité pour les microformes.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="POIDS"/>
			<xs:enumeration value="QUALITEEPUB">
				<xs:annotation>
					<xs:documentation>Les valeurs possibles sont : "bronze" (numérisation avec mode dégradé), "silver" (numérisation standard), "gold" (numérisation avec éditorialisation).</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="ACCESSIBILITEEPUB">
				<xs:annotation>
					<xs:documentation>Les valeurs possibles sont : "accessible", "non accessible".</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CONSULTATIONADAPTATIF"/>
			<xs:enumeration value="CONSULTATIONEPUB"/>
			<xs:enumeration value="SIGNALEMENTADAPTATIF"/>
			<xs:enumeration value="SIGNALEMENTEPUB"/>
			<xs:enumeration value="TAUXQUALITEADAPTATIF"/>
			<xs:enumeration value="TAUXQUALITEEPUB"/>
			<xs:enumeration value="TYPEADAPTATIF"/>
			<xs:enumeration value="TYPEEPUB">
				<xs:annotation>
					<xs:documentation>Les valeurs possibles sont : "fixed layout", "reflowable".</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VERSIONADAPTATIF"/>
			<xs:enumeration value="VERSIONEPUB"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
