Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XSD to Delphi (https://www.delphipraxis.net/207493-xsd-delphi.html)

Incocnito 29. Mär 2021 17:34

XSD to Delphi
 
Hi Zusammen,

es gibt ja in Delphi den integrierten Xsd-To-Delphi-Unit-Wizard, der ja bekanntermaßen bei Namespaces schon teilweise
Mist produziert. Daher mal eine Frage: Gibt es ein Tool / Webseite / whatever, mit dem ich ein Paket mit XSD-Dateien
in Delphi-Units verwandeln kann, wobei die Abhängigkeiten erhalten bleiben.
Bisherige Tools konnten bestenfalls eine XSD-Datei umwandeln und haben dann alle benötigten Infos aus den jeweiligen anderen
Dateien in die erzeugte Unit reinkopiert. Das ist zwar witzig, wenn man nur eine Hauptdatei hat und ein paar Basisdaten,
die er dann halt einfach mit rein packt, aber wenn ich 20 Basis-XSDs habe von der 10 Nutz-XSDs erben wird es lächerlich.

Falls sich jemand ein Bild machen will:
http://hl7.org/fhir/directory.html
stellt oben für die Version 4.0.1 beispielsweise einen Download bereit, welcher die ganzen XSDs enthalten.
Am Ende brauche ich diese als Delphi-Units.
Da wir das dann in regelmäßigen Abständen versioniert aktuell bleiben müssen wäre es sinnvoll,
wenn man den Units ein PostFix mitgeben könnte. "MedicationDispence_4_0_1.pas" beispielsweise.

Danke schonmal für die Zeit.

Liebe Grüße
Incocnito

WiPhi 29. Mär 2021 19:46

AW: XSD to Delphi
 
Da Embarcadero sich für dieses Problem nicht interssiert und schon mehrere Anfragen diesbezüglich ins Leere liefen (s. https://quality.embarcadero.com/browse/RSP-18172), haben sich die die Leute von X² eine eigene Lösung gestrickt und diese als Opensource zur Verfügung gestellt:

https://github.com/MvRens/x2xmldatabinding

Vielleicht ist dir damit geholfen. Wir setzen das Tool schon erfolgreich ein, vielleicht passt es auch für deinen Anwendungsfall. Wenn nicht, Quellen laden, verbessern, Pull-Request stellen :-D

Incocnito 30. Mär 2021 10:18

AW: XSD to Delphi
 
Die können dieses Projekt leider auch nicht konvertieren ... Stack overflow (nicht die Seite, sondern der Fehlertyp ;-) )
Mein Versuch das selbt zu beheben war nicht so erfolgreich.
Ich habe zwar den stack overflow weg bekommen, aber dann kam es zu einem Speicherüberlauf.
Da wusste ich auch nicht mehr weiter und habe erstmal ein Ticket in dem Projekt erstellt.
Vielleicht schaut da bei denen einer drauf und sagt "aso ja das geht auch nicht,
dann muss ich ja nur ... zack läuft wieder" 😅
... Hoffentlich.

LG Incocnito

Incocnito 30. Mär 2021 15:28

AW: XSD to Delphi
 
Kurz zur Info:
Speicher war auf. Kollege mit seinem Gaming PC hat das durch bekommen.
Schon echt Krank, wenn dann so 150 Dateien erzeugt werden und das mal eben 23 GByte frisst.

LG Incocnito

WiPhi 30. Mär 2021 16:35

AW: XSD to Delphi
 
Zitat:

Zitat von Incocnito (Beitrag 1486351)
Kurz zur Info:
Speicher war auf. Kollege mit seinem Gaming PC hat das durch bekommen.
Schon echt Krank, wenn dann so 150 Dateien erzeugt werden und das mal eben 23 GByte frisst.

LG Incocnito

Kannst du davon ausgehen, dass der Databinding Assi in Delphi das dann erst recht nicht schafft :-D Da scheinen dann schon sehr viele Abhängigkeiten zu existieren.

Kannst du mal nur die relevanten XSDs an das Ticket ran hängen? Unter dem Link finden sich Außenstehende nicht zurecht.

Incocnito 31. Mär 2021 08:35

AW: XSD to Delphi
 
Zitat:

Zitat von WiPhi (Beitrag 1486353)
...
Kannst du davon ausgehen, dass der Databinding Assi in Delphi das dann erst recht nicht schafft :-D Da scheinen dann schon sehr viele Abhängigkeiten zu existieren....

Das ist wohl so. 🙈

Zitat:

Zitat von WiPhi (Beitrag 1486353)
Kannst du mal nur die relevanten XSDs an das Ticket ran hängen? Unter dem Link finden sich Außenstehende nicht zurecht.

Das ist das Problem ... es sind 150 XSDs voneinander abhängig.
Die erzeugten PAS-Dateien haben sogar das Problem, dass es zyklische Abhängigkeiten gibt.
Also war der Plan alles in eine Datei zu packen.
Das geht aber auch nicht, da sich die Namen wiederholen (ich rate mal auf Groß- / Kleinschreibung).
Auch mit viel gefummel bekomme ich das nicht korrigiert.
Und auseinander nehmen, so dass man nur "für einen Test relevante Dateien hat mit möglichst wenig Inhalt um den Fehler zu repoduzieren"
ist eine undankbare Aufgabe, von der ich nicht einmal sicher bin, dass ich das jemals fertig bekomme.
Und arbeiten ohne Ergebnis ... dann kann ich mir auch gleich die Kündigung abholen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf