Unterknoten oder Attribut?
LeKuchen
- xml
0 Marc Reichelt0 LeKuchen
0 MudGuard0 LeKuchen
0 Thomas J.S.
Hallo zusammen,
wie haltet Ihr es mit Attributen und Knoten in XML-Dateien? Welche Werte kommen in ein Attribut und welche in einen Unterknoten?
Beispiel:
<Feld>
<Name dbtyp="Integer">
Nachname
</Name>
</Feld>
oder
<Feld>
<Name>
Nachname
</Name>
<Dbtyp>
Integer
</Dbtyp>
</Feld>
Was macht Sinn?
Gruß,
LeKuchen
Hallo LeKuchen,
wie haltet Ihr es mit Attributen und Knoten in XML-Dateien? Welche Werte kommen in ein Attribut und welche in einen Unterknoten?
Beispiel:
<Feld>
<Name dbtyp="Integer">
Nachname
</Name>
</Feld>oder
<Feld>
<Name>
Nachname
</Name>
<Dbtyp>
Integer
</Dbtyp>
</Feld>Was macht Sinn?
Um Relationen anzugeben sollte man Unterknoten verwenden, für bestimmte Informationen kann man dann Attribute verwenden. In deinem Beispiel würde ich wahrscheinlich die erste Variante, noch etwas abgewandelt, verwenden:
<Feld>
<Name dbtyp="Integer" nachname="Nachname" />
</Feld>
Wenn ich das ganze selbst machen würde, würde ich bestimmt folgendes daraus machen:
<persons>
<person dbtype="int" lastname="Nachname" />
</persons>
Das kommt natürlich ganz darauf an, welche Informationen du abspeichern willst.
Wozu brauchst du denn dbtype? Hast du wirklich variable Typen in deiner Datenbank, sodass du diese Information später abfangen müsstest?
Bis dann!
Marc Reichelt || http://www.marcreichelt.de/
Hallo Marc,
<Feld>
<Name dbtyp="Integer" nachname="Nachname" />
</Feld>
So habe ich es bisher, aber aus dem einfachen Grund weil ich entsprechend Funktionen schon programmiert habe, die auf das Attribut zugreifen können. ;o)
Wozu brauchst du denn dbtype? Hast du wirklich variable Typen in deiner Datenbank, sodass du diese Information später abfangen müsstest?
Nein, das war nur ein blödes Beispiel. (sieht man ja schon an typ=integer) Es ging nur ums Prinzip bzw. eine daraus abzuleitende Vorschrift, wie es am besten generell gehandhabt werden soll.
Gruß,
LeKuchen
FYI: Ich habe zwar ein xml-Dictionary, in dem alle Felder abgelegt sind - aber nicht mit DBtype, sondern mit Angaben für eine Eingabeplausibilisierung/Darstellung. Aus dem Felderdictionary klicke ich mir auch neue Relationen zusammen, die dann Grundlage für neu generierte Formulare und auch die dazugehörige Datenbanktabelle sind.
<M3 Name="Vorname" LabelName="Vorname" Länge="50">
</M3>
<M4 Name="Gebdat" LabelName="Geburtsdatum" Datum="TTMMJJJJ">
<mPlausi>
<rule>
<!--
[1880-2000]
-->
</rule>
<info>
<!--
Personen müssen vor 2000 geboren sein und nach 1880
-->
</info>
</mPlausi>
</M4>
<M6 Name="Geschlecht" LabelName="Geschlecht" codiert="j" num="j">
<CodeTab>
<option value="0">keine Angabe</option>
<option value="1">weiblich</option>
<option value="2">männlich</option>
</CodeTab>
</M6>
<M37 Name="EinrichtungsAdresse" LabelName="Einrichtungsadresse" num="j" codiert="j" Länge="4" Format="9999" Tabelle="[t:Einrichtungsadressen]">
</M37>
Hi,
wie haltet Ihr es mit Attributen und Knoten in XML-Dateien? Welche Werte kommen in ein Attribut und welche in einen Unterknoten?
id, idref, idrefs kommen auf jeden Fall in Attribute.
Alles, was in einem Element mehrfach vorkommen kann (Ausnahme: idrefs) kommt in Kindelemente.
Alles, was noch irgendeine Struktur aufweist und auf dessen Einzelteile im Normalfall Zugriff benötigt wird, kommt in Kindelemente.
Bleiben also noch pro Element einmalige, nicht strukturierte Teile übrig, sofern es sich weder um id noch um idref handelt.
Ich mach das dann meist so:
Wenn das Element sowieso schon aus obengenannten Gründen Kindelemente hat, werden auch die restlichen Teile als Kindelemente benutzt.
Ansonsten werden es Attribute.
cu,
Andreas
Hallo Andreas,
Ja, das war auch meine erste Vorstellung.
Vielen Dank!
Gruß,
LeKuchen
Hallo,
wie haltet Ihr es mit Attributen und Knoten in XML-Dateien? Welche Werte kommen in ein Attribut und welche in einen Unterknoten?
Gaz kurz zusammengefasst:
Konkrete Inhalte sollten möglichst als Kindelement vorkommen, Zusatzinformationen zum Element, die das Element weiter beschreiben oder spezifizieren eher als Attribute.
Grüße
Thomas