Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.838 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Hat jemand Erfahrung mit Delphi und XML Dateien erzeugen

  Alt 7. Okt 2004, 11:15
Zitat von schlock:
Nehmen wir an Du hast eine Tabelle mit den Spalten
ID (Integer), Status (String), Created (TDateTime) und Volume (Real)
Code:
  // Felder definieren
  ClientDataSet.FieldDefs.Add('ID', ftInteger, 0, FALSE);
  ClientDataSet.FieldDefs.Add('Status', ftString, 15, FALSE);
  ClientDataSet.FieldDefs.Add('Created', ftDate, 0, FALSE);
  ClientDataSet.FieldDefs.Add('Volume', ftFloat, 0, FALSE);
Danke für die Antwort, aber mit Deiner Methode erzeugst Du ein sogenanntes Borland DataPacket XML Format.
Ich bräuchte aber ein anderes XML Format:
Das benötigte Format ist in einer *.xsd Datei festgelegt.

Bei Dein Beispiel würde "meine" XML Datei z.B. so aussehen:
Code:
<?xml version="1.0"?>
<Dokument>
  <ROW>
    <ID>1</ID>
    <Status>Mein Status</Status>
    <Created>07.10.2004 11:02:17</Created>
    <Volume>9,345</Volume>
  </ROW>
  <ROW>
    <ID>2</ID>
    <Status>Noch ein Status</Status>
    <Created>07.10.2004 11:03:27</Created>
    <Volume>3,14</Volume>
  </ROW>
</Dokument>
Die passende *.xsd Datei zu Deinem Dataset könnte z.B. so aussehen:
Code:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Dokument" type="DokumentType"/>
  <xs:complexType name="DokumentType">
    <xs:sequence>
      <xs:element name="ROW" type="ROWType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ROW" type="ROWType"/>
  <xs:complexType name="ROWType">
    <xs:sequence>
      <xs:element name="ID" type="IDType"/>
      <xs:element name="Status" type="StatusType"/>
      <xs:element name="Created" type="CreatedType"/>
      <xs:element name="Volume" type="VolumeType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ID" type="IDType"/>
  <xs:simpleType name="IDType">
    <xs:restriction base="xs:integer"/>
  </xs:simpleType>
  <xs:element name="Status" type="StatusType"/>
  <xs:simpleType name="StatusType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="Created" type="CreatedType"/>
  <xs:simpleType name="CreatedType">
    <xs:restriction base="xs:timeInstant"/>
  </xs:simpleType>
  <xs:element name="Volume" type="VolumeType"/>
  <xs:simpleType name="VolumeType">
    <xs:restriction base="xs:float"/>
  </xs:simpleType>
</xs:schema>
Die *.xsd Datei habe ich mir vom XML Mapper aus Delphi 7 Enterprise erstellen lassen.

Irgend eine Idee?
  • Habe Datenbank mit z.b. Deiner Struktur
  • Habe *.xsd Datei (s.oben)
  • Will nun eine *.xml Datei (s.oben)
Und das Ganze am besten ohne viel "spezifischem" Quelltext, da das ganze für viele verschiedene Tabellen gebraucht wird.

Danke nochmal für die Antwort.

[edit]
Nachtrag:
Zitat:
Wenn es sich speziell um Datenbanktabellen handelt, bietet sich die Klasse
TCLientDataSet an. Diese kann Tabellenartige Strukturen sehr komfortabel in XML-Dateien speichern.
Das stimmt, aber man braucht dazu noch TXMLTransformer oder eine der anderen Komponenten die mit dem TClientDataSet verbunden werden. Und genau das weis ich nicht genau. (und wills wissen )
[/edit]
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat