【问题标题】:WSDL references to other filesWSDL 对其他文件的引用
【发布时间】:2014-06-19 14:05:38
【问题描述】:

我正在编写一个程序,它获取 WSDL 和任何导入的文件,然后将它们保存到单个目录中。作为其中的一部分,我想要做的是展平文件结构,因此只有一个目录包含 WSDL 引用的所有文件或被其引用的文件引用的所有文件。所以我需要进入每个文件,无论哪里有导入,我都需要从名称中删除路径。这是一个例子:

<xsd:import schemaLocation="xsds/Currency.xsd" namespace="urn:example.com:enterprise:schemas:reference:currency">
</xsd:import>

所以上面的导入引用了文件xsds/Currency.xsd,我想从中提取Currency.xsd。我可以使用 XPath 表达式获取此属性的内容以匹配标记,如下所示:

//*[local-name()='import']/@schemaLocation

但是,可能还有其他类型的标记,其中 WSDL 或其引用的 xsds 可能会导入此 XPath 表达式不匹配的文件。我可能需要匹配哪些其他标签或字段名称,以免错过任何文件?

【问题讨论】:

    标签: web-services xpath xsd wsdl


    【解决方案1】:

    你可能想使用

    //@schemaLocation
    

    这将捕获所有 schemaLocation 属性,而不管它们出现在哪里。

    XSD 命名空间中包含schemaLocation 属性的元素:

    1. import
    2. include
    3. redefine

    您应该知道,在 XMLSchema-instance 命名空间中,合格的 schemaLocation 属性将包含 空格分隔的对,其中每个偶数组件是一个位置(奇数项目是命名空间)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-31
      • 2013-03-22
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多