web-dev-qa-db-fra.com

Que signifie i: nil = "true"?

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

Par exemple:

<FirstName i:nil="true" />

Cela signifie-t-il quelque chose de différent de:

<FirstName />

Si c'est ainsi, quelle est la différence?

56
dtc

Cela signifie que FirstName est nul

<FirstName i:nil="true" />

Cela signifie FirstName = ""

<FirstName />

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

96
Ray Lu

Peut être i:nil signifie en fait xsi:nil, cela signifie que l'élément FirstName est vide, c'est-à-dire qu'il n'a pas tout de contenu - pas même "". Il fait référence à la propriété nillable dans le schéma XML.

12
Torsten Marek

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

C'est similaire à cela, juste avec des noms et des valeurs différents:

<form name="test">...

Ici, form est le nom du nœud, similaire à FirstName de votre code, et name est un attribut avec une valeur de "test", similaire à votre attribut nil avec une valeur "true".

Ce que cela signifie dépend de l'application qui lit le document xml.

Si je devais deviner, je dirais que cela ressemble à une partie d'un document xml définissant une sorte de schéma, et que le champ FirstName peut avoir une valeur NULL ou nil, ce qui signifie vide ou inconnu .