[英]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.