XML模式:SOAP

所属分类: 网页制作 / XML/XSLT 阅读数: 693
收藏 0 赞 0 分享

简单对象访问协议(Simple Object Access Protocol,SOAP)实际上是一种 Web 服务技术,但 Web 服务中客户机和服务器之间的数据交换格式是通过灵活的 XML 模式实现的。
Web 服务的主要优点是客户机和服务器通过网络进行信息和数据交换的互操作性的层次。SOAP 标准使用 XML 以一种体系结构中立的格式来构造数据,定义数据类型和信息。
对于编程语言来说,只需要提供数据类型和需要在远程服务器上调用的函数名称即可。SOAP 库将用主机语言编写的信息和格式转化成 XML 格式的消息,其中包括调用的函数和提供的参数。
通过 W3C 的例子就可以了解 SOAP 的结构。调用远程 SOAP 函数 GetEndorsingBoarder() 的时候,客户机上的调用程序生成清单 1 所示的 XML 消息。 清单 1. 调用远程 SOAP 函数 GetEndorsingBoarder()

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarder xmlns:m="http://namespaces.snowboard-info.com"> <manufacturer>K2</manufacturer> <model>Fatbob</model> </m:GetEndorsingBoarder> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAP 客户机发送的整个消息都放在 SOAP 信封中。信封的内容就是消息的详细内容。
被调用的函数显然是 GetEndorsingBoarder,它包括两个参数:manufacturer 和 model。由此可见,它把本地的可能采用二进制编码的字符串转化成了 XML 字符串。由于 XML 是平台独立的,主机使用 SOAP 系统不需要复杂的二进制编码和解码就可以交换消息。
服务器通过另一个 XML 编码的 SOAP 信封返回响应,这一次是函数的返回值。SOAP 请求的响应格式与函数相同,只不过在信封内容的后面加上了 Response,如清单 2 所示。
清单 2. SOAP 请求的响应

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarderResponse xmlns:m="http://namespaces.snowboard-info.com"> <endorsingBoarder>Chris Englesmann</endorsingBoarder> </m:GetEndorsingBoarderResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

通常不需要自己编写 SOAP 消息,SOAP 库会自动生成。不过 SOAP 信封的结构和简单性表明使用 SOAP 标准共享信息很简单。
SOAP 大大简化了交换消息和调用远程函数的工作。远程过程调用(Remote Procedure Call,RPC)标准需要复杂的方法来处理二进制数据的序列化,发送结构化更高的信息需要详细的声明和双向的信息转换。
使用 SOAP,XML 序列化大大降低了这种复杂性,使得跨平台、跨语言集成和数据交换更加简单。
更多精彩内容其他人还在看

详解XML中的标签与元素的使用

这篇文章主要介绍了XML中的标签与元素的使用,是XML入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

XML中的属性学习教程

这篇文章主要介绍了XML中的属性学习教程,包括使用属性将数据存储在子元素中的例子,需要的朋友可以参考下
收藏 0 赞 0 分享

详解XML中的代码注释书写方法

这篇文章主要介绍了详解XML中的代码注释书写方法,文章中总结了注释使用的一些注意点,比如XML不支持嵌套注释等,需要的朋友可以参考下
收藏 0 赞 0 分享

深入解析XML中的字符实体与字符数据

这篇文章主要介绍了XML中的字符实体与字符数据,文中所说的CDATA片段即是指字符数据即不由解析器解析的文本块,需要的朋友可以参考下
收藏 0 赞 0 分享

解析XML对代码中的空白处理

这篇文章主要介绍了XML对代码中的空白处理,文中介绍到了XML书写中的有效空白与无效空白的区分,需要的朋友可以参考下
收藏 0 赞 0 分享

简单了解XML中的处理指令

这篇文章主要介绍了XML中的处理指令,处理指令在XML中并不常用,稍作了解即可,需要的朋友可以参考下
收藏 0 赞 0 分享

浅谈XML代码编写的编码与验证问题

这篇文章主要介绍了XML代码编写的编码与验证问题,与HTML类似,XML文件的编码也能在序言部分被指定,需要的朋友可以参考下
收藏 0 赞 0 分享

深入解析XML中的DTD文档类型定义

这篇文章主要介绍了XML中的DTD文档类型定义,是XML入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

详解XML编程中的模式定义XSD

这篇文章主要介绍了详解XML编程中的模式定义XSD,讲解了如何在XML文档中声明模式及定义类型等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

解析XML中的树形结构与DOM文档对象模型

这篇文章主要介绍了XML中的树形结构与DOM文档对象模型,文中举了JavaScript解析DOM对象的例子,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多