我正在使用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
更新:我发现这些自定义绑定可以内联移动到定义元素的位置。
答案 0 :(得分:0)
您可以利用剧集文件。当您从另一个导入先前生成的类的XML模式生成类时,Episode文件允许您重用从一个XML模式生成的工件。
以下是您如何制作剧集文件的示例。
xjc -b binding1.xml -episode common.episode common.xsd
以下是您如何使用和剧集文件的示例。
xjc -d out main.xsd -extension -b common.episode
完整示例