2012-11-30 6 views
7

Mögliche Duplizieren:
What is the correct way to represent null XML elements?Standardweise Null-Attributwerte in XML darstellen?

Gibt es eine Standardmethode null Attributwerte in XML darzustellen?

Wir haben ein bestehendes XML-Format, die Fragmente ähnlich wie erwartet: die Notwendigkeit

<items> 
    <item key="key_goes_here" value="value_goes_here" /> 
    ... 
</items> 

Das ursprüngliche Format zwischen einem Nullwert und einem leeren String-Wert zu unterscheiden, nicht vorwegnehmen - aber das ist wichtig (jetzt).

Mein Bauch sagt, ein neues Format zu erstellen, die Attribute für Nullable-Werte, und verwenden Elemente für sie stattdessen vermeidet: das

<items> 
    <item key="key_goes_here_and_is_never_null"> 
    <value xsi:nil="true" /> 
    </item> 
</items> 

Das, würde ich eher Attribute halten, wenn es ein Standard Weg repräsentieren Null-Attributwerte in XML.

+12

Wie ist das ein exaktes Duplikat? Meine Frage bezieht sich auf nullwertige Attribute, nicht auf nullwertige Elemente? – jglouie

+1

Dies ist in keiner Weise ein Duplikat. Attribute sind keine Elemente. – Pxtl

Antwort

4

Ich weiß nicht, über jeden Standard, aber wie wäre es

<item key="key" /> 

für Elemente verwendet, die keinen Wert haben,

<item key="key"> 
    <value /> 
</item> 

für Elemente, die eine leere Zeichenfolge als eine haben Wert und

<item key="key"> 
    <value>This is the value</value> 
</item> 

für Artikel, die tatsächlich einen Wert haben?

+0

Danke - Gibt es einen Vorteil oder erwarteten Unterschied zwischen und ? – jglouie

+0

@LemonBeagle: Um ehrlich zu sein, ich habe das nie zuvor gesehen, aber ich bin nicht viel von einem XML-Experten. Es scheint mir ein einfaches leeres Tag vermittelt die Nachricht gut und ist leicht zu verstehen. –

+1

+1 Ich würde hinzufügen, dass Sie dies im Schema definieren können, indem Sie das Attribut "value" optional machen ('optional =" true "' glaube ich). – wds