0

私のWebサービスは、次のようなサードパーティからxmlを受信して​​います。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
&lt;Foo&gt;bar&lt;/Foo&gt;
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

私のjaxwsWebサービスは、解析エラーでこれを拒否します。また、soapuiを使用してこのxmlを検証しようとすると、要素のみのコンテンツタイプのBodyはテキスト要素を持つことができないと表示されます。

私の質問は、そのxmlは有効ですか?または、クライアントは<と>をエスケープせずに何かを送ってくれるはずです。

xml標準またはルールへの参照は大歓迎です。

4

2 に答える 2

2

これは確かに有効な XML です。ただし、あなたの質問は、より制限的な質問である SOAP プロトコルに準拠しているかどうかのようです。

この例では、SOAP 本文は単なるテキスト要素です。私は SOAP の専門家ではありませんが、私が目にするすべての SOAP の例では、テキストだけでなく本文にも要素ノードがあります。また、SOAP 勧告 ( http://www.w3.org/TR/2000/NOTE-SOAP-20000508 ) は言う

「本文エントリは、その完全修飾要素名によって識別されます」

これは、テキストではなく要素の要件を示唆しています。

于 2010-02-23T03:54:09.610 に答える
1

または、CDATA (文字データ) セクションで囲むことにより、文字列全体をエスケープすることもできます。CDATA セクションは、9 文字の区切り記号 ![CDATA[ で始まり、区切り記号 ]] で終わります。

  <![CDATA["Me, Myself & <I>"]]>

ここを見てくださいhttp://xmmssc-www.star.le.ac.uk/SAS/xmmsas_20070308_1802/doc/param/node24.html

于 2010-02-22T22:06:05.723 に答える