<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="https://echanges.dila.gouv.fr/schemabook/lib/DilaType_v003.xsd"/>
	<xs:include schemaLocation="https://echanges.dila.gouv.fr/schemabook/lib/DilaGestion_v002.xsd"/>

	<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>
	<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="xs:date">
				<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="xs:date">
				<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" type="xs:string">
				<xs:annotation>
					<xs:documentation>Devise du montant de l'annonce facturée</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="controleQualite" type="xs:string" minOccurs="0"/>
			<xs:element name="dilaGestion" type="DilaGestion" 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" type="xs:string" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>Motif Rejet                </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="commentairesRejet" type="xs:string" 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" type="xs:string">
				<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:element>
			<xs:element name="identifiantReemission" type="xs:string" 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: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="xs:dateTime">
				<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" 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="xs:string">
					<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: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>
	<xs:simpleType name="Version_Type">
		<xs:annotation>
			<xs:documentation>VXX (XX=num de version)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:minLength value="3"/>
			<xs:maxLength value="4"/>
			<xs:pattern value="V\d{2,3}"/>
		</xs:restriction>
	</xs:simpleType>
	<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="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="TypeBODACC_Type">
		<xs:annotation>
			<xs:documentation>dérivé de Alpha_Type</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
</xs:schema>
