<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:annotation>
		<xs:documentation xml:lang="fr">schéma de télétransmission des informations de parution des annonces du BODACC.</xs:documentation>
		<xs:documentation xml:lang="fr">11/05/2007 - V04 Création du schéma</xs:documentation>
	</xs:annotation>
	<xs:element name="Retour_XML" type="SchemaParution_Type">
		<xs:annotation>
			<xs:documentation xml:lang="fr">Composant Parution Annonce BODACC</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- date -->
	<xs:simpleType name="Date_Type">
		<xs:annotation>
			<xs:documentation>type simple format date YYYY-MM-DD</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:date">
			<xs:pattern value="....-..-.."/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Heure_Type">
		<xs:annotation>
			<xs:documentation>xs:time</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:time">
			<xs:pattern value="..:..:.."/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DateHeure_Type">
		<xs:annotation>
			<xs:documentation>format YYYY-MM-DDTHH:MM:SS</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:dateTime">
			<xs:pattern value="....-..-..T..:..:.."/>
		</xs:restriction>
	</xs:simpleType>
	<!-- string -->
	<xs:simpleType name="Alpha_Type">
		<xs:annotation>
			<xs:documentation>type A :  tous les caractères, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} &amp; &lt; >]*</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:normalizedString">
			<xs:pattern value="[ \p{M}\p{P}\p{S}\p{L}\p{Z}\p{C} ]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlphaNum_Type">
		<xs:annotation>
			<xs:documentation>type AN : tous les caractères, tous les chiffres, toutes les pontuations, tous les symboles, [ \p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C} &amp; &lt; >]*</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:normalizedString">
			<xs:pattern value="[\p{M}\p{P}\p{S}\p{L}\p{N}\p{Z}\p{C}]*"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- number -->
	<xs:simpleType name="Num_Type">
		<xs:annotation>
			<xs:documentation>type N : tous les chiffres</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[\d]*"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- technique -->
	<xs:simpleType name="Version_Type">
		<xs:annotation>
			<xs:documentation>VXX (XX=num de version)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
			<xs:pattern value="V\d{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- fonctionnel -->
	<xs:simpleType name="NumeroGreffe_Type">
		<xs:annotation>
			<xs:documentation>code Greffe</xs:documentation>
		</xs:annotation>
		<xs:restriction base="Num_Type">
			<xs:length value="4"/>
			<xs:pattern value="\d{4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NomGreffe_Type">
		<xs:annotation>
			<xs:documentation>dérivé de Alpha_Type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="Alpha_Type">
			<xs:minLength value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TypeBODACC_Type">
		<xs:annotation>
			<xs:documentation>dérivé de Alpha_Type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="Alpha_Type">
			<xs:minLength value="1"/>
			<xs:maxLength value="10"/>
			<xs:enumeration value="A"/>
			<xs:enumeration value="B"/>
			<xs:enumeration value="C"/>
			<xs:enumeration value="ARP"/>
			<xs:enumeration value="JOLD"/>
			<xs:enumeration value="Succession"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- complexType -->
	<xs:complexType name="AvisPublie_Type">
		<xs:annotation>
			<xs:documentation>Avis publié</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="typeBODACC" type="TypeBODACC_Type">
				<xs:annotation>
					<xs:documentation>Type de BODACC - Enumération A, B et C</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="numeroParution">
				<xs:annotation>
					<xs:documentation>N° de parution BODACC (format SSAANNNN avec SSAA année de parution et NNNN N° de parution)</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="Num_Type">
						<xs:length value="8"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="dateParution" type="Date_Type">
				<xs:annotation>
					<xs:documentation>Date de parution BODACC (format SSAA-MM-JJ)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="numeroAnnonce">
				<xs:annotation>
					<xs:documentation>Numéro de l'annonce dans la parution</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="Num_Type">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="URL">
				<xs:annotation>
					<xs:documentation>URL</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:anyURI">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="numeroFacture" type="Num_Type">
				<xs:annotation>
					<xs:documentation>N° de facture </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="dateFacture" type="Date_Type">
				<xs:annotation>
					<xs:documentation>Date de facturation (format SSAA-MM-JJ)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="montantFacture">
				<xs:annotation>
					<xs:documentation>Montant de l'annonce facturée</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<xs:fractionDigits value="2"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="deviseFacture">
				<xs:annotation>
					<xs:documentation>Devise du montant de l'annonce facturée</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="AlphaNum_Type">
						<xs:enumeration value="EUR"/>
						<xs:enumeration value="FRF"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="controleQualite" type="AlphaNum_Type" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AvisRejete_Type">
		<xs:annotation>
			<xs:documentation>Avis rejeté</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="motifRejet" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>Motif Rejet                </xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="AlphaNum_Type">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="commentairesRejet" type="AlphaNum_Type" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Commentaires Rejet (facultatif)</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RetourBODACC_Type">
		<xs:sequence>
			<xs:annotation>
				<xs:documentation>avis parus ou rejetés</xs:documentation>
			</xs:annotation>
			<xs:element name="identifiantClient">
				<xs:annotation>
					<xs:documentation xml:lang="fr">Identifiant unique de l'annonce (généré par le groupement)
Transmis dans le fichier des annonces à publier</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="AlphaNum_Type">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="identifiantReemission" type="AlphaNum_Type" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Dans le cadre d'une réémission (rejet), numéro de réémission sous-traitant/DJO</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice>
				<xs:annotation>
					<xs:documentation>Liste des avis parus ou rejetés (au choix)</xs:documentation>
				</xs:annotation>
				<xs:element name="avisPublie" type="AvisPublie_Type"/>
				<xs:element name="avisRejete" type="AvisRejete_Type"/>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SchemaParution_Type">
		<xs:annotation>
			<xs:documentation xml:lang="fr">Définition du schema root</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="versionSchema">
				<xs:annotation>
					<xs:documentation xml:lang="fr">Version du schéma VSSAA.NN</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="Version_Type"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="dateHeureEmission" type="DateHeure_Type">
				<xs:annotation>
					<xs:documentation xml:lang="fr">Timestamp d'émission du fichier XML</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice>
				<xs:element name="listeRetourAvis" type="RetourBODACC_Type" minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation xml:lang="fr">Timestamp d'émission du fichier XML</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="fichierErrone" type="AlphaNum_Type">
					<xs:annotation>
						<xs:documentation>Nom du fichier
Utilisé dans le cas d'un fichier en erreur lors du parsing</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
