2011-01-19 5 views
1

JAXBのxjcコマンドで生成した2つのXSDがあります。データ型とのMapTypeは2つのXSDからの両方であることを、私は最初のXSDからItemオブジェクトを使用しようとしていますJAXB multiple xsd

http://www.imsglobal.org/xsd/imscp_v1p1.xsdhttp://www.mmtech.ru/adlcp_v1p3.xsd

よう
ItemType item = factory.createItemType();
DataType dataType = factory.createDataType();
MapType mapType = factory.createMapType();
dataType.getMap().add(mapType);
item.getAny().add(dataType);

注意。 com.sun.istack.SAXException2:

私はxmlファイルは一つの問題のために期待して生成することができ、それが起因する誤差

を与えていることための要素としてタイプ「packagename.DataType」をマーシャリングすることができません@XmlRootElement注釈がありません

DataTypeクラスに@XmlRootElementを追加しようとしましたが、ns2:dataTypeを作成する代わりに、以下のXMLを作成しました。

 <item> 
      <dataType> 
       <ns2:map targetID="targetid" writeSharedData="false"/> 
      </dataType> 
     </item> 

助けてください。ありがとうございました

+0

xjcを両方のスキーマで1回実行しましたか、各スキーマファイルごとに1回実行しましたか? – Robert

+0

私は両方のために一度それを走らせました。 – mezzie

答えて

1

私自身の質問にお答えします。

DataTypeクラスをJAXBElementに変換する必要があります。

JAXBElement dataTypeElement = factory.createData(dataType); 
item.getAny().add(dataTypeElement); 
関連する問題