我正在尝试使用以下命令从this WSDL生成代码:
svcutil /noConfig /language:C# /out:ICatalog.cs http://schemas.opengis.net/csw/2.0.2/profiles/ebrim/1.0/wsdl/2.0/csw-ebrim-interface.wsdl
然而svcutil无法读取它,而xMethods WSDL validator表示它无效。
什么是无效的?如何让svcutil生成我的界面代码?
答案 0 :(得分:6)
我不确定WSDL是否有效,但是你要做的事情是行不通的。 Svcutil只能为1.1版的WSDL文件生成代码。你的是WSDL版本2.0。
您在问题中指出的WSDL验证程序在给出您的WSDL时返回以下消息:
faultCode = INVALID_WSDL:预期元素'http://schemas.xmlsoap.org/wsdl/:definitions'。
它将文件解析为WSDL 1.1。并期望WSDL 2.0中的根为definitions
,but that changed为description
。
如果您有一个有效的WSDL 2.0文件,Svcutil2可能能够为您生成代码,但此工具尚不稳定。
为了验证WSDL,我想你可以使用validator from The Woden project,这也不稳定,但基本上是我所知道的唯一一个已经通过“玩具项目”状态的人。
这个想法是这样的:版本1.1在使用WSDL时仍然是“事实上的”语言。没有多少WS框架采用WSDL 2.0(仅仅是我的2美分!)我认为最好坚持“标准”,直到WSDL 2.0已经完全成熟。
答案 1 :(得分:0)
try to add reference References > Add Reference > COM > System.ServiceModel