Les messages d’erreurs d’epubcheck lors de la validation epub

Dans un précédent billet, nous avons présenté l’outil de validation des fichiers epub, epubcheck. Bien souvent, le fichier journal créé lors de la validation affichera des erreurs que Sigil n’a pas repérées. En voici quelques-unes, ainsi que les solutions pour corriger le problème.

epub length of the first filename in archive must be 8 but was 22

Pour répondre aux spécifications d’Apple, il est nécessaire, lorsqu’on embarque des polices, d’ajouter un fichier xml dans le squelette du fichier epub. Un fichier epub n’est rien d’autre qu’une archive compressée disposant de divers répertoires selon l’arborescence suivante :

Structure fichier epub

Structure fichier epub

Après l’ajout de ce fichier com.apple.ibooks.display-options.xml dans le répertoire META-INF, le message d’erreur suivant peut se retrouver dans le fichier journal lors de la validation epubchek : « ERROR: test.epub: epub length of the first filename in archive must be 8 but was 22 »

Solution : Dézipper l’ensemble. Puis zipper le fichier mimetype seul (sous Windows, Clic droit > Envoyer vers > Dossier compressé) et lui donner un nom, par exemple book.zip (original !). Glisser-déposer à présent les deux dossiers META-INF (ce dernier contenant le fichier d’Apple) et OEBPS dans book.zip (vous aurez besoin de WinRar ou WinZip, 7z ne fonctionne pas). Changer l’extension « .zip » en « .epub ». Repasser par la validation epubcheck.

element « metadata » incomplete; missing required elements « dc:language » and « dc:title »

L’erreur se produit car le fichier content.opf, qui recense les éléments contenus dans l’arborescence epub (images, styles, fichiers html, etc.), doit comporter des champs obligatoires, comme le titre et le langage de l’ebook. Solution : éditer le fichier de métadonnées dans Sigil et y rajouter les éléments manquants ; ou éditer le fichier content.opf dans un éditeur de texte et renseigner les champs comme suit : <dc:title>Titre de mon livre</dc:title> <dc:language>fr</dc:language>

The « id » attribute does not have a unique value!

Cette erreur, tout comme la précédente, est détectée par Sigil. Elle signifie que l’identifiant servant de cible à un lien interne de type <href = »chemin#identifiant est employé au moins deux fois. Solution : Il suffit de rechercher l’identifiant en question et de lui affecter une autre valeur en n’oubliant pas de mettre à jour le lien, sous peine de générer une nouvelle erreur, qui est la suivante :

fragment identifier is not defined in OEBPS/Text/…

Ce problème, qui n’est pas détecté par Sigil, provient d’un lien cassé. Un lien pointe vers un signet qui n’est pas défini dans le manuscrit. Le message ci-dessous indique que le lien se trouvant dans le fichier intro, à la ligne 9, ne trouve pas le signet toto sur la page debut : ERROR: C:/Users/eForge/epub.epub/OEBPS/Text/intro.xhtml(9,142): ‘toto‘: fragment identifier is not defined in ‘OEBPS/Text/debut.xhtml’ Check finished with warnings or errors Solution : Relinker (rééditer le lien) en affectant un identifiant à la cible du lien.

remote resource reference not allowed; resource must be placed in the OCF

Le message signifie que le fichier epub fait appel à un élément extérieur à sa structure qui ne se retrouve pas dans l’espèce d’inventaire que constitue le fichier content.opf. Solution : Intégrer l’élément (souvent une image) au fichier epub.

required elements missing, bad value for attribute « xxx »

Les sources de cette erreur sont multiples et décelables avec Sigil. Elle se rapporte aux attributs obligatoires lors de l’utilisation de certaines balises, par exemple : – la balise body est obligatoire ; – img a besoin des attributs alt ou src ; – les identifiants de type id ne peuvent pas commencer par des chiffres, ni contenir des caractères accentués ou des espaces. Solution : Il est conseillé de vérifier la syntaxe des pages HTML de l’epub avec le Markup Validation Service du W3C, un outil gratuit disponible en ligne.

assertion failed: different playOrder values … that refer to same target, playOrder sequence has gaps

Ce problème se présente lorsque la table de navigation a été modifiée, par exemple lorsqu’on souhaite préparer un extrait d’un ebook et que l’on édite manuellement le fichier toc.ncx.

Solution : Vérifier qu’il n’y a pas de doublons dans le fichier toc.ncx ; vérifier la cohérence de l’ordre séquentiel des balises <navpoint>. À dire vrai, il est souvent plus rapide de regénérer une table de navigation que de résoudre ce genre d’erreurs. Nous n’avons évoqué ici que les types d’erreurs les plus fréquents. N’hésitez pas à nous aider à en dresser une liste plus complète !

À bientôt.

4 réponses à “Les messages d’erreurs d’epubcheck lors de la validation epub

  1. Ping : Quelques outils de fabrication d’un epub | eForge

  2. Ping : L’outil de validation des fichiers epub : epubcheck | eForge

  3. daniel briand

    Je ne comprends pas ces erreurs. I dont understand the meaning of theses errors. Can you help please.

    ERROR index_split_000.html 2 64 Error while parsing file ‘value of attribute « lang » is invalid; must be an RFC 3066 language identifier’
    ERROR index_split_002.html 16 55 Fragment identifier is not defined.

    Répondre
    1. eForge Auteur de l’article

      Il y a un problème dans vos deux fichiers: dans index_split_000.html l’attribut de langage semble poser problème car il est absent de la norme RFC 3066 qui répertorie les différentes abréviations de langues utilisées (http://xml.coverpages.org/TexinUsingLangID.html)
      Pour le fichier index_split_002.html,le souci vient d’un lien interne qui n’est pas résolu car l’identifiant (l’ancre) est absente ou n’a pas le bon identifiant dans la cible. Si vous ne parvenez pas à résoudre le problème, uploadez le fichier sur notre page contact avec un email valide et je vous le renverrai.

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

20 − quatre =