Je travaille avec des fichiers xml contenant jusqu'à 10000 événements, chacun avec environ 30 lignes. Donc chaque fichier xml pourrait avoir 300 000 lignes. Je veux intégrer la validation xml dans mon processus de pré-traitement et je me demandais quelles sont les options de validation XML les plus rapides disponibles sur une plate-forme Linux. Pour commencer, j'analysé xmllint comme validateur et a constaté que les 10000 fichiers d'événements ont jusqu'à 1 sec (avec la première prenant 5 secondes énorme):Quel est le validateur xml le plus rapide pour la plate-forme Linux?
bash$ for file in `ls xml*xml`; do echo "checking $file of event length `grep '<event ' $file | wc -l`"; time xmllint --noout $file; result=`echo $?`; if [[ "$result" == "0" ]]; then echo "$file : valid"; else echo "$file : invalid returned $result"; fi; done
checking xmlEventLog_2010-03-23T06:31:49_PFS_1_2.xml of event length 810
real 0m0.251s
user 0m0.036s
sys 0m0.020s
xmlEventLog_2010-03-23T06:31:49_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T06:42:36_PFS_1_1.xml of event length 10001
real 0m5.363s
user 0m0.564s
sys 0m0.292s
xmlEventLog_2010-03-23T06:42:36_PFS_1_1.xml : valid
checking xmlEventLog_2010-03-23T07:27:36_PFS_1_2.xml of event length 10000
real 0m1.303s
user 0m0.732s
sys 0m0.232s
xmlEventLog_2010-03-23T07:27:36_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T07:54:42_PFW_1_1.xml of event length 990
real 0m0.098s
user 0m0.072s
sys 0m0.024s
xmlEventLog_2010-03-23T07:54:42_PFW_1_1.xml : valid
checking xmlEventLog_2010-03-23T08:10:32_PFS_1_2.xml of event length 10000
real 0m0.971s
user 0m0.712s
sys 0m0.240s
xmlEventLog_2010-03-23T08:10:32_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T08:56:57_PFS_1_2.xml of event length 10000
real 0m1.252s
user 0m0.724s
sys 0m0.184s
xmlEventLog_2010-03-23T08:56:57_PFS_1_2.xml : valid
checking xmlEventLog_2010-03-23T09:26:10_PFS_1_2.xml of event length 10000
real 0m0.920s
user 0m0.644s
sys 0m0.260s
xmlEventLog_2010-03-23T09:26:10_PFS_1_2.xml : valid
Quelqu'un at-il plus rapide validateurs xml que je pourrais utiliser pour y parvenir?
A
Vous cherchez réellement à valider le XML (comme, vérifier qu'il est conforme à une DTD) ou tout simplement vérifier qu'il est bien formé? De la ligne de commande, il semble que vous faites le dernier. Si vous cherchez quelque chose de plus rapide que libxml2, jetez un oeil à AsmXml (http://tibleiz.net/asm-xml/index.html) ou RapidXml (http://rapidxml.sourceforge.net/). – Dmitri
Astuce bonus: Bash 'for ... in' prend les globs de fichiers (donc pas besoin d'exécuter' ls'): 'pour le fichier dans xml * xml' fonctionne très bien. – Dmitri
juste à la recherche de vraiment bien formé. Merci pour l'astuce sur les globs de fichiers et je vais regarder asmxml et rapidxml. thx – amadain