<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://abo.cecurity.com/data/20050221/Archive" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://abo.cecurity.com/data/20050221/Archive" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
	<xs:element name="archive" type="archiveType">
		<xs:annotation>
			<xs:documentation>objet archive CFEC</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="archiveType">
		<xs:sequence>
			<xs:element ref="header"/>
			<xs:element ref="safe"/>
			<xs:element ref="date"/>
			<xs:element ref="transaction"/>
			<xs:element ref="file"/>
			<xs:element ref="signature"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="header" type="headerType">
		<xs:annotation>
			<xs:documentation>en-tète de l'archive</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:element name="file" type="fileType">
		<xs:annotation>
			<xs:documentation>fichier originel</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:element name="safe" type="safeType">
		<xs:annotation>
			<xs:documentation>données de sécurité</xs:documentation>
		</xs:annotation>
	</xs:element>

	<xs:complexType name="safeType">
		<xs:sequence>
			<xs:element name="cfec" type="xs:anyURI" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>URI accès coffre</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="serialNumber" type="xs:unsignedLong" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>identifiant archive</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="identifier" type="xs:string" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>identifiant utilisateur archive</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="fileType">
		<xs:sequence>

			<xs:element name="name" type="xs:string">
				<xs:annotation>
					<xs:documentation>nom du fichier originel</xs:documentation>
				</xs:annotation>
			</xs:element>

                        <xs:element name="mimetype" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>type (normalisé) du fichier + nom du pgrm générateur</xs:documentation>
                                </xs:annotation>
                        </xs:element>

			<xs:element name="digest" type="digestType">
				<xs:annotation>
					<xs:documentation>empreinte fichier  originel</xs:documentation>
				</xs:annotation>
			</xs:element>

                        <xs:element name="size" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>taille du fichier</xs:documentation>
                                </xs:annotation>
                        </xs:element>

			<xs:element ref="data"/>

		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="digestType">
		<xs:annotation>
			<xs:documentation>type+valeur empreinte</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ds:DigestMethod"/>
			<xs:element ref="ds:DigestValue"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="data" type="dataType">
		<xs:annotation>
			<xs:documentation>contenu du fichier originel</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="dataType">
		<xs:choice>
			<xs:element name="binary">
				<xs:annotation>
					<xs:documentation>données binaires fichier</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:base64Binary"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="url" type="xs:anyURI">
				<xs:annotation>
					<xs:documentation>lien fichier externe</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:element name="transaction" type="transactionType">
		<xs:annotation>
			<xs:documentation>session de réception du fichier originel</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="transactionType">
		<xs:sequence>
			<xs:element name="session" type="digestType">
				<xs:annotation>
					<xs:documentation>empreinte session d'échange client/CFEC</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="certificate" type="ds:X509DataType">
				<xs:annotation>
					<xs:documentation>certificat X509V3 déposant</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:element name="date" type="datetimeType">
		<xs:annotation>
			<xs:documentation>informations horodatage</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:simpleType name="tstokenType">
		<xs:restriction base="pkcs7"/>
	</xs:simpleType>
	<xs:simpleType name="pkcs7">
		<xs:annotation>
			<xs:documentation>signature pkcs7</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:base64Binary"/>
	</xs:simpleType>
	<xs:complexType name="datetimeType">
		<xs:sequence>
			<xs:element name="datetime" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>date+heure réception empreinte document originel</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="tstoken" type="tstokenType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>jeton horodatage RFC3161</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="metadata" type="typeMeta">
		<xs:annotation>
			<xs:documentation>méta données</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="typeMeta">
		<xs:sequence>
			<xs:element name="metaDataClient" minOccurs="0">
				<xs:annotation>
					<xs:documentation>par exemple : infos facture,montant...</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="comment" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>commentaire</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="dureeConservation" type="xs:duration" minOccurs="0">
				<xs:annotation>
					<xs:documentation>destruction interdite pdt cette durée</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="signature" type="signType">
		<xs:annotation>
			<xs:documentation>scellement de l'archive nom_fichier_originel date+heure réception empreinte_fichier_originel certificat_déposant </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="signType">
		<xs:choice>
			<xs:element name="pkcs7sign" type="pkcs7">
				<xs:annotation>
					<xs:documentation>signature électronique format_pkcs7</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="headerType">
		<xs:sequence>
			<xs:element name="versionCFEC">
				<xs:annotation>
					<xs:documentation>version logicel CFEC</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:attribute name="name">
						<xs:annotation>
							<xs:documentation>cecurity.com</xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attribute name="version">
						<xs:annotation>
							<xs:documentation>1.0</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

