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.