WEB开发网
开发学院软件开发Python Python Web 服务开发人员: 三股力量:Python、Web... 阅读

Python Web 服务开发人员: 三股力量:Python、Web 服务和 XSLT

 2008-09-30 13:02:15 来源:WEB开发网   
核心提示:本专栏文章讨论了用于 Web 服务处理的主要 Python API,尽管与 Java 社区相比,Python Web 服务开发人员: 三股力量:Python、Web 服务和 XSLT,Python 社区中对于开发 Web 服务的热情要低得多,增强 Python Web 服务处理功能的一个方法是利用最流行的处理 XML

本专栏文章讨论了用于 Web 服务处理的主要 Python API,尽管与 Java 社区相比,Python 社区中对于开发 Web 服务的热情要低得多。增强 Python Web 服务处理功能的一个方法是利用最流行的处理 XML 的专用语言:XSLT。Python 为 XSLT 处理提供了几种很棒的工具,您可以通过挖掘这个“矿藏”来增强 Web 服务处理能力。本文将向您展示如何做到这一点。您应该熟悉 XSLT 以便理解示例。

Kafka 样式的 soap 端点

Christopher Dix 所开发的“Kafka — XSL SOAP 工具箱”(请参阅 参考资料)是一种用于构造 SOAP 端点的 XSLT 框架。它只涵盖了 SOAP 1.1,但 Kafka 端点演示了传递 UserLand SOAP 验证器(UserLand SOAP Validator)的能力,并且根据 SOAP 1.2 对它进行更新似乎并不太困难。 清单 1展示了一个样本 Kafka 端点:求两数之和的 SOAP 服务器(一个典型而简单的 SOAP 样本)。

清单 1. 求两数之和的 Kafka SOAP 端点

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:method="http://www.topxml.com/"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
  <!-- add.xsl : Kafka SOAP Endpoint Example, with modifications -->
  <!-- Import soap.xsl to use the framework -->
  <xsl:import href="kafka/soap.xsl"/>
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes"/>
  <!-- Define the global variables for the framework -->
  <xsl:variable name="Method">Add</xsl:variable>
  <xsl:variable name="MethodNS">http://www.topxml.com/</xsl:variable>
  <!-- Add : Add two numbers and return the sum -->
  <!-- Function Add( A as Double, B as Double ) as Double -->
  <xsl:template name="ProcessPayload">
   <xsl:param name="Payload"/>
   <xsl:for-each select="$Payload">
     <!-- This is how to retrieve parameters from the input -->
     <xsl:variable name="A" select="number(A|method:A)"/>
     <xsl:variable name="B" select="number(B|method:B)"/>
     <!-- The WriteParameter template takes the qualified name
       for a response parameter as well as its value and
       a QName specifying the tpe (for the xsi:type attribute) -->
     <xsl:call-template name="WriteParameter">
      <xsl:with-param name="p" select="'Result'"/>
      <xsl:with-param name="v" select="$A + $B"/>
      <xsl:with-param name="t" select="'xsd:double'"/>
     </xsl:call-template>
   </xsl:for-each>
  </xsl:template>
 
</xsl:stylesheet>

1 2 3 4 5 6  下一页

Tags:Python Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接