新建SOAP请求
此命令将创建一个新的SOAP请求文档。它涉及以下步骤:
2.服务器将返回一个操作列表。选择所需的SOAP操作。
3.服务器将返回一个以XML格式的SOAP请求表单。定义SOAP请求表单。
我们通过为美国国家数字预报数据库(NDFD)SOAP服务(http://www.nws.noaa.gov/xml/)创建一个SOAP请求来演示这一过程。
连接到SOAP服务器
该连接是通过WSDL文件建立的。在本例中,WSDL文件的URI是:http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl。要建立连接,请单击新建SOAP请求命令,然后在出现的对话框(参见下方截图)中输入文件URI。
单击确定以确认选择。
选择所需的SOAP操作
服务器返回一个操作列表,它们显示在对话框中(参见下方截图)。
选择一个操作并单击确定。我们选择了NDFDgenByDay操作。
定义SOAP请求
服务器将发送一个XML文件,该文件显示在XMLSpy的文本视图中。对于所选的操作,我们收到了以下XML文件。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.weather.gov/forecasts/xml/DWMLgen/schema/DWML.xsd">
<SOAP-ENV:Body>
<m:NDFDgenByDay xmlns:m="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<latitude xsi:type="xsd:decimal">0.0</latitude>
<longitude xsi:type="xsd:decimal">0.0</longitude>
<startDate xsi:type="xsd:date">1967-08-13</startDate>
<numDays xsi:type="xsd:integer">0</numDays>
<format xsi:type="m0:formatType">String</format>
</m:NDFDgenByDay>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我们按照XML的要求填写了参数(参见下文中红色粗体部分;在开始日期中填写当前日期或下周内某个日期):
<SOAP-ENV:Body>
<m:NDFDgenByDay xmlns:m="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<latitude xsi:type="xsd:decimal">45</latitude>
<longitude xsi:type="xsd:decimal">-90</longitude>
<startDate xsi:type="xsd:date">2019-12-10</startDate>
<numDays xsi:type="xsd:integer">1</numDays>
<format xsi:type="m0:formatType">24 hourly</format>
</m:NDFDgenByDay>
</SOAP-ENV:Body>
这样就完成了这个SOAP请求的定义。在下一步中,我们将发送请求。