0
Class Services.TestClass Extends (%RegisteredObject, %XML.Adaptor)
{

Property DS As %XML.DataSet;

}

以及我的 Web 服务类中的以下 Web 方法:

Method HelloWorld(name As %String) As Services.TestClass [ WebMethod ]
{
Quit ##class(Services.TestClass).%New()
}

这将生成以下 XML:

<s:complexType name="TestClass">
<s:sequence>
<s:element minOccurs="0" name="DS" type="s0:DataSet"/>
</s:sequence>
</s:complexType>
<s:complexType name="s_DataSet">
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:schema>

我相信 s_DataSet 名称实际上应该只是 DataSet,因为 s0:DataSet 指向 DataSet,而不是 s_DataSet

当我使用使用该服务的客户端时,我收到以下错误:错误:找不到类型'DataSet@ http://tempuri.org '。(来自 SoapUI)

当我将 DataSet 属性从 TestClass 中取出并直接返回时,一切都很好。到底是怎么回事?

4

1 回答 1

0

您向我们展示的是(部分)WebService(类)的 WSDL。s_Dataset 只是一个名称,架构部分指的是架构元素。

调用 webService :

... Serivices.Client.cls?soap_method=HelloWorld&name=zzz

只是产生:

<SOAP-ENV:Envelope>
    <SOAP-ENV:Body>
        <HelloWorldResponse>
            <HelloWorldResult/>
        </HelloWorldResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

没有错误

于 2013-02-25T23:18:00.620 回答