2013-03-27 39 views
0

创建WSDL我想用3 XSD的文件来创建一个WSDL。你怎么样?如何从XSD

我在命令提示符下尝试这样做:

wsdl.exe /language:cs /parameters: c:\myService\Contract\HeaderData.xsd c:\myService\Contract\MyData.xsd c:\myService\Contract\Messages.xsd /out: MyWsdl.wsdl 

什么我错了吗?

+0

我看到有人编码如下:Wsdl.exe用/语言:CS /参数:标题:C:\为myService \合同\ HeaderData.xsd数据:C:\为myService \合同\ MyData.xsd消息:C :\ myService \ Contract \ Messages.xsd/out:MyWsdl.wsdl。这很傻。但我忘了写这个命令。 – user1531040 2013-03-28 07:49:22

回答

3

我相信有一个误解在这里。最有可能在你的插图中wsdl.exeMicrosoft's tool,被描述为:

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

从你似乎暗示的要求输出为WSDL文件,我可以安全地假设你真的尝试从XSD文件开始创建一个WSDL文件。下面我试图解释为什么你不能那么简单,以及你有什么选择。

下图显示了WSDL 1.1规范背后的模型。

QTAssistant DataSet view of the WSDL 1.1 XSD

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

要从XSD中生成WSDL,您现在已经意识到需要向工具提供更多数据,以便为您自动生成WSDL。例如,您想在WSDL中描述哪些操作?对于他们中的每一个,什么是输入,最有可能是输出,可能是一个或多个故障?你将如何分组他们(portType =接口)?你想使用什么绑定:HTTP,SOAP?什么版本的SOAP? SOAP over:HTTP,MQ? SOAPAction的?多少个WSDL文件:1或3个?

一些工具可能会根据上述问题向您询问一系列问题(数据输入/向导),然后为您创建WSDL。其他人在XSD模式构造的实现中使用预定义的模式(例如,IFX有一定的方式来定义请求/响应元素),所以根据这些假设,专门的工具,如QTAssistant(我与它相关联)会问你更少问题,同时仍然创建WSDL。

我记得有一两个在线工具能够让用户上传XSD文件,然后在提示你提出几个问题后创建WSDL,但我似乎无法再找到它们...... like this one ...

+0

如果我有时间,我会阅读它。我通过更改代码解决了这个问题。 – user1531040 2013-03-28 11:10:19

0

不能自动生成以这种方式从一个XSD一个WSDL。为了创建WSDL,你需要从一个新的WSDL开始并导入这个XSD。

的XSD定义了可用于服务类型的数据。一些XSD通常嵌入在WSDL中,一些则专门导入。

另一种方法是在C#中使用XSD生成服务,然后从该服务中提取具体的WSDL,但这不是首选,因为许多团队更喜欢contract first web services