将外部自定义绑定应用于包含的架构

时间:2013-01-09 19:07:29

标签: java java-ee jaxb jaxb2

我正在使用binding.xjb将自定义绑定应用于main.xsd。工作正常。

我想将main.xsd分解为包括说“common.xsd”,但这样做会破坏我的binding.xjb。

示例:下面是我的binding.xjb(其中一个出价)

<jaxb:bindings node="/xsd:schema/xsd:complexType[@name='Job']/xsd:attribute[@name='stagingId']">
  <jaxb:property generateIsSetMethod="true"/>
</jaxb:bindings>

如果我必须将元素“Job”移动到common.xsd?

,我应该如何更改此绑定

我已经尝试过以下哪些不能正常工作

// Because noew "common.xsd" will have its own "xsd:schema" element 
node="/xsd:schema/xsd:schema/xsd:complexType[@name='Job']/xsd:attribute[@name='stagingId']"

node="//xsd:complexType[@name='Job']/xsd:attribute[@name='stagingId']"

据我了解 - 诀窍是编写适当的XPATH来到达该节点。

任何指针都将受到高度赞赏。
Karephul

更新:我发现这些自定义绑定可以内联移动到定义元素的位置。

1 个答案:

答案 0 :(得分:0)

您可以利用剧集文件。当您从另一个导入先前生成的类的XML模式生成类时,Episode文件允许您重用从一个XML模式生成的工件。

以下是您如何制作剧集文件的示例。

xjc -b binding1.xml -episode common.episode common.xsd

以下是您如何使用和剧集文件的示例。

xjc -d out main.xsd -extension -b common.episode   

完整示例