1

我正在使用 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 以到达该节点。

任何指针将不胜感激。
卡勒菲尔

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

4

1 回答 1

0

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

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

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

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

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

完整示例

于 2013-01-09T19:13:04.087 回答