我有几个全面的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,sandboxlist.xsd中的SandboxType
实际上应该是类com.domain.schema.model.v4_0.sandboxinfo.SandboxType
(来自不同的XSD)。
这个的正确语法是什么?
答案 0 :(得分:1)
您可以通过jaxb:class/@ref
:
<jaxb:class ref="com.domain.schema.model.v4_0.sandboxinfo.SandboxType" />
但是,更好,use episodes。使用-episode
CLI参数生成,然后将JAR添加到xjc
命令行。