使用key / keyref身份约束将XML模式编译为Java

假设我有以下XML模式:

                                                            

请原谅人为的例子。

如您所见,它是表格数据。 我定义了一些国家,然后我定义了一些类型的产品。 然后我将单个产品定义为来自一个国家的类型,例如来自法国的奶酪。

这里需要注意的重要一点是,我使用keykeyref将所有产品交叉引用回原始国家/类型。

所以,我的问题是:

是否可以将此模式编译为可以使用Eclipse Moxy解组并且交叉引用完整的java类?

我知道JAXB 2.0规范不支持key / keyref 。 我也知道Moxy会 。 1

此外,我知道Moxy没有Maven插件,并且在任何情况下,都使用XJC生成的类,只需添加一个jaxb.properties文件来指定要使用的JAXB提供程序。 2

所以我怀疑我的问题的答案是“不,你必须亲自制作课程”,但我想在放弃希望之前我会检查。

为了澄清,我的product元素目前正在编译(使用maven-jaxb2-plugin )

 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "product") public class Product implements Cloneable, CopyTo, Equals, HashCode, ToString { @XmlAttribute(name = "country", required = true) protected String country; @XmlAttribute(name = "type", required = true) protected String type; //getters and setters } 

它引用String而不是CountryType对象。

目前EclipseLink JAXB(MOXy)仅扩展XJC工具以添加一个jaxb.properties文件,该文件指示MOXy是JAXB(JSR-222)提供程序。 我已输入以下增强function(目前未预定)以跟踪此请求: