Java 多重<;方案绑定>;在定义包时为目标命名空间定义

Java 多重<;方案绑定>;在定义包时为目标命名空间定义,java,xsd,jaxb,jaxb2,maven-jaxb2-plugin,Java,Xsd,Jaxb,Jaxb2,Maven Jaxb2 Plugin,我的项目中有3个XSD。两个在名称空间“A”中,一个在名称空间“B”中 我想将XSD-1、XSD-2(相同的名称空间)生成到一个包中。 然后在不同的包中生成XSD-3 我正试图通过bindings.xjb文件来实现这一点 如果我申报 <jxb:bindings schemaLocation="xsd1-namespaceA.xsd"> <jxb:schemaBindings> <jxb:package name="com.xsdPrimary

我的项目中有3个XSD。两个在名称空间“A”中,一个在名称空间“B”中

我想将XSD-1、XSD-2(相同的名称空间)生成到一个包中。 然后在不同的包中生成XSD-3

我正试图通过bindings.xjb文件来实现这一点

如果我申报

<jxb:bindings schemaLocation="xsd1-namespaceA.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdPrimary" />       
    </jxb:schemaBindings>
</jxb:bindings>

<jxb:bindings schemaLocation="xsd2-namespaceA.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdPrimary" />               
    </jxb:schemaBindings>
</jxb:bindings>

<jxb:bindings schemaLocation="xsd3-namespaceB.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdSecondary" />             
    </jxb:schemaBindings>
</jxb:bindings>

然后我得到一个错误:

com.sun.istack.SAXParseException2: Multiple <schemaBindings> are defined for the target 
namespace "http://www.jeff-test.org/namespaceA/"
com.sun.istack.SAXParseException2:为目标定义了多个
名称空间“http://www.jeff-test.org/namespaceA/"
如果删除绑定文件中的前两个条目,则生成工作正常,但它会将我的所有类放在一个名为“jeff test.namespaceA”的包中(对于namespaceA),将来自namespaceB的所有类放在包“com.xsdSecondary”中

我希望将namespace-A中的所有类放在一个包中,将namespace-B中的所有类放在另一个包中

这可能吗

为目标命名空间“”定义了多个

如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我的所有类放入一个名为“jeff test.namespaceA”的包中,用于namespaceA

只需删除
namespaceA
的一个条目即可。将两者都删除背后的逻辑是什么

<jxb:bindings schemaLocation="xsd1-namespaceA.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdPrimary" />       
    </jxb:schemaBindings>
</jxb:bindings>

<jxb:bindings schemaLocation="xsd3-namespaceB.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdSecondary" />             
    </jxb:schemaBindings>
</jxb:bindings>

schemaBindings
被视为每个命名空间一次,它绑定到哪个架构文件并不重要(只要该文件是编译的一部分)

为目标命名空间“”定义了多个

如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我的所有类放入一个名为“jeff test.namespaceA”的包中,用于namespaceA

只需删除
namespaceA
的一个条目即可。将两者都删除背后的逻辑是什么

<jxb:bindings schemaLocation="xsd1-namespaceA.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdPrimary" />       
    </jxb:schemaBindings>
</jxb:bindings>

<jxb:bindings schemaLocation="xsd3-namespaceB.xsd">
    <jxb:schemaBindings>
        <jxb:package name="com.xsdSecondary" />             
    </jxb:schemaBindings>
</jxb:bindings>


schemaBindings
被视为每个命名空间一次,它绑定到哪个架构文件并不重要(只要该文件是编译的一部分)。

逻辑上,这只是为了证明它可以在单个包中生成相同命名空间的类。(我将更新我的问题)逻辑,这只是为了证明在单个包中生成相同名称空间的类是可能的。(我将更新我的问题)