Java Jaxb为特定字段定制nillable属性值
我正在使用一个XSD模式文件(我无法更改),该文件将元素XXX定义为:Java Jaxb为特定字段定制nillable属性值,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我正在使用一个XSD模式文件(我无法更改),该文件将元素XXX定义为: 这将在生成的类中生成java.util.Date 我需要更改字段封送为XML的方式:如果属性为null,我希望生成一个空标记,就像xsd是: 这将在生成的类中生成一个JaxbElement 可以通过Jaxb绑定执行类似的操作吗 问候 朱利奥是的,你可以。。但这不是一个好的做法 <bindings node="//xs:element[@name='XXX']"> <property name="
这将在生成的类中生成java.util.Date 我需要更改字段封送为XML的方式:如果属性为null,我希望生成一个空标记,就像xsd是:
这将在生成的类中生成一个JaxbElement 可以通过Jaxb绑定执行类似的操作吗 问候
朱利奥是的,你可以。。但这不是一个好的做法
<bindings node="//xs:element[@name='XXX']">
<property name="xxx">
<baseType>
<javaType name= "javax.xml.bind.JAXBElement<java.util.Date>"/>
</baseType>
</property>
</bindings>
您还应该在
- parseMethod是在过程中调用的解析方法的名称 解编李>
- printMethod是要打印的打印方法的名称 在编组时呼叫
- 使用XSLT预处理您的模式,在需要的地方添加
nillable
- 使用
并使用jaxb2 simplify插件
自定义元素。事实上,我从未尝试过,但也许它会起作用simplify:as-reference属性
- 编写一个XJC插件
另外,我是上述内容的作者。我使用maven XML插件应用了XSLT转换,它成功了:)我没有尝试使用您的插件,因为第一个选项立即起作用。我尝试使用您的解决方案,但对我来说,它太复杂了,无法工作(我还需要添加一些java代码使其工作)。无论如何,谢谢你;)