Bonjour à tous,

Comme vous le savez, l'ordre des attributs n'a aucune importance dans un élément. Les deux éléments suivant sont tous les deux valides avec la même grammaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<Tax rate="7.0" currency="USD">27.57</Tax>
<Tax currency="USD" rate="7.0">27.57</Tax>
Dans mon cas, l'ordre des attributs est primordial. Après que mon fichier XML soit généré, j'applique un mécanisme de signature pour signer mon document afin d'éviter qu'une personne le modifie.

La version précédente de mon application utilisait DOM level1 avec JaxB. Dans la nouvelle version, nous avons fait évolué le tout: DOM level 2, JaxB 2.1.6. Le problème, c'est qu'avant, DOM me générait ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Tax rate="7.0" currency="USD">27.57</Tax>
et que maintenant, il inverse les attributs (apparemment pour les mettre par ordre alphabétique - du moins pour ce que j'ai pu constater):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Tax currency="USD" rate="7.0">27.57</Tax>
Et bien entendu, la signature n'est pas la même pour les deux documents. Ce qui fait que mon application n'est plus capable de lire les fichiers xml créer par la version précédente. Elle me dit, à juste titre, que la signature n'est pas valide.

D'où ma question (finalement ), comment faire pour obliger DOM à utiliser les attributs dans un certain ordre, et pas d'après son bon vouloir?

Merci de m'avoir lu, et également pour vos réponses.