AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XRechnung-Visualisierung mit Kosit XSLT
Thema durchsuchen
Ansicht
Themen-Optionen

XRechnung-Visualisierung mit Kosit XSLT

Offene Frage von "jan303"
Ein Thema von omp · begonnen am 10. Sep 2024 · letzter Beitrag vom 14. Okt 2024
Antwort Antwort
omp

Registriert seit: 7. Apr 2012
62 Beiträge
 
#1

XRechnung-Visualisierung mit Kosit XSLT

  Alt 10. Sep 2024, 09:56
Hallo, ich möchte XRechnungen menschenlesbar darstellen.
Die vermutlich sauberste Lösung dürfte die Integration von
https://github.com/itplr-kosit/xrechnung-visualization/
in das Delphi-Programm sein.
Die Rechnungen (XML-Dateien) werden dabei mit XSL transformiert.

Grundsätzlich funktioniert so etwas in Delphi, beispielsweise:
Code:
procedure TForm18.Button1Click(Sender: TObject);
var
  xmlDoc, xslStyle: IXMLDOMDocument2;
  html: string;
begin
  xmlDoc := CoDOMDocument.Create;
  xmlDoc.Load(MyFileName);
  xmlDoc.setProperty('AllowXsltScript', true);
  xmlDoc.SetProperty('SelectionLanguage', 'XPath');
  xslStyle := CoDOMDocument.Create;
  xslStyle.Load(MyFileName2);
  html := xmlDoc.TransformNode(xslStyle);
  TFile.WriteAllText(OutFile, html);
end;
Die XML-Schnittstelle hat aber Probleme mit den import- und include-Funktionen im XSLT.
Ein Ansatz war jetzt, die verschiedenen .xsl-Dateien aus dem Kosit-Repo in eine Datei zusammenzufassen. Das ist aber ziemlich schwer bis unmöglich, wenn man mit XSLT keine Erfahrung hat.

Hat sich schon jemand damit beschäftigt oder sogar eine Lösung parat.

Gruß und besten Dank, Harald
Harald
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
269 Beiträge
 
Delphi 12 Athens
 
#2

AW: XRechnung-Visualisierung mit Kosit XSLT

  Alt 18. Sep 2024, 14:47
Ich schlage mich gerade mit einem eng verwandten Problem herum, da gerade die ZUGfERD 2.3 rausgekommen ist, der auch eine XSLT-Datei zum Visualisieren von XRechnungen (natürlich die ZUGfERD-äquivalente Variante) als HTML beiliegt.

Verschiedene Methoden führen immer zum selben Fehler. ('"document-uri" ist keine gültige XSLT- oder XPath-Funktion').
Da ich mir nicht vorstellen kann, dass die fehlerhafte XSLT-Dateien rausgeben, muss das Problem eigentlich bei Delphi liegen.

Ich habe jetzt nicht gerade viel Erfahrung mit XSLT-Transformationen in Delphi. Ging das für gewöhnlich oder ist das auch eine der lange nicht gepflegten Delphi-Funktionen, bei denen man ein Huhn opfern und heidnische Götter anrufen muss, dass sie hoffentlich noch funktionieren?
  Mit Zitat antworten Zitat
omp

Registriert seit: 7. Apr 2012
62 Beiträge
 
#3

AW: XRechnung-Visualisierung mit Kosit XSLT

  Alt 18. Sep 2024, 14:56
Delphi nutzt dafür die Windows-API, Probleme vermute ich also eher bei Microsoft.
IXMLDocument und IXMLDOMDocument2 kommen, soweit ich das verstanden habe, nicht mit relativen Pfaden und import/insert-Anweisungen klar.

Ich habe das erst einmal zurückgestellt, weil es mich zu lange aufgehalten hatte. Ich hoffe noch, dass jemand den entscheidenen Hinweis für uns hat.

Gruß, Harald
Harald
  Mit Zitat antworten Zitat
jan303

Registriert seit: 3. Apr 2013
1 Beiträge
 
#4

AW: XRechnung-Visualisierung mit Kosit XSLT

  Alt 14. Okt 2024, 16:35
Hallo,
ich bin auch gerade an dem Thema dran. Meines Erachtens nach liegt das Problem mit der XSLT-Transformation über die Kosit-Lösung daran, dass das XSLT in Version 2.0 vorliegt. Die XML-Implementierung im Delphi, die die Funktion TransferNode unterstützt, nutzt als DOMVendor MSXML und dieser kann nur XSLT 1.0.
Es gibt dabei mehrere Probleme:
- die XSLT-Dateien von Kosit (zum Beispiel cii-xr.xsl) importieren weitere xsl. Das konnte ich beheben, in dem ich das alles in eine Datei zusammengeführt habe.
- diverse Funktionen in den Kosit Dateien werden nicht in XSLT 1.0 unterstützt: replace, match, doc-available, ...

Es wird wohl nur durch ein äquivalentes Umschreiben der XSLT-Dateien in Ver. 1.0 oder über eine Delphi-Library, die Ver.2.0 beherrscht, gehen.

Für Rechnungen, die im CII-Format vorliegen, konnte ich aber aus den Schemadateien eine Delphi-Unit generieren. Allerdings nicht über die im RAD-Studio integrierte Funktion (damit war teilweise kein Zugriff auf Nodes möglich), sondern hiermit: https://github.com/MvRens/x2xmldatabinding
Für UBL hat das aber auch nicht funktioniert.

Jan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz