繁体   English   中英

JAXB:如何指定由另一个XSD生成complexType的绑定规则?

[英]JAXB: how to specify that a binding rule that a complexType is generated by a different XSD?

我有几个全面的XSD,其中包括针对同一成员的相同complexType定义。 每个XSD都有自己的名称空间。 因此,当我在xsds上运行xjc时,我会在每个命名空间中生成相同的complexType类。

最终导致处理起来极为混乱和复杂。 我想创建一个绑定,该绑定告诉XJC不要为其中一个XSD生成complexType,而是使用另一个xsd已经生成的类。

我已经尝试了以下方法,但均未成功:

   <jaxb:bindings schemaLocation="../xsd/sandboxlist.xsd">
        <jaxb:bindings node="/xsd:schema">
            <jaxb:schemaBindings>
                <jaxb:package name="com.domain.schema.model.v4_0.sandboxlist"/>
            </jaxb:schemaBindings>
        </jaxb:bindings>
        <jaxb:bindings node="//xsd:complexType[@name='SandboxType']">
            <jaxb:class name="com.domain.schema.model.v4_0.sandboxinfo.SandboxType" />
        </jaxb:bindings>
    </jaxb:bindings>

我想告诉XJC, SandboxType中的SandboxType实际上应该是com.domain.schema.model.v4_0.sandboxinfo.SandboxType类(来自不同的XSD)。

正确的语法是什么?

您可以通过jaxb:class/@ref

<jaxb:class ref="com.domain.schema.model.v4_0.sandboxinfo.SandboxType" />

但是,最好使用情节 使用-episode CLI参数生成,然后将JAR添加到xjc命令行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM