【问题标题】:Extract an object schema from wsdl从 wsdl 中提取对象模式
【发布时间】:2009-02-25 20:13:50
【问题描述】:

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

如果您不使用 .NET 中的 WSDL 生成工具怎么办?有没有使用其他工具完成此任务的好方法?我正在使用 Java,试图与 Web 服务交互。我有一个用于操作 xml 文档的库,它需要一个 xsd。我还有一个用于简单 SOAP 交互的库,这使得使用 Axis 过大了。如果我可以轻松地从 WSDL 中提取 XSD,那就太好了。

【问题讨论】:

  • 您是在问如何在 wdsl 元素中提取模式的子集吗?
  • 我认为这就是@Pedro 所要求的;无论如何,这就是我要问的。

标签: xml xsd wsdl


【解决方案1】:

如果您确切地知道要从架构中提取哪些对象,您可以获取 wsdl 文件,通过 XSL 转换运行它以保留您想要的部分(或删除您不需要的部分)。

【讨论】:

    【解决方案2】:

    我假设您在谈论 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 服务。

    P.D.替我向马里奥问好 ;-)

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 2021-05-04
      • 2017-09-08
      • 2014-02-21
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多