write_checked_invoice.json
Die JSON-Datei des Beispiels „Eine Rechnung, die fragt, bevor sie fordert“. Die Bibliothek liest die Rechnung, wie sie ist, und nennt Klausel für Klausel alles, was zwischen ihr und Factur-X steht. Zwei Dinge stehen im Weg, dann eines, dann keines — und erst dann wird eine Datei geschrieben.
Diese Datei ist eine Anfrage: Eine Anwendung sendet sie über das Netz an den Server, der das PDF erzeugt und zurücksendet. Sie erzeugt dieselbe Seite wie die Rust- und die Python-Fassung dieses Beispiels. Eine Anfrage nennt jede Datei, die sie verwendet, nie ihren Inhalt; der Aufruf trägt die Anfrage und die Dateien zusammen. Eine Schrift, die der Server bereits vorhält, etwa DejaVuSans, wird ohne Anhang genannt. Senden Sie die Anfrage an die Adresse, die die API-Seite angibt.
Diese Anfrage nennt Dateien, die sie nicht trägt: invoice_xml. Jede davon reist neben der Anfrage, im selben Aufruf, als mitgelieferter Teil, genau so benannt, wie die Anfrage sie hier nennt — die Beschreibung sagt, welcher Name welche Rolle spielt, Sie benennen Ihre Dateien also, wie Sie möchten. Eine Anfrage, die eine Datei nennt, von der der Aufruf nichts trägt, wird abgelehnt.
Wofür dieses Beispiel da ist
Jedes andere Dokument hier erreicht eine Norm, indem es sie erklärt: Die Datei sagt, sie sei Factur-X, und wird als Factur-X geschrieben. Erklären ist leicht; richtig sein nicht. Ein Dokument kann eine Rechnung nennen, die es nie angehängt hat, einen Detaillierungsgrad beanspruchen, dem das XML darin nicht folgt, und in einem Container stecken, den die Norm nicht erlaubt — und mit allen dreien hinausgehen, um von der Buchhaltung, an die es geschickt wurde, abgelehnt zurückzukommen.
Was dieses Beispiel zeigt
- Alle Befunde auf einmal, jeder mit der Klausel, aus der er stammt, und der Datei, um die es geht.
- Zwei im Weg in der ursprünglichen Fassung, einer, sobald die Datei getragen und die Archivierungsnorm beansprucht wird, keiner, sobald der beanspruchte Detaillierungsgrad der ist, dem das XML folgt.
- Das Dokument wird gemessen, bevor ein Byte davon hinausgeht, und abgelehnt statt geschrieben, solange etwas im Weg steht.