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]