1

カスタム バインディングを main.xsd に適用するために binding.xjb を使用しています。正常に動作します。

「common.xsd」と言うように main.xsd を分解したいのですが、そうすると binding.xjb が壊れてしまいます。

例: 以下は私の binding.xjb (入札の 1 つ) です。

<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 スキーマから生成された成果物を再利用できます。

以下は、エピソード ファイルの作成方法の例です。

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

以下は、エピソード ファイルを使用する方法の例です。

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

完全な例

于 2013-01-09T19:13:04.087 に答える