Skip to content

Instantly share code, notes, and snippets.

@ShamoX
Last active December 13, 2017 10:40
Show Gist options
  • Save ShamoX/e18ee2a6fe3cb27a5d520108b6d62ada to your computer and use it in GitHub Desktop.
Save ShamoX/e18ee2a6fe3cb27a5d520108b6d62ada to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.example.org/END"
xmlns:tns="https://www.example.org/END"
elementFormDefault="qualified">
<xs:element name="end">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:etablissement" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personne">
<xs:complexType>
<xs:all>
<xs:element name="nom">
<xs:complexType>
<xs:all>
<xs:element name="nom_de_famille" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="fonction" type="xs:string"/>
<xs:element ref="tns:adresse" minOccurs="0"/>
</xs:all>
<xs:attribute name="p_id" type="xs:ID" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="adresse">
<xs:complexType>
<xs:attribute name="numero_voie" type="xs:string"/>
<xs:attribute name="complement" type="xs:string" use="optional"/>
<xs:attribute name="type_de_voie">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="allee"/>
<xs:enumeration value="rue"/>
<xs:enumeration value="route"/>
<xs:enumeration value="avenue"/>
<xs:enumeration value="boulevard"/>
<xs:enumeration value="chemin"/>
<xs:enumeration value="place"/>
<xs:enumeration value="impasse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="nom_voie" type="xs:string"/>
<xs:attribute name="code_postal" type="xs:positiveInteger"/>
<xs:attribute name="ville" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="salle">
<xs:complexType>
<xs:all>
<xs:element name="nom_salle" type="xs:string"/>
<xs:element name="etage" type="xs:string"/>
<xs:element name="nombre_places" type="xs:positiveInteger"/>
</xs:all>
<xs:attribute name="s_id" type="xs:ID" use="optional"/>
<xs:attribute name="nom_batiment" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="A"/>
<xs:enumeration value="B"/>
<xs:enumeration value="C"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="etablissement">
<xs:complexType>
<xs:all>
<xs:element name="nom_etablissement" type="xs:string"/>
<xs:element ref="tns:adresse"/>
<xs:element name="directeur">
<xs:complexType>
<xs:attribute name="personne" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<xs:element name="salles">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:salle" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personnels">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:personne" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="etudiants">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:personne" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="tns:liste_cours"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="creneau_horaire">
<xs:complexType>
<xs:all>
<xs:element name="date" type="xs:date"/>
<xs:element name="heure_debut" type="xs:time"/>
<xs:element name="heure_fin" type="xs:time"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="liste_cours">
<xs:complexType>
<xs:all>
<xs:element name="cours">
<xs:complexType>
<xs:all>
<xs:element name="titre" type="xs:string"/>
<xs:element name="formateur">
<xs:complexType>
<xs:all>
<xs:element ref="tns:personne"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="lieux">
<xs:complexType>
<xs:sequence>
<xs:element name="lieu" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:creneau_horaire" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="salle" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="élèves">
<xs:complexType>
<xs:sequence>
<xs:element name="élève" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ref_personne" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment