<?xml version='1.0' encoding='UTF-8'?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="CV">
		<xs:complexType>
			<xs:sequence maxOccurs="1" minOccurs="1">
				<!-- intitule -->
				<xs:element name="intitule">
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded" minOccurs="1">
							<xs:element maxOccurs="1" minOccurs="1" name="titre" type="xs:string"/>	
							<xs:element maxOccurs="1" minOccurs="0" name="commentaire" type="xs:string"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>	
				<!-- Fin intitule -->

				<!-- etat_civil -->
				<xs:element name="etat_civil">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="adresse">
								<xs:complexType>
									<xs:attribute  name="numero"  type="xs:integer"/>
									<xs:attribute  name="rue"  type="xs:string"/>
									<xs:attribute  name="ville"  type="xs:string"/>
									<xs:attribute  name="cp"  type="xs:string"/>
								</xs:complexType>
							</xs:element>

							<xs:element maxOccurs="1" minOccurs="0" name="telephone" type="typetelephone"/>

							<xs:element maxOccurs="1" minOccurs="0" name="email" type="typeMail"/>

							<xs:element name="permis">
								<xs:complexType>
									<xs:attribute  name="titulaire"  type="xs:string"/>
									<xs:attribute  name="type"  type="xs:string"/>
								</xs:complexType>
							</xs:element>

						</xs:sequence>
						<xs:attribute  name="nom"  type="xs:string"/>
						<xs:attribute  name="prenom"  type="xs:string"/>
						<xs:attribute  name="dateNaissance"  type="xs:date"/>
						<xs:attribute  name="age"  type="xs:integer"/>
					</xs:complexType>
				</xs:element>	
				<!-- Fin etat_civil -->

				<!-- expPro -->
				<xs:element name="expPro">
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded" minOccurs="1">
							<xs:element name="exp">
								<xs:complexType>
									<xs:sequence maxOccurs="unbounded" minOccurs="0">
										<xs:element maxOccurs="1" minOccurs="1" name="poste" type ="typeposte" />
										<xs:element maxOccurs="1" minOccurs="1" name="entreprise" type ="typeentreprise" />
										<xs:element maxOccurs="1" minOccurs="0" name="description" type ="typedescription" />	
									</xs:sequence>
									<xs:attribute  name="dateDebut"  type="xs:string"/>
									<xs:attribute  name="dateFin"  type="xs:string" use="optional"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>	
				<!-- Fin expPro -->

				<!-- formations -->

				<xs:element name="formations">
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded" minOccurs="1">
							<xs:element name="formation">
								<xs:complexType>
									<xs:sequence maxOccurs="unbounded" minOccurs="0">

										<xs:element maxOccurs="1" minOccurs="1" name="annee">
											<xs:complexType>
												<xs:attribute  name="debut"  type="xs:string"/>
												<xs:attribute  name="fin"  type="xs:string"/>
											</xs:complexType>
										</xs:element>

										<xs:element maxOccurs="1" minOccurs="1" name="ecole" type="xs:string" />
										<xs:element maxOccurs="1" minOccurs="1" name="description" type="typedescription" /><!-- reférence à description -->
										<xs:element maxOccurs="1" minOccurs="1" name="projets">
											<xs:complexType>
												<xs:sequence maxOccurs="1" minOccurs="0">
													<xs:element maxOccurs="unbounded" minOccurs="1" name="projet" type="xs:string" />
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										
									</xs:sequence>
									<xs:attribute  name="intituleFormation"  type="xs:string"/>
									<xs:attribute  name="niveau"  type="xs:string"/>
									<xs:attribute  name="diplome"  type="xs:string"/>
									<xs:attribute  name="domaine"  type="xs:string"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>	
				<!-- Fin formations -->

				<!-- competencesCompl -->
			<xs:element name="competencesCompl">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded" minOccurs="0">
						<xs:element maxOccurs="unbounded" minOccurs="1" name="intituleComp">
							<xs:complexType>
								<xs:attribute  name="nom"  type="xs:string"/>
								<xs:attribute  name="type"  type="xs:string" use="optional"/>
								<xs:attribute  name="list"  type="xs:string"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>

				<!-- Fin competencesCompl -->
				
				<!-- langues -->
				<xs:element name="langues">
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded" minOccurs="1">
							<xs:element maxOccurs="unbounded" minOccurs="1" name="langue">
								<xs:complexType>
									<xs:attribute  name="lg"  type="xs:string"/>
									<xs:attribute  name="niveau"  type="xs:string"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<!-- Fin langues -->
				
				<!-- centre dinteret -->
				<xs:element maxOccurs="1" minOccurs="0" name="centreDinterets">
					<xs:complexType>
						<xs:sequence maxOccurs="1" minOccurs="1">
							<xs:element maxOccurs="unbounded" minOccurs="1" name="centreDinteret">
								<xs:complexType>
									<xs:attribute  name="nom"  type="xs:string"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<!-- Fin centre dinteret -->
				
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<!-- type telephone -->

	<xs:simpleType name="typetelephone">
		<xs:restriction base="xs:string">
			<xs:pattern value="(33[ ]?)?([0]{1})?[1-9][ ]?([0-9]{2}[ ]?){4}"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- type mail -->
	<xs:simpleType name="typeMail">
		<xs:restriction base="xs:string">
			<xs:pattern value="(.)+@(.)+"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- type poste -->
	<xs:simpleType name="typeposte">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="50"/>
		</xs:restriction>
	</xs:simpleType>  

	<!-- type entreprise -->
	<xs:simpleType name="typeentreprise">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="50"/>
		</xs:restriction>
	</xs:simpleType> 
	
	<!-- type description -->
	<xs:simpleType name="typedescription">
		<xs:restriction base="xs:string">
			<xs:minLength value="10"/>
			<xs:maxLength value="500"/>
		</xs:restriction>
	</xs:simpleType>

</xs:schema>  
