次の形式のサービス定義を持つ Web サービスに接続しています
<main>
<header>
<data>xyz</data>
</header>
<test>
<![CDATA[<xml><a></a><b></b></xml>]]>
</test>
</main>
jaxb を使用して cdata 構造体のクラス ファイルを作成するにはどうすればよいですか
最初に 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 .
それが役に立てば幸い
JAXBは、CDATA宣言でラップされたものを解析できません。XMLパーサーは常に文字列を報告します。
これを解析する場合は、次のことを行う必要があります。
元のスキーマでJAXBを実行します。これにより、「test」の内容が文字列または「any」として指定されます(そうでない場合は、CDATA宣言を含めることはできません)。
「test」要素のコンテンツを定義するセカンダリスキーマでJAXBを実行します。
実行時に、JAXBを使用してXMLドキュメントを解析してから、「test」要素に移動し、JAXBを使用してその要素を再度解析する必要があります。別の方法はありません。
お役に立てれば。