XStreamMarshallerを使用してJavaSpringプロジェクトでXML出力を生成しようとしています。私が生成しているXMLには、要素テキストにCDATA値が含まれています。次のように、コマンドオブジェクトにこのCDATAテキストを手動で作成しています。
f.setText("<![CDATA[cdata-text]]>");
XStreamMarshallerは、要素(以下のテキストデータはエイリアスです)を次のように生成しました。
<text-data><![CDATA[cdata-text]]></text-data>
上記のXML表示は期待どおりです(上記の要素名のバックスラッシュは無視してください:フォーラムのフォーマット)。しかし、生成されたXML出力でソースの表示<text-data><![CDATA[cdata-text]]></text-data>
を実行すると、要素に対して次のように表示されます。
問題:
ご覧のとおり、ビューソースでは、より小さい文字<
とより大きい文字が置き換えられています。>
クライアントがソースを読み取り、XML出力からCDATAセクションを識別する必要がありますが、上記のシナリオではそうではありません。
XStreamMarshallerに、提供したテキストの特殊文字をエスケープさせる方法はありますか?
マーシャラーのエンコーディングをISO-8859-1に設定しましたが、それも機能しません。XStreamMarshallerで上記を実行できない場合は、これを実行できる代替のマーシャラー/アンマーシャラーを提案できますか?
//以下のPaŭloEbermannによって提案されたように、XMLとビューソースを表示します。
XMLビュー(IEで表示):
An invalid character was found in text content. Error processing resource 'http://localhost:8080/file-service-framework/fil...
Los t
ソースを表示:
<service id="file-text"><text-data><![CDATA[
Los túneles a través de las montañas hacen más fácil viajar por carretera.
]]></text-data></service>
どうもありがとうございます。