JAXB 2.1 – 自定义xs:任何绑定

我想使用JAXB 2.1 XJC从xsd生成java代码。 我提供了xsd架构,我无法更改它。 我想在从xml架构生成java类时使用xjc:simple模式。

在xsd中有元素:

 

正如在此处所述: http : //jaxb.java.net/guide/Mapping_of__xs_any___.html我希望这些元素绑定到:

 @XmlAnyElement(lax=true) public Object any; 

但是当我使用简单的绑定模式xjc时:简单的我有:

 @XmlAnyElement protected Element any; 

我试图找到一个解决方法,但到处都说xs:any是在没有配置的情况下处理的。 拥有xs的唯一方法:将任何元素作为java.lang.Object放弃xjc:simple或在xsd 中将processContents更改为“strict” 。 这些选项现在对我来说都不可接受,因为我无法更改xml架构,并且我有一些依赖于使用xjc生成的java类的遗留代码:简单模式但现在我需要使用xs:any element而我想避免使用org.w3c.dom.Element对象。

任何帮助将非常感激。 谢谢。

您可以使用JAXB2 Basics中的Wildcard插件 。 这允许您自定义lax / skip / strict通配符绑定模式:

   ...           ...  

您不必为此更改架构,您可以通过绑定文件使用此自定义。