JAXB中不同xmls / roots中的子元素的共享类

JAXB中使用xsd方案中的xjc自动生成类时。

alpha.xsd

                     

beta.xml

                      

正如您所看到的,在这两个方案之间共享Person元素。 我想做的是:

  • 使用xjc生成类,以便为两个模式类共享ObjectFactory类(输出类将在一个包中)
  • 不使用嵌套的静态类(具有属性localScoping="toplevel"
  • 使用Person类与/alpha/persons/person绑定,如/country/class/person因此没有创建两个Person类

这样做的目的是解组一个xml,应用业务逻辑并创建另一个作为输出,其中一些元素(如Person )相同并为两个xml文件共享。 两个文件的命名空间都是相同的。

如果您能向我提供完整的.xjb绑定设置文件,我将不胜感激。 到目前为止我的仅包含:

    

当然我得到名称冲突错误,因为我不知道如何设置绑定编译器以将Person视为相同的实体/元素。

如果来自Aperson 名称空间将等于来自B的 名称空间 person ,则该xjc必须生成正确的类。

您可以使用外部绑定文件来指示在类生成期间,我们希望将现有类用于名为Document的复杂类型。

binding.xml

        

XJC电话

 xjc -b binding.xml beta.xsd