0

次の形式のサービス定義を持つ Web サービスに接続しています

<main>
  <header>
     <data>xyz</data>
  </header>
  <test>
   <![CDATA[<xml><a></a><b></b></xml>]]>
  </test> 
</main>

jaxb を使用して cdata 構造体のクラス ファイルを作成するにはどうすればよいですか

4

2 に答える 2

1

最初に xml-schema 形式 (XSD) を使用してスキーマを定義し、次に xjc コンパイラ (xsd Java コンパイラ) を実行してクラスを生成します。クラスが生成されたら、@WebService アノテーションを使用して Web サービスを作成できます。数か月前にいくつかの例をブログに投稿しました。http://plindenbaum.blogspot.com/2006/12/java-16-mustang-jaxb-and.htmlおよびhttp://plindenbaum.blogspot.com/2008を参照してください。 /11/web-service-for-onsolability.html .

それが役に立てば幸い

于 2009-06-05T15:53:30.540 に答える
0

JAXBは、CDATA宣言でラップされたものを解析できません。XMLパーサーは常に文字列を報告します。

これを解析する場合は、次のことを行う必要があります。

  • 元のスキーマでJAXBを実行します。これにより、「test」の内容が文字列または「any」として指定されます(そうでない場合は、CDATA宣言を含めることはできません)。

  • 「test」要素のコンテンツを定義するセカンダリスキーマでJAXBを実行します。

実行時に、JAXBを使用してXMLドキュメントを解析してから、「test」要素に移動し、JAXBを使用してその要素を再度解析する必要があります。別の方法はありません。

お役に立てれば。

于 2009-06-08T09:43:35.013 に答える