Voici une méthode permettant d'effectuer la validation d'un fichier XML à l'aide d'un schéma XSD distant (Url) ou local, sans avoir à ajouter la description XSD dans la liste des éléments du projet.

La méthode décrite ici ne me convenait pas, car je voulais que le code soit le plus dynamique possible et non dépendant d'éléments intégrés dans le projet :
http://doc.pcsoft.fr/fr-FR/?xmldocumentvalide-fonction

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
 
LOCAL
	sXMLDoc est un xmlDocument
	//Chemin complet du fichier XML
	sFiXML est une chaîne
	//Url du fichier XSD
	sUrlXSD est une chaîne
	//Chemin complet du fichier XSD
	sFiXSD est une chaîne
	//Chaine contenant le code XSD
	sXSD est une chaîne
 
sFiXML =  ComplèteRep(fRepExe())+"MonFichier.xml"	
 
//Dans mon cas, je vais chercher le fichier XSD à une Url pour le créer en local.
sUrlXSD = "http://Localhost/Description.xsd"
sFiXSD = ComplèteRep(fRepExe())+"Description.xsd"	
 
SI HTTPRequête(sUrlXSD) ALORS
	sXSD = HTTPDonneRésultat()
	SI PAS fSauveTexte(sFiXSD,sXSD) ALORS
		Erreur(ErreurInfo(errMessage))
		RENVOYER Faux
	FIN
SINON
	Erreur(ErreurInfo(errMessage))
	RENVOYER Faux
FIN
 
sXMLDoc = XMLOuvre(sFiXML,depuisFichier)
SI WL.ErreurDétectée ALORS
	Erreur(ErreurInfo(errComplet))
	RENVOYER Faux
FIN
 
SI PAS XMLDocumentValide(sXMLDoc,sFiXSD) ALORS
	Erreur(ErreurInfo(errMessage))
	RENVOYER Faux
SINON
	Info("Le fichier XML"+RC+"'"+sFiXML+"'"+RC+"est valide !") 	
FIN
Et voilà !

Bonne prog