IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XQUERY/SGBD XML Discussion :

[Avis ?!] Projet en XML


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut [Avis ?!] Projet en XML
    Bonjour à tous,

    je suis en 2ième année d'école d'ing et j'ai choisi de réaliser mon Projet Applicatif sur le langage XML. Malgré tout je n'y connais pas grand chose ! J'ai simplement en 2ième année de BTS IG (Développeur d'applications) réalisé l'extension, la sécurisation (un peu ;-) et la mise à jour d'un site internet en PHP/MySQL et XHTML.

    XHTML est ce que l'on appelle un "des dialectes du XML", si ce que j'ai lu est exact !

    J'ai déjà lu pas mal d'informations sur le XML et j'ai demandé conseils à la prof chargée d'être ma tutrice pédagogique sur ce projet et je me pose encore la question de savoir si mon idée est toujours bonne !

    La voici :
    Je voudrais réaliser un site internet qui aurait pour but d'en réaliser d'autres ! En fait je voudrais créer un site qui permettrait à n'importe qui de se créer son propre site perso (du genre : présentation perso et pro + CV). Quelque chose de très stricte. Pas un énième site perso qui viendrait polluer le web ! Bref ...

    Mon projet serait principalement baser sur des formulaires à remplir par l'internaute.

    Ma question est donc ... en quoi l'utilisation du langage XML dans ce projet serait intéressante ? et si possible capitale (bah oui autant que mon projet soit réaliste par rapport aux besoins du marché!) ? Jusqu'à présent je résonnais plus par : "HMTL, PHP et MySQL c'est parfaiiiiiiiiiiiit ..."


    Merci de me donner des conseils et avis pour me montrer la voix ! Voire pourquoi pas un tout autre projet ... tout en sachant que je n'ai que environ 10h par semaine à y consacrer jusqu'à janvier 2006 !?


    Gôm
    Quand on n'a pas d'tête, on a ...

  2. #2
    Membre averti

    Inscrit en
    Août 2005
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 220
    Points : 364
    Points
    364
    Par défaut Projet
    Je ne vois pas très bien ce que XML t'apporterais dans ton projet...

    Perso, je me pencherais plutôt sur des processus d'échanges de données (BtoB ou BtoC, c'est très à la mode !) entre systèmes a priori incompatibles ou alors le e-commerce avec un caddie en xml qui reste côté client tant qu'il n'est pas finalisé et validé...

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut Re: Projet
    Citation Envoyé par xmarabout
    Perso, je me pencherais plutôt sur des processus d'échanges de données (BtoB ou BtoC, c'est très à la mode !) entre systèmes a priori incompatibles
    Ca m'intéresse bien ce que tu me dis là !

    Aurais-tu des exemples à me donner ?
    Quand on n'a pas d'tête, on a ...

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    XML peut représenter un réel plus dans ton projet selon la façon dont tu envisages que tes utilisateurs vont saisir et publier leur informations ; soit tu leur créés une interface dédiée pour cela sur ton site, ou tu leur laisses la possibilité de saisir dans un traitement de texte pouvant sortir du XML, comme OpenOffice ou Word à partir de la version 2003. Les documents sont ensuite uploadés sur ton site et transformés en page XHTML, de façon statique ou dynamique.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre averti

    Inscrit en
    Août 2005
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 220
    Points : 364
    Points
    364
    Par défaut Exemples
    - les transactions bancaires: de plus en plus de transactions bancaires sont formatées en XML pour passer d'un terminal à une institution bancaire par exemple.
    - En Belgique, nous "recevons" des cartes d'identités et des passeports avec une puce où tout est codé en XML
    - En France vous avez la carte VITALE qui est en XML je crois

    Plus concrètement, va faire un tour sur le site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.biblioml.org/
    Peut être qu'une bibliothèque publique serait heureuse d'avoir un logiciel ou un interface qui lui permet d'échanger de l'info avec d'autres biblio ou avec la Bibliothèque Nationale...

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Si tu t'orientes vers des solutions B2B, où XML est utilisé comme "interface" entre systèmes hétérogènes, il faut prendre en compte que tu vas devoir te familiariser avec des des technos plutôt complexes comme les W3C XML Schemas. Rien d'impossible évidemment pour un futur ingénieur, mais tu dois évaluer le temps d'apprentissage nécessaire pour ta planification de projet.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par GrandFather
    Si tu t'orientes vers des solutions B2B, où XML est utilisé comme "interface" entre systèmes hétérogènes, il faut prendre en compte que tu vas devoir te familiariser avec des des technos plutôt complexes comme les W3C XML Schemas. Rien d'impossible évidemment pour un futur ingénieur, mais tu dois évaluer le temps d'apprentissage nécessaire pour ta planification de projet.
    C'est bien ce qui m'inquiète !

    Sinon j'ai eu ce matin une autre idée ...

    Mon école dispose d'un CDI n'étant pas "réellement" informatisé ! Il me serait possible de réaliser une application en XML recensant l'ensemble des documents y étant présents. L'intérêt du XML serait que la "base de données" qui n'en serait pas une !!! serait accessible depuis le web, des applets java, du delphi, etc.

    Je pourrais mettre mon projet sur un CD de manière à démontrer que mon application est ultra-portable ! La mise à jour ne se ferait par contre que via un intranet.

    Qu'en pensez-vous ?
    Quand on n'a pas d'tête, on a ...

  8. #8
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,

    XML peut représenter un réel plus dans ton projet selon la façon dont tu envisages que tes utilisateurs vont saisir et publier leur informations ; soit tu leur créés une interface dédiée pour cela sur ton site, ou tu leur laisses la possibilité de saisir dans un traitement de texte pouvant sortir du XML, comme OpenOffice ou Word à partir de la version 2003. Les documents sont ensuite uploadés sur ton site et transformés en page XHTML, de façon statique ou dynamique.
    Merci de cette idée ! Pourrais-tu me la détailler un peu plus. Surtout concernant la génération automatique de pages web à partir de documents saisis sous Word 2003 ou Open Office 2 ???
    Quand on n'a pas d'tête, on a ...

  9. #9
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut Re: Exemples
    Citation Envoyé par xmarabout
    - les transactions bancaires: de plus en plus de transactions bancaires sont formatées en XML pour passer d'un terminal à une institution bancaire par exemple.
    - En Belgique, nous "recevons" des cartes d'identités et des passeports avec une puce où tout est codé en XML
    - En France vous avez la carte VITALE qui est en XML je crois

    Plus concrètement, va faire un tour sur le site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.biblioml.org/
    Peut être qu'une bibliothèque publique serait heureuse d'avoir un logiciel ou un interface qui lui permet d'échanger de l'info avec d'autres biblio ou avec la Bibliothèque Nationale...
    Merci pour l'url, je vois ça plus en détails dès ce soir.

    Gôm
    Quand on n'a pas d'tête, on a ...

  10. #10
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Bonjour à tous,

    voilà j'ai enfin fait le point sur mon projet !

    Je vais donc "essayer" de réaliser un site Internet, principalement en XML/XSLT, mais également grâce à du CSS, PHP, JS, [...], qui permettra à quiconque de s'enregistrer, afin d'y déposer son CV, une lettre de motivation et des documents (word, pdf, ...) démontrant ses amptitudes professionnelles (rapports, tutoriels, publications, ...) et mettre en ligne une présentation "personnelle-professionnelle" (une sorte de page perso stricte ayant pour but de se mettre en valeur aux yeux d'un recruteur : exposition de ses compétences "extra-scolaires" : assoc, sports, modérateur de forum, rédacteur de tuto, ETC).

    Je sais ... je sais ... ce n'est pas très clair, mais dans ma tête non plus ... quoi que !? Il me faut encore un peu de temps pour établir le cadre définitif de ce projet.

    Le but principal ici est de réaliser un projet en XML dans le cadre de mes études (cf. 1er post).


    L'idée de xmarabout était séduisante, mais je n'aurais malheureusement ni le temps, ni les compétences en XML pour m'y investir pleinement et efficacement. Plus tard peut-être ...


    Concernant l'idée de GrandFather sur l'importation de documents réalisés sous Microsoft Office 2003 ou Open Office 1 ou 2, j'aimerais bien que quelqu'un ... GrandFather, par exemple ... vienne m'expliquer un peu plus en détails cette technique : Je n'ai effectivement rien trouvé au travers de mes recherches sur le net détaillant une telle astuce

    Cette astuce me parait d'autant plus intéressante, qu'il est très fréquent que les gens, s'inscrivant sur le genre de site que je souhaite créer, possèdent d'ores et déjà des documents (généralement sous Word et donc enregistrable en XML) correspondant aux formulaires que je souhaite leur faire remplir afin de générer leurs pages perso Via cette astuce, mon site deviendrait beaucoup intéractif et user-friendly et donc obtiendrait une meilleure note :o


    Merci d'avance de vos conseils.

    Gôm
    Quand on n'a pas d'tête, on a ...

  11. #11
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    une recommandation avant de t'y mettre : il va te falloir une sérieuse motivation, car tu vas devoir assimiler une quantité très importante de nouvelles techniques, certaines assez exotiques (mais passionnantes)...

    Pour faire simple, tes utilisateurs rédigent leurs CV avec Word ou OpenOffice. Il serait raisonnable de se concentrer que sur l'un des deux traitements de texte, ce sera déjà assez dense comme cela... Ma préférence personnelle va vers OpenOffice.org, et tu trouveras toutes les infos nécessaires pour manipuler leur format XML ici : http://xml.openoffice.org/

    A toi de voir si tu leur imposes un format pré-défini (un modèle) ou non. La première possibilité simplifiera la restitution du CV en XHTML, et permettra de donner une image homogène de ton site.

    Les utilisateurs font un upload de leur CV sur ton site. Là, deux possibilités :
    A) Leur CV est transformé immédiatement en XHTML ; cette étape de pré-traitement peut permettre de repérer et rejeter les fichiers non-conformes, de faciliter leur indexation et permettre une restitution ultérieure immédiate
    B) Leur CV est enregistré tel quel (au format OOo donc) dans le système de fichiers du serveur ; la restitution en XHTML se fera donc dynamiquement, sur la requête d'un client
    Les deux approches ont leurs avantages et leurs inconvénients, à voir selon les besoins de ton projet.

    Côté serveur, le logiciel à développer peut être en PHP, Java, Python (Zope)... bref tous les langages qui supportent XML et XSLT. Si tu es très motivé, je te suggères d'aller regarder du côté de Cocoon, un framework XML développé par la fondation Apache qui est dédié à ce type d'emploi, et qui peut te faire gagner un temps considérable (à partir du moment où on a compris comment ça marchait, évidemment... )
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  12. #12
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Eh dit donc ... tes liens ... ce serait pas de l'English ! Bon ok ok je vais étudier tout ça ! Et puis ça me fera pas d'mal de perfectionner mon anglais !


    Sinon, plus sérieusement ...

    Tout d'abord merci beaucoup d'avoir répondu aussi rapidement !

    Au niveau de ma motivation ... ça va j'suis à fond ! J'ai déjà lu beaucoup de cours sur le XML, dont l'intégralité de ceux du site dvlp.com ... enfin la partie Généralités ! C'est un bon début je pense !

    Je vais étudier tout ce que tu m'as donné dès ce soir et je vais essayer avant le milieu de semaine de définir clairement mon projet, afin de discuter des détails avec toi.

    Merci encore.

    Gôm
    Quand on n'a pas d'tête, on a ...

  13. #13
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Bonsoir à tous,

    alors au niveau de mon projet !

    Voilà concrètement ce que j'aimerais faire, merci de me dire ce que vous en pensez, aussi bien sur le contenu, que sur le déroulement.

    Objectif : Réaliser un site internet en XML/XSLT permettant de générer un mini site web à quiconque le désirant, mais uniquement dans un but professionnel (voir détails ci-avant).


    Déroulement :

    Définir sur papier avec mon binôme ... [ ah oui au fait on est deux, mais il ne m'en voudra pas, si je dis, que concernant la programmation, pour l'instant ... je suis tout seul !? ... ] les caractéristiques du site web, ainsi que celles des pages qui seront générées (le mini site) : charte graphique, services proposés ... se fixer des limites en gros

    Réalisation de la structure du site web en CSS2 et XHTML v1.1, de manière très rigoureuse et stricte, de manière à respecter à la lettre les standards et pouvoir faire valider son site par le W3C, le rendre accessible aux handicapés (déficients visuels, etc.) et bien sur qu'il soit consultable de n'importe quel navigateur ... navigateur respectant les standards ... bien sur !

    Réalisation de la structure des données en XML, avec un schéma ou une DTD ( et un fichier XSLT pour exploiter ces données.

    Réalisation d'un "robot" en JAVA ou utilisation d'un des framework de APACHE : The Apache Cocoon Project ( afin de générer des pages XHTML à la volée à partir de fichier (OOo) uploadés par les utilisateurs (exemple de GrandFather). (Selon temps).

    Hébergement chez un hébergeur gratuit : FREE et/ou Lycos. Référencement, grâce notamment à l'ajout de certaines lignes de code : META Tags, etc. Optimisation ... Sécurisation ... etc. (Selon temps).


    InterrogationS :

    Peut-être n'est-il pas judicieux de faire ainsi :

    Peut-être est-il directement possible de réaliser la mise en forme générale du site grâce à XSLT : Mais il me semble préférable de passer par une étape intermédiaire, si ce n'est pas du temps de perdu, car pour mon collègue ce sera une bonne introduction au développement web, avant d'attaquer le XML !?


    J'attends avec impatience vos avis ... en attendant nous nous mettrons dès demain soir à réaliser sur papier la mise en page du site, ainsi qu'à définir les services proposés et la manière de coder les données s'y rapportant dans nos fichiers XML ... le tout en deux heures ... bien sur ! 8)


    Merci d'avance,

    Gôm
    Quand on n'a pas d'tête, on a ...

  14. #14
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par ghohm
    merci de me dire ce que vous en pensez
    Sinon j'ai créé mes fichiers XML et je m'attaque à présent à mes schémas ... je sais il aurait mieux valu le faire dans l'autre sens, mais bon ... c'est comme ça !

    Je les écris avec XMLSpy2005 version Home et je ne sais pas utiliser l'interface graphique. Pourriez-vous me conseiller un tuto afin de savoir l'utiliser ??? Pour l'instant je tape directement le code, ce qui a au moins le mérite de me faire parfaitement comprendre la syntaxe

    Pour finir une chtite question ! Quelle est la différence entre ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element name="étab"/>
    et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsd:element name="étab"/>
    Il y a un "d" en plus ... mais sinon !


    Merci d'avance.

    Gôm
    Quand on n'a pas d'tête, on a ...

  15. #15
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Voilà j'ai fini mon premier fichier XML avec son schéma-XML associé.

    Pourriez-vous me dire ce que vous en penser ? Je pense que la fin de mon fichier XML est mal codé, mais je ne vois pas trop comment faire autrement

    Merci de m'aider.

    Fichier XSD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by HUCHET (ESAIP) -->
     
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
     
    	<xs:element name="année_deb" type="xs:gYear"/>
    	<xs:element name="année_fin" type="xs:gYear"/>
     
    	<!-- Description des attributs du sous-sous-élément "étab" du sous-élément "scolaire" -->
    	<xs:complexType name="type_étab">
    		<xs:simpleContent>
    			<xs:extension base="xs:string">
    				<xs:attribute name="type" type="xs:string" use="required"/>
    				<xs:attribute name="ville" type="xs:string" use="required"/>
    			</xs:extension>
    		</xs:simpleContent>
    	</xs:complexType>
     
    	<!-- Description des attributs du sous-sous-élément "formation" du sous-élément "scolaire" -->
    	<xs:complexType name="type_form">
    		<xs:simpleContent>
    			<xs:extension base="xs:string">
    				<xs:attribute name="option" type="xs:string" use="required"/>
    			</xs:extension>
    		</xs:simpleContent>
    	</xs:complexType>
     
    	<!-- Description des attributs du sous-sous-élément "diplôme" du sous-élément "scolaire" -->
    	<xs:complexType name="type_exam">
    		<xs:simpleContent>
    			<xs:extension base="xs:string">
    				<xs:attribute name="mention" type="xs:string" use="optional"/>
    			</xs:extension>
    		</xs:simpleContent>
    	</xs:complexType>
     
    	<!-- Description des attributs du sous-sous-élément "lang" du sous-élément "langues" -->
    	<xs:complexType name="type_lang">
    		<xs:simpleContent>
    			<xs:extension base="xs:string">
    				<xs:attribute name="niveau" type="xs:string" use="required"/>
    				<xs:attribute name="écrit" type="xs:string" use="required"/>
    				<xs:attribute name="orale" type="xs:string" use="required"/>
    			</xs:extension>
    		</xs:simpleContent>
    	</xs:complexType>
     
    	<!-- Description des attributs du sous-sous-élément "div" du sous-élément "divers" -->
    	<xs:complexType name="type_div">
    		<xs:simpleContent>
    			<xs:extension base="xs:string">
    				<xs:attribute name="titre" type="xs:string" use="required"/>
    				<xs:attribute name="libellé" type="xs:string" use="required"/>
    			</xs:extension>
    		</xs:simpleContent>
    	</xs:complexType>
     
    	<!-- Description des éléments du sous-élément "scolaire" -->
    	<xs:group name="grp_elem_scolaire">
    		<xs:sequence>
    			<xs:element name="année_deb" type="xs:gYear"/>
    			<xs:element name="année_fin" type="xs:gYear"/>
    			<xs:element name="étab" type="type_étab"/>
    			<xs:element name="formation" type="type_form"/>
    			<xs:element name="diplôme" type="type_exam"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "scolaire" -->
    	<xs:complexType name="type_scolaire">
    		<xs:sequence>
    			<xs:group ref="grp_elem_scolaire"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- Description des éléments du sous-élément "exp_pro" -->
    	<xs:group name="grp_elem_exp_pro">
    		<xs:sequence>
    			<xs:element name="année" type="xs:gYear"/>
    			<xs:element name="type" type="xs:string"/>
    			<xs:element name="étab_pro" type="xs:string"/>
    			<xs:element name="durée" type="xs:string"/>
    			<xs:element name="ville" type="xs:string"/>
    			<xs:element name="départ" type="xs:string"/>
    			<xs:element name="étranger" type="xs:string"/>
    			<xs:element name="détails" type="xs:string"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "exp_pro" -->
    	<xs:complexType name="type_exp_pro">
    		<xs:sequence>
    			<xs:group ref="grp_elem_exp_pro"/>
    		</xs:sequence>
    	</xs:complexType>
     
    	<!-- Description de l'élément du sous-élément "langues" -->
    	<xs:group name="grp_elem_langues">
    		<xs:sequence>
    			<xs:element name="lang1" type="type_lang"/>
    			<xs:element name="lang2" type="type_lang"/>
    			<xs:element name="lang3" type="type_lang"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "langues" -->
    	<xs:complexType name="type_langues">
    		<xs:sequence>
    			<xs:group ref="grp_elem_langues"/>
    		</xs:sequence>
    	</xs:complexType>
     
    	<!-- Description de l'élément du sous-élément "divers" -->
    	<xs:group name="grp_elem_divers">
    		<xs:sequence>
    			<xs:element name="div1" type="type_div"/>
    			<xs:element name="div2" type="type_div"/>
    			<xs:element name="div3" type="type_div"/>
    			<xs:element name="div4" type="type_div"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "divers" -->
    	<xs:complexType name="type_divers">
    		<xs:sequence>
    			<xs:group ref="grp_elem_divers"/>
    		</xs:sequence>
    	</xs:complexType>
     
    	<!-- Description des caractéristiques des éléments de l'élément racine -->
    	<xs:complexType name="type_profil">
    		<xs:sequence>
    			<xs:element name="scolaire" type="type_scolaire" maxOccurs="3"/>
    			<xs:element name="spécialité" type="xs:string"/>
    			<xs:element name="exp_pro" type="type_exp_pro" maxOccurs="3"/>
    			<xs:element name="langues" type="type_langues" minOccurs="1" maxOccurs="1"/>
    			<xs:element name="divers" type="type_divers" minOccurs="1" maxOccurs="1"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- Description de l'élément racine du XML -->
    	<xs:element name="profil" type="type_profil">
    		<xs:annotation>
    			<xs:documentation>Profil est l'élément racine</xs:documentation>
    		</xs:annotation>
    	</xs:element>
    </xs:schema>

    Fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <profil xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cv.xsd">
    	<scolaire>
    		<année_deb>2004</année_deb>
    		<année_fin>2007</année_fin>
    		<étab type="Ecole d'ingénieurs" ville="Angers">ESAIP</étab>
    		<formation option="IRT">Ingénieur</formation>
    		<diplôme mention=""/>
    	</scolaire>
    	<scolaire>
    		<année_deb>2001</année_deb>
    		<année_fin>2004</année_fin>
    		<étab type="Université" ville="tourcoin">UCX</étab>
    		<formation option="SM">DEUG</formation>
    		<diplôme mention="">DEUG SM</diplôme>
    	</scolaire>
    	<scolaire>
    		<année_deb>1997</année_deb>
    		<année_fin>2000</année_fin>
    		<étab type="Lycée" ville="Ici">Henri Truc</étab>
    		<formation option="Physique - Chimie">Baccalauréat général</formation>
    		<diplôme mention="">Bac Scientifique</diplôme>
    	</scolaire>
    	<spécialité/>
    	<exp_pro>
    		<année>2005</année>
    		<type>stage ouvrier</type>
    		<étab_pro>M GROUP</étab_pro>
    		<durée>1 mois</durée>
    		<ville>Harrogate</ville>
    		<départ/>
    		<étranger>Royaume-Uni</étranger>
    		<détails>Usinage et recyclage de pièces inox au sein de l'équipe de maintenance</détails>
    	</exp_pro>
    	<exp_pro>
    		<année>2004</année>
    		<type>Emploi saisonnier</type>
    		<étab_pro>Association A</étab_pro>
    		<durée>15 jours</durée>
    		<ville>Ville_X</ville>
    		<départ>72</départ>
    		<étranger/>
    		<détails>Encadrement dans un centre d'accueil pour trucs</détails>
    	</exp_pro>
    	<exp_pro>
    		<année>2003</année>
    		<type>Emploi saisonnier</type>
    		<étab_pro>Sété MAROUE</étab_pro>
    		<durée>1 mois</durée>
    		<ville>Mar_ville</ville>
    		<départ>92</départ>
    		<étranger/>
    		<détails>Animation dans un centre de loisirs</détails>
    	</exp_pro>
    	<langues>
    		<lang1 niveau="langue maternelle" écrit="excellent" orale="excellent">Français</lang1>
    		<lang2 niveau="courant" écrit="correct" orale="correct">Anglais</lang2>
    		<lang3 niveau="scolaire" écrit="moyen" orale="moyen">Allemand</lang3>
    	</langues>
    	<divers>
    		<div1 titre="Permis B" libellé="obtenu le 22/02/1922"/>
    		<div2 titre="Projet Humanitaire" libellé="Projet de reboisement et de rénovation"/>
    		<div3 titre="Association Africaine" libellé="Membre"/>
    		<div4 titre="Loisirs" libellé="Cinéma, Natation"/>
    	</divers>
    </profil>
    Veuillez me pardonner auparavant mes fautes de débutant ! Non pas taper !

    Gôm
    Quand on n'a pas d'tête, on a ...

  16. #16
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    quelques petites remarques :

    - il faut éviter, dans la mesure du possible, de numéroter les éléments de même type, cela va compliquer l'écriture de tes feuilles de style, et alourdit ton schema. Tu peux réécrire les sections concernant les langues et les infos diverses de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       <langues> 
          <langue niveau="langue maternelle" écrit="excellent" orale="excellent">Français</lang1> 
          <langue niveau="courant" écrit="correct" orale="correct">Anglais</lang2> 
          <langue niveau="scolaire" écrit="moyen" orale="moyen">Allemand</lang3> 
       </langues> 
       <infos-diverses> 
          <divers titre="Permis B" libellé="obtenu le 22/02/1922"/> 
          <divers titre="Projet Humanitaire" libellé="Projet de reboisement et de rénovation"/> 
          <divers titre="Association Africaine" libellé="Membre"/> 
          <divers titre="Loisirs" libellé="Cinéma, Natation"/> 
       </infos-diverses>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       <xs:complexType name="type_langues"> 
          <xs:sequence> 
             <xs:element name="langue" type="type_lang" maxOccurs="3"/> 
          </xs:sequence> 
       </xs:complexType> 
       <xs:complexType name="type_divers"> 
          <xs:sequence> 
             <xs:element name="divers" type="type-div" minOccurs="0" maxOccurs="4"/> 
          </xs:sequence> 
       </xs:complexType>
    - Envisage de donner un espace de noms à tes balises, dans le cas où elles devraient être mélangées ou fusionnées à un autre dialecte XML

    - les contraintes minOccurs="1" et maxOccurs="1" sont inutiles, puisque 1 est la valeur par défaut donnée à ces attributs

    - Plutôt que de mettre des commentaires HTML dans ton schéma, privilégie l'utilisation de <xs:documentation>, conçue pour cela et reconnue par les EDI XML
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  17. #17
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Bonjour,

    c'est encore parfait GrandFather A part que la balise fermante de <langue> était érronée

    Au final :

    Fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	<langues>
          <langue niveau="langue maternelle" écrit="excellent" orale="excellent">Français</langue>
          <langue niveau="courant" écrit="correct" orale="correct">Anglais</langue>
          <langue niveau="scolaire" écrit="moyen" orale="moyen">Allemand</langue>
       </langues>
       <infos-diverses>
          <divers titre="Permis B" libellé="obtenu le 22/02/1922"/>
          <divers titre="Projet Humanitaire" libellé="Projet de reboisement et de rénovation"/>
          <divers titre="Association Africaine" libellé="Membre"/>
          <divers titre="Loisirs" libellé="Cinéma, Natation"/>
       </infos-diverses>
    Fichier XSD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    	<!-- Description de l'élément du sous-élément "langues" -->
    	<xs:group name="grp_elem_langues">
    		<xs:sequence>
    			<xs:element name="langue" type="type_lang" maxOccurs="3"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "langues" -->
    	<xs:complexType name="type_langues">
    		<xs:sequence>
    			<xs:group ref="grp_elem_langues"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- Description de l'élément du sous-élément "infos-diverses" -->
    	<xs:group name="grp_elem_infos-diverses">
    		<xs:sequence>
    			<xs:element name="divers" type="type_div" minOccurs="0" maxOccurs="4"/>
    		</xs:sequence>
    	</xs:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "infos-diverses" -->
    	<xs:complexType name="type_infos-diverses">
    		<xs:sequence>
    			<xs:group ref="grp_elem_infos-diverses"/>
    		</xs:sequence>
    	</xs:complexType>
    	<!-- Description des caractéristiques des éléments de l'élément racine -->
    	<xs:complexType name="type_profil">
    		<xs:sequence>
    			<xs:element name="scolaire" type="type_scolaire" maxOccurs="3"/>
    			<xs:element name="spécialité" type="xs:string"/>
    			<xs:element name="exp_pro" type="type_exp_pro" maxOccurs="3"/>
    			<xs:element name="langues" type="type_langues"/>
    			<xs:element name="infos-diverses" type="type_infos-diverses"/>
    		</xs:sequence>
    	</xs:complexType>
    Merci beaucoup. Pourrais-je abuser et te demander de répondre à ma question précédente.

    Gôm
    Quand on n'a pas d'tête, on a ...

  18. #18
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    J'essaye d'optimiser mes schema-XML et je ne sais pas si mes expressions régulières sont correctes

    Ne connaitrireriez-vous pas un validateur d'expressions régulières ?!

    Sinon je cherche un cours niveau "Expert" (enfin j'me comprends ! ;-) concernant les Schema-XML.


    Mon but est d'effectuer le maximum de contrôles sur les données de mes fichiers XML.

    Merci d'avance.
    Quand on n'a pas d'tête, on a ...

  19. #19
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par ghohm
    J'essaye d'optimiser mes schema-XML et je ne sais pas si mes expressions régulières sont correctes


    OK OK tuto JS !!!

    C'est en lien avec le JavaScript, mais ce sera parfait pour mes besoins

    Citation Envoyé par ghohm
    Ne connaitrireriez-vous pas un validateur d'expressions régulières ?!
    Décidément

    OK OK Validateur de RegExp
    Quand on n'a pas d'tête, on a ...

  20. #20
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Bon bah je continue mon ptit bonhomme de chemin seul ...

    Merci de me dire si mes Schema-XML sont enfin optimisés

    (Je pense avoir bien fait mes expressions régulières grâce à : http://www.expreg.com. Je vous le conseille en cas de soucis concernant cette syntaxe un peu beaucoup barbare !!!)

    cv.xsd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by HUCHET (ESAIP) -->
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
    	<xsd:element name="année_deb" type="xsd:gYear"/>
    	<xsd:element name="année_fin" type="xsd:gYear"/>
    	<!-- Description des attributs du sous-sous-élément "étab" du sous-élément "scolaire" -->
    	<xsd:complexType name="type_étab">
    		<xsd:simpleContent>
    			<xsd:extension base="xsd:string">
    				<xsd:attribute name="type" type="xsd:string" use="required"/>
    				<xsd:attribute name="ville" type="xsd:string" use="required"/>
    			</xsd:extension>
    		</xsd:simpleContent>
    	</xsd:complexType>
    	<!-- Description des attributs du sous-sous-élément "formation" du sous-élément "scolaire" -->
    	<xsd:complexType name="type_form">
    		<xsd:simpleContent>
    			<xsd:extension base="xsd:string">
    				<xsd:attribute name="option" type="xsd:string" use="required"/>
    			</xsd:extension>
    		</xsd:simpleContent>
    	</xsd:complexType>
    	<!-- Restriction du type "string" concernant l'attribut "mention" du ss-sous-élément "diplôme" -->
    	<xsd:simpleType name="choixMention">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value=""/>
    			<xsd:enumeration value="Assez bien"/>
    			<xsd:enumeration value="Bien"/>
    			<xsd:enumeration value="Très bien"/>
    			<xsd:enumeration value="Félicitations du jury"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Description des attributs du sous-sous-élément "diplôme" du sous-élément "scolaire" -->
    	<xsd:complexType name="type_exam">
    		<xsd:simpleContent>
    			<xsd:extension base="xsd:string">
    				<xsd:attribute name="mention" type="choixMention" use="optional"/>
    			</xsd:extension>
    		</xsd:simpleContent>
    	</xsd:complexType>
    	<!-- Restriction du type "string" concernant le niveau de langue -->
    	<xsd:simpleType name="choixNiveau">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="Langue maternelle"/>
    			<xsd:enumeration value="Courant"/>
    			<xsd:enumeration value="Scolaire"/>
    			<xsd:enumeration value="Débutant"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "string" concernant le détail des niveaux de langue -->
    	<xsd:simpleType name="détailNiveau">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="Excellent"/>
    			<xsd:enumeration value="Correct"/>
    			<xsd:enumeration value="Moyen"/>
    			<xsd:enumeration value="Faible"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Description des attributs du sous-sous-élément "lang" du sous-élément "langues" -->
    	<xsd:complexType name="type_lang">
    		<xsd:simpleContent>
    			<xsd:extension base="xsd:string">
    				<xsd:attribute name="niveau" type="choixNiveau" use="required"/>
    				<xsd:attribute name="écrit" type="détailNiveau" use="required"/>
    				<xsd:attribute name="orale" type="détailNiveau" use="required"/>
    			</xsd:extension>
    		</xsd:simpleContent>
    	</xsd:complexType>
    	<!-- Description des attributs du sous-sous-élément "div" du sous-élément "divers" -->
    	<xsd:complexType name="type_div">
    		<xsd:simpleContent>
    			<xsd:extension base="xsd:string">
    				<xsd:attribute name="titre" type="xsd:string" use="required"/>
    				<xsd:attribute name="libellé" type="xsd:string" use="required"/>
    			</xsd:extension>
    		</xsd:simpleContent>
    	</xsd:complexType>
    	<!-- Description des éléments du sous-élément "scolaire" -->
    	<xsd:group name="grp_elem_scolaire">
    		<xsd:sequence>
    			<xsd:element name="année_deb" type="xsd:gYear"/>
    			<xsd:element name="année_fin" type="xsd:gYear"/>
    			<xsd:element name="étab" type="type_étab"/>
    			<xsd:element name="formation" type="type_form"/>
    			<xsd:element name="diplôme" type="type_exam"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "scolaire" -->
    	<xsd:complexType name="type_scolaire">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_scolaire"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description des éléments du sous-élément "exp_pro" -->
    	<xsd:group name="grp_elem_exp_pro">
    		<xsd:sequence>
    			<xsd:element name="année" type="xsd:gYear"/>
    			<xsd:element name="type" type="xsd:string"/>
    			<xsd:element name="étab_pro" type="xsd:string"/>
    			<xsd:element name="durée" type="xsd:string"/>
    			<xsd:element name="ville" type="xsd:string"/>
    			<xsd:element name="départ" type="xsd:string"/>
    			<xsd:element name="étranger" type="xsd:string"/>
    			<xsd:element name="détails" type="xsd:string"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "exp_pro" -->
    	<xsd:complexType name="type_exp_pro">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_exp_pro"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description de l'élément du sous-élément "langues" -->
    	<xsd:group name="grp_elem_langues">
    		<xsd:sequence>
    			<xsd:element name="langue" type="type_lang" maxOccurs="3"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "langues" -->
    	<xsd:complexType name="type_langues">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_langues"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description de l'élément du sous-élément "infos-diverses" -->
    	<xsd:group name="grp_elem_infos-diverses">
    		<xsd:sequence>
    			<xsd:element name="divers" type="type_div" minOccurs="0" maxOccurs="4"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "infos-diverses" -->
    	<xsd:complexType name="type_infos-diverses">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_infos-diverses"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description des caractéristiques des éléments du sous-élément "profile" -->
    	<xsd:complexType name="type_profile">
    		<xsd:sequence>
    			<xsd:element name="scolaire" type="type_scolaire" maxOccurs="3"/>
    			<xsd:element name="spécialité" type="xsd:string"/>
    			<xsd:element name="exp_pro" type="type_exp_pro" maxOccurs="3"/>
    			<xsd:element name="langues" type="type_langues"/>
    			<xsd:element name="infos-diverses" type="type_infos-diverses"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description des caractéristiques des éléments de l'élément racine -->
    	<xsd:complexType name="type_root">
    		<xsd:sequence>
    			<xsd:element name="profile" type="type_profile" maxOccurs="unbounded"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description de l'élément racine du XML -->
    	<xsd:element name="root" type="type_root">
    		<xsd:annotation>
    			<xsd:documentation>Root est l'élément racine</xsd:documentation>
    		</xsd:annotation>
    	</xsd:element>
    </xsd:schema>

    profile.xsd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
    	<!-- Restriction du type "string" afin d'obliger la saisie en majuscule -->
    	<xsd:simpleType name="uc">
    		<xsd:restriction base="xsd:string">
    			<xsd:pattern value="[A-Z]"/>
    			<!-- Obligatoirement en MAJUSCULE -->
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "string" concernant le ss-ss-sous-élément "civilité" -->
    	<xsd:simpleType name="choixCivilité">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="Mademoiselle"/>
    			<xsd:enumeration value="Madame"/>
    			<xsd:enumeration value="Monsieur"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "decimal" concernant le ss-ss-sous-élément "département" -->
    	<xsd:simpleType name="restricDépart">
    		<xsd:restriction base="xsd:decimal">
    			<xsd:pattern value="\d{2}"/>
    			<!-- \d{2} signifie : obligatoirement DEUX chiffres-->
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "string" concernant le ss-ss-sous-élément "statut" -->
    	<xsd:simpleType name="choixStatut">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="Célibataire"/>
    			<xsd:enumeration value="Concubinage"/>
    			<xsd:enumeration value="Marié(e)"/>
    			<xsd:enumeration value="Divorcé(e)"/>
    			<xsd:enumeration value="Pacé(e)"/>
    			<xsd:enumeration value="Veuf(ve)"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Description des éléments du sous-sous-élément "identité" -->
    	<xsd:group name="grp_elem_ident">
    		<xsd:sequence>
    			<xsd:element name="civilité" type="choixCivilité"/>
    			<xsd:element name="nom" type="xsd:string"/>
    			<xsd:element name="prénom" type="xsd:string"/>
    			<xsd:element name="date_naiss" type="xsd:date"/>
    			<xsd:element name="lieu_naiss" type="uc"/>
    			<xsd:element name="département" type="restricDépart"/>
    			<xsd:element name="nationalité" type="xsd:decimal"/>
    			<xsd:element name="statut" type="choixStatut"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-sous-élément "identité" -->
    	<xsd:complexType name="type_ident">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_ident"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Restriction du type "integer" concernant le ss-ss-sous-élément "cp" -->
    	<xsd:simpleType name="restricCp">
    		<xsd:restriction base="xsd:nonNegativeInteger">
    			<xsd:pattern value="\d{5}"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "decimal" concernant le ss-ss-sous-élément "tel" -->
    	<xsd:simpleType name="restricTel">
    		<xsd:restriction base="xsd:decimal">
    			<xsd:pattern value="^((01|02|03|04|05|08){1})+(\d{8})"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "decimal" concernant le ss-ss-sous-élément "port" -->
    	<xsd:simpleType name="restricPort">
    		<xsd:restriction base="xsd:decimal">
    			<xsd:pattern value="^((06){1})+(\d{8})"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Restriction du type "string" concernant le ss-ss-sous-élément "courriel" -->
    	<xsd:simpleType name="restricMail">
    		<xsd:restriction base="xsd:string">
    			<xsd:pattern value="(.)+@(.)+"/>
    			<!-- (.)+ signifie : n'importe quel caractère au moins une fois -->
    			<!-- un @ entre les deux chaînes de caractères quelconques -->
    		</xsd:restriction>
    	</xsd:simpleType>
    	<!-- Description des éléments du sous-sous-élément "coordonnées" -->
    	<xsd:group name="grp_elem_coord">
    		<xsd:sequence>
    			<xsd:element name="numéro" type="xsd:string"/>
    			<xsd:element name="rue" type="xsd:string"/>
    			<xsd:element name="cp" type="restricCp"/>
    			<xsd:element name="ville" type="uc"/>
    			<xsd:element name="pays" type="uc"/>
    			<xsd:element name="tel" type="restricTel"/>
    			<xsd:element name="port" type="restricPort"/>
    			<xsd:element name="fax" type="restricTel"/>
    			<xsd:element name="courriel" type="restricMail"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-sous-élément "coordonnées" -->
    	<xsd:complexType name="type_coord">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_coord"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description des éléments du sous-élément "profile" -->
    	<xsd:group name="grp_elem_profile">
    		<xsd:sequence>
    			<xsd:element name="identité" type="type_ident"/>
    			<xsd:element name="coordonnées" type="type_coord" maxOccurs="2"/>
    			<xsd:element name="présentation" type="xsd:string"/>
    		</xsd:sequence>
    	</xsd:group>
    	<!-- Description des caractéristiques des éléments du sous-élément "profile" -->
    	<xsd:complexType name="type_profile">
    		<xsd:sequence>
    			<xsd:group ref="grp_elem_profile"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description des caractéristiques des éléments de l'élément racine -->
    	<xsd:complexType name="type_root">
    		<xsd:sequence>
    			<xsd:element name="profile" type="type_profile" maxOccurs="unbounded"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	<!-- Description de l'élément racine du XML -->
    	<xsd:element name="root">
    		<xsd:annotation>
    			<xsd:documentation>Elément racine de profile.xml</xsd:documentation>
    		</xsd:annotation>
    	</xsd:element>
    </xsd:schema>
    Merci d'avance.

    PS : Désolé pour le post de 3km de long ... je tronquerais par la suite, si nécessaire. A moins que je passe au délestage !
    Quand on n'a pas d'tête, on a ...

Discussions similaires

  1. Architecture projet J2ME ( xml et transferts )
    Par Azounet dans le forum Java ME
    Réponses: 5
    Dernier message: 30/03/2007, 16h44
  2. [AVIS ?] Projet en cours : Un Zelda complet !
    Par Obligen dans le forum Projets
    Réponses: 7
    Dernier message: 15/12/2006, 19h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo