Zum Inhalt springen
Klarfile

KF-XML-DOCTYPE: Das XML deklariert eine DTD, und wir lehnen sie ab

Dieser Code erscheint bei der Prüfung einer elektronischen Rechnung. Hier steht, was er bedeutet, warum er ausgelöst wird und was in der Datei zu ändern ist.

Warum dieser Code erscheint

Die angehängte Datei enthält eine <!DOCTYPE>-Deklaration. Wir lesen keine DTD von Dritten: Entitäten, die einander aufrufen, können den Speicher des Browsers sprengen, und eine externe Entität verlangt, eine Datei anderswo zu holen. Keine legitime elektronische Rechnung trägt eine.

So beheben Sie es

Erzeugen Sie das XML ohne Dokumenttyp-Deklaration. Fügt Ihr Werkzeug eine hinzu, ist das eine Einstellung der Serialisierung, keine Anforderung des Formats.

Wie das in der Datei aussieht

Diese beiden Ausschnitte sind nicht von Hand geschrieben: sie werden bei jeder Auslieferung gegen unsere eigene Prüfung an einer vollständigen Rechnung erneut gespielt. Der erste löst diesen Code aus, der zweite nicht.

Was den Code auslöst:

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

Was stattdessen dort stehen muss:

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

Wo es passiert

Diese Prüfung ist unsere eigene, kein Code der Norm: wir decken die EN 16931 nicht weit genug ab, um ihre Nummern zu übernehmen, und ein falsch zugeordneter amtlicher Code würde zum falschen Feld schicken. Sie betrifft XML.

Meine Rechnung prüfen Alle Ablehnungscodes