在XML中表示空属性值的标准方法?

jgl*_*uie 9 xml

可能重复:
表示空XML元素的正确方法是什么?

有没有一种标准的方法来表示XML中的空属性值?

我们有一个现有的XML格式,期望片段类似于:

<items>
  <item key="key_goes_here" value="value_goes_here" />
  ...
</items>
Run Code Online (Sandbox Code Playgroud)

原始格式没有预期需要区分空值和空字符串值 - 但是,这很重要(现在).

我的直觉是创建一个新的格式,避免可以为空的值的属性,并使用它们的元素:

<items>
  <item key="key_goes_here_and_is_never_null">
    <value xsi:nil="true" /> 
  </item>
</items>
Run Code Online (Sandbox Code Playgroud)

也就是说,如果有一种标准的方法来表示XML中的null属性值,我宁愿保留属性.

Tim*_*ker 4

我不知道任何标准,但如何使用

<item key="key" />
Run Code Online (Sandbox Code Playgroud)

对于没有价值的物品,

<item key="key">
    <value /> 
</item>
Run Code Online (Sandbox Code Playgroud)

对于具有空字符串作为值的项目,并且

<item key="key">
    <value>This is the value</value> 
</item>
Run Code Online (Sandbox Code Playgroud)

对于真正有价值的物品?

  • 我们有类似的要求,我们使用了类似 &lt;value /&gt; 和 &lt;value xsi:nil="true" /&gt; 的东西,其中前者代表空字符串,后者代表空值。另外,不要使用任何标签作为 null,因为一开始就为 null 的东西与设置为 null 之间是有区别的。当您将更改作为请求的一部分发送时尤其如此。http://stackoverflow.com/questions/774192/what-is-the- Correct-way-to-represent-null-xml-elements 也提供了一些示例。 (3认同)
  • @TimPietzcker虽然这可能已经解决了OP的问题,但这*没有*回答问题,如上所述。有谁知道如何表示空*属性*?我无权更改接收端,它需要属性而不是元素。 (2认同)