[ASP][C#] Validation de fichier XML

vonbier Messages postés 17 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 20 mars 2013 - 25 nov. 2003 à 18:53
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 24 mai 2005 à 17:12
Salut,

j'ai crée un Web service qui reçoit en paramètre un fichier XML. La première chose que je voudrais qu'il fasse, c'est de checker si ce fichier est valide d'après un schéma.

Pour l'instant j'ai une fonction qui "devrait" valider par rapport à un DTD, mais qui foire pas mal.

Je voulais savoir si qqun aurait une fonction qui tourne bien pour valider l'xml soit à partir d'un DTD, soit à partir d'un XSD.

je vous remercie d'avance

Voilà quand même mon bou de code qq peu foireux.

private void Page_Load(object sender, System.EventArgs e)
{
//------------------------------------------------------------------
//fonction testant si un document xml est valide selon un schema DTD
//------------------------------------------------------------------

XmlTextReader r = new XmlTextReader                          ("C:\\Temp\\test.xml");
XmlValidatingReader v = new XmlValidatingReader(r); 

v.ValidationType = ValidationType.DTD; 

int line = 0;

while (v.Read()&& isValid == true)
{
v.ValidationEventHandler += new ValidationEventHandler(MyValidationEventHandler); 

line = line + 1;
}

// Check whether the document is valid or invalid.
if (isValid)
TextBox1.Text = "Document is valid";
else
TextBox1.Text = "Document is invalid, error at line:" + line.ToString(); 

v.Close();
}

public static void MyValidationEventHandler(object sender, ValidationEventArgs args) 
{
isValid = false;
} 

3 réponses

vonbier Messages postés 17 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 20 mars 2013
26 nov. 2003 à 08:37
ouais, j'ai finalement trouvé. Si vous avez également le même souci que moi, allez voir sous:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlvalidatingreaderclassvalidationtypetopic.asp
0
vonbier Messages postés 17 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 20 mars 2013
26 nov. 2003 à 10:40
La fonction marche bien, mais j'ai toujours un problème.

En fait ce que je fait c'est que j'enregistre un string XML dans un fichier, que j'ouvre ensuite pour le valider.

Lorsque je fais celà, il me marque l'erreur suivante:

Le fichier (filepath) ne peut pas être accéder, il est actuellement utilisé par un autre processus.

J'ai bien regardé et je ne sais pas ce qui foire. Pourtant après l'enregistrement de mon fichier, je le ferme (fichier.Close()).

Si qqun a déjà eu ce problème et qu'il peut me renseigner, ce serait sympa.
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
24 mai 2005 à 17:12
Si il te dit qu'il ais utiliser par un autre processus c'est quand t'as oublié de mettre v.Close(); et que tu essayes de le redemarrer une seconde fois donc c'est bizarre

v.Flush();

v.Close();

v.ValidationType = ValidationType.Auto;
0
Rejoignez-nous