Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Strukturierte XML-Datei aus drei Datasets erstellen (https://www.delphipraxis.net/180625-strukturierte-xml-datei-aus-drei-datasets-erstellen.html)

mfahs 3. Jun 2014 20:30

Datenbank: sql-server/xml • Version: - • Zugriff über: -

Strukturierte XML-Datei aus drei Datasets erstellen
 
Hallo!

Ich quäle mich zur Zeit mit der Umwandlung einer strukturierten Datenmenge in eine XML-Datei.
Zur Erklärung: Im Endeffekt benötige ich eine XML-Datei mit etwa diesem Aufbau (ist hier stark vereinfacht dargestellt)

Code:
<Beleg>
  <Belegnummer>
  <Belegdatum>
  <...>
  <Position>
     <Positionsnummer>
     <Artikelnummer>
     <...>
  </Position>
  <Position>
     <Positionsnummer>
     <Artikelnummer>
     <...>
  </Position>
  <Paket>
     <Paketnummer>
  </Paket>
  <Paket>
     <Paketnummer>
  </Paket>
</Beleg>
Man sieht es schnell: Es sollen die Daten von Belegen (Kopfdaten, Positionsdaten und Paketnummern) in eine XML-Datei geschrieben werden. Ich habe zu jeder Datenmenge (Belege, Positionen, Pakete) jeweils die passenden ClientDatasets, die ich aus dem SQL-Server füttere.

In der Vergangenheit hatte ich gute Erfahrungen mit dem XML-Mapper und dem späteren Einsatz des TXMLTransformationProviders gemacht - dabei ging es aber "nur" um das AUSLESEN von strukturierten XML-Dateien. Nun möchte ich eben eine solche Datei ERZEUGEN. Und das will mir partout nicht gelingen. :-(

Ich habe bereits drei weitere Clientdatasets erstellt, die mit dem XMLTransformationProvider verbunden sind. Ein Mapping-file habe ich auch erstellt und mit dem XMLTransformationProvider verbunden. Die drei Datasets füttere ich nun mit den Daten aus meiner Datenbank. Die Daten landen auch brav in den Datasets (habe ich mit einem Grid geprüft), aber ich bekomme es nicht hin, die Daten in die benötigte XML-Datei zu schreiben.

Bin ich völlig auf dem Holzweg? Oder fehlt mir nur der entscheidende Gedanke?
Hat jemand einen Tipp für mich? Ich bin etwas ratlos...

Viele Grüße,
Martin

Dejan Vu 4. Jun 2014 07:25

AW: Strukturierte XML-Datei aus drei Datasets erstellen
 
Erstelle dir ein Schema oder eine XML-Beispieldatei und lasse Dir mit Delphi die passenden Mapperklassen erstellen. Dann füllst Du die Instanzen mit deinen Daten und speicherst die Objekte als XML. Das geht supereinfach und Du kommst -außer zum Erstellen der Vorlage (XSD oder XML)- mit XML nicht mehr in Berührung. Die Daten sind wohldefiniert und syntaktisch korrekt.

Idealerweise solltest Du von dem, der die XML-Datei haben will, ein XSD bekommen, denn der muss die ja selbst irgendwie definiert haben.

Alternative: Lass Dir vom SQL-Server direkt XML ausgeben.

Sherlock 4. Jun 2014 07:33

AW: Strukturierte XML-Datei aus drei Datasets erstellen
 
Das finde ich interessant. Wie/Wo kann ich Delphi dazu bringen anhand einer XSD etwas brauchbares zu erzeugen?
Ich hatte mal diese Anforderung und mir nen Wolf gesucht (ziemlich sicher mit den falschen Stichworten).

Sherlock

mjustin 4. Jun 2014 07:49

AW: Strukturierte XML-Datei aus drei Datasets erstellen
 
Zitat:

Zitat von Sherlock (Beitrag 1261288)
Das finde ich interessant. Wie/Wo kann ich Delphi dazu bringen anhand einer XSD etwas brauchbares zu erzeugen?
Ich hatte mal diese Anforderung und mir nen Wolf gesucht (ziemlich sicher mit den falschen Stichworten).

Das Stichwort ist "Schema Binding Wizard". (ist ab Professional enthalten, im Unterschied zum "Data Binding Wizard")


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.

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