64

我有一个 xml,它有带有 i:nil="true" 的节点。这意味着什么?

例如:

<FirstName i:nil="true" />

这是否意味着不同于:

<FirstName />

如果是这样,有什么区别?

4

3 回答 3

111

这意味着 FirstName 为空

<FirstName i:nil="true" />

这意味着 FirstName = ""

<FirstName />

对 FirstName 所做的假设是字符串类型。

于 2009-01-21T00:00:53.687 回答
14

也许i:nil实际上意味着xsi:nil,这意味着FirstName元素是空的,即没有任何内容——甚至没有""。它指的是nillableXML Schema 中的属性。

于 2009-01-21T11:55:50.670 回答
5

nil 是一个属性,在i命名空间中定义。对于此 FirstName 节点,该属性的值为true

与此类似,只是名称和值不同:

<form name="test">...

这里,form是节点的名称,类似于FirstName您的代码,并且name是一个值为“test”的属性,类似于您nil的值为“true”的属性。

这意味着什么取决于读取 xml 文档的应用程序。

如果我冒昧地猜测一下,我会说这看起来像是定义某种模式的 xml 文档的一部分,并且 FirstName 字段可以有 NULL 或nil值,表示为空或未知。

于 2009-01-21T00:00:34.687 回答