定义包时为目标命名空间定义了多个<schemaBindings>
Multiple <schemaBindings> are defined for the target namespace when defining package
我的项目中有 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/"
如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我所有的 类 放在一个名为 "jeff-test.namespaceA" 的包中,用于命名空间 A 和所有来自命名空间 B 的包包裹 "com.xsdSecondary".
我想将命名空间-A 中的所有 类 放入一个包中,将命名空间-B 中的所有 类 放入另一个包中。
这可能吗?
Multiple are defined for the target namespace "http://www.jeff-test.org/namespaceA/"
如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我所有的 类 放入一个名为 "jeff-test.namespaceA" 的包中,用于命名空间 A...
只需删除 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
每个命名空间被认为一次,它绑定到哪个模式文件并不重要(只要该文件是编译的一部分)。
我的项目中有 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/"
如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我所有的 类 放在一个名为 "jeff-test.namespaceA" 的包中,用于命名空间 A 和所有来自命名空间 B 的包包裹 "com.xsdSecondary".
我想将命名空间-A 中的所有 类 放入一个包中,将命名空间-B 中的所有 类 放入另一个包中。
这可能吗?
Multiple are defined for the target namespace "http://www.jeff-test.org/namespaceA/"
如果我删除绑定文件中的前两个条目,那么生成工作正常,但它会将我所有的 类 放入一个名为 "jeff-test.namespaceA" 的包中,用于命名空间 A...
只需删除 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
每个命名空间被认为一次,它绑定到哪个模式文件并不重要(只要该文件是编译的一部分)。