2013-01-09 71 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

相關問題