1

我有几个全面的 XSD,其中包括相同成员的相同 complexType 定义。每个 XSD 都有自己的命名空间。因此,当我xjc在 xsds 上运行时,我会在每个命名空间中生成相同的 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>

我希望告诉 XJCSandboxType在 sandboxlist.xsd 实际上应该是类com.domain.schema.model.v4_0.sandboxinfo.SandboxType(来自不同的 XSD)。

什么是正确的语法?

4

1 回答 1

1

您可以通过以下方式实现jaxb:class/@ref

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

但是,最好使用 episodes。使用-episodeCLI 参数生成,然后将您的 JAR 添加到xjc命令行。

于 2015-09-24T19:01:22.773 回答