2009-07-09 3 views
2

Ich bin daran interessiert, wie Menschen diese Funktion verwenden: Welche Domäne, welche Beziehungen (Entschuldigung, wenn Umfrage Fragen nicht angemessen sind).Umfrage: Wie verwenden Sie ID/IDREF? (oder key/keyref)

XML stellt Bäume dar, die natürlich Containment verwenden; aber es kann auch Graphen darstellen, die IDREFs verwenden, die sich auf IDs beziehen: viele Elemente können sich auf dasselbe Element beziehen (Multi-Ref); und ein verschachteltes Element kann sich auf einen Vorfahren (Zyklus) beziehen. Es kann auch zweckmäßig sein, IDs und IDREFs zu verwenden, so dass die XML-Struktur mit einem anderen Speicherformat übereinstimmt, z. Datenbank Fremdschlüssel.

Was bedeuten Sie mit ID/IDREF darstellen?

BEARBEITEN Auch einschließlich <key>/<keyref> von XML-Schema.

+0

Vorausgesetzt, dass dies auf DTD-Nutzung beschränkt ist und DTDs veraltet sind, dann ist dies ID/IDREF. – skaffman

+0

@skaffman: http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#ID – 13ren

+0

@skaffman: aber du hast Recht, dass ich die neuen XSD-Entsprechungen einschließen sollte - danke . – 13ren

Antwort

2

Ich verwende meistens XML zum Veröffentlichen, nicht zum Speichern von Daten, also verwende ich ID/IDREFs für Links und Querverweise (wo der Inhalt des Elements mit dem IDREF aus dem Element mit der ID gezogen wird).

2

Ich verwende XML für die Serialisierung, also verwende ich ID/IDREF, um Zyklen zu unterbrechen und doppelte Serialisierungen zu verhindern. Ich habe auch darüber nachgedacht, es zu verwenden, um Verweise auf externe Objekte zu "deklarieren", die an meinen Graph angehängt sind, aber nicht als Teil davon serialisiert sind. Das Problem bei diesen Ansätzen besteht darin, dass es schwierig ist, Serialisierungsframeworks (d. H. JAX-B) dazu zu bringen, zur Laufzeit dynamisch zu bestimmen, ob ein Objekt an Ort und Stelle oder als Referenz serialisiert werden sollte.