【问题标题】:How to "expand" recursively all includes inside a XML/XSD?如何递归地“扩展”所有包含在 XML/XSD 中的内容?
【发布时间】:2012-04-10 13:43:16
【问题描述】:

是否有任何应用程序可以使用包含一些包含的 XML 文件(实际上是 wsdl)作为输入,并递归浏览这些包含以生成最终的 XML(确实很大),目标包含合并到其中?

说明:BDS 2006 WSDL 导入器无法处理包含,并且定义到导入的 xsd 中的某些数据类型未导入,因此出现编译错误。当我将所有引用的 XSD 文件递归地替换为一个大 XML 时,WSDL 导入器工作正常,但手动执行此替换非常困难且耗时。有一些应用程序可以帮我做吗?

提前致谢!

【问题讨论】:

    标签: xml delphi xsd wsdl


    【解决方案1】:

    我认为QTAssistant 做得更好(我在这里偏袒),至少与@Nick 在他的评论中描述的步骤相比;这里假设的一件事是只有一个 XSD;如果涉及多个命名空间,则方法是单独复制每个文件,同时确保删除 schemaLocation 属性。无论如何,这似乎涉及很多摆弄。

    在 QTAssistant 中,“工具”选项卡下有一个按钮,Internalize XSD;它的工作是提示您输入 WSDL 文件位置,以及复制结果的文件夹。

    填写这两个字段,按Load,然后按OK

    然后打开重构的 WSDL 文件进行审查。

    您也可以按 Validate 按钮以通过 WS-I BP 1.1 规则以及 XSD 模式集验证来运行它。

    【讨论】:

    • 我点击了paschidev.com 的顶部链接,但我没有看到任何此类打开 xml 并直观显示 xml 的产品。
    • 然后我尝试查看开源 qt4 assistantqt5 assistant 但这些应用程序仅用于显示 qt4qt5 的帮助文件。
    • @TrevorBoydSmith 你指的是别的东西。由于我们的托管服务提供商,我们目前遇到了中断。
    【解决方案2】:

    我认为OxygenXml 可以做到这一点。

    我不是 Delphi 开发人员。我假设您正在尝试创建一个整合的具体 WSDL 以供 delphi 中的某种代理生成器使用,是吗?

    【讨论】:

    • 是的!我正在尝试使用 Web 服务,并且 wsdl 有导入。 WSDL 导入器不处理它们!
    • 我下载了 OxygenXml 的试用版。现在,如何使用它来做我想做的事?
    • 浏览到 WSDL,保存为本地文件。在氧气中,创建一个新的 XSD 架构。粘贴 WSDL 的 XSD 部分。右键单击 XSD 的文本视图以获取上下文菜单。选择重构\展平架构。当您对架构感到满意时,将其粘贴回您的 WSDL(您的具体 WSDL)。从具体的 WSDL 创建客户端代理。
    • 哇!我明天测试一下。谢谢!
    【解决方案3】:

    我的 WSDL 有一些问题。所有答案都是很好的答案,但没有一个有效。谢谢大家的尝试

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2015-12-14
      • 2017-08-22
      • 1970-01-01
      相关资源
      最近更新 更多