[Contributions] Comment valider un XML avec un XSD ?
Bonjour à tous !
Dans le cadre des sources XML, nous souhaitons rassembler toutes les ressources permettant de valider un Document XML avec un XSD (XML Schema). Quelque soit la librairie, le programme ou le langage utilisé, si vous connaissez un moyen de le faire, pourriez-vous l'indiquer (de manière complète et minimale) afin que ce soit intégré aux sources XML ?
Merci d'avance,
Swoög
Topic à retenir : http://www.developpez.net/forums/sho...d.php?t=278956
Validation sous visual studio 2008
Bonjour,
Je débute avec les XSD et j'ai un petit problème pour valider mon document. J'ai cru comprendre que Visual Studio permet de valider un Xml au travers de son schéma simplement en faisant XML > Valider les données XML.
Mon problème .... je n'ai aucun bouton "Valider les données XML" dans mon menu "XML" .... :marteau:
J'utilise VS 2008 et je n'ai que 5 options dans le menu XML :
- Créer un schéma
- Afficher la sortie XSLT
- Débogage XSLT
- Annuler la sortie XSLT
------------------------
- Schémas...
Merci de votre aide
Juste merci pour la commande xmllint de libxml
Citation:
Envoyé par
RomainVALERI
Heu... *hum hum*
question : 28/03/2011, 11h54
réponse : 30/12/2011, 10h05
(pire : date initiale du thread : 26/06/2006, 18h11 :aie:)
Et sinon, la nécromancie, tu as commencé jeune ? :mouarf:
N'empêche, on est bien content de trouver des réponses à nos questions sans avoir à les reposer et les forums sont faits pour ça non ?
OK, je sors :D désolée de déterrer un vieux thread...
Merci quand même pour la réponse de Swoög car c'est ce que je cherchais ;)
Citation:
xmllint --noout "${XML}" --schema "${XSD}"
c'est avec libxml pour ceux qui se demande ^^
Valider un fichier XML avec un fichier XSD en ligne de commande sous Windows
Voici comment valider simplement un fichier XML avec un fichier XSD en ligne de commande, avec l'outil xmllint :
Tout d'abord, comme expliqué ici, http://flowingmotion.jojordan.org/20...nload-xmllint/
il faut télécharger les sources à cette adresse : ftp://ftp.zlatkovic.com/libxml/.
Les fichiers suivants sont nécessaires :
- libxml2, le parseur et processeur XML.
- libxslt, le processeur de transformation XSL and EXSL.
- xmlsec, le processeur XMLSec et XMLDSig.
- xsldbg, le débogueur XSL Transformations.
- openssl, l'utilitaire de cryptage.
- iconv, l'utilitaire d'encodage de caractères.
- zlib, l'utilitaire de compression.
Une fois les archives zip téléchargées, décompressez les dans un répertoire au choix (C:\xmllint par exemple).
Dans chaque répertoire obtenu, recherchez le sous répertoire bin, et copiez l'intégralité de son contenu dans C:\xmllint.
xmllint est installé !
Pour effectuer la validation d'un fichier "monFichier.xml" situé à la racine de c: avec un fichier "monFichier.xsd" situé a la racine de d:, vous pouvez simplement créer un fichier "test.bat" dans C:\xmllint contenant le texte suivant :
xmllint --schema d:\monFichier.xsd c:\monFichier.xml > d:\output.txt 2> d:\err.txt
pause
Double-cliquez sur ce fichier pour lancer l'opération.
Le résultat de la validation se trouvera dans le fichier d:\output.txt.
La liste des erreurs éventuelles se trouvera dans le fichier d:\err.txt.
Plus d'infos sur les options de ligne de commande de xmllint ici : http://xmlsoft.org/xmllint.html
Petit exemple vite fait en Windev :
Code:
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
|
LOCAL
sRepExe est une chaîne
sXmllint est une chaîne
sFiXsd est une chaîne
sFiXml est une chaîne
sFiErr est une chaîne
sCmd est une chaîne
sMessErreur est une chaîne
sRepExe = ComplèteRep(fRepExe())
sXmllint = sRepExe+"xmllint\xmllint.exe"
sFiXsd = sRepExe+"monFichier.xsd"
sFiXml = sRepExe+"monFichier.xml"
sFiErr = sRepExe+"Err.txt"
sCmd = sXmllint+" --schema "+sFiXsd+" "+sFiXml+" 2> "+sFiErr
fSauveTexte("xmllint.bat",sCmd)
SI PAS LanceAppli("xmllint.bat",exeIconise+exeInactif,exeBloquant) ALORS
Erreur(ErreurInfo(errComplet))
FIN
fSupprime("xmllint.bat")
SI fFichierExiste(sFiErr) ALORS
sMessErreur = fChargeTexte(sFiErr)
fSupprime(sFiErr)
Info(sMessErreur)
FIN |
Bonne prog :ccool: