Aller au contenu
Klarfile

KF-XML-DOCTYPE : Le XML déclare une DTD, et nous la refusons

Ce code apparaît quand une facture électronique est vérifiée. Voici ce qu'il signifie, pourquoi il tombe, et ce qu'il faut changer dans le fichier.

Pourquoi ce code apparaît

Le fichier joint contient une déclaration <!DOCTYPE>. Nous ne lisons aucune DTD venue d'un tiers : des entités qui se rappellent l'une l'autre peuvent faire exploser la mémoire du navigateur, et une entité externe demande d'aller chercher un fichier ailleurs. Aucune facture Factur-X légitime n'en porte.

Comment corriger

Produisez le XML sans déclaration de type de document. Si votre outil en ajoute une, c'est un réglage de sérialisation, pas une exigence du format.

À quoi ça ressemble dans le fichier

Ces deux extraits ne sont pas écrits à la main : ils sont rejoués à chaque livraison contre notre vérificateur, sur une facture complète. Le premier fait tomber ce code, le second non.

Ce qui déclenche le code :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rsm:CrossIndustryInvoice SYSTEM "facture.dtd">

Ce qu'il faut écrire à la place :

<?xml version="1.0" encoding="UTF-8"?>

Où ça se joue

Ce contrôle est le nôtre, pas un code de la norme : nous ne recouvrons pas assez de l'EN 16931 pour emprunter ses numéros, et un code officiel mal attribué enverrait corriger le mauvais champ. Il porte sur XML.

Vérifier ma facture Tous les codes de rejet