




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SOAP协议语法拾零现在用JavaScript,HTML和Perl CGI这样的Web技术来解决简易目标访问协议(SOAP)通信原则是可以的。SOAP通信明显的不足在于这些方法没有适当的SOAP句法结构所以这些是不标准的解决方案。SOAP是XML和HTTPSOAP信息是无格式的老版本XML文件。XML提供了一种句法结构,这种句法结构能让你使用各种不同的标示。代替了标签,SOAP规则描述了一种标签。为了获得SOAP请求,三套标签是必需的。既然标签都是配套组合的,就要在一个文档中去连接它们。这个文档就是SOAP通信。最后,通信必须被发送到某个地方。当然,你发送的并不是一个信息,而是一对信息:一套请求应答信息。其中一个是发出“请处理数据”的消息,而另一个时发出“提交我所做的处理”的消息。SOAP规则用HTTP来实现请求应答通信发送SOAP数据的过程在登陆Web页上和发送一个表格已经没有什么区别了。稍后,我将要检测怎样利用HTTP在Web浏览器(也可以说成请求客户端)和Web服务器(也可以说成是响应服务器端)之间影响发送到Internet上的内容。首先,我们来进一步研究一下SOAP的处理过程。SOAP处理样本在早期的SOAP icebreaker article中,有三条内容要发送到服务器中:姓名,年龄和头发的颜色。一条信息被发送回来:通过一句话对这个在表单中的人进行描述。让我们看看下面的例子: 一个人:姓名(Jone Doe),年龄(21),头发的颜色(棕色)。 用一句话描述成:Jone Doe 是一个深色头发的年轻人。 可以看出非常容易。现在再写一个XML的简单例子分别是发送xml和接受xml:发送xml:John Doe21Brown接受xml:John Doe is a young brunette除了在句法中作一些小心的修订之外,SOAP通信在双方都是完整的。正是在语法结构上的规范的正式性才掩饰了SOAP简易朴素的一面。你需要整理(读:把所有的无用的东西放进)这些SOAP信息。推敲请求响应信息整体构造信息的主要问题在于,所有的句法结构来自一个非常局限的领域。这些信息并没有被任何暗示说明这些信息是XML,而且当然也没有指明一些标签来说明。那么我们用下面的方法来改进发送的xml信息:John Doe21Brown利用xml姓名域(xmlns),我已经把所有的标识符都属于字母”P”,这代表了”.au/2002/person”。如果信息的发送者和接收者都理解所写的意义,那么这条消息就是有意义的。但是这些标识符的简化含义到底来源于哪里呢?标识符的简化含义被另一个XML文件说明。该文件都是来源于XSchema standard中的标识符。X系统标准是表述新标识符的一种方法,例如象。既然我创建了标识符,那么我就拥有了一个X系统文件,该文件定义了象这样的标识符所代表的具体含义。这非常容易明了,但是在所有的X系统文件的最后(习惯上是这样的)都附有.xsd文件,而不是.xml文件,.xsd的范围从规则提出的最开始一直到规则结束。因此.au/2002/person 是一个person的.xsd文件,实质上这个文件只是一个XML文件。它看起来就像List A。程序员建立了XML文件。这个文件又涉及到另外一个XML文件,一个在“/2001/XMLSchema.”上的文件。这个文件用标准主体来编写,因此除了每次用该文件来处理一些象person.xsd这样的文件外,他就没什么其它用处了。X系统定义了第二套必要的标识符。标识符是最重要的。在我的模型中Person.xsd文件用两个标识符去定义和标识符。在这个系统文件中有一个非常细节化的过程,但是要指出的这一点很重要,就是所有的信息标识符都是被定义的,所有的标识符都有类型。例如,标识符是类型为type=”positiveInteger,这表示它只能在标识符中出现。数据类型非常重要,因为SOAP通信通常要传递数据而不是传递格式自由的文本。甚至简单的响应消息(),这是一个格式自由的文本,它都要被一串被定义的字符串所取代。把请求放入SOAP封装创建一个SOAP消息一个写信和发信的过程。既然你创建了一个SOAP消息,就要把它放到一个SOAP封装中并在前面注明指令。下面是一个SOAP封装的例子: . . 程序中的图形(三个点)表示要发送的文件在哪里,它要发送到哪里去。当然了,一条XML跟最初的send.xml一样具有滞后性,所以要一点一点清理语法结构:这是你所需要的第三套标识符。,和标识符(严格的语法格式)都会被SOAP标准列入清单其中SOAP标准把这几条封装描述成围绕在SOAP周围的数据,即使封装在技术上和数据分开,实际上你还是会试图发送的。这整个的过程就叫做“SOAP 通信”。现在让我们消息放到封装中,如url=#bList B/url所示。三个“xmlns”XML的名称域声明了三个简化的标识符,用来通信:两个如上面所示(一个已经被再三重复了),一个在person.xsd文件中。但是标识符到底是什么呢?你可以利用SOAP文体的开头把数据放到封装中。SOAP的“必须理解”属性就是标识符对信息的接收者指出,信息必须被整体处理否则将完全失败。标识符是一个新创建的标识符,它就是用来实现上述属性的。把加入到person.xsd系统中,如下面所示:这里有一个X系统的小窍门,从一些内容中提出的标识符在HTML中可以归并成一个类。现在SOAP通信才是完整的,如果你对另外的通信进行全面的处理,请你参看List C.剩下来要做得的就是发送这两条信息。把SOAP消息连接到HTTPHTTP是SOAP消息反复发送的结果。他好比一个邮递员手里拿着SOAP信封去目的地一样。如果你想从象Perl,Java,C 这样的程序语言中发送SOAP信息,而它们中又没有浏览器,你就需要了解HTTP报头来实现请求了。下面是你最后用来发送.xml所需要做的:POST /transactions/AnalysePerson HTTP/1.1Host: .auContent-Type: application/soap; charset=utf-8SOAPAction: .au/transactions/AnalysePersonContent-Length: 447SOAPAtion 报头是具有随意性的并且有几分欺诈性。他告诉接受系统在没有请求接受端去浏览其内部的情况下怎样去处理引入信息并且对端内容是SOAP内容。如果一个SOAP服务器即将被使用,你只需要判断当报头被提交的时候服务器,是否把这些提交都加载上去了。当然,SOAP通信将这样开始recv.xml报头:message will start:HTTP/1.1 200 OKContent-Type: application/soap; charset=utf-8Content-Length: 406这是因为recv.xml信息在一个HTTP响应中被返回,以便和发送HTTP请求相匹配。SOAP通信能够被排列组合并且可以被现代的浏览器发送,所以你可能会期待HTTP报头清单更大一点。从浏览器角度看,无论什么报头,都要是完整的,真实的,完全适应象List D这样客户的SOAP请求。给封装加密SOAP是一个在程序之间传递信息的系统,而且代码是非常简单易懂的。只要你记住中心的任务是定义加在你所发送的数据之间的结构标识符,剩下的要做的就是象装饰圣诞树那样进行尝试性的加载了。不要被这所困扰。如果你对你的SOAP工作有绝对的信心,那么通过学习SOAP and XSchema standards,你一定会做的最好! List A List B John Doe 21 Brown List C John Doe is a young brunette List D POST /transactions/AnalysePerson HTTP/1.1 User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.9) Gecko/20020311 Accept: text/xml,application/xml,application/xhtml xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1 Accept-Language: en-us, en;q=0.50 Accept-Encoding: gzip, deflate, compress;q=0.9 Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66 Keep-Alive: 300 Connection: keep-alive Referer: http:/jupiter.te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国考保定市林业草原岗位申论题库含答案
- 2025国考临汾市外交业务岗位申论必刷题及答案
- 2025年德州市中考英语试卷真题(含答案)
- 2025国考南京市资产管理岗位申论预测卷及答案
- 2025国考阳泉市证券监管岗位行测高频考点及答案
- 2025国考安徽金融监管局申论综合分析题库含答案
- 2025国考乌兰察布市证券监管岗位行测高频考点及答案
- 2025国考通辽市林业草原岗位行测必刷题及答案
- 2025国考福建移民管理局申论模拟题及答案
- 2025国考陕西金管法律专业科目题库含答案
- 中药材种植技术实操指导方案
- 2025年河南入团考试题目及答案
- 2025-2026学年高一上学期第一次月考物理试卷(北京)
- 中国移动长春市2025秋招笔试性格测评专练及答案
- 2.1.4大气的水平运动课件高中地理鲁教版必修一
- 2025年雅思写作真题解析试卷及答案
- 动火作业现场安全防护设施布置与维护更新方案
- 2025国家统一法律职业资格考试考试真题及答案
- 2025年高考化学试卷(湖南卷)(解析卷)
- 河湖划界评审汇报
- 小学英语词汇语法知识点归纳总结
评论
0/150
提交评论