从wsdl中提取对象模式

时间:2009-02-25 20:13:51

标签: xml xsd wsdl

我有一个描述一组对象的wsdl文件,但是我想从它们的一个子集中提取定义,这是否可能,如果是这样,最好的方法是什么? 我的目标是为该子集生成XSD架构。

如果您没有在.NET中使用WSDL生成工具,该怎么办?有没有一种方法可以使用其他工具来实现这一目标?我正在使用Java,尝试与Web服务进行交互。我有一个用于操作xml文档的库,需要一个xsd。我还有一个用于简单SOAP交互的库,这使得使用Axis overkill。如果我可以轻松地从WSDL中提取XSD,那就太好了。

2 个答案:

答案 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积。跟我马里奥打个招呼; - )