wsdl分析学习
2015-10-15 00:11
281 查看
<pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://server.hw.demo/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="HelloWorldImplService" targetNamespace="http://server.hw.demo/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://server.hw.demo/" elementFormDefault="unqualified" targetNamespace="http://server.hw.demo/" version="1.0"> <!-- types部分是schema,schema是用来定义xml规则的,请求消息和响应消息都是xml,实际上 这里就是用来定义soap消息的请求和响应的,下面的sayHi来自命令空间xmlns:tns="http://server.hw.demo/" 而这个命令空间就是targetNamespace="http://server.hw.demo/",这个复合类型的定义是自己定义给自己同 一个schema文件使用的,如参数arg0没有定义最大出现次数则表示出现1次。 请求部分如下: <sayHi> <arg0>string</arg0> </sayHi> 响应部分如下: <sayHiResponse><return>string</return></sayHiResponse> --> <xs:element name="sayHi" type="tns:sayHi"/> <xs:element name="sayHiResponse" type="tns:sayHiResponse"/> <xs:complexType name="sayHi"> <xs:sequence> <xs:element minOccurs="0" name="arg0" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="sayHiResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <!-- 这个是消息,表示我们发一个消息有二部分组成,一个是请求消息、一个响应消息 wsdl:part表示sayHi这个请求消息由tns:sayHi组成,也就是上面的那个schema定义的。 所以message是用来定义消息的结构,part表示指定引用types部分定义的消息片段。 --> <wsdl:message name="sayHi"> <wsdl:part element="tns:sayHi" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="sayHiResponse"> <wsdl:part element="tns:sayHiResponse" name="parameters"> </wsdl:part> </wsdl:message> <!-- protType:表示服务端的SEI,也就是一个接口 operation:表示这个接口的方法 input:表示该方法的请求消息,会引用上面定义的message部分 output:表示该方法的响应数据,同样会引用上面的message部分 --> <wsdl:portType name="HelloWorld"> <wsdl:operation name="sayHi"> <wsdl:input message="tns:sayHi" name="sayHi"> </wsdl:input> <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <!-- 定义SEI的实现,其实上面是基于接口的定义,现在才开始谈到接口的实现,实现的是哪个接口呢?通过type 属性来指定,引用上面的type。 binding:用于定义SEI的实现 type属性:引用上面的<portType> <soap:binding style="document":绑定数据的一个document(xml) operation:用来定义实现的方法, <soap:operation soapAction="" style="document"/>传输的是document(xml) input:指定客户端传过来的数据 <soap:body use="literal"/>:文本数据 --> <wsdl:binding name="HelloWorldImplServiceSoapBinding" type="tns:HelloWorld"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHi"> <soap:operation soapAction="" style="document"/> <wsdl:input name="sayHi"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="sayHiResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <!-- service:表示一个webservice容器 <wsdl:service name="HelloWorldImplService">中的name表示:它用来指定客户端容器类, port:表示服务端一个SEI的实现 binding:引用上面的<binding> address:当前webservice的请求地址 --> <wsdl:service name="HelloWorldImplService"> <wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort"> <soap:address location="http://127.0.0.1:9000/helloWorld"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
[align=left] [/align]
相关文章推荐
- 关于java网络编程中 java.net.SocketException: Connection reset 异常的原因
- java设计模式系列--命令模式(二)
- android 02 登录
- 后记:Cookie安全大辩论总结
- 简单解决Linux改装windows后启动出现grub rescue的问题
- 【自考】算法——时间复杂度汇总
- 进程与线程的联系与区别
- 笔试怎么过(3)C++笔试
- Java NIO使用及原理分析 (一)
- <q>标签,短文本引用
- 使用<span>标签为文字设置单独样式
- 面向对象类编程,计算分数
- poj 3690 Constellations 二维滚动哈希匹配
- Hibernate.initialize(Obj)用法
- Java网络编程
- LeetCode Missing Number
- Emacs 系列(二):org 模式介绍
- Java实现的贷款金额计算功能示例
- Linux tcpdump命令详解大全
- 零基础入门篇之Linux及Arm-Linux程序开发笔记