Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TXmlNode statt IXmlNode?

  Alt 20. Aug 2010, 19:29
Ja, aber die bietet nicht die Möglichkeiten, wie eine TList. Z.B. die Sort-Funktion.

Ich werde mal Komponenten erstellen und durchtesten, die jeweils eine IXmlNode als Schnittstelle auf einen bestimmten Knoten erhalten und dann über bestimmte Eigenschaften (je nach Klasse) und deren Getter und Setter auf die "Knotendaten" zugreifen. Dann kann man auch z.B. ReadBool u.ä. erstellen, die intern die Konteneigenschaft .Text verwenden und so Probleme durch leere oder nicht existierende Knoten vermeiden.

Listenkomponenten erhalten zusätzlich die Möglichkeit, in einer TComponentList weitere Subkomponenten zu verwalten.

Nach dem Laden einer XML-Datei müssten dann vom Wurzelknoten ausgehend alle notwendigen Komponenten einmal erzeugt werden (die genaue Klasse dann abhängig vom Knotennamen), und jeder so erzeugten Komponente wird dann der eigentliche Knoten zugewiesen, in dem alle Daten sind und auch bleiben.

So hätte man die XML-Struktur in "richtigen Klassen" bzw. Objekten abgebildet. Änderungen in den Objekten (z.B. MyObjekt.Delete) werden dann eben auch an die eigentlichen Knoten weiter gegeben.

Ich werde das mal so antesten.


Man kann zwar dann den XML-Experten nicht mehr nutzen, hat dafür aber (wenn das so klappt) bessere Kontrolle über die eigenen Daten. Und die XML-Struktur ergibt sich dann nur aus den erstellten Komponenten. Man muss also nicht zuvor eine XML oder XSD anlegen und analysieren (lassen).
Fehlende, oder überflüsse Daten in einer XML-Datei sind bei einer solchen Herangehensweise dann nicht störend.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (20. Aug 2010 um 19:49 Uhr)
  Mit Zitat antworten Zitat