Et en plus Visa n'est même pas foutu de faire de l'XML correcte:
http://www.sanin.org/xmlsec/faq.html#section_3_4
(Je le sais pour avoir bossé avec des protocoles de signature crypto Visa pour le paiement.)
Visa sait très bien que son XML est incorrecte (tout le monde lui a dit), mais a refusé de corriger pendant des années. Conséquence ? Tout le monde est obligé d'utiliser un hack des librairies XML pour réussir à les lire (Il y a un putain de flag: XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK. Le nom est assez explicite, non ?)
LE MONDE ENTIER a dû s'adapter parce que Visa refuse de faire de l'XML valide. Doh.