WSDL文件结构个人详解

最近要做的东西要用到webservice,肯定就会用到WSDL文件,所以就总结讲一下WSDL文件的结构。组成元素都有啥,大致情况。

网上的文章大同小异,上来就讲大概要7个元素,即types、import、message、portType、operation、binding、 service元素,然后上来一段代码,一点也不直观甚至很懵逼。有点像上学的时候,老师上来讲七个定义,balabala一顿讲。我讲的话是先上来一张图,任何结合实际类比结合自己的理解讲清这几个元素,请看:
这里写图片描述

这张图不错,尤其是对应我自己的工程的WSDL文件了解WSDL的结构。首先我们看到的是一个definition,这是一个大的集合,将所有元素包在里面。做个类比,就好比我们页面JSP或者HTML里面的html标签,header元素,body元素都包括在里面。

我们从图中可以看到,直接连到definition共有5个元素,分别是service ,binding,port type,message,types。他们与definition的关系就好比刚才我们讲的HTML标签与body标签一样,直接对应的上一层和下一层。

Service:看别人说法有的是:相关服务访问点的集合。有的是:一个webservice容器。
结合我自己文件来看上面两种意思大概差不多,我的service是一个只定义一个soap本地测试的,里面定义了IP和端口。这里写图片描述

binding特定端口类型的具体协议和数据格式规范的绑定。结合我自己的理解,这个binding(连接)指的是对刚才service的下一级或者是补充。你可以在service里面看到binding。
service是服务的访问点的集合,而下一层的binding是对服务有哪些操作(operation)的一个集合。
这里写图片描述

PortType这又有两种说法,一是对于某个访问入口点类型所支持的操作的抽象的集合,这些服务可由一个或者多个服务访问点来支持。二是用来定义服务端的SEI(我也不知道SEI是啥,感觉这个人应该是把别的资料复制粘贴过来的。个人感觉应该是什么interface之类的。)
(有以上我们还是可以了解,大概是定义接口什么的,来支持服务操作operation)
这里写图片描述

Message通信消息的数据结构的抽象类型化的定义,使用Types所定义的类型来定义整个消息的数据结构。(其实你可以看成operation中的补充,对应的请求(request)和对应的返回(response))
这里写图片描述
这里要注意一下,message里面的element在eclipse可以crtl点过去,但只是到对应的xsd里,要想找到具体是什么还要在xsd中搜索name,一步一步点下去就知道具体传的啥返回的啥。

Type 数据类型定义的容器,这个很好说,其实这个大多数项目里面定义到一个xsd文件,xsd文件具体说明数据类型。

这里写图片描述

我会准备写一个xsd文件的文章,这些都是自己的原创和想法理解,可能有些不妥的地方请指出。 还有就是,别抄来抄去或者转载不署名,要尊重个人劳动成果,好伐。 这是我个人公众号:我是stubborn (微信号gh_bb1c3253711f) 虽然里面目前没什么内容(我很懒很菜),但没准以后很精彩哦。