Bonsoir,
Dans le cadre d'un module de XML dans mon école, je dois réaliser deux modèles (DTD et XSD) pour définir une liste de CV.
Nous utilisons le logiciel XML Spy pour valider nos différents fichiers.
Aperçu général du fichier XML
Mon problème se situe au niveau de la balise <section> de <cv>. Celle-ci contient plusieurs éléments (objectif, formation, stage, emploi, ...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8"?> <liste_cv xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="modele.xsd"> <cv> <titre>...</titre> <entete>...</entete> <section>...</section> </cv> </liste_cv>
Je voudrais que chaque élément de la balise <section> puisse apparaître une seule fois ou pas du tout dans n'importe quel ordre.
J'ai réussi à le faire en XSD :
Par contre impossible de le faire en DTD, voilà ce que le code que j'ai essayé de réaliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <xs:element name="section"> <xs:complexType> <xs:all> <xs:element ref="formation" minOccurs="0"/> <xs:element ref="objectif" minOccurs="0"/> <xs:element ref="stage" minOccurs="0"/> <xs:element ref="emploi" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element>
Le problème étant que je peux ajouter plusieurs fois chaque élément, malgré le '?'...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<!ELEMENT section (formation? | objectif? | stage? | emploi? | competence? | langues? | projet?)*>
J'ai lu dans un bouquin que la balise xs:all ne peut pas être traduite en DTD. Savez-vous cependant s'il existe une solution à ce problème?
Merci d'avance, j'espère avoir été assez clair
Partager