首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义包时,为目标命名空间定义了多个<schemaBindings>。

定义包时,为目标命名空间定义了多个<schemaBindings>。
EN

Stack Overflow用户
提问于 2015-12-09 11:05:27
回答 1查看 4.8K关注 0票数 2

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

我希望将XSD-1,XSD-2 (相同的命名空间)生成到一个包中。然后将XSD-3生成到不同的包中。

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

如果我宣布

代码语言:javascript
复制
<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>

然后我得到了错误:

代码语言:javascript
复制
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到另一个包中的所有类。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-09 12:10:32

如果我删除绑定文件中的前两个条目,那么多个类是为目标命名空间"http://www.jeff-test.org/namespaceA/“定义的,那么生成工作,但是它将我的所有类放在一个名为”Jeff-test.NampaceA“的包中,用于namespaceA.

只需删除namespaceA的一个条目即可。移除两者的逻辑是什么?

代码语言:javascript
复制
<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,它绑定到哪个模式文件并不重要(只要这个文件是编译的一部分)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34177219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档