我有一个描述一组对象的wsdl文件,但是我想从它们的一个子集中提取定义,这是否可能,如果是这样,最好的方法是什么? 我的目标是为该子集生成XSD架构。
如果您没有在.NET中使用WSDL生成工具,该怎么办?有没有一种方法可以使用其他工具来实现这一目标?我正在使用Java,尝试与Web服务进行交互。我有一个用于操作xml文档的库,需要一个xsd。我还有一个用于简单SOAP交互的库,这使得使用Axis overkill。如果我可以轻松地从WSDL中提取XSD,那就太好了。
答案 0 :(得分:1)
如果您确切地知道要从模式中提取哪些对象,则可以使用wsdl文件,通过XSL转换运行它以保留您想要的部分(或删除您不需要的部分)。
答案 1 :(得分:0)
我假设你在谈论ASP.NET中的wsdl生成
在ASP.NET中,wsdl文件是通过反射自动生成的。这意味着当您使用时,将映射程序集的每个Web方法:
http://mysite/myservices.asmx?wsdl
解决此限制的解决方法是:
1.在web.config中生成禁用默认文档
<webServices>
<protocols >
<remove name="Documentation"/>
</protocols>
</webServices>
2.使用.net wsdl.exe工具创建自己的wsdl文件,并为您需要的子集编辑生成的wsdl。
wsdl.exe http://mysite/myservices.asmx?wsdl
3.发布修改后的wsdl:
http://mysite/myservices.wsdl
作为最后的建议。如果可能,请转到WCF,以便更好地控制Web服务。
Pd积。跟我马里奥打个招呼; - )