【发布时间】:2019-01-04 16:31:13
【问题描述】:
我正在尝试在参数是复杂类型的情况下发出 SOAP 请求,但我无法正确获取语法。
- WSDL:https://www.dayforcehcm.com/DataSvc/DayforceService.svc?singleWsdl
- 操作:IDayforceService/Query
这是由 SoapUI 生成的 SOAP 请求:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://Dayforce/Services/DayforceService">
<SOAP-ENV:Body>
<ns1:Query>
<ns1:sessionTicket>?</ns1:sessionTicket>
<ns1:request/>
</ns1:Query>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我的问题是如何填写<ns1:request/> 元素。请求应该是GetReportDefinitionsRequest,并且需要为XRefCode提供一个字符串值。
SoapUI 在这里没有太大帮助,我尝试过的类生成器的 WSDL 也有类似的问题。在这一点上,我会满足于只知道正确的 XML 语法
以下是相关类型(也可在上面的 WSDL 中找到)。
查询:
<xs:element name="Query">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="sessionTicket" nillable="true" type="xs:string"/>
<xs:element xmlns:q9="http://Dayforce/Services/Data" minOccurs="0" name="request" nillable="true" type="q9:DFRequest"/>
</xs:sequence>
</xs:complexType>
</xs:element>
GetReportDefinitionsRequest:
<xs:complexType name="GetReportDefinitionsRequest">
<xs:complexContent mixed="false">
<xs:extension base="tns:DFRequest">
<xs:sequence>
<xs:element minOccurs="0" name="XRefCode" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="GetReportDefinitionsRequest" nillable="true" type="tns:GetReportDefinitionsRequest"/>
DF 请求:
<xs:complexType name="DFRequest">
<xs:complexContent mixed="false">
<xs:extension base="tns:DFObject">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="DFRequest" nillable="true" type="tns:DFRequest"/>
DF 对象:
<xs:complexType name="DFObject">
<xs:sequence/>
</xs:complexType>
<xs:element name="DFObject" nillable="true" type="tns:DFObject"/>
【问题讨论】: