Wie sollte eine Liste in XML dargestellt werden?

7

Wie sollte in XML eine Liste dargestellt werden?

Mit einer einschließenden Listenentität:

%Vor%

Oder ohne:

%Vor%     
Mat 15.01.2009, 23:50
quelle

8 Antworten

7

Für die Erweiterbarkeit würde ich die erste Lösung verwenden (die mit dem Knoten children ). Wenn Sie jemals Daten über alle Kinder speichern möchten, haben Sie einen praktischen Knoten, auf dem Sie Attribute platzieren können.

    
Jason Jackson 15.01.2009, 23:57
quelle
7

Ich würde es in eine Entität einschließen, um es von den anderen Elementen zu unterscheiden.

    
Daniel A. White 15.01.2009 23:52
quelle
2

Es macht keinen großen Unterschied, ob die Namen der Elemente in der Liste immer gleich sind, denn wenn Sie sie mit XPath oder Linq-to-XML oder was auch immer verarbeiten, dann wird die Abfrage einfach funktionieren ein weiterer Selektor, wenn es einen Wrapper-Knoten gibt, aber ansonsten identisch ist.

Wenn sich andererseits die Elementnamen in der Liste unterscheiden, kann die Verarbeitung der Liste vereinfacht werden, wenn ein Wrapper-Element vorhanden ist, da Sie einfach '*' als Selektor unterhalb des Listenelements verwenden können um alle Elemente zu denen mit einer bestimmten Gruppe von Namen zu filtern.

Es spielt also wahrscheinlich keine große Rolle, aber ich bevorzuge es, ein Wrapper-Element zu verwenden, nur weil es die Elemente in der Sammlung visuell von Elementen abgrenzt, die es nicht sind.

    
Greg Beech 15.01.2009 23:59
quelle
2

Denken Sie daran in Code, den Sie dagegen schreiben möchten.:

Für mich ...

%Vor%

ist viel semantischer als ...

%Vor%     
Triptych 15.01.2009 23:59
quelle
1

Der erste würde für einfache Listen recht gut funktionieren, aber was wäre, wenn die Liste selbst eine verschachtelte Liste hätte ?! Was wäre, wenn ein Element ein paar verschiedene Listen hätte? Um die Dinge konsistent zu halten, bevorzuge ich ein Element für die Liste und verwende ein <item> -Tag oder etwas für Kinddaten. Dies hilft bei der Verwendung einer generischen Funktion zum Parsen aller Listen.

    
Mehrdad Afshari 15.01.2009 23:56
quelle
1

Wenn wir eine universelle XML-Repräsentation einer Liste benötigen, kommen wir zu dem Schluss, dass eine Art der folgenden Repräsentation verwendet werden muss:

%Vor%

Lassen Sie uns das analysieren :

  1. Das Wrapperelement <_listSomeName> wird benötigt, weil wir zwei oder mehr Listen als untergeordnete Elemente eines Elements haben und in der Lage sein müssen, jede einzelne Liste eindeutig und bequem zu identifizieren. Der Teil "SomeName" dient dazu, den Namen einer Liste eindeutig zu machen.

  2. Das Element <_listItem> wird benötigt, um jedes einzelne Listenelement zu umbrechen. Es kann nicht weggelassen werden, da ein Listenelement eine komplexe Struktur haben kann (wie beispielsweise ein XML-Fragment selbst) und es schwierig wäre, es als Ganzes zu identifizieren.

Dimitre Novatchev 16.01.2009 14:46
quelle
1

Ich würde die erste Lösung verwenden. Die Liste hat eine semantische Relevanz: Sie ist die Sammlung ähnlicher Elemente und sollte daher als solche erkennbar sein. In der zweiten Lösung existiert die Liste nicht als Element.

    
stevenvh 15.02.2009 15:02
quelle
0

IMHO, es hängt von der Domäne ab.

Für das Beispiel, das Sie angegeben haben, würde ich die Entität verwenden, um die Kinder zu umschließen, weil die Kinder selbst nicht unbedingt Eigenschaften der Person sind, sondern die Liste der Kinder.

Außerdem hilft die Verwendung eines Gehäuses, wenn Sie jemals serialisieren / deserialisieren müssen.

    
Daniel Schaffer 15.01.2009 23:55
quelle

Tags und Links