O que i: nil = “true” significa?
Pergunta
Eu tenho um xml e tem nós com i: nil = "true" no-lo. O que isso significa?
Por exemplo:
<FirstName i:nil="true" />
isso significa algo diferente do que:
<FirstName />
Se sim, qual é a diferença?
Solução
Este meio FirstName é nulo
<FirstName i:nil="true" />
Este meio FirstName = ""
<FirstName />
Assunção feita em FirstName é do tipo string.
Outras dicas
Talvez i:nil
realmente significa xsi:nil
, isso significa que o elemento FirstName
está vazio, ou seja, não tem qualquer conteúdo - nem mesmo ""
. Ele se refere à propriedade nillable
em XML Schema.
nil é um atributo, definido no namespace i
. Para este nó FirstName, o atributo tem o valor true
.
É semelhante a este, apenas com nomes diferentes e valores:
<form name="test">...
Aqui, form
é o nome do nó, semelhante ao FirstName
do seu código, e name
é um atributo com um valor de "teste", semelhante ao seu nil
atributo com um valor de "verdadeiro".
O que isto significa depende da aplicação de ler o documento XML.
Se eu fosse arriscar um palpite, eu diria que esta parece ser parte de um documento XML definir algum tipo de esquema, e que o campo FirstName pode ter um NULL ou valor nil
, ou seja, vazio, ou desconhecida.