问题标签 [xml-nil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1071 浏览

xml - 对于声明为 nillable 的字段,我应该发送什么 XML?

我有一个带有 REST 样式接口的应用程序,它通过 POST 从客户端获取 XML 文档。此应用程序是用 Java 编写的,并使用 XML bean 来处理发布的消息。

消息中字段的 XML 模式定义如下所示:

如何发送符合此规范的空值?

我发送<value xsi:nil="true" /> 了,但这导致 XML 解析器出错。

0 投票
3 回答
9528 浏览

xml-serialization - XmlSerializer 可以反序列化为 Nullable?

我想反序列化包含一个元素的 XML 消息,该元素可以标记nil="true"为具有 type 属性的类int?。我可以让它工作的唯一方法是编写我自己的NullableInt类型来实现IXmlSerializable. 有更好的方法吗?

我在博客上写了完整的问题和解决方法。

0 投票
3 回答
105782 浏览

xml - i:nil="true" 是什么意思?

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

例如:

这是否意味着不同于:

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

0 投票
1 回答
6148 浏览

xml-serialization - 如何控制 xsi:nill= 上的 XML 序列化行为

我正在开发一个 Web 服务以在 2 个 ERP 系统之间共享数据。第一个 ERP 调用 web 服务,它序列化数据对象并将其发送到第二个 ERP。

数据对象如下所示:

XSD 生成的类:

我正在使用 XmlSerializer 序列化我的数据对象

问题是:(在序列化上)每次如果子对象为空(xsi:nil="true")XSD 无论如何都会生成整个子结构。并且因为 Quantity 不是 nillable/nullable XSD 写入0作为值...像这样:

我希望得到这样的东西:

问题是:有没有办法阻止 XSD 解析 xsi:nil="true"-Object ?

有什么建议么?

TIA

0 投票
7 回答
224042 浏览

xml - 表示 null XML 元素的正确方法是什么?

我已经看到null以多种方式表示的元素:

该元素存在于xsi:nil="true"

该元素存在,但表示为一个空元素(我认为这是错误的,因为“空”并且null在语义上是不同的):

返回的标记中根本不存在该元素

该元素有一个<null/>子元素(来自下面的TStamper):

是否有正确或规范的方式来表示这样的null值?除了上面的例子还有其他方法吗?

上面示例的 XML 是人为设计的,所以不要读得太深。:)

0 投票
2 回答
12656 浏览

c# - 抑制 xsi:nil 但在 .Net 中序列化时仍显示空元素

我有具有 20 多个字符串属性的 ac# 类。我将其中的四分之一设置为实际值。我想序列化这个类并得到一个输出

对于一个属性

我不希望输出是

我正在使用以下课程

这样我就可以获得完整的标签。我只是不知道如何摆脱 xsi:nil。

0 投票
1 回答
5511 浏览

.net - 在 XML 中使用 xsi:nil

我正在从 VB.NET 应用程序生成 XML 文件。在我尝试添加 nillable 元素之前,该文档生成良好。我现在正在测试只放入一个 nil 元素:

一旦这个元素就位,我尝试在 IE 中查看 XML 文件,它就无法显示。我收到:

无法显示 XML 页面 无法使用 XSL 样式表查看 XML 输入。请更正错误,然后单击“刷新”按钮,或稍后重试。


操作成功完成。错误处理资源

如果我删除这一个元素,它会再次显示正常。我在这里想念什么?

0 投票
1 回答
1617 浏览

xml - 如何从转换中排除带有 xsi:nil="true" 的元素?

我有一些最近更改的 XML 文件,因此一些节点现在具有属性 xsi:nil="true"。我有一个 XSLT 样式表,可以将 XML 呈现为 HTML,以便快速查看数据。目前,为了让我自己更轻松,我在应用样式表之前从 XML 中删除了名称空间。直到我们上次更新为止,这一切都很好。现在我收到一个错误,因为 XSL 不知道如何处理 xsl:nil="true"。

我可以轻松地更新代码,因此在转换 XML 之前,我对 XML 中的所有 xsl:nil="true" 匹配项进行替换/删除,但我想知道是否可以将 XSLT 样式表合并为 xsi:即使 XML 中没有包含命名空间,nil 也将被忽略/不会导致转换失败。我更喜欢这样做,因为我现在可以在服务器上进行更改,如果我必须发布一个新的 Web 构建,我必须跳过一些内部箍来部署它。

在我让事情正常工作之后(通过在转换之前或期间删除 xsl:nil),我会回过头来找出我最初删除命名空间的原因并修复它。

感谢你给与我的帮助。

0 投票
6 回答
17236 浏览

.net - 防止序列化为 XML 时的可空值类型

我在我的可序列化类中添加了一些可为空的值类型。我使用执行序列化,XmlSerializer但是当值设置为 时null,我得到一个空节点xsi:nil="true"。这是我在Xsi:nil Attribute Binding Support找到的正确行为。

有没有办法关闭此选项,以便在值类型为 时不输出任何内容null

0 投票
2 回答
4207 浏览

xml - 带有 xsi:nillable 元素的 xsd 的 xml 有效性

我的 XML 文件

我的 XSD 文件

解析器抱怨<tns:LSampleEnrlDetails/>,XML 文件应该<tns:LSampleEnrlDetails xsi:nil="true"/>只用于有效文件?通过取出整个标签,解析器也在抱怨。

我想知道<tns:LSampleEnrlDetails/>当我没有要为标签填充的数据时,此标签的哪些可能情况使 XML 文件根据上述架构有效<tns:LSampleEnrlDetails/>