Differences between revisions 1 and 2
Revision 1 as of 2007-08-04 03:13:14
Size: 122
Editor: XiaoQi
Comment:
Revision 2 as of 2007-08-04 08:43:00
Size: 7346
Editor: XiaoQi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
 * 基于和[:../2007-08-01:上一章]相同的理由,暂不发布修订 List。 [[TableOfContents]]
 1. `Para 2`:但'''解开'''这层面纱,SOAP 库实际上'''扮演'''了一个多 XML 文档和远程服务器参与的复杂处理过程。[[BR]]
 (./) 但'''揭开'''这层面纱,SOAP 库实际上'''执行'''了一个多'''个''' XML 文档和远程服务器参与的复杂处理过程。
 1. `Para 3`:''Some people would pipe up to add that &soap; allows for one-way asynchronous message passing, and document-oriented web services.''[[BR]]
 有些人觉得应该补充上:&soap; 还允许单向异步的信息通过,'''并且是'''面向文档的 Web 服务。[[BR]]
 (./) 有些人觉得应该补充上:&soap; 还允许单向异步的信息通过,'''以及'''面向文档的 Web 服务。

== 概览 ==
 1. `Para 1`:你是否'''曾经''' {X} 希望能以程序化的方式访问 Google 的搜索结果呢?
 1. `进一步阅读`:''The &soap; '''specification''' is surprisingly readable, '''if you like that sort of thing.'''''[[BR]]
 &soap; '''说明书对于 &soap; 相关的问题讨论非常易读'''。[[BR]]
 (./) &soap; '''规范相当可读,如果你喜欢这类东西的话'''。

== 安装 SOAP 库 ==
 1. '''希望'''检验 XXX 安装'''的'''是否正确,……[[BR]]
 (./) '''要'''检验 XXX 安装'''得'''是否正确
 1. `Para 3`:你'''所''' {X} 要用到的第一个库是 PyXML, {i} ^它^是 XML 库的一个高级组件,'''这个库''' {X} 提供了比我们在 第 9 章 学习的 XML 内建库更多的功能。
 1. `12.2.2, Para 1`:你所需要安装的第二个库是 fpconst,'''使''' <!> 一系列支持 IEEE754 double-precision 特殊值的常量和函数,…… (./) '''它是'''

== 步入 SOAP ==
 1. `例12.6, (1)`:你通过 SOAPProxy 这个 {i} ^代理 (^proxy^)^ 类访问远程 &soap; 服务器。
 1. `例12.6, (2)`:每个 &soap; 服务都有一个命名空间(namespace),这个命名空间是由服务器任意命名的。这不过是为了调用 &soap; 方法而设置的。它使得服务器'''为多个不相关的服务提供'''服务 URL 和路径请求'''共享'''成为可能。这与 Python 中模块'''到 packages''' 的关系类似。[[BR]]
 (./) 每个 &soap; 服务都有一个命名空间(namespace),这个命名空间是由服务器任意命名的。这不过是为调用 &soap; 方法设置的。它使得服务器'''让多个不相关的服务共享'''服务 URL 和路径请求成为可能。这与 Python 中模块'''相对于包'''的关系类似。
 1. `例12.6, (3)`:''You're creating the SOAPProxy with the service URL and the service namespace. '''This doesn't make any connection to the &soap; server'''; it simply creates a local Python object.''[[BR]]
 这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。'''这与 &soap; 服务器无关''';仅仅是建立了一个本地 Python 对象。[[BR]]
 (./) 这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。'''此时还不会连接到 &soap; 服务器''';仅仅是建立了一个本地 Python 对象。
 1. `例12.6, (4)`:到此为止,如果你的设置完全正确,应该可以向调用本地函数一样调用远程 &soap; 方法。'''像'''给普通函数传递参数并接收返回一样,但在这背后却隐藏着很多的工作。[[BR]]
 (./) '''这和'''给普通函数传递参数并接收返回值一样,但在背后却隐藏着很多的工作。

== SOAP 网络服务查错 ==
 1. “'''显性'''数据类型”改为“'''显式'''数据类型”。
 1. “(Python) '''原始'''数据类型”改为“'''本地'''数据类型”。
 1. `例12.7, (1)`:首先,'''正常'''建立带有服务 URL 和命名空间的 SOAPProxy。[[BR]]
 (./) 首先,和'''平常'''一样,建立带有服务 URL 和命名空间的 SOAPProxy。
 1. `例12.7, (3)`:最后,'''正常'''调用远程 &soap; 方法。[[BR]]
 (./) 最后,'''和平常一样,'''调用远程 &soap; 方法。
 1. `例12.7b, (1)`:这个元素名 getTemp 就是函数名。SOAPProxy '''把 getattr 当作一个发报机'''。'''有别'''使用方法名分别调用本地方法,这里使用方法名构造了一个 XML 请求文档。[[BR]]
 (./) 这个元素名 getTemp 就是函数名。SOAPProxy '''使用 getattr 作为分发器'''。'''有别于'''使用方法名分别调用本地方法,这里使用方法名构造了一个 XML 请求文档。

