Bonjour à tous,
J'ai eu à créer une feuille de style XSD comportant des éléments pouvant être appelés récursivement dans un document XML ( ça pourrait en intéresser certains). Le document XML devait ressembler à ça :
J'ai donc créé la feuille de style que voici :
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 <?xml version="1.0" encoding="utf-8"?> <racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="monschema.xsd" > <immeuble name="truc"> <etage name="1er etage"> <etage name="2eme etage"> <etage name="3eme etage"> <etage name="4eme etage"> <etage name="5eme etage"/> </etage> </etage> </etage> <etage name="2ème étage"> <etage name="3ème étage"/> </etage> </etage> </immeuble> </racine>
La validation fonctionne à merveille SAUF si on rajoute des commentaires ou un texte quelconque entre 2 balises...
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 <?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="etageType"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="etage" type="etageType" /> </xs:sequence> <xs:attribute name="name" type="xs:string" /> </xs:complexType> <xs:element name="racine"> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" name="immeuble" type="etageType" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
L'erreur alors retournée est : "Element 'etage' cannot have character [children], because the type's content type is element-only." (si on avait mis un commentaire entre 2 balises 'etage' par exemple).
Alors ma question est : comment faire en sorte que les éléments ne soient pas "element-only" ou mieux, comment autoriser les commentaires, en plus des éléments dans le XML (tout en interdisant un texte qui ne soit pas un commentaire) ??
Merci pour vos réponses !!
Partager