我正在使用JAXBElement<BigInteger>
创建ObjectFactory
元素。
使用null
值创建对象,因为此字段的架构表明它具有nillable
属性。
在编组到xml期间,输出文件显示:
<TaxCode xsi:nil="true"/>
我怎样才能让它只写<taxCode/>
?
答案 0 :(得分:2)
你不能,因为那是错误的。 <taxCode/>
和<TaxCode xsi:nil="true"/>
不是一回事。
<taxCode/>
表示具有空白但非空内容的<taxcode>
元素(即空字符串),而<TaxCode xsi:nil="true"/>
明确表示<taxCode>
为空。
假设您的ObjectFactory
是由XJC从XML Schema生成的,那么如果JAXB生成<taxCode/>
那么它将违反模式。
如果更改架构是一个选项,则从元素声明中删除nillable
,然后重新生成代码。然后,JAXB应该完全省略<taxCode/>
元素。