質問

たとえば、SOAPリクエストメッセージのタグコンテンツとしてxmlをWebサービスに送信する必要があるシナリオがあります。

<arg_1><xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag></arg_1></code>

arg_1 は Web サービスへの String パラメーターです。そこで、このために CDATA セクションを導入しました

<arg_1><![CDATA[<xml version="1.0" encoding="UTF-8"?><sometag><somemoretag>abcd</somemoretag></sometag>]]></arg_1>

しかし、これでは例外がスローされ続けます

org.xml.sax.SAXException:WSWS3084E:エラー:SimpleDeserializer は、逆シリアル化しようとしたもので、予期しない子要素を検出しました。解析中のメッセージ:

この例外が引き続き発生します。これを見たことがありますか??

役に立ちましたか?

解決

これに対処する方法はいくつかあります -

  1. XML プロローグを削除し、元の XML ドキュメントを他のドキュメントの要素のコンテンツに挿入します。
<arg_1><sometag><somemoretag>abcd</somemoretag></sometag></arg_1>
  1. 他のテキスト コンテンツと同様に元の XML ドキュメントをエスケープし、結果のテキストを要素のコンテンツに挿入します。
<arg_1>&lt;sometag&gt;&lt;somemoretag&gt;abcd&lt;/somemoretag&gt;&lt;/sometag&gt;</arg_1>

他のヒント

私のXMLは正常にCDATA内ではなかった前記

私は、同様の問題に直面していました。 タグは文字列として扱われるようにするために、あなたは以下のように使用する必要があります:

 <![CDATA[ ---your xml---- ]]>

しかし、あなたが使用していませんか? XMLバージョンの前に。タグはする必要があります <?xml version="1.0" encoding="UTF-8" standalone="yes"?> あなたのケースその<xml version="1.0" encoding="UTF-8" standalone="yes"?>に。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top