我的项目中有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.NampaceA”,用于namespaceA,而在包"com.xsdSecondary“中,所有这些条目都来自namespaceB。
我希望从名称空间-A到一个包中的所有类,以及从命名空间-B到另一个包中的所有类。
这个是可能的吗?
发布于 2015-12-09 12:10:32
如果我删除绑定文件中的前两个条目,那么多个类是为目标命名空间"http://www.jeff-test.org/namespaceA/“定义的,那么生成工作,但是它将我的所有类放在一个名为”Jeff-test.NampaceA“的包中,用于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,它绑定到哪个模式文件并不重要(只要这个文件是编译的一部分)。
https://stackoverflow.com/questions/34177219
复制相似问题