Bonjour,
ça fait depuis deux jours que je lis des tutos, des exemples, de la documentation sur la validation XML avec XSD et j'essaie de réaliser le fichier XSD, mais pas moyen d'avoir quelque chose qui marche.
Mon XML est simple. Il contient une liste d'étiquette (label) et tous les enfants sont des noms alternatifs qui représente le label. Il peut y avoir un nombre illimité d'enfant, mais au moins 1. Pareil pour les label.
Dans un deuxième temps, la validation devrait permettre de vérifier que le label ne contienne aucun charactères spéciaux, c'est-à-dire uniquement :
a-z, A-Z, 0-9.
Mon fichier XML :Je ne publie pas les dizaines d'essais que j'ai fait avec le XSD. Voici seulement la dernière version que j'ai faite sur la base de plusieurs exemple détaillé trouvé sur le net.
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 <?xml version="1.0" encoding="ISO-8859-1"?> <MonTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="mavalid.xsd"> <label name="AAA"> <othername>AA A</othername> <othername>AAAAAAAAAAAA</othername> <othername>A a a A</othername> </label> <label name="BBB"> <othername>BEBEBE</othername> <othername>B B b B</othername> <othername>bb b</othername> </label> </MonTest>
Mon fichier XDS :Je fais la validation en Java et j'obtiens ces erreurs :
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 <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="MonTest"> <xsd:complexType> <xsd:sequence> <xsd:element name="label" type="xsd:int"> <xsd:complexType> <xsd:element name="othername" minoccurs="1" maxOccurs="unbounded"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 error: org.xml.sax.SAXParseException: s4s-elt-invalid-content.1: The content of '#AnonType_labelMonTest' is invalid. Element 'element' is invalid, misplaced, or occurs too often. error: org.xml.sax.SAXParseException: src-element.3: Element 'label' has both a 'type' attribute and a 'anonymous type' child. Only one of these is allowed for an element. error: org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: Invalid content was found starting with element 'label'. No child element is expected at this point.
Je crois que l'on peut exclure un problème du code Java et affirmer que le problème vient effectivement du XDS.
Pourtant, j'ai l'impression qu'il devrait être correcte...
Est-ce que quelqu'un de plus expérimenté pourrait partager un peu de son savoir pour me sortir de cette impasse et m'aider à rendre ce fichier XDS utilisable pour mon XML ?!
Merci beaucoup !
dondamiano
Partager