XSD Problème

Le
Pierre
Bonjour,

Je dois valider un fichier XML par rapport à un XSD. Mon code est tout
simple:

XmlReaderSettings settings = new XmlReaderSettings();

settings.Schemas.Add(null, PathXSD);

settings.ValidationType = ValidationType.Schema;

settings.ValidationEventHandler += new
ValidationEventHandler(XmlValidationError);

XmlReader reader = XmlReader.Create(PathXML, settings);

using (reader)

{

while (reader.Read()) ;

}

catch error si erreur

Le problème que j'ai est le suivant. Dans mon schema, j'ai la contrainte
suivante
<xsd:element minOccurs="0" name="country" type="str1_3_Type" default="CH" />
Dont str1_3_Type est de type 1 string minimum, 3 maximum

Est bien, si j'ai <county></country> aucune erreur n'est détectée mais si
j'enlève default="CH" alors l'erreur est détectée.
C'est pas normal non ?? Comment faire pour l'erreur soit détrectée.


--
D'avance merci
Meilleures salutations
Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred
Le #12177691
Dans : news:,
Pierre disait :
Bonjour,



Bonjour,

Le problème que j'ai est le suivant. Dans mon schema, j'ai la
contrainte suivante
<xsd:element minOccurs="0" name="country" type="str1_3_Type"
default="CH" /> Dont str1_3_Type est de type 1 string minimum, 3
maximum
Est bien, si j'ai <county></country> aucune erreur n'est détectée
mais si j'enlève default="CH" alors l'erreur est détectée.
C'est pas normal non ?? Comment faire pour l'erreur soit détrectée.



Le comportement me paraît logique.
Et cette page semble le confirmer :
http://msdn2.microsoft.com/fr-fr/library/8d1es9ye(VS.80).aspx


--
Fred
Pierre
Le #12177681
Bonjour.

Merci du lien et de la réponse.

Le problème que j'ai est le suivant. Je génère un fichier XML en respectant
les règles du mieux que je peux du schéma XSD que j'ai à disposition. Une
fois le fichier XML généré, je veux le valider et si dans mon fichier XML,
je me retrouve avec l'élément <country></country> par ma faute, j'aurais
voulu que la validation m'informe que je n'ai pas un XML valide puisque la
valeur par défaut est "CH" si je n'ai rien. Et la, il ne me dit rien.

Et ensuite, je me fais relever les bretelles (que ne porte d'ailleurs pas)
car plus loin, ca bug.

N'y-a-t'il pas de solution si ce n'est de modifier le schéma XSD et
d'enlever la valeur par défaut CH pour la validation uniquement ???
--
D'avance merci
Meilleures salutations
Pierre
"Fred"
Dans : news:,
Pierre disait :
Bonjour,



Bonjour,

Le problème que j'ai est le suivant. Dans mon schema, j'ai la
contrainte suivante
<xsd:element minOccurs="0" name="country" type="str1_3_Type"
default="CH" /> Dont str1_3_Type est de type 1 string minimum, 3
maximum
Est bien, si j'ai <county></country> aucune erreur n'est détectée
mais si j'enlève default="CH" alors l'erreur est détectée.
C'est pas normal non ?? Comment faire pour l'erreur soit détrectée.



Le comportement me paraît logique.
Et cette page semble le confirmer :
http://msdn2.microsoft.com/fr-fr/library/8d1es9ye(VS.80).aspx


--
Fred



Fred
Le #12177671
Dans : news:,
Pierre écrivait :
Bonjour.



Bonjour,

N'y-a-t'il pas de solution si ce n'est de modifier le schéma XSD et
d'enlever la valeur par défaut CH pour la validation uniquement ???



Je pense que ton document est valide au regard de ce schéma.
Si cela pose un problème que l'élément soit vide lors de l'utilisation,
c'est que le document n'est pas utilisé conjointement avec le schéma ?
As-tu essayé de charger un XmlDocument avec un XmlReader qui fait une
validation ? (pour voir si l'élément initialement vide contient bien la
valeur par défaut après chargement et validation)


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Pierre
Le #12177661
Rebonjour Fred,

En validant avec XMLDocument, ca me met le CH et ca fonctionne parfaitement.
Merci beaucoup de ton aide.
PS : Je pense que l'erreur vient en fait du récepteur qui ne valide pas le
shéma à l'aide du XSD. C'est à lui de le faire non ?

Encore merci et bonne journée.

--
D'avance merci
Meilleures salutations
Pierre
"Fred"
Dans : news:,
Pierre écrivait :
Bonjour.



Bonjour,

N'y-a-t'il pas de solution si ce n'est de modifier le schéma XSD et
d'enlever la valeur par défaut CH pour la validation uniquement ???



Je pense que ton document est valide au regard de ce schéma.
Si cela pose un problème que l'élément soit vide lors de l'utilisation,
c'est que le document n'est pas utilisé conjointement avec le schéma ?
As-tu essayé de charger un XmlDocument avec un XmlReader qui fait une
validation ? (pour voir si l'élément initialement vide contient bien la
valeur par défaut après chargement et validation)


--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)


Fred
Le #12177651
Dans : news:eT$,
Pierre disait :
Rebonjour Fred,



Re,

En validant avec XMLDocument, ca me met le CH et ca fonctionne
parfaitement. Merci beaucoup de ton aide.
PS : Je pense que l'erreur vient en fait du récepteur qui ne valide
pas le shéma à l'aide du XSD. C'est à lui de le faire non ?



C'est comme cela que je vois les choses, oui.
Si le récepteur ne valide pas le XML avec le schéma, tu peux peut-être
enregistrer le XmlDocument que tu as obtenu (dans lequel les éléments
vides ont été remplis avec les valeurs par défaut) et fournir ce nouveau
fichier XML ?

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Pierre
Le #12177641
Oui, c'est ce que je fais maintenant, encore merci et à bientôt pour une
autre partie de code.

--
D'avance merci
Meilleures salutations
Pierre
"Fred"
Dans : news:eT$,
Pierre disait :
Rebonjour Fred,



Re,

En validant avec XMLDocument, ca me met le CH et ca fonctionne
parfaitement. Merci beaucoup de ton aide.
PS : Je pense que l'erreur vient en fait du récepteur qui ne valide
pas le shéma à l'aide du XSD. C'est à lui de le faire non ?



C'est comme cela que je vois les choses, oui.
Si le récepteur ne valide pas le XML avec le schéma, tu peux peut-être
enregistrer le XmlDocument que tu as obtenu (dans lequel les éléments
vides ont été remplis avec les valeurs par défaut) et fournir ce nouveau
fichier XML ?

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)


Publicité
Poster une réponse
Anonyme