IT技术江湖   操作系统   安全技术   平面设计   Web开发   数据库   互联网   搜索引擎   网络广告   
引擎技术江湖  BLOG  合作联系
本站
Google
IT技术江湖
首页>Web开发>xml XSLT> 用XSLT进行WSDL处理
  • IT技术江湖
  • 用XSLT进行WSDL处理
    http://www.hack1st.com 来源: 2008-03-20 阅读: 评论


    http://uche.ogbuji.net/articles/wsdl/endorsementservice.xml
    http://uche.ogbuji.net/articles/wsdl/wsdlservicesummary.xslt

      如您所能看到的,我已经使原始 WSDL 源文件和清单 1 样式表可以联机获得。有关详细信息,请参阅“参考资料”一节。图 1 显示了该变换的输出结果。

      图 1. 应用清单 1 中的样式表之后得到的浏览器视图

    用XSLT进行WSDL处理

      应该很容易理解如何扩展该变换以从 WSDL 源抽取如消息部分等附加信息。下一节,我们将讨论更复杂且侧重点不同的 XSLT 变换用法。

      从 WSDL 生成 RDF

      在过去有关 WSDL 的文章中,我们讨论了 WSDL 可能的 RDF 形式。与 RDF 一样,WSDL 的全部内容都与描述有关,因此,我们指出 RDF 可能是 WSDL 的理想形式。幸运的是,既然 RDF 非常灵活,就有可能提出与 WSDL 原始格式差别不大的 RDF 兼容格式。现在,我们将看一看如何使变换自动化。

      可以使用 清单 2 中的变换来将我们的 WSDL 样本从第一篇文章转换成在第二篇文章中作为示例给出的 RDF 版本。

      首先要指出的是: 清单 1 中的变换更多地是使用 "pull" 模型(基于 xsl:for-each 指令)来显示服务中的不同端口,而本样式表几乎全部基于 "push" 技术。具有仔细选择匹配和适当方式的模板设置了执行路径。大多数 XSLT 新手更习惯于 pull 技术,因为对于熟悉过程模型(例如 ECMAScript 的过程模型)的人来说,它们显得更为自然。因此,以上变换可能需要多一点时间来理解,但是对于进行从一种 XML 格式转换成另一种的非结构调整来说,它是很好的通用模型。

      模板 2.1 开始进行处理。 xsl:copy 用来复制 wsdl:description 元素。第一个 xsl:apply-templates 复制其属性。

      第二个 xsl:apply-templates 试图复制子元素,但是请留意,它不指定模式。如果看一下该清单的余下部分,您就会看到对于 WSDL wsdl:types ,这将由模板 2.7 匹配,该模板只递归地继续复制那个元素下的所有子树。而一旦到达 wsdl:description 的下一子节点,情况就会改变。 wsdl:message 匹配模板 2.4,该模板是为空过程。到目前为止的效果是:抑制除 wsdl:types 之外的所有 WSDL 元素子代。

      第三个 xsl:apply-templates 作同样的事,但却指定 convert-to-rdf 方式。然后,处理器再次遇到 wsdl:types ,但是这次与作为空过程的另一个模板 2.6 匹配。然而,所有其它顶级 WSDL 元素由模板 2.2 处理 -- 它开始进行到 RDF 格式的转换。当然,按要求将这部分输出封装在 rdf:RDF 元素中。

      变换的其余部分主要是这些机制的继续。还记得上一篇文章中所讲的吗:通过添加从初始 name 获得的 rdf:ID 属性来在顶级子代中转换成 RDF。在模板 2.2 中通过显示 xsl:attribute 来做到这一点。另外请注意,必须为顶级 WSDL 元素的每个属性添加显示名称空间。这由以 convert-to-rdf 方式匹配属性的模板 2.5 处理。请注意,它使用我们设置的查询表,并且该表采用将样式表作为源文档装入的技术。查询表将名称空间 URI 映射成在输出中使用的前缀。

      如模板 2.3 和 2.4 中,处理顶级 WSDL 元素子节点的方法略有不同。这些不同的方法是为了适应我们在 RDF 表示中所选择的简化,例如将 wsdl:message/wsdl:part 元素作为匿名资源以及将 @message 属性转换成 rdf:resource 属性。

      再次使用 4XSLT,对初始 WSDL 源文档所作的该变换的输出与上一篇文章中的 RDF 版本类似。即使对 RDF 格式的 WSDL 不感兴趣,上面的样式表也是多种 WSDL 调整的开始框架。

      结束语

      本质上,WSDL 非常简单:只是联机服务的描述。然而,因为 UUDI 以前所作的工作和打下的基础,它注定要在多种应用中被使用。 Rich Site Summary (RSS) 系统就是简单格式如何拥有广泛用途的示例。本文所介绍的技术演示了几种用 XSLT 变换处理 WSDL 的方法。

      清单 1 对简单的联机报告和编目(特别是当您需要对变换进行简单调整时)很有用。在这种情况下,输出与输入在结构上很少有类似之处,并且只选取用于输出的材料较为合理。清单 2 中的 pull 方法对于在与 WSDL 相同的结构基础中操作的变换是很有用的。例如,您可能要查看除去后缀名的 WSDL 文件,或者可能在 API 摘要的所有级别上抽取 WSDL 文档元素。对于将 WSDL 关系重设为 XLinks 来说,它可能也有用。这样的链接可能是内部的,当使用 WSDL 导入器来分解描述时,它们也可能是外部链接。更进一步,作为扩展设施,可以将链接处理成链接到 WSDL 导入设施之外的外部资源。这样的变换看起来与清单 2 不会有太大不同。


      希望本系列文章给出了 WSDL 的有用介绍并提供了一些工具来开始处理使用当前可用 XML 技术的格式。随着 WSDL、UDDI 和其它这种技术的成熟和聚合,将有一个不断改进的应用和服务供应商核心利用这样的应用。某一天,这可能会使平滑集成 Web 服务的梦想向现实更靠近一步。

    上一页 1 23 下一页

    上一篇:XSLT查找表中的默认值和错误处理  
    下一篇:XSLT处理程序是如何工作的

    ·网友互动--用户名: (新注册) 密码: 匿名评论 [所有评论]
    评论内容:(用户发表意见仅代表其个人意见,评论内容与本站立场无关,请自觉遵守互联网相关政策法规)
    关注此文读者还看过
    • ·让你的XSLT如虎添翼 -- 浅谈XSLT扩展
      ·利用XSLT 2.0成批处理XML
      ·用XSLT 2.0生成PHP
      ·XSLT介绍
      ·通过XSLT访问Java代码
      ·Saxon: 剖析XSLT处理器
      ·使用Java和XSLT生成动态Web页面
      ·XSLT处理程序是如何工作的
      ·用XSLT进行WSDL处理
      ·XSLT查找表中的默认值和错误处理
    最新更新
    • ·让你的XSLT如虎添翼 -- 浅谈XSLT扩展
      ·利用XSLT 2.0成批处理XML
      ·用XSLT 2.0生成PHP
      ·XSLT介绍
      ·通过XSLT访问Java代码
      ·Saxon: 剖析XSLT处理器
      ·使用Java和XSLT生成动态Web页面
      ·XSLT处理程序是如何工作的
      ·用XSLT进行WSDL处理
      ·XSLT查找表中的默认值和错误处理
    文章关注度排行
    ·在XSLT中用递归实现循环
    ·XSLT处理程序是如何工作的
    ·使用Java和XSLT生成动态Web页面
    ·让你的XSLT如虎添翼 -- 浅谈XSLT扩展
    ·Saxon: 剖析XSLT处理器
    ·用XSLT 2.0生成PHP
    ·用XSLT进行WSDL处理
    ·XSLT介绍
    热点推荐
    使用Java和XSLT生成动态Web页面
    使用Java和XSLT生成动态
    Saxon: 剖析XSLT处理器
    Saxon: 剖析XSLT处理器
    用XSLT进行WSDL处理
    用XSLT进行WSDL处理
    XSLT查找表中的默认值和错误处理
    XSLT查找表中的默认值和
    频道推荐
    • ·XSLT处理程序是如何工作的
    • ·使用Java和XSLT生成动态Web页面
    • ·Saxon: 剖析XSLT处理器
    • ·用XSLT进行WSDL处理
    • ·XSLT介绍
    • ·通过XSLT访问Java代码
    • ·XSLT查找表中的默认值和错误处理
    • ·XML 和XSLT结合使你的网站设计浑然一体
    本站精华
    XSLT查找表中的默认值和错误处理
    XSLT查找表中
    用XSLT进行WSDL处理
    用XSLT进行WS
    使用Java和XSLT生成动态Web页面
    使用Java和XS
    • ·XSLT介绍
    • ·通过XSLT访问Java代码
    • ·Saxon: 剖析XSLT处理器
    • ·使用Java和XSLT生成动态Web页
    • ·XSLT处理程序是如何工作的
    • ·用XSLT进行WSDL处理
    • | 网站导航 | 联系QQ | 编辑邮箱 | RSS订阅 | 友情链接 | 官方blog
    • 版权所有:IT技术江湖 @2007-2008
    • powered by www.hack1st.com online services. all rights reserved.京ICP备07005766号