Laden...

Referenzen in XML-Dateien

Erstellt von Quallo vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.993 Views
Q
Quallo Themenstarter:in
992 Beiträge seit 2005
vor 18 Jahren
Referenzen in XML-Dateien

Ist es möglich in XMl-Dateien Referenzen zu machen(beispielsweise über Schlüssel)?

Folgendes: Ich habe in der Datenbank eine Tabelle mit einigen 1000 Textsätzen.
Die haben jeweils ein Format zugeordnet(per Fremdschlüssel auf Primärschlüssel einer anderen Tabelle). In der Format-Tabelle sind etwa 20 Eintragungen, da sich viele Sätze ein Format teilen.

Dieses Prinzip möchte ich in ein XML-Schema(und natürlich auch in die Instanz) übernehmen.
Ich will nicht für jeden der Tausenden Sätze das Format extra in die Datei schreiben, sondern das Format woanders in der XML-Datei ablegen und dann eine Referenz drauf machen.

praktisch so:

<Textliste>
<Text>
<Wert>HalloWelt</Wert>
<Format>Hier soll nicht das Format selbst stehen, sondern nur der Ort, wo es steht, z.b. Format/Id</Format>
</Text>...
</Textliste>

<Formate>
<Format id="1">
<Groesse>5</Groesse>
<Schriftart>Arial</Schriftart>
</Format>
..
</Formate>

Grüße Christoph

N
4.644 Beiträge seit 2004
vor 18 Jahren

Wenn ich dich richtig verstehe, dann willst Du eine Relation im Schema abbilden, oder?
Dann lege die Relation in einem DataSet an und lasse Dir dann mal das XML Schema ausgeben, da sieht man es ganz gut.

476 Beiträge seit 2004
vor 18 Jahren
Wenn ich die Frage richtig verstanden habe...

Hallo Quallo,

Referenzen in XML kenne ich jetzt eher als Entitäten um Sonderzeichen oder wiederkehrende Wort- und Satzstücke zu ersetzen. Aber ich nehme frecherweise einfach mal an, da XML eine hierarchische Datenbank ist, dass es so eine Referenzierung wie bei der Schemadefinition nicht gibt. (Lasse mich gerne eines besseren belehren)

Wär' auch Aufwand, wenn sich dort für ein Element Daten ändern würden, aber für die anderen nicht.

Jetzt kommt es natürlich darauf an was Du mit der XML die du generierst vor hast. Wenn Du mit Ihr in .NET oder mit XSLT arbeitest, kannst Du deinen Ansatz im Prinzip weiterverfolgen. Jeder Text hat dann eben einen FormatID, du brauchst dann nur eine zweite XPath-Query, aber was soll's.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

Q
Quallo Themenstarter:in
992 Beiträge seit 2005
vor 18 Jahren

Danke für eure Antworten.

Hat schon jemand Erfahrung mit Keyref und key, bzw. idref und id gemacht und wie das in eine .Net-Klasse überführt wird mit csd.exe?

Grüße Christoph

476 Beiträge seit 2004
vor 18 Jahren
mit idref und id...

Habe damit noch nicht so direkt Erfahrungen gemacht, aber ich meine, wenn Du im Schema das ID-definierst, kannst du später über die "GetElementByID"-Methode auf das Element zugreifen...

Mehr habe ich mich damit allerdings noch nicht beschäftigt.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

Q
Quallo Themenstarter:in
992 Beiträge seit 2005
vor 18 Jahren

Naja, ich werde jetzt die deserialisierte Form nehmen. Sollte nachher nicht mehr einen riesigen Unterschied machen(die Datei wird aus einer Datenbank erstellt(via objectserialisierung), gezippt, dann über ftp bereitgestellt, übertragen, und wieder entpackt und eingelesen.

Das dauert lange genug, da macht das kaum noch was aus, ob ein paar Werte mehr oder weniger übertragen werden. Außerdem wird es am anderen Ende sowieso in der denormalisierten Form benötigt.

Grüße und vielen Dank für eure Mühen, Christoph

F
10.010 Beiträge seit 2004
vor 18 Jahren

Schonmal von den Comprimierten DataSets gehört?

Und datasets können ja beliebige Relationen abbilden.

http://www.eggheadcafe.com/articles/20040311.asp