java - 使用 ObjectFactory 时可空元素在输出文件中获取冗余数据

标签 java xml jaxb marshalling

我正在创建一个 JAXBElement<BigInteger>具有 ObjectFactory 的元素.

该对象是使用 null 创建的值,因为该字段的架构表明它有一个 nillable属性。

在编码到 xml 期间,输出文件显示:

<TaxCode xsi:nil="true"/>

我怎样才能让它写<taxCode/>仅?

最佳答案

你不能,因为那是错误的。 <taxCode/><TaxCode xsi:nil="true"/>不是同一件事。

<taxCode/>表示<taxcode>具有空白但非空内容(即空字符串)的元素,而 <TaxCode xsi:nil="true"/>明确表示 <taxCode>为空。

假设您的 ObjectFactory由 XJC 从 XML 模式生成,那么如果 JAXB 生成 <taxCode/>那么它就会违反架构。

如果可以选择更改架构,则删除 nillable从元素声明中,并重新生成代码。然后,JAXB 应省略 <taxCode/>全部元素。

关于java - 使用 ObjectFactory 时可空元素在输出文件中获取冗余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016403/

相关文章:

c# - 呈现 xml 验证错误

java - JAXB 解码 XML 类转换异常

java - 其他语言的 XSD javaType 适配器结果

java - 带有空间变量的循环让我感到困惑?

java - jersey Rest api 和 org.reSTLet api 之间的区别

Python 2.7 urllib2 在使用 xml 内容进行重定向时引发 urllib2.HTTPError 301

java - 如何制作RTL背景android

json - @XmlInverseReference 注释不起作用

java - 对 JUnit 测试进行分组

Java:在 ActionListener 中使用图形组件