我正在用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/>元素。

07-28 00:47