我是什么:nil ="true"是什么意思?

dtc*_*dtc 58 xml null xml-nil

我有一个xml,它的节点有i:nil ="true".那是什么意思?

例如:

<FirstName i:nil="true" />
Run Code Online (Sandbox Code Playgroud)

这是否意味着不同于:

<FirstName />
Run Code Online (Sandbox Code Playgroud)

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

Ray*_* Lu 99

这意味着FirstName为null

<FirstName i:nil="true" />
Run Code Online (Sandbox Code Playgroud)

这意味着FirstName =""

<FirstName />
Run Code Online (Sandbox Code Playgroud)

在FirstName上做出的假设是字符串类型.

  • <FirstName> </ FirstName> === <FirstName /> (13认同)
  • "空元素的表示形式是一个开始标记,紧跟一个结束标记,或一个空元素标记." - http://www.w3.org/TR/REC-xml/#sec-starttags | 当然,这与将`<FirstName />`等同于"FirstName字段的值是空字符串"无关.没有"标准"...它取决于您使用的任何XML序列化工具,但大多数工具通常表现相同. (5认同)
  • 根据哪个标准?如果FirstName是"",则文档将是<FirstName> </ FirstName>,这与<FirstName />不同(前者不是规范化为后者.) (4认同)

Tor*_*rek 12

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

  • `xsi`本身没有任何意义.它只是一个名称空间前缀.最有可能的是,它定义为`xsi`通常定义为:`http:// www.w3.org/2001/XMLSchema-instance` (8认同)

ang*_*son 5

nil是在i命名空间中定义的属性.对于此FirstName节点,该属性具有值true.

它与此类似,只是具有不同的名称和值:

<form name="test">...
Run Code Online (Sandbox Code Playgroud)

这里form是节点的名称,类似于FirstName您的代码,name是一个值为"test"的属性,类似于nil值为"true"的属性.

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

如果我冒险猜测,我会说这看起来像是定义某种模式的xml文档的一部分,并且FirstName字段可以具有NULL或nil值,意味着空或未知.