从 WSDL 生成 Request/Response XML

Generating Request/Response XML from a WSDL

有没有一种方法可以仅从 WSDL 文件生成请求和响应 XML 格式 - 如果网络服务现在不可用。

SoapUI 不给我响应,除非它通过请求联系 Web 服务。有没有其他工具可以做到这一点?

我应该假设此信息可用 - 因为没有它 - 客户端存根框架(如 Axis/JAXWS 等)将无法生成用于生成请求然后解释响应的存根。

亲自执行此操作将使您深入了解 WSDL 的结构以及它如何完成您的工作。这是一个很好的学习机会。这可以使用 soapUI 来完成,如果您只有 WSDL 的 URL。 (我使用的是 soapUI 5.2.1)如果您实际上拥有完整的 WSDL 作为可用文件,您甚至不需要 soapUI。问题的标题说 "Request & Response XML" 而问题 body 说 "Request & Response XML formats" 我将其解释为请求和响应的模式。无论如何,以下内容将为您提供可在 XSD2XML 上用于生成样本 XML.

的架构
  1. 开始"New Soap Project",输入项目名称和WSDL位置; 选择 "Create Requests",取消选择其他选项并单击 好的。
  2. 左边"Project"树下,right-click一个接口 并选择 "Show Interface Viewer".
  3. Select "WSDL Content" 选项卡。
  4. 您应该会在右侧看到 WSDL 文本;查找以 "wsdl:types" 开头的块,下面是输入和输出消息的架构。
  5. 每个模式定义都以 <s:element name="GetWeather"> 开头,以 </s:element> 结尾。
  6. 将块复制到文本编辑器中;在此块上方添加: <?xml version="1.0" encoding="UTF-8"?> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  7. 在复制的XML块下方,添加</s:schema>
  8. 决定是否需要 "UTF-16" 而不是 "UTF-8"
  9. "s:" 和 "xmlns:s" 应该与您复制的块匹配(步骤 5)
  10. 以“.xsd”扩展名保存此文件;如果你有“XML 复制 编辑器”或类似的工具(XML 间谍,可能)你应该检查一下 这是 well-formed XML 和有效架构。
  11. 对 soapUI 右侧窗格中的所有 "element" 项重复 直到你到达
  12. 这样你会得到一些你可能不会的类型定义 有兴趣。如果你想挑挑拣拣,用下面的 方法: 在类型定义下方的 WSDL 文本中查看 "wsdl:portType" 下的 "wsdl:operation" 项。他们将有 "wsdl:input" 和 "wsdl:output"。从 "wsdl:input" 和 "wsdl:output" 中获取消息名称。将它们与可能位于 WSDL 中 "wsdl:portType" 条目之上的 "wsdl:message" 名称进行匹配。从 "wsdl:message" 项中获取 "wsdl:part" 元素名称,并在 "wsdl:types" 下查找该名称作为元素名称。这些将是您感兴趣的架构。

您可以在 http://www.webservicex.com/globalweather.asmx?wsdl

使用 WSDL 尝试上述过程

由于您是说网络服务现在不可用,您可以通过创建将创建示例响应格式的模拟服务来实现。

试试这个在线工具:https://www.wsdl-analyzer.com。它似乎是免费的,而且不仅仅是为请求和响应生成 XML。

还有这个:https://www.oxygenxml.com/xml_editor/wsdl_soap_analyzer.html,可以下载,但是免费。

Parasoft 是一个可以做到这一点的工具。我在过去的工作场所使用此工具完成了这件事。您可以在 Parasoft SOATest 中生成请求并在 Parasoft Virtualize 中获得响应。不过确实要花钱。 但是,Parasoft Virtualize 现在有一个免费的社区版,您可以从中从 WSDL 生成响应消息。您可以从 parasoft community edition

下载

我使用 SOAPUI 5.3.0,它有一个创建 requests/responses 的选项(也使用 WSDL),您甚至可以创建一个模拟服务,它会在您发送请求时做出响应。程序如下:

  1. 右键单击您的项目,然后 select 新建模拟服务选项,这将创建模拟服务。
  2. 右键单击模拟服务和 select 新的模拟操作选项,这将创建您可以用作模板的响应。

编辑#1:

查看 SoapUI link 以获得最新版本。有专业版,也有免费开源版。

最简单的方法是使用此 chrome 扩展程序 link,愉快的 Web 服务请求