Controle fichier XML par XSD
Résolu
sirefalas
Messages postés
260
Statut
Membre
-
sirefalas Messages postés 260 Statut Membre -
sirefalas Messages postés 260 Statut Membre -
Bonjour à tous,
Voila mon souci, je dois controler l'intégrité d'un fichier XML en passant par un fichier XSD, or je me retrouve soit avec des erreurs soit avec mon controle qui n'est pas complet.
Je voudrais controler la longueur des champs pour m'assurer qu'ils sont corrects.
le fichier XML:
Le fichier XSD que j'ai crée:
Lorsque je fais mon controle, je me retrouve avec l'erreur suivante:
s4s-elt-must-match.1 : Le contenu de 'sequence' doit concorder avec (annotation?, (element | group | choice | sequence | any)*). Problème détecté à partir de : simpleType.
Merci d'avance de votre aide
Voila mon souci, je dois controler l'intégrité d'un fichier XML en passant par un fichier XSD, or je me retrouve soit avec des erreurs soit avec mon controle qui n'est pas complet.
Je voudrais controler la longueur des champs pour m'assurer qu'ils sont corrects.
le fichier XML:
<?xml version="1.0" encoding="ISO-8859-15"?>
<exercice>
<ligne>
<CODCLI>SAR_0000123</CODCLI>
</ligne>
</exercice>
Le fichier XSD que j'ai crée:
<?xml version="1.0" encoding="ISO-8859-15"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="exercice"> <xs:complexType> <xs:sequence> <xs:element name="ligne" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:simpleType name="CODCLI"> <xs:restriction base="xs:string"> <xs:length value="11"/> </xs:restriction> </xs:simpleType> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Lorsque je fais mon controle, je me retrouve avec l'erreur suivante:
s4s-elt-must-match.1 : Le contenu de 'sequence' doit concorder avec (annotation?, (element | group | choice | sequence | any)*). Problème détecté à partir de : simpleType.
Merci d'avance de votre aide
1 réponse
-
sequence n'accepte que des elements. Il faut donc créer un type pour CODCLI.
Ca donne ça :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="codeclient"> <xs:restriction base="xs:string"> <xs:length value="11"/> </xs:restriction> </xs:simpleType> <xs:element name="exercice"> <xs:complexType> <xs:sequence> <xs:element name="ligne" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="CODCLI" type="codeclient"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>-
-
Je confirme mon message plus haut, j'ai trop de variables pour passer par cette méthode la.
J'ai préféré faire ça:
<xs:element name="CODCLI"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9_]{11}"/> </xs:restriction> </xs:simpleType> </xs:element>
En plus ça me donne un controle en plus si jamais je veux filtrer les caractères spéciaux
-