Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XSD Problème

6 réponses
Avatar
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

6 réponses

Avatar
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
Avatar
Pierre
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" a écrit dans le message de news:

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



Avatar
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)
Avatar
Pierre
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" a écrit dans le message de news:

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)


Avatar
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)
Avatar
Pierre
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" a écrit dans le message de news:

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)