2009-01-20 24 views
45

Tengo un xml y tiene nodos con i: nil = "verdadero" en él. Qué significa eso?¿Qué significa i: nil = "verdadero"?

Por ejemplo:

<FirstName i:nil="true" /> 

¿Eso significa algo diferente que:

<FirstName /> 

Si es así, ¿cuál es la diferencia?

Respuesta

77

Esto significa FirstName es nulo

<FirstName i:nil="true" /> 

Esto significa FirstName = ""

<FirstName /> 

suposición hecha en FirstName es de tipo cadena.

+0

acuerdo. He visto esto antes +1 –

+4

Según qué estándar? Si FirstName era "", el documento sería , que no es lo mismo que (el primero no está en forma canónica a este último.) –

+9

===

4

nil es un atributo, definido en el espacio de nombres i. Para este nodo FirstName, el atributo tiene el valor true.

Es similar a esto, sólo con diferentes nombres y valores:

<form name="test">... 

Aquí, form es el nombre del nodo, similar a FirstName de su código, y name es un atributo con un valor de " prueba ", similar a su atributo nil con un valor de" verdadero ".

Lo que esto significa depende de la aplicación que lea el documento xml.

Si tuviera que aventurar una suposición, diría que esto parece parte de un documento xml que define algún tipo de esquema, y ​​que el campo FirstName puede tener un valor NULL o nil, es decir, vacío o desconocido.

9

Tal i:nil significa en realidad xsi:nil, esto significa que el elemento FirstName está vacía, es decir, no tiene ninguna contenido - ni siquiera "". Se refiere a la propiedad nillable en XML Schema.

+3

'xsi' no tiene ningún significado en sí mismo. Es solo un prefijo del espacio de nombres. Lo más probable es que se defina como lo mismo que 'xsi' generalmente se define como:' http: // www.w3.org/2001/XMLSchema-instance' –

0

probablemente su DTO y la clase del modelo no es fósforo y DTO Volver Nombre nula, ya que no puede mapa con algún atributo de clase del modelo

Cuestiones relacionadas