Skip to main content

XML-Pipeline

Einleitung

XML-Dateien in SQUEEZE mit einer anderen techischen Pipeline verarbeitet als PDFs oder einzelne Bilder. Das liegt daran, dass nicht alle SchritteIn der Standard-XML-Pipeline wievon z. B. Texterkennung sinnvoll anwendbar sind.

StattdessenSqueeze werden XML-DateienDokumente indurch speziell angepasste Verarbeitungsstufen geführt, um den hierunterschiedlichen erklärtenAnforderungen Schrittender verarbeitet.Datenextraktion und Dokumentenkategorisierung gerecht zu werden. Dieser Abschnitt beschreibt die verarbeiteten Schritte und die Unterschiede zwischen der bisherigen Pipeline und der neuen Pipeline, die ab Version X.X.X auch benutzerdefinierte XML-Strukturen unterstützt.

 

Schritt Bisherige Pipeline Neue Pipeline (ab Version X.X.X)
InitStep - Hochgeladene XML-Dateien werden in ein internes Standard-XML-Format (intermediate.xml) überführt. Eine PDF wird aus der intermediate.xml erzeugt. - Prüfung, ob das Dokument XRechnung (CII, UBL) oder ZUGFeRD entspricht. Transformation und Erstellung eines Zwischenformats. Das Zwischenformat dient als Basis für spezifische Schema-Extraktion und PDF-Erstellung. Benutzerdefinierte XMLs: Prüfung auf Mapping.
BarcodeExtraction - Viewer-Bilder auf Basis der PDF werden erstellt. Dieser Schritt wird für XML-Dateien übersprungen. Unverändert: Dieser Schritt wird für XML-Dateien weiterhin übersprungen.
Ocr - PDF-Dateien mit eingebetteten XML werden normal verarbeitet, um ein OCR-Ergebnis zu erstellen. Dieser Schritt wird für reine XML-Dateien übersprungen. Unverändert: Dieser Schritt wird für reine XML-Dateien weiterhin übersprungen.
Classification - Die Klassifizierung von XML-Dokumenten ist derzeit nicht möglich. Eine Exception wird geworfen, wenn der betroffene Code aufgerufen wird. - Klassifikation durch Identifizieren des Mappings. Bei gefundenem Mapping: Informationen zur Dokumentenklasse werden genutzt, um die Klassifikation des Dokuments zu gestalten.
Extraction - Übliche Extraktionsmechanismen werden ausgeführt oder übersprungen durch die Stapelklasseneigenschaft: SkipXmlExtraction. intermediate.xml wird genutzt, um Kreditor und Mandant der XML zu ermitteln. Die eigentliche XML-Extraktion basiert auf der intermediate.xml. - Extraktion basiert auf dem Mapping, nicht auf einem statischen Konstrukt. Änderungen an einem Mapping in der Administration wirken sich direkt aus. Bei ZUGFeRD oder XRechnung: Nutzung der intermediate.xml und festes System-Mapping, das nicht bearbeitet oder gelöscht werden kann.

Extraktion von XMLs

> TODO

Rendering von XMLs

> TODO

TODO: Dokumentieren, wie die XML-Verarbeitung allgemein geschieht

TODO: Abgrenzung zu ZUGFeRD? Gibt da schon unterschiede im Core.

TODO: Wie spielt dieses Feature mit Mail-Importen zusammen? Was gibt es zu beachten?

TODO: Die Klassifizierung von XML ist aktuell nicht möglich. Da wird sogar eine Exception geworfen, falls der betroffene Code aufgerufen wird. Zum einen fraglich ob wir das mal verbessern, zum anderen sollte das vermutlich besser dokumentiert sein.

Testcases:
- XML ohne Dokumentenklasse hochladen
- ZUGFeRD ohne Dokumentenklasse hochladen

TODO: In der Extraktion werden mit executeXRechnungInvoiceSolution Invoice-Spezifische Dinge erledigt, Lieferant und Kreditor zu ermitteln.

Das ist keine saubere Trennung von Core und Solution.