2

私の問題は、2 つのスキーマ A.xsd B.xsd があることです。

どちらも同じルートを共有しています。

 A.xsd
 <xs:element name="A">
   <xs:complexType>
      .my elements on A
   </xs:complexType>
 </xs:element>

 B.xsd
 <xs:element name="A">
  <xs:complexType>
   .my elements on B
  </xs:complexType>
 </xs:element>

クラスを生成しようとすると、要素「A」がすでに定義されているという出力が得られます。そこで、xsd A を定義し、要素 A に対してクラス C を作成し、xsd B に対して要素 A に対してクラス D を作成する Binding ファイルを作成しました。

 X.xjb
 <bindings schemaLocation="A.xsd">
  <bindings node="//xs:element[@name='A']">
   <class name="C">
  </bindings>
 </bindings>

 <bindings schemaLocation="B.xsd">
  <bindings node="//xs:element[@name='A']">
   <class name="D">
  </bindings>
 </bindings>

しかし、機能しませんでした。同じエラーが出力されます。「A」は既に定義されているため、バインディングファイルでクラスの代わりにプロパティを使用してみました。

 X.xjb
 <bindings schemaLocation="A.xsd">
  <bindings node="//xs:element[@name='A']">
   <property name="C">
  </bindings>
 </bindings>

 <bindings schemaLocation="B.xsd">
  <bindings node="//xs:element[@name='A']">
   <property name="D">
  </bindings>
 </bindings>

、どちらも機能しませんでした

targetNamespace がありません

誰かがこのようなことをしたことがありますか?

4

1 に答える 1