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

      IBM、Microsoft 和 Ariba 于 9 月份完成的 Web 服务描述语言 (WDSL) 的模式开发实际上只是增强 Web 服务体系结构尝试的开始。130 家公司的通用描述、发现和集成 (UDDI) 的倡议,包括 WSDL 之后的团队,是更基础的部分。随着情况的进展,已经有人在说:这些规范将如何开始产生实际的实现 -- 从 IBM 范围广阔的 AlphaWorks 工具到 Microsoft.NET 策略。来自 Web 服务中公司 stakeholder 的这批工具将首先出现在更大的框架中,并且通常是紧密地构建在那些框架中。

      但是,在使格式适应当前应用之前无需等待集成的 WSDL 工具。只需万维网联盟的通用工具集 扩展样式表变换语言 (XSLT),WSDL 就可以做很多事。XSLT 无疑是 W3C 最成功的杰作之一。它有 30 多个独立且嵌入产品中的实现。阅读本文时,您应该熟悉 XSLT 和资源描述框架 (RDF)。

      IT 仅用这个新的 XML 时髦词语来试图使 Web 更有魔力,就深受从有经验的程序员到疲倦的 Web 管理员等用户的喜爱。但最重要的是,它一直是用于测试大量 XML 结果的先驱工具。在规范上的墨迹未干之前,Eric van der Vlist 就使用 XSLT 将 XML 部分插入不知不觉的语法分析器。Rick Jeliffe 的由 XSLT 支持的 Schematron 提供了一种确认很多使用名称空间的 XML 词汇的方法,而 XML 模式仍然发展得缓慢。事实上,极其无耻的是,甚至有 XML 模式的 Schematron 确认器。在这种情绪下,我们将在本文中使用 XSLT 作为探测器来看一下实际的 WSDL。

      探寻 WSDL 中的数据

      Web 服务白页和黄页的开发人员以及服务供应商本身,都会对在各种报告和目录格式中显示 WSDL 描述的数据感兴趣。XSLT 是用于这种数据抽取和报告的极佳工具。

      在第一篇 WSDL 文章(请参阅 参考资料 )中,我们给出了一个描述查询认可特定产品的职业滑雪者的服务描述示例。该服务中的请求和响应用简单对象访问协议 (SOAP) 传输。 清单 1 是显示在描述中指定的可用服务简洁表的 XSLT 变换。这些服务的传送和位置也被抽取出来。

     即使对于这样一个简单用途,变换相当复杂。部分复杂性在于 WSDL 1.0 处理内容的方式。例如,关系是使用来自 XML 名称空间的限定名称表单的属性指定的。然而,XSLT 1.0 不提供处理 XML 名称空间范围之外的名称空间扩展的工具。这实际上已经在 XSLT 界作为对 XSLT 1.1 受欢迎的附加部分而讨论过了,因为很多规范(WSDL、XML 模式和 XSLT 本身)都在内容中使用限定名称。这些设施将使清单 1 简单得多。

      清单 1 ,模板 1.1 简单地设置了 HTML 样板文件。接下来,是一些使用键的查询表。不是所有的键都在清单中实际使用,但是我在清单中显示表 1.1 到 1.4,以演示基本模式。键收集代表顶级 WSDL 组件的元素节点,按其名称元素检索。

      查询表 1.5 更为有趣。在后面的变换中,我们将列出在每一个端口的绑定期间指定的传送。WSDL 在具有本地名 "binding" 的元素中指定这一点。查询表 1.5 在每个 WSDL 绑定元素中捕获该元素。

      模板 1.2 输出每个 WSDL 服务元素的表。它们中大多数都是普通的 XSLT。它使用 "pull" 模型(显式循环并用 XPath 取值)而不是 "push" 模型(模板匹配)来以直接的方式剪切感兴趣的数据。中央循环为服务元素中的每个端口输出一行。在标号之后,从具有本地名称 "address" 的元素显示 location 属性。请注意,只检查本地名称,因为 WSDL 指定两种 "address" 元素类型:一种用于 SOAP,另一种用于 HTTP;另外,还允许我们的变换所支持的某些扩展。

      接下来是使用 binding-uri 变量和依次使用 binding-local-name 的传送。这两个变量都在 xsl:for-each 中定义。在 binding-local-name 定义中,可以看到我所说的属性中的限定名是什么意思。要使端口绑定属性的内容与相应的 WSDL 绑定元素匹配,必须除去名称空间前缀,这由 substring-after() 函数完成。

      binding-uri 变量使用 binding-local-name 作为到查询表 1.5 的索引,如果您记起的话,该表将每个绑定的名称映射成其特定于传送的绑定元素的名称空间 URL。在我们的示例中, binding-uri 最终将是 SOAP URI: http://schemas.xmlsoap.org/wsdl/soap/ 。回到第三个表单元中, binding-uri 被用作到查询表 6 的索引,该表将名称空间 URI 转换成如 "SOAP" 这样的描述字符串。

      查询表 1.6 值得仔细研究,因为它使用了高级 XSLT 技术。它使用独特的名称空间在样式表中构建起查询表。您可以在键的下面看到 x:ns-to-binding 元素。如果熟悉键,则您知道它们定义索引,而这些索引将在与 match 属性中的模式匹配的原始源文档中的节点上被构建。还不为人所知的是:每次用 XSLT document() 函数装入附加源文档时,还对它应用所有的键。变换结束标记之前的 xsl:variable 使用特殊的 document() 调用形式来将样式表作为附加源文档装入。这样,就索引了样式表中与 ns-to-binding 匹配的节点。对于无需删改源文档或无需依赖附加文件而设置查询表来说,这时一个非常有用的技术。您将在本文的后面再次看到对它的使用法。

      在 Unix 命令行使用 4XSLT 应用程序(请参阅 参考资料)运行变换,如下所示:

    [uogbuji@borgia wsdlxslt]$ 4xslt

    上一页12 3 下一页

    上一篇: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处理程序是如何工作的
    ·使用Java和XSLT生成动态Web页面
    ·在XSLT中用递归实现循环
    ·让你的XSLT如虎添翼 -- 浅谈XSLT扩展
    ·用XSLT进行WSDL处理
    ·Saxon: 剖析XSLT处理器
    ·XSLT介绍
    ·用XSLT 2.0生成PHP
    热点推荐
    使用Java和XSLT生成动态Web页面
    使用Java和XSLT生成动态
    用XSLT进行WSDL处理
    用XSLT进行WSDL处理
    Saxon: 剖析XSLT处理器
    Saxon: 剖析XSLT处理器
    XSLT查找表中的默认值和错误处理
    XSLT查找表中的默认值和
    频道推荐
    • ·XSLT处理程序是如何工作的
    • ·使用Java和XSLT生成动态Web页面
    • ·用XSLT进行WSDL处理
    • ·Saxon: 剖析XSLT处理器
    • ·XSLT介绍
    • ·XML 和XSLT结合使你的网站设计浑然一体
    • ·通过XSLT访问Java代码
    • ·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号