2

私は次のようなxmlコンテンツを取得します:

<data>
   <randomtagname>
      <name>....</name>
      <description>.....</description>
      <description>.....</description>
   </randomtagname>
   <anotherrandomtagname>
      <name>....</name>
      <description>.....</description>
   </anotherrandomtagname>
   <thirdridiculousrandomtagname>
      <name>....</name>
      <description>.....</description>
      <description>.....</description>
   </thirdridiculousrandomtagname>
       .
       .
       .
</data>

@XmlAnyElement を使用せずに、注釈付きの Java クラスを作成し、jaxb を使用してこのファイルを un-/marshall することは可能ですか??

4

1 に答える 1

1

私にはオブジェクトのリストのように見えます。を持つJavaクラスを作成します

 List<Object> data
変数。そのための注釈は必要ありません。

基本的に、xml インターフェースは、異なるフィールドを持つ可能性のある異なるオブジェクトのリストを受け入れるのに十分な汎用性が必要です。このインターフェイスが Java オブジェクトのリストを受け入れると、それらが何であるかを判断し、正しいクラス タイプにキャストするのは Java コード次第です。その部分には instanceOf を使用します。これの一部は、任意のオブジェクトを渡すことができる Java ジェネリックで説明されていますが、キャストするものを決定する必要があります。実際のクラス形式で送信される限り、instanceof は機能すると思います。オブジェクトのリストを送信するのではなく、String、Integer、または Myclass1、Myclass2 などのカスタム クラスなどのリストを送信します。次に、そのリストを読んだら、instanceof を使用して、リスト内の各オブジェクトのオブジェクト タイプを特定します。それは、String、Myclass1、Myclass2 などのインスタンスであるかどうかを判断し、適切にキャストします。

あなたの質問を詳しく読んで、あなたが本当に知る必要があることを見逃しているかもしれません。たぶん、このリンクには何か役立つものがあります。jaxb ヘルプ

于 2012-06-08T16:19:09.073 に答える