== WSDL 介绍 ==
 1. `Para 1`:它没有做到的是提供'''任何''' {X} 方法自省的手段。
 1. `Para 2`:'''试想一下''':前面两部分所展现的调用只有一个参数和返回的简单远程 &soap; 方法。[[BR]]
 (!) 这不是假设。[[BR]]
 (./) '''考虑一下''':……
 1. `Para 3`:Python 精妙地'''在''' {X} 不需要明示类型,……
 1. `Para 4`:&wsdl; 是“网络服务描述语言(Web Services Description Language)”的缩写。 {i} ^它^尽管是为自如地表述多种类型的网络服务而设定,却也经常用于描述 &soap; 网络服务。
 1. `Para -6`:''The type of web service (probably function calls using &soap;, although as I mentioned, &wsdl; is flexible enough to describe a wide variety of web services)''[[BR]]
 网络服务的类型(可能'''还包括''' &soap; 的函数调用,'''正像我所说过的''',&wsdl; 足够自如地去描述网络服务的广泛内容)[[BR]]
 (./) 网络服务的类型(可能'''是''' &soap; 的函数调用,'''但我说过''',&wsdl; 足够自如地去描述网络服务的广泛内容)

== 以 WSDL 进行SOAP 内省 ==
 1. `例12.8, (2)`:''To use a &wsdl; file, you again use a proxy class, WSDL.Proxy, which takes a single argument: the &wsdl; file. Note that in this case you are passing in the URL of a &wsdl; file stored on the remote server, but the proxy class works just as well with a local copy of the &wsdl; file.''[[BR]]
 使用一个 &wsdl; 文件,你还是要用到一个 proxy 类:WSDL.Proxy,它只需一个参数:&wsdl; 文件。'''我所说的是'''把存储在远程服务器上的 &wsdl; 的 URL,但是这个 proxy 类对于本地的 &wsdl; 副本工作同样出色。[[BR]]
 (./) 使用一个 &wsdl; 文件,你还是要用到一个 proxy 类:WSDL.Proxy,它只需一个参数:&wsdl; 文件。'''我指定的是'''存储在远程服务器上的 &wsdl; 的 URL,但是这个 proxy 类对于本地的 &wsdl; 副本工作同样出色。
 1. `例12.8, (3)`:&wsdl; proxy 类'''以 Python 字典 server.methods 的方式'''揭示有效函数。所以'''列表'''有效方法'''就像调用字典方法 keys() 一样简单'''。[[BR]]
 (./) &wsdl; proxy 类'''通过 Python 字典 server.methods''' 揭示有效函数。所以'''列出'''有效方法'''只需调用字典方法 keys()'''。
 1. `例12.9, (3)`:在通过 &soap; 调用函数时,你不需要知道参数名,但 &soap; '''却'''支持在调用函数时使用参数名'''的情形''' {X} (类似于 &python; )。
 1. `例12.9, (4)`:''Each parameter is also explicitly typed, '''using datatypes defined in XML Schema'''.''[[BR]]
 每个参数都是都是显性类型的,'''在 XML Schema 中以数据类型定义'''。[[BR]]
 (./) 每个参数都是都是显式类型的,'''使用的是在 XML Schema 定义的数据类型'''。

8-3<X12>soap.xml SOAP web 服务

TableOfContents

  1. Para 2:但解开这层面纱,SOAP 库实际上扮演了一个多 XML 文档和远程服务器参与的复杂处理过程。BR (./)揭开这层面纱,SOAP 库实际上执行了一个多 XML 文档和远程服务器参与的复杂处理过程。

  2. Para 3Some people would pipe up to add that &soap; allows for one-way asynchronous message passing, and document-oriented web services.BR 有些人觉得应该补充上:&soap; 还允许单向异步的信息通过,并且是面向文档的 Web 服务。BR (./) 有些人觉得应该补充上:&soap; 还允许单向异步的信息通过,以及面向文档的 Web 服务。

概览

  1. Para 1:你是否曾经 {X} 希望能以程序化的方式访问 Google 的搜索结果呢?

  2. 进一步阅读The &soap; specification is surprisingly readable, if you like that sort of thing.BR &soap; 说明书对于 &soap; 相关的问题讨论非常易读BR (./) &soap; 规范相当可读,如果你喜欢这类东西的话

安装 SOAP 库

  1. 希望检验 XXX 安装是否正确,……BR (./) 检验 XXX 安装是否正确

  2. Para 3:你 {X} 要用到的第一个库是 PyXML, {i} 是 XML 库的一个高级组件,这个库 {X} 提供了比我们在 第 9 章 学习的 XML 内建库更多的功能。

  3. 12.2.2, Para 1:你所需要安装的第二个库是 fpconst,使 <!> 一系列支持 IEEE754 double-precision 特殊值的常量和函数,…… (./) 它是

步入 SOAP

  1. 例12.6, (1):你通过 SOAPProxy 这个 {i} 代理 (proxy) 类访问远程 &soap; 服务器。

  2. 例12.6, (2):每个 &soap; 服务都有一个命名空间(namespace),这个命名空间是由服务器任意命名的。这不过是为了调用 &soap; 方法而设置的。它使得服务器为多个不相关的服务提供服务 URL 和路径请求共享成为可能。这与 Python 中模块到 packages 的关系类似。BR (./) 每个 &soap; 服务都有一个命名空间(namespace),这个命名空间是由服务器任意命名的。这不过是为调用 &soap; 方法设置的。它使得服务器让多个不相关的服务共享服务 URL 和路径请求成为可能。这与 Python 中模块相对于包的关系类似。

  3. 例12.6, (3)You're creating the SOAPProxy with the service URL and the service namespace. This doesn't make any connection to the &soap; server; it simply creates a local Python object.BR 这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。这与 &soap; 服务器无关;仅仅是建立了一个本地 Python 对象。BR (./) 这里你创建了包含服务 URL 和服务命名空间的 SOAPProxy。此时还不会连接到 &soap; 服务器;仅仅是建立了一个本地 Python 对象。

  4. 例12.6, (4):到此为止,如果你的设置完全正确,应该可以向调用本地函数一样调用远程 &soap; 方法。给普通函数传递参数并接收返回一样,但在这背后却隐藏着很多的工作。BR (./) 这和给普通函数传递参数并接收返回值一样,但在背后却隐藏着很多的工作。

SOAP 网络服务查错

  1. 显性数据类型”改为“显式数据类型”。

  2. “(Python) 原始数据类型”改为“本地数据类型”。

  3. 例12.7, (1):首先,正常建立带有服务 URL 和命名空间的 SOAPProxy。BR (./) 首先,和平常一样,建立带有服务 URL 和命名空间的 SOAPProxy。

  4. 例12.7, (3):最后,正常调用远程 &soap; 方法。BR (./) 最后,和平常一样,调用远程 &soap; 方法。

  5. 例12.7b, (1):这个元素名 getTemp 就是函数名。SOAPProxy 把 getattr 当作一个发报机有别使用方法名分别调用本地方法,这里使用方法名构造了一个 XML 请求文档。BR (./) 这个元素名 getTemp 就是函数名。SOAPProxy 使用 getattr 作为分发器有别于使用方法名分别调用本地方法,这里使用方法名构造了一个 XML 请求文档。

WSDL 介绍

  1. Para 1:它没有做到的是提供任何 {X} 方法自省的手段。

  2. Para 2试想一下:前面两部分所展现的调用只有一个参数和返回的简单远程 &soap; 方法。BR (!) 这不是假设。BR (./) 考虑一下:……

  3. Para 3:Python 精妙地 {X} 不需要明示类型,……

  4. Para 4:&wsdl; 是“网络服务描述语言(Web Services Description Language)”的缩写。 {i} 尽管是为自如地表述多种类型的网络服务而设定,却也经常用于描述 &soap; 网络服务。

  5. Para -6The type of web service (probably function calls using &soap;, although as I mentioned, &wsdl; is flexible enough to describe a wide variety of web services)BR 网络服务的类型(可能还包括 &soap; 的函数调用,正像我所说过的,&wsdl; 足够自如地去描述网络服务的广泛内容)BR (./) 网络服务的类型(可能 &soap; 的函数调用,但我说过,&wsdl; 足够自如地去描述网络服务的广泛内容)

以 WSDL 进行SOAP 内省

  1. 例12.8, (2)To use a &wsdl; file, you again use a proxy class, WSDL.Proxy, which takes a single argument: the &wsdl; file. Note that in this case you are passing in the URL of a &wsdl; file stored on the remote server, but the proxy class works just as well with a local copy of the &wsdl; file.BR 使用一个 &wsdl; 文件,你还是要用到一个 proxy 类:WSDL.Proxy,它只需一个参数:&wsdl; 文件。我所说的是把存储在远程服务器上的 &wsdl; 的 URL,但是这个 proxy 类对于本地的 &wsdl; 副本工作同样出色。BR (./) 使用一个 &wsdl; 文件,你还是要用到一个 proxy 类:WSDL.Proxy,它只需一个参数:&wsdl; 文件。我指定的是存储在远程服务器上的 &wsdl; 的 URL,但是这个 proxy 类对于本地的 &wsdl; 副本工作同样出色。

  2. 例12.8, (3):&wsdl; proxy 类以 Python 字典 server.methods 的方式揭示有效函数。所以列表有效方法就像调用字典方法 keys() 一样简单BR (./) &wsdl; proxy 类通过 Python 字典 server.methods 揭示有效函数。所以列出有效方法只需调用字典方法 keys()

  3. 例12.9, (3):在通过 &soap; 调用函数时,你不需要知道参数名,但 &soap; 支持在调用函数时使用参数名的情形 {X} (类似于 &python; )。

  4. 例12.9, (4)Each parameter is also explicitly typed, using datatypes defined in XML Schema.BR 每个参数都是都是显性类型的,在 XML Schema 中以数据类型定义BR (./) 每个参数都是都是显式类型的,使用的是在 XML Schema 定义的数据类型

DiveIntoPythonZh/2007-08-03 (last edited 2009-12-25 07:09:17 by localhost)