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
A voir également:
- Comment ouvrir un fichier xsd
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Comment ouvrir un fichier dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
sequence n'accepte que des elements. Il faut donc créer un type pour CODCLI.
Ca donne ça :
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 m'en vais tester de ce pas.
J'avais trouvé une solution de contournement en passant par un xs:pattern
Le truc qui me gène c'est que je vais me retrouver à devoir créer un type pour toutes les données où je veux vérifier la taille du champ :(
J'ai préféré faire ça:
En plus ça me donne un controle en plus si jamais je veux filtrer les caractères spéciaux