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>

我的 jaxws Web 服务以解析错误拒绝此操作。此外,如果我尝试使用 soapui 验证这个 xml,它会说只有元素内容类型的正文不能有文本元素。

我的问题是,那个 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 部分以九字符分隔符 ![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 回答