wsdl 结构

WSDL文档可以分为两部分。分别是抽象部分和具体描述 部分。

  • 抽象部分

  抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随 机器或语言而变的元素。<types>、<message>、<portType>属于抽象定义 层。

  • 具体部分

  <binding>、<service>属于具体定义层。所有的抽象可以是单独存在于别的文件中,也可以从主文档中导入



 1. definitions

定义了文档中用到的各个xml元素的namespace缩写,也界定了本文档自己的 targetNamespace="http://www.jsoso.com/wstest",这意味着其它的XML要引用当前XML中的元素时,要声 明这个namespace。注意xmlns:tns="http://www.jsoso.com/wstest"这个声明,它标示了使用tns这个前缀 指向自身的命名空间。

2.types

<types>标签定义了当前的WSDL文档用到的数据类型

3.message

<message>元素定义了web service函数的参数。<message>元素中的每个<part>子元素都和某个参数相符。输入参数在<message>元素中定义,与输出参数相 隔离,输出参数有自己的<message>元素

4.portType

<portType name="Example">
<operation name="toSayHello" parameterOrder="userName">
<input message="tns:toSayHello"></input>
<output message="tns:toSayHelloResponse"></output>
</operation>
<operation name="sayHello" parameterOrder="person arg1">
<input message="tns:sayHello"></input>
<output message="tns:sayHelloResponse"></output>
<fault message="tns:HelloException" name="HelloException"></fault>
</operation>
</portType>  

在<operation>元素中,name属性表示服务方法名,parameterOrder属性表示方法的参数顺序,使用空格符分割多个参 数,如:“parameterOrder="person arg1”。<operation>元素的子标签<input>表示输入参数说明,它引用<message>标签中的输入参 数。<output>表示输出参数说明,它引用<message>标签中的输出参数。<fault>标签在Java方法中的特别 用来表示异常(其它语言有对应的错误处理机制),它引用<message>标签中的错误参数。

5.绑定实现定义元素:< binding >

 <binding>标签是完整描述协议、序列化和编码的地方,<types>,<message>和<portType>标签处理抽象的数据内容,而<binding>标签是处理数据传输的物理实现。 
<binding>标签把前三部分的抽象定义具体化。 
首先<binding>标签使用<soap:binding>的transport和style属性定义了Web Service的通讯协议HTTP和SOAP的请求风格RPC。其次<operation>子标签将portType中定义的 operation同SOAP的请求绑定,定义了操作名称soapAction,输出输入参数和异常的编码方式及命名空间。 

6.service

时间: 2024-09-29 05:29:23

wsdl 结构的相关文章

WebService中的WSDL详解

WebService中的WSDL详解 有人在WebService开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户(或后台)给你一个WSDL文件(或网址),说按照上面的进行适配, 这时就要对WebService的WSDL有一定的理解,本文将对WSDL(WebService描述语言)进行详细总结. WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端

Web Service 笔记-fkjava

========================第一讲======================= WebService概述 ===================================================== Web Service 不是框架,更甚至不是一种技术,而是一种跨平台,跨语言的规范. Web Service实际用途: 1.同一公司的新,旧系统的整合. 2.不同公司的业务整合. 3.内容聚合. CXF Axis(Apache) --> Axis2(Apache)

MVC面试问题与答案

读这篇文章不意味着你一定要去并且能搞定MVC面试.这篇文章的目的是在面试之前让你快速复习MVC知识.这篇文章也不是MVC培训课程. 如果你想学习MVC,从这儿开始 Learn MVC ( Model view controller) step by step 7 days ,或者是  step by step MVC (Model View Controller) video series from YouTube. 什么是MVC (模型 视图 控制器)? MVC是一个架构模式,它分离了表现与交

随便聊聊 SOA &amp; SOAP &amp; WebService 的一些东西,以及客户端开发的代码逻辑解析

http://blog.csdn.net/hikaliv/article/details/6459779 一天的时间调通了一个 WebService 的 Java 端的 C/S.一个 Android 端的 C/S,调通了而已,很不爽,很闷.因为刚刚上手 JAVA & Eclipse,对于我这个用惯了 VS 2010 的同学来说,感觉大大的不好.被迫和陌生的感觉很容易让我这个巨蟹座的男人直接地由然而生强烈的抵触情绪.不过话说回来了,网络方面的东西我一直很感兴趣,苦于没有项目参与.谁让项目要求我 A

基于PHP——简单的WSDL的创建(WSDL篇)

1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下面是我自己写的模板: [html] view plaincopy <?xml version ='1.0' encoding ='UTF-8' ?> <definitions name='自定义名称' targetNamespace='目标命名空间(WSDL所在地址)' <!--tns

WSDL规则解释(转)

转自:http://www.blogjava.net/baoyaer/articles/116413.html WSDL文档可以分为两部分.顶部分由抽象定义组成,而底部分则由具体描述组成.抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随机器或语言而变的元素.这就定义了一系列服务,截然不同的网站都可以实现.随网站而异的东西如序列化便归入底部分,因为它包含具体的定义.l 抽象定义        Types            独立与机器和语言的类型定义 Messages    

[Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)

前言 本篇是承接上一篇: [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端 在上一篇粗略地介绍了如何使用Top-Down的方式创建一个web service .  但是对于如何部署及调用,以及一些细节的部分基本上没有介绍. 应某些博友的要求, 也适逢自己有空, 接下来就详细介绍一下整个部分如何进行. 环境准备 JDK 肯定要安装了, 这个就不多讲了. 1. eclipse  3.5.2 对eclipse 版本的要求其实不是很严

web服务器:SOAP,WSDL,UDDI

一.web服务简介 Web Services是一个可以将应用程序变为Web应用程序,将自己本地的应用程序信息通过网络,发布到网络中,让别人通过浏览器访问本地信息. Web Services的技术主要建立在XML的规范之上,保证了这一体系结构的平台无关性.语言无关性和人机交互性能. Web Services框架的核心技术包括SOAP,WSDL和UDDI,它们都是以标准的XML文档的形式表示的. SOAP(Simple Object Access Protocol)简单对象访问协议,消息起着用来交换

【WebService】wsdl配置详解以及使用注解修改wsdl配置

WebService系列文章: [WebService]带你走进webservice的世界 [WebService]自定义WebService服务及其调用 前面分析了一下关于ws的基本知识,我们知道,wsdl是ws中很重要的文档,我们可以通过解析该wsdl文档获取ws的相关信息,其实,如果不了解该文档结构的话,问题也不大,只要会解析即可进行开发.但是如果想要生成一个符合自己项目的,或者比较人性化的一个wsdl的话,或者从可读性角度来说,就需要在编写ws代码时进行一些相应的配置了,比如说ws名称,