2013-01-09 48 views
1

我正在使用binding.xjb将自定义绑定应用于main.xsd。工作正常。将外部自定义绑定应用于包含的模式

我想打破main.xsd包含说“common.xsd”,但这样做会破坏我的binding.xjb。

例如:下面是我的binding.xjb(该bidnings之一)

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

我应该如何改变这种结合,如果我有移动的元素“作业”来common.xsd?低于该

我已经试过din't工作

// 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

你可以利用插曲文件来做到这一点。当您从另一个XML模式生成类时,情景模式文件允许您重用从一个XML模式生成的工件,该模式导入您之前生成的类。

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

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

下面是你如何消费和剧集文件的例子。

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

全部实施例

+0

我使用行家和我看到它被声明为 LLC/API /消息/ main.xsd mhs/api/message/binding.xjb karephul

+0

因此,真正最好的方法是编写适当的XPATH,而不是与构建系统混淆。 – karephul

相关问题