У меня есть xml, и в нем есть узлы с i: nil = "true". Что это значит?
Например:
<FirstName i:nil="true" />
Означает ли это нечто иное, чем:
<FirstName />
Если да, в чем разница?
Ответ 1
Это означает, что FirstName имеет значение null
<FirstName i:nil="true" />
Это означает, что FirstName = ""
<FirstName />
Предположения, сделанные в FirstName, имеют строковый тип.
Ответ 2
Может быть, i:nil на самом деле означает xsi:nil, это означает, что элемент FirstName пуст, т.е. не имеет любого контента - даже не "". Он ссылается на свойство nillable в XML-схеме.
Ответ 3
nil - это атрибут, определенный в пространстве имен i. Для этого FirstName node атрибут имеет значение true.
Он похож на это, просто с разными именами и значениями:
<form name="test">...
Здесь form - это имя node, похожее на FirstName из вашего кода, а name - это атрибут со значением "test", похожий на ваш атрибут nil с значение "true".
Что это означает, зависит от приложения, читающего XML-документ.
Если бы я рискнул предположить, я бы сказал, что это выглядит как часть XML-документа, определяющего какую-то схему, и что поле FirstName может иметь значение NULL или nil, то есть пустое или неизвестное.