我怎样才能使它成为有效的WSDL?

cap*_*gon 4 soap wsdl svcutil.exe

我正在尝试使用以下命令从此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
Run Code Online (Sandbox Code Playgroud)

但是svcutil无法读取它,xMethods WSDL验证器说它无效.

什么是无效的?如何让svcutil生成我的界面代码?

小智 6

我不确定WSDL是否有效,但你想要做的事情是行不通的.Svcutil只能为1.1版的WSDL文件生成代码.你的是WSDL 2.0版.

在给出WSDL时,您在问题中指出的WSDL验证器返回以下消息:

faultCode = INVALID_WSDL:预期元素'http://schemas.xmlsoap.org/wsdl/:definitions'.

它将文件解析为WSDL 1.1.并期望root是definitions,但是在WSDL 2.0 中改变description.

如果您有一个有效的WSDL 2.0文件,Svcutil2可能能够为您生成代码,但此工具尚不稳定.

为了验证WSDL,我想你可以使用Woden项目中验证器,它也不稳定,但基本上是我所知道的唯一一个已通过"玩具项目"状态的验证器.

这个想法是这样的:1.1版在使用WSDL时仍然是"事实上"的语言.没有多少WS框架采用了WSDL 2.0(仅仅是我的2美分!)我认为最好坚持"标准",直到WSDL 2.0已经完全成熟.