PHP SoapFault在soapUI中不符合WSDL模式?

PHP SoapFault在soapUI中不符合WSDL模式?,php,web-services,wsdl,soapui,Php,Web Services,Wsdl,Soapui,我今天遇到了一个奇怪的,它是这样的: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>ERR_

我今天遇到了一个奇怪的,它是这样的:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring>ERR_102</faultstring>
         <faultactor/>
         <detail>IP error message</detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我正在为QAing我的一个web服务设置测试套件,它是 用PHP5编写-使用类等

我使用该类将错误消息返回给客户端。例如:

if (!$this->CheckHost(getenv('REMOTE_ADDR')))
{
    return new SoapFault(S_CLIENT, S_STRING_IP, "", S_DETAIL_IP);
}
如果客户端未经授权,则返回SoapFault

现在,如果我在其中添加一个模式符合性断言 告诉我返回的消息不符合它的wsdl文件

WSDL文件由我编写,实际上不包含描述 实际SoapFault类的。需要吗?我想不是因为 SoapFault在SOAP1.1中有详细说明

实际响应如下所示:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring>ERR_102</faultstring>
         <faultactor/>
         <detail>IP error message</detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP-ENV:客户端
错误102
IP错误消息
soapUI错误消息为:

仅包含元素的元素“详细信息” 内容类型不能包含文本内容

有人知道我做错了什么吗

短暂性脑缺血发作

K

soap 1.1 xml模式()将细节元素定义为

   <xs:complexType name="detail"><xs:sequence> 
      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> 
    </xs:sequence> 
    <xs:anyAttribute namespace="##any" processContents="lax" /> 
  </xs:complexType> 

这意味着它不能像你的错误那样只包含文本。尝试将响应更改为以下内容

...
   <detail><msg>IP error message</msg></detail>
...
。。。
IP错误消息
...
希望这有帮助

问候,

/奥立
eviware.com

谢谢你的回复,我试了一下,发现出于某种原因“.S\u SOAP\u FAULT\u DETAIL\u INVALID\u TICKET.”“get已转义到html ltMSGgt。。。soapUI会告诉我一个错误,说明“未执行的CDATA”。你知道如何传递错误细节吗?短暂性脑缺血发作