2009-01-20 13 views
45

Ich habe ein xml und es hat Knoten mit i: nil = "true" drin. Was bedeutet das?Was bedeutet i: nil = "wahr"?

Zum Beispiel:

<FirstName i:nil="true" /> 

, dass etwas anderes als bedeuten:

<FirstName /> 

Wenn ja, was ist der Unterschied?

Antwort

77

bedeutet First null ist

<FirstName i:nil="true" /> 

Das bedeutet, Vorname = ""

<FirstName /> 

Annahme gemacht, auf der First String-Typ ist.

+0

Vereinbarte Karte kann nicht. Ich habe das schon mal gesehen. +1 –

+4

Nach welchem ​​Standard? Wenn Vorname „ist“, würde das Dokument , sein, das nicht die gleichen wie ist (ersteres ist nicht auf den letzteren canonicalized.) –

+9

===

4

Nil ist ein Attribut, das im Namespace i definiert ist. Für dieses FirstName-Knoten hat das Attribut den Wert true.

Es ist ähnlich wie diese, nur mit verschiedenen Namen und Werten:

<form name="test">... 

Hier ist form der Name des Knotens, ähnlich wie FirstName aus dem Code und name ist ein Attribut mit einem Wert von " Test ", ähnlich Ihrem Attribut nil mit einem Wert von" true ".

Was das bedeutet, hängt von der Anwendung ab, die das XML-Dokument liest.

Wenn ich eine Vermutung wagen würde, würde ich sagen, dass dies wie ein Teil eines XML-Dokuments aussieht, das eine Art von Schema definiert, und dass das FirstName-Feld einen NULL- oder nil-Wert haben kann, was leer oder unbekannt bedeutet. Diese

9

Vielleicht bedeutet i:nil tatsächlich xsi:nil, bedeutet dies, dass das FirstName Element leer ist, das heißt nicht jeden Inhalt hat - nicht einmal "". Es bezieht sich auf die nillable -Eigenschaft in XML-Schema.

+3

'xsi' hat selbst keine Bedeutung. Es ist nur ein Namespace-Präfix. Am wahrscheinlichsten ist es definiert als die gleiche Sache, die "xsi" normalerweise wie folgt definiert: "http: // www.w3.org/2001/XMLSchema-instance" –

0

Wahrscheinlich ist Ihr DTO und Ihre Modellklasse nicht entsprechen und DTO zurückkehren Namen null, weil es mit einigen Attribut in Modellklasse

Verwandte Themen