如何从 xsd 创建 wsdl

use*_*040 2 c# xsd wsdl

我想使用 3 个 xsd 文件创建一个 wsdl。你怎么看?

我在命令提示符下试过这个:

wsdl.exe /language:cs /parameters: c:\myService\Contract\HeaderData.xsd c:\myService\Contract\MyData.xsd c:\myService\Contract\Messages.xsd /out: MyWsdl.wsdl
Run Code Online (Sandbox Code Playgroud)

我怎么了?

Pet*_*dea 5

我相信这里有一个误解。wsdl.exe您插图中的很可能指的是Microsoft 的工具,其描述为:

Web 服务描述语言工具从 WSDL 合同文件、XSD 模式和 .discomap 发现文档为 XML Web 服务和 XML Web 服务客户端生成代码

从您要求输出为 WSDL 文件似乎暗示,我可以有把握地假设您确实尝试从 XSD 文件开始创建 WSDL 文件。下面我试图解释为什么你不能那么容易地做到这一点,以及你有哪些选择。

下图向您展示了 WSDL 1.1 规范背后的模型。

WSDL 1.1 XSD 的 QTAssistant 数据集视图

您的 XSD 完全适合,并且仅适用types。它是 WSDL 术语,types代表您的类型系统,用于描述构成消息的部分,然后用于描述组织为绑定到应用程序/传输协议的端口(抽象接口)的操作的输入/输出和故障,并最终(物理上) ) 在一个或多个网络端点作为服务访问。

为了从 XSD 生成 WSDL,您现在意识到您需要向工具提供更多数据,该工具会自动为您生成 WSDL。例如,您想在 WSDL 中描述哪些操作?对于他们中的每一个,输入是什么,最有可能是输出,也许是一个或多个故障?您将如何对它们进行分组(portType = interface)?您想使用什么绑定:HTTP、SOAP?什么版本的 SOAP?SOAP over:HTTP、MQ?肥皂动作?有多少 WSDL 文件:1 个,或者 3 个?

一些工具可能会按照上述方式向您提出一系列问题(数据输入/向导),然后为您创建 WSDL。其他人,在 XSD 架构构造的实现中使用预定义的模式(例如,IFX有一种定义请求/响应元素的方法),因此基于这些假设,诸如QTAssistant(我与它相关联)之类的专用工具会问你更少问题,同时仍在创建 WSDL。

我记得有一两个在线工具可以让用户上传 XSD 文件,然后在提示您几个问题后创建 WSDL,但我似乎再也找不到它们了……有点像这个.. .