2009-01-20 17 views
45

J'ai un XML et il a des nœuds avec i: nil = "true" dedans. Qu'est-ce que ça veut dire?Que signifie i: nil = "true"?

Par exemple:

<FirstName i:nil="true" /> 

Est-ce que ça veut dire quelque chose de différent que:

<FirstName /> 

Si oui, quelle est la différence?

Répondre

77

Cela signifie FirstName est nulle

<FirstName i:nil="true" /> 

Cela signifie FirstName = ""

<FirstName /> 

hypothèse faite sur FirstName est de type chaîne.

+0

D'accord. J'ai déjà vu ça. +1 –

+4

Selon quelle norme? Si FirstName était « », le document serait , ce qui est la même que celle (l'ancien n'est pas canonisé à celle-ci.) –

+9

===

4

nil est un attribut défini dans l'espace de noms i. Pour ce noeud FirstName, l'attribut a la valeur true.

Il est semblable à cela, juste avec des noms et des valeurs différentes:

<form name="test">... 

Ici, form est le nom du noeud, semblable à FirstName de votre code, et name est un attribut avec une valeur de " test ", similaire à votre attribut nil avec la valeur" true ". Cela dépend de l'application qui lit le document xml. Si je devais faire une supposition, je dirais que cela ressemble à une partie d'un document XML définissant un type de schéma, et que le champ Prénom peut avoir une valeur NULL ou nil, signifiant vide, ou inconnu.

9

Peut-être que cela signifie réellement i:nilxsi:nil, cela signifie que l'élément FirstName est vide, à savoir n'a pas contenu - même pas "". Il fait référence à la propriété nillable dans le schéma XML.

+3

'xsi' n'a aucune signification en soi. C'est juste un préfixe d'espace de noms. Très probablement, il est défini comme la même chose que 'xsi' est généralement défini comme:' http: // www.w3.org/2001/XMLSchema-instance' –

0

Probablement votre DTO et votre classe de modèle sont correspondent pas et DTO retour null nom parce qu'il ne peut pas la carte avec un attribut dans la classe de modèle