从 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.
的架构
- 开始"New Soap Project",输入项目名称和WSDL位置;
选择 "Create Requests",取消选择其他选项并单击
好的。
- 左边"Project"树下,right-click一个接口
并选择 "Show Interface Viewer".
- Select "WSDL Content" 选项卡。
- 您应该会在右侧看到 WSDL 文本;查找以 "wsdl:types" 开头的块,下面是输入和输出消息的架构。
- 每个模式定义都以
<s:element name="GetWeather">
开头,以 </s:element>
结尾。
- 将块复制到文本编辑器中;在此块上方添加:
<?xml version="1.0" encoding="UTF-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- 在复制的XML块下方,添加
</s:schema>
- 决定是否需要 "UTF-16" 而不是 "UTF-8"
- "s:" 和 "xmlns:s" 应该与您复制的块匹配(步骤
5)
- 以“.xsd”扩展名保存此文件;如果你有“XML 复制
编辑器”或类似的工具(XML 间谍,可能)你应该检查一下
这是 well-formed XML 和有效架构。
- 对 soapUI 右侧窗格中的所有 "element" 项重复
直到你到达
- 这样你会得到一些你可能不会的类型定义
有兴趣。如果你想挑挑拣拣,用下面的
方法:
在类型定义下方的 WSDL 文本中查看 "wsdl:portType" 下的 "wsdl:operation" 项。他们将有 "wsdl:input" 和 "wsdl:output"。从 "wsdl:input" 和 "wsdl:output" 中获取消息名称。将它们与可能位于 WSDL 中 "wsdl:portType" 条目之上的 "wsdl:message" 名称进行匹配。从 "wsdl:message" 项中获取 "wsdl:part" 元素名称,并在 "wsdl:types" 下查找该名称作为元素名称。这些将是您感兴趣的架构。
使用 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),您甚至可以创建一个模拟服务,它会在您发送请求时做出响应。程序如下:
- 右键单击您的项目,然后 select 新建模拟服务选项,这将创建模拟服务。
- 右键单击模拟服务和 select 新的模拟操作选项,这将创建您可以用作模板的响应。
编辑#1:
查看 SoapUI link 以获得最新版本。有专业版,也有免费开源版。
最简单的方法是使用此 chrome 扩展程序 link,愉快的 Web 服务请求
有没有一种方法可以仅从 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.
的架构- 开始"New Soap Project",输入项目名称和WSDL位置; 选择 "Create Requests",取消选择其他选项并单击 好的。
- 左边"Project"树下,right-click一个接口 并选择 "Show Interface Viewer".
- Select "WSDL Content" 选项卡。
- 您应该会在右侧看到 WSDL 文本;查找以 "wsdl:types" 开头的块,下面是输入和输出消息的架构。
- 每个模式定义都以
<s:element name="GetWeather">
开头,以</s:element>
结尾。 - 将块复制到文本编辑器中;在此块上方添加:
<?xml version="1.0" encoding="UTF-8"?> <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- 在复制的XML块下方,添加
</s:schema>
- 决定是否需要 "UTF-16" 而不是 "UTF-8"
- "s:" 和 "xmlns:s" 应该与您复制的块匹配(步骤 5)
- 以“.xsd”扩展名保存此文件;如果你有“XML 复制 编辑器”或类似的工具(XML 间谍,可能)你应该检查一下 这是 well-formed XML 和有效架构。
- 对 soapUI 右侧窗格中的所有 "element" 项重复 直到你到达
- 这样你会得到一些你可能不会的类型定义 有兴趣。如果你想挑挑拣拣,用下面的 方法: 在类型定义下方的 WSDL 文本中查看 "wsdl:portType" 下的 "wsdl:operation" 项。他们将有 "wsdl:input" 和 "wsdl:output"。从 "wsdl:input" 和 "wsdl:output" 中获取消息名称。将它们与可能位于 WSDL 中 "wsdl:portType" 条目之上的 "wsdl:message" 名称进行匹配。从 "wsdl:message" 项中获取 "wsdl:part" 元素名称,并在 "wsdl:types" 下查找该名称作为元素名称。这些将是您感兴趣的架构。
由于您是说网络服务现在不可用,您可以通过创建将创建示例响应格式的模拟服务来实现。
试试这个在线工具: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),您甚至可以创建一个模拟服务,它会在您发送请求时做出响应。程序如下:
- 右键单击您的项目,然后 select 新建模拟服务选项,这将创建模拟服务。
- 右键单击模拟服务和 select 新的模拟操作选项,这将创建您可以用作模板的响应。
编辑#1:
查看 SoapUI link 以获得最新版本。有专业版,也有免费开源版。
最简单的方法是使用此 chrome 扩展程序 link,愉快的 Web 服务请求