Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Erreurs XML de fichiers ODF

Un document ODF qui contient un fichier mal formé en XML ne peut pas s’ouvrir en LibreOffice. J’ai eu plusieurs fois le cas avec OmegaT. J’ai examiné l’intérieur du fichier ODF et corrigé avec succès, à la main, dans content.xml des balises non fermées. (Cela montre au moins que c’est faisable.) J’ai pensé à un bug d’OmegaT, mais j’ai compris ensuite que c’est moi qui faisais des erreurs de balises en OmegaT, erreurs qui se propagent aux balises XML dans l’ODF. OmegaT marche très bien et propose en outre une commande de vérification des balises. On n’a donc aucune excuse pour ses propres erreurs.

Cela pourrait cependant être intéressant dans d’autres circonstances (en OmegaT aussi, si on a détruit le projet sans penser à vérifier le fichier cible). Il faut alors :

  1. Ouvrir le fichier défectueux (file.odt…) dans le gestionnaire d’archives.
  2. En extraire le fichier content.xml.
  3. Exécuter xmllint --noout content.xml 2> errors.
  4. Lire dans le fichier errors ainsi créé la première erreur et en copier un mot significatif.
  5. Ouvrir content.xml dans un éditeur de texte et rechercher ce mot.
  6. Examiner le déséquilibre de balises autour de ce mot (par exemple un <span> ouvert et pas fermé, ou l’inverse).
  7. Corriger l’erreur (par exemple fermer un <span> ouvert mais pas fermé, ou supprimer un </span> orphelin).
  8. Enregistrer content.xml.
  9. Exécuter de nouveau xmllint.
  10. Relire errors et corriger les autres erreurs. (Souvent la première erreur provoque des décalages qui apparaissent comme d’autres erreurs, mais celles-ci disparaissent lorsque la première est corrigée.)
  11. Quand il ne reste plus d’erreurs, remettre le content.xml dans l’archive.
  12. Refermer l’archive. Cela devrait donner un fichier ODF valide.
Dominique Meeùs . Date: 2011… 2016