Bonjour,


soit le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
XmlSchemaSet schemaSet = new XmlSchemaSet();
 
 schemaSet.Add("urn:oasis:names:tc:emergency:edxl:ciq:1.0:xal", "edxl_xAL.xsd");
soit la fonction Validate qui est chargée de valider que le paramètre fluxXML respecte bien le format du fichier edxl_xAL.xsd
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
 
string affairePfau = contentXml.EmbeddedXMLContent.Any.InnerXml;
 
Validate(affairePfau, schemaSet);
 
 
 private void Validate(string fluxXML, XmlSchemaSet schemaSet)
        {
            try
            {
                Console.WriteLine();
                Console.WriteLine("\r\nValidation du fichier XML {0}...", fluxXML.ToString());
 
                XmlSchema compiledSchema = null;
 
                foreach (XmlSchema schema in schemaSet.Schemas())
                {
                    compiledSchema = schema;
                }
 
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.Schemas.Add(compiledSchema);
                settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
                settings.ValidationType = ValidationType.Schema;
 
                using (var sr = new StringReader(fluxXML))
                {
                    //Create the schema validating reader.
                    XmlReader vreader = XmlReader.Create(sr, settings);
 
                    while (vreader.Read()) { }
 
                    //Close the reader.
                    vreader.Close();
                    Console.WriteLine("Le fichier correspond bien au XSD");
                }
            }
            catch (Exception ex)
            {
                _logger.Debug(ex.Message + ex.StackTrace);
            }
        }
Au niveau de l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 using (var sr = new StringReader(fluxXML))
Je reçois une erreur

Le type 'urn:oasis:names:tc:emergency:edxl:ciq:1.0:ct:String' n'est pas déclaré.
Et je ne vois pas comment recuperer le chemin relatif vers le fichier edxl_xAL.xsd malgré tous mes essais
(en utilisant string fileName = "edxl_xAL.xsd"

Je vous remercie beaucoup de bien vouloir m'aider à récupérer le chemin relatif vers ce fichier car je tourne en rond ...

Bien cordialement.

new_wave