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