gpt4 book ai didi

jaxb - 使用 JAXB 2.1 将多个模式编译到不同的包中

转载 作者:行者123 更新时间:2023-12-04 01:45:45 25 4
gpt4 key购买 nike

我有一个 CommonTypes.xsd,我使用 xs:include 将它包含在我的所有其他 XSD 中。我明白了

Multiple <schemaBindings> are defined for the target namespace ""

当我尝试使用绑定(bind)文件将其编译成不同的包时。请告诉我是否有办法将它们编译成不同的包。我正在使用 jaxb 2.1

最佳答案

是的,有办法。
假设:

xsd/common/common.xsd
xsd/foo/foo.xsd

在公共(public)目录中 common.xjb :
<jxb:schemaBindings>
<jxb:package name="mypkg.common">
</jxb:package>
</jxb:schemaBindings>

在 foo 目录中放置 foo.xjb :
<jxb:schemaBindings>
<jxb:package name="mypkg.foo">
</jxb:package>
</jxb:schemaBindings>

build.xml文件,为每个创建一个 xjc 任务:
<xjc destdir="${app.src}" readOnly="true" package="mypkg.common">
<schema dir="${app.schema}/common" includes="*.xsd" />
<binding dir="${app.schema}/common" includes="*.xjb" />
</xjc>
<xjc destdir="${app.src}" readOnly="true" package="mypkg.foo">
<schema dir="${app.schema}/foo" includes="*.xsd" />
<binding dir="${app.schema}/foo" includes="foo.xjb" />
</xjc>

您需要确保 common.xsd有一个 targetNameSpace这与 foo.xsd 不同的 targetNameSpace .

关于jaxb - 使用 JAXB 2.1 将多个模式编译到不同的包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com