cs_Spotty
Messages postés4Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention11 février 2009
-
11 févr. 2009 à 10:30
cs_Spotty
Messages postés4Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention11 février 2009
-
11 févr. 2009 à 16:18
Bonjour,
Cela fait deux jours que je suis sur ce problème. J'aimerais valider
mon XML avec un schéma XSD. Jusque là tout va bien j'ai trouvé tout ce
qu'il me fallait sur le net. Maintenant le problème est que j'essaie
d'avoir un schéma XSD le plus restrictif possible et c'est là que cela
commence à se gâter. J'ai vu que dès qu'on ajoutais des "nillable" et
des type a tester cela se compliquait. J'ai trouvé qu'il fallait
ajouter un attribut "nil=true" dans le XML mais maintenant c'est
encore, pire.
Voici mes exemple XML et XSD, il y aurait-il une âme charitable pour me
dire si y'a une solution ou si finalement au lieu de cherche à tester
un double je dois juste tester une string (mais on perds en
restriction...).
Error: L'attribut 'nil' n'est pas déclaré. Error: L'élément 'Rooms' n'est pas valide - La valeur '' n'est pas valide selon son type de données 'http://www.w3.org/2001/XMLSchema:unsignedShort' - La chaîne '' n'est pas une valeur UInt16 valide. Error: L'attribut 'nil' n'est pas déclaré. Error: L'élément 'Rooms' n'est pas valide - La valeur '' n'est pas valide selon son type de données 'http://www.w3.org/2001/XMLSchema:unsignedShort' - La chaîne '' n'est pas une valeur UInt16 valide. Error: L'attribut 'nil' n'est pas déclaré. Error: L'élément 'Rooms' n'est pas valide - La valeur '' n'est pas valide selon son type de données 'http://www.w3.org/2001/XMLSchema:unsignedShort' - La chaîne '' n'est pas une valeur UInt16 valide.
Voilà en gros. Je vous remercie par avance de votre aide et si vous
avez des questions n'hésitez par. J'ai regardé partout sur le net mais
je ne trouve vraiment pas la solution...
cs_Spotty
Messages postés4Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention11 février 2009 11 févr. 2009 à 14:32
Non pour générer le schéma j'ai utilisé tout ce qui est à notre disposition dans Visual studio dans un winforms qui récupère mon XML à la volée et en fait un schéma XSD :
Le truc c'est que je ne trouve pas le schéma assez restrictif donc j'avais envie de le rendre plus restrictif, mais bon vu comment je galère je crois que je vais définir une valeur par défaut à mes balises XML "0". Comme ça je n'aurais plus de balise vides et je pourrais toujours valider le type de retour...
Sinon oui Sharpmao, c'ets un peu ce que j'ai déjà bidouillé car j'ai trouvé ça comme toi, mais j'ai pas avancé plus sur cette voie, ma solution ne semble pas existée...
cs_Spotty
Messages postés4Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention11 février 2009 11 févr. 2009 à 16:13
Ben le problème c'est que élément optionnel veut dire que la ligne peut ne pas apparaître moi le problème est tout autre, la ligne apparaît mais en potentiellement vide...
Si je me minOccurs = 0 ça autorise ceci (plus de ligne Rooms) :
<?xml version="1.0" encoding="utf-8" ?>
- <SellerExtranet>
- Ref="2890">
<Type>Appartment</Type>
<Transaction>Vente</Transaction>
<City>ARNAC POMPADOUR</City>
<District />
<Surface>50.5</Surface>
149000.45
<Currency>EUR</Currency>
</SellerExtranet>
Hors l'histoire de Nillable c'ets d'avoir une balise vide (Rooms = "") :
<?xml version="1.0" encoding="utf-8" ?>
- <SellerExtranet>
- Ref="2890">
<Type>Appartment</Type>
<Transaction>Vente</Transaction>
<City>ARNAC POMPADOUR</City>
<District />
<Surface>50.5</Surface>
149000.45
<Rooms />
<Currency>EUR</Currency>
</SellerExtranet>
Donc en gros je ne peux pas traiter de la même manière...
En tout cas merci du temps que tu me consacre, je suis encore en train de faire des essais de mon côté... Si je trouve la solution je vous fait signe...
cs_Spotty
Messages postés4Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention11 février 2009 11 févr. 2009 à 16:18
Bon ben finalement je retire tout ce que j'ai dis jusque là...
Sharpmao, ta solution fonctionne parfaitement. En fait j'avais des gros problème avec le namespace et donc je pensais pourvoir le supprimer mais en fait nom, il faut faire exactement ce qu'il y a de mentionner dans ton message et cela fonctionne.