WSDL文档结构详解(五)

2023-11-01

1.实例截图


2.wsdl文件分析 :

 

   <?xml version='1.0' encoding='UTF-8'?>
   <!--
    wsdl的作用:定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式
     请求的url
   -->
   <wsdl:definitions
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://ws.java.atguigu.net/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
    name="HelloWSImplService"
    targetNamespace="http://ws.java.atguigu.net/">
    <!--
     定义当前wsdl文档中所使用的标签,很重要的一部分为soap消息中xml片断所包含的一些标签
     <sayHello>
      <arg0>文本</arg0>
     </sayHello>
      ===>soap请求的请求体的一部分
     <sayHelloResponse>
      <return></return>
     </sayHelloResponse>
      ===>soap响应的请求体的一部分
     -->
    <wsdl:types>
     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:tns="http://ws.java.atguigu.net/"
      elementFormDefault="unqualified"
      targetNamespace="http://ws.java.atguigu.net/" version="1.0">
      
      <xs:element name="sayHello" type="tns:sayHello" />
      <xs:element name="sayHelloResponse" type="tns:sayHelloResponse" />
      
      <xs:complexType name="sayHello">
       <xs:sequence>
        <xs:element minOccurs="0" name="arg0" type="xs:string" />
       </xs:sequence>
      </xs:complexType>
      <xs:complexType name="sayHelloResponse">
       <xs:sequence>
        <xs:element minOccurs="0" name="return" type="xs:string" />
       </xs:sequence>
      </xs:complexType>
     </xs:schema>
    </wsdl:types>
    
    <!--
     定义请求消息,它的个数为SEI方法个数的2倍
      message name 指定消息的名称
       part element 指定消息的组成,依赖<types>中定义的某个element
     -->
    <wsdl:message name="sayHelloResponse">
     <wsdl:part element="tns:sayHelloResponse" name="parameters">
     </wsdl:part>
    </wsdl:message>
    <wsdl:message name="sayHello">
     <wsdl:part element="tns:sayHello" name="parameters">
     </wsdl:part>
    </wsdl:message>
    
    <!--
     定义SEI接口
      portType name 指定SEI接口名
       operation 接口的操作,也就是其方法
        input message 服务器端接收的消息,依赖指定的<message>,也就是将哪个消息作为请求消息对应方法的参数
        output message 指定服务器返回的消息,依赖指定的<message>,也就是将哪个消息作为响应消息对应方法的返回值
     -->
    <wsdl:portType name="HelloWS">
     <wsdl:operation name="sayHello">
      <wsdl:input message="tns:sayHello" name="sayHello">
      </wsdl:input>
      <wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse">
      </wsdl:output>
     </wsdl:operation>
    </wsdl:portType>
    <!--
     定义服务器端处理请求的SEI实现类对象
      binding type :参照<portType>所定义的SEI
       soap:binding : 绑定的方式,也就数据传递的方式 为文档(即xml)
        input : 指定请求消息(与<portType>中的input对应)
        output:指定响应消息(与<portType>中的output对应)
         body use="literal" 消息体为文本
     -->
    <wsdl:binding name="HelloWSImplServiceSoapBinding" type="tns:HelloWS">
     <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http" />
     <wsdl:operation name="sayHello">
      <soap:operation soapAction="" style="document" />
      <wsdl:input name="sayHello">
       <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output name="sayHelloResponse">
       <soap:body use="literal" />
      </wsdl:output>
     </wsdl:operation>
    </wsdl:binding>
    <!-- 定义客户端调用web service的入口
      service name :生产客户端的SEI接口实现的工厂类
       port binding :处理请求的服务器端的SEI接口实现类对象
        address location :web service的请求url 
    -->
    <wsdl:service name="HelloWSImplService">
     <wsdl:port binding="tns:HelloWSImplServiceSoapBinding" name="HelloWSImplPort">
      <soap:address location="http://192.168.1.104/ws_server/helloWS" />
     </wsdl:port>
    </wsdl:service>
   </wsdl:definitions>

 
3.文档结构
 

<definitions>

<type>

<message>

<portType>

<binding>

<service>

<definitions>

<types>

<schema>

<element>

</types>

<message>

<part>

</message>

<portType>

<operation>

<input>

<output>

</portType>

<binding>

<operation>

<input>

<output>

</binding>

<service>

<port>

<address>

</service>

</definitions>

3.1 文档结构图


4. 重要标签的说明
· types - 数据类型(标签)定义的容器,里面使用schema定义了一些标签结构供message引用 

 

· message - 通信消息的数据结构的抽象类型化定义。引用types中定义的标签

· operation - 对服务中所支持的操作的抽象描述,一个operation描述了一个访问入口的请求消息与响应消息对。

· portType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。

· binding - 特定端口类型的具体协议和数据格式规范的绑定。

· service- 相关服务访问点的集合

· port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSDL文档结构详解(五) 的相关文章

随机推荐

  • 事件绑定器-BP

    蓝图上的事件绑定器 在C 中就是代理 类似于这边绑定炸药包 那边爆炸 这个例子是 绑定人的F键 启动着火特效 书上的这个例子有问题 关卡蓝图上 核心在于startfire 事件 1 一边连接这绑定 一边连接着事件触发后的响应 先看第三人称绑
  • SpringBoot使用AOP

    本文介绍SpringBoot中使用Spring AOP 简介 AOP简介 AOP可能对于广大开发者耳熟能详 它是Aspect Oriented Programming的缩写 翻译成中文就是 面向切面编程 这个可能是面试中经常提到的问题 同时
  • 客服如何使用ChatGPT提高工作效率

    文章目录 ChatGPT简介 ChatGPT在客服中的应用 ChatGPT的优势和挑战 客服人员应该如何应对 1 与ChatGPT保持较高的专业水平 2 与ChatGPT建立良好的合作关系 3 强调人性化的服务 4 不断提升沟通和解决问题的
  • [前端] 编译时报错FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

    参考文献 FATAL ERROR Reached heap limit Allocation failed JavaScript heap out of memory Vue cli3执行serve和build命令时nodejs内存溢出问题
  • 【JAVA多线程11】线程基本方法-线程等待(wait)/线程唤醒(notify)

    1 wait notify notifyAll 方法是Object的本地final方法 无法被重写 2 wait 使当前线程阻塞 前提是 必须先获得锁 一般配合synchronized 关键字使用 即 一般在synchronized 同步代
  • Django 快速搭建博客 第四节(hello world视图)

    上一节我们学会了怎样建数据库表 学习数据库的操作 如果想要把它们显示在网页上 我们还得练习一下如何在网页上显示第一个自己写的hello world 视图 1 我们需要在blog下建一个urls py的文件 里面写上 blog urls py
  • react与vue区别及react面试题

    react和vue的区别如下 1 React与Vue最大的区别是模板的编写 Vue鼓励去写近似常规HTML的模板 写起来很接近标准HTML元素 只是多了一些属性 这些属性也可以被使用在单文件组件中 尽管它需要在在构建时将组件转换为合法的Ja
  • springboot优雅实现工厂模式,策略模式——利用spring自动注入list,map性质

    工厂模式 工厂模式 Factory Pattern 是 Java 中最常用的设计模式之一 这种类型的设计模式属于创建型模式 它提供了一种创建对象的最佳方式 在工厂模式中 我们在创建对象时不会对客户端暴露创建逻辑 并且是通过使用一个共同的接口
  • 【WEB】HTTP返回头分析

    Http协议通讯时 在客户端发送请求后 request 服务器端返回的状态码解释 response Http状态码 1 请求收到 继续处理 2 操作成功收到 分析 接受 200 3 完成此请求必须进一步处理 301 302 304 4 请求
  • QObject::connect: Cannot connect QTimer::timeout() to (null)::fuction()

    这几天连接一对信号与槽怎么也连接不上 后来在下面的这个网站找到了答案 https stackoverflow com questions 6238486 qt qobjectconnect cannot connect null 问题在于c
  • [CocoaPods]podspec文件中的resource和resource_bundle

    相信基本上所有的iOS开发同学针对于CocoaPods都不陌生 即便没有用过 也是久闻大名如雷贯耳 作为Objective C和Swift中非常流行的依赖管理工具 它拥有超过10000个公有程序库 通过一份Podfile文件和pod ins
  • Linux集群常用脚本(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 常用脚本编写汇总 自定义脚本放在 bin下 并把这个目录配到PATH
  • js生成随机字符串

    function randomString len len len 32 var str ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678 默认去掉了容易混淆的字符oOLl 9gq Vv Uu
  • 2023-9-8 求组合数(一)

    题目链接 求组合数 I include
  • C语言 _ 指针(超详解析 3分钟完全掌握 总结性讲解 经典通俗)

    目 录 1 指针 指针变量及指针的大小 2 指针类型 3 指针的解引用 4 指针运算 4 1指针 整数 4 2指针 指针 5 野指针 5 1 为什么会有野指针 5 2 如何规避野指针 6 指针和数组 7 二级指针 7 1二级指针的定义 8
  • Java中的加号“+”

    在Java中 加号 与数学上的加号有些不同 它有两个意思 一个是算术运算中的 一个是连接符的重要 类似于C语言中的strcat函数 怎么区分这两种作用呢 1 当 两边是非数值类型 就被看作连接符 2 当 两边都是数值类型 就被看作算术运算中
  • ZYNQ平台在SDK下引导启动UBOOT

    ZYNQ芯片 Linux系统搭建完成后 希望通过QSPI Flash的方式来进行程序加载 QSPI Flash启动则需要烧录以下文件 BOOT bin fsbl elf uboot elf uImage linux内核 zynq board
  • 小吴学前端--Element-UI tree 组件 选中节点高亮(持续高亮)

    最近开发的时候遇到的一个需求 1 加深选中单据颜色框 2 在不切换tree组件时 选中的一直保持高亮 由于对该组件不是很熟悉 记下笔记 用来巩固学习 1 点击后高亮显示的背景颜色修改 仅仅需要修改css部分即可 deep el tree n
  • 从语言到品牌

    在竞争激烈的商业环境中 一个强大的品牌所带来的广泛品牌影响力是企业成功的关键要素之一 无论是刚刚起步的初创公司 还是已经存在多年的大型企业 都需要创建最符合自身 最贴合市场受众的品牌名称 并且持续努力来塑造和维护自己的品牌 以吸引更多客户
  • WSDL文档结构详解(五)

    1 实例截图 2 wsdl文件分析