`
jsun
  • 浏览: 72168 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

WSDL解析

阅读更多

以下是开发webservice采用wsdl-first开发模式的一个wsdl例子(摘自CXF example),一个wsdl的编写必须由5小节元素构成:

 

<?xml version="1.0" encoding="utf-8"?>
<!--wsdl根元素definitions,同时使用xmlns:xxx对各命名空间进行缩写,方便引用-->
<wsdl:definitions name="SOAPBuilders-mime-cr-test" xmlns:types="http://cxf.apache.org/mime/types"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://cxf.apache.org/mime"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:xmime="http://www.w3.org/2005/05/xmlmime"   
    targetNamespace="http://cxf.apache.org/mime">

    <!--第一节types元素:主要是使用schema对webservice组件的方法参数和返回值进行类型定义,类似于java的编写class-->
    <wsdl:types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cxf.apache.org/mime/types"
            xmlns:xmime="http://www.w3.org/2005/05/xmlmime" elementFormDefault="qualified">
            <complexType name="ByteArrayType">
                <sequence>
                    <element name="name" type="xsd:string" />
                    <element name="attachinfo" type="xsd:base64Binary"/>
                </sequence>
            </complexType>
            <element name="testByteArray" type="types:ByteArrayType" />
            <element name="testByteArrayResponse" type="types:ByteArrayType" />
           
            <complexType name="DataHandlerType">
                <sequence>
                    <element name="name" type="xsd:string" />
                    <element name="attachinfo" type="xsd:base64Binary"
                             xmime:expectedContentTypes="application/octet-stream"/>
                </sequence>
            </complexType>
            <element name="testDataHandler" type="types:DataHandlerType" />
            <element name="testDataHandlerResponse" type="types:DataHandlerType" />
        </schema>

    </wsdl:types>


<!--第二节message元素:主要是引用第一节的类型定义来创建webservice组件的方法参数和返回值元素,类似于java创建类的实例-->
    <wsdl:message name="testByteArrayIn">
        <wsdl:part name="data" element="types:testByteArray" />
    </wsdl:message>

    <wsdl:message name="testByteArrayOut">
        <wsdl:part name="data" element="types:testByteArrayResponse" />
    </wsdl:message>


    <wsdl:message name="testDataHandlerIn">
        <wsdl:part name="data" element="types:testDataHandler" />
    </wsdl:message>

    <wsdl:message name="testDataHandlerOut">
        <wsdl:part name="data" element="types:testDataHandlerResponse" />
    </wsdl:message>


<!--第三节portType元素:定义了webservice组件的方法名、参数和返回值元素-->
    <wsdl:portType name="TestMtomPortType">
        <wsdl:operation name="testByteArray">
            <wsdl:input message="tns:testByteArrayIn" />
            <wsdl:output message="tns:testByteArrayOut" />
        </wsdl:operation>

        <wsdl:operation name="testDataHandler">
            <wsdl:input message="tns:testDataHandlerIn" />
            <wsdl:output message="tns:testDataHandlerOut" />
        </wsdl:operation>
    </wsdl:portType>

<!--第四节bingding元素:定义了底层的传输协议是基于http还是别的协议,同时指定绑定模式是rpc/encode还是document/literal等模式-->
    <wsdl:binding name="TestMtomBinding" type="tns:TestMtomPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

        <wsdl:operation name="testByteArray">
            <soap:operation soapAction="" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="testDataHandler">
            <soap:operation soapAction="" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>

    </wsdl:binding>

<!--第五节service元素,定义了发布的组件服务名和端口地址-->
    <wsdl:service name="TestMtomService">
        <wsdl:port name="TestMtomPort" binding="tns:TestMtomBinding">
            <soap:address location="http://localhost:9000/mime-test" />
        </wsdl:port>
    </wsdl:service>

</wsdl:definitions>

分享到:
评论

相关推荐

    wsdl解析工具

    **WSDL解析工具详解** WSDL(Web Services Description Language)是一种XML格式,用于定义网络服务的接口,描述了服务的位置、消息格式以及如何调用这些服务。WSDL解析工具是开发人员用来理解和操作WSDL文件的重要...

    完整的WSDL解析,每一个标签都有得到

    在本篇文章中,我们将深入探讨WSDL的基本结构、组成部分、以及如何解析一个WSDL文件。 1. **WSDL的基本结构** WSDL文件由一系列元素组成,包括服务、消息、操作、绑定、接口等。每个元素都有其特定的作用: - **...

    wsdl解析关键包.rar

    **WSDL解析关键包** 在Java开发中,Web Service接口的描述通常采用WSDL(Web Service Description Language)文件。WSDL是一种XML格式的规范,用于定义网络服务的接口,包括服务的位置、操作、消息格式等关键信息。...

    WSDL.rar_C# 解析wsdl文件_WSDL_解析WSDL

    本项目“WSDL.rar”提供了一个C#编写的WSDL解析器,旨在帮助开发者更好地理解和操作WSDL文件。 首先,WSDL是一种XML文档,它详细描述了Web服务的接口,包括服务提供的操作、输入和输出消息的结构以及服务的位置。在...

    wasabi:一个简单的WSDL解析器

    芥末一个简单的WSDL解析器。安装Wasabi可通过,并可通过以下方式安装: $ gem install wasabi入门document = Wasabi . document File . read ( "some.wsdl" ) 获取SOAP端点: document . endpoint# =&gt; ...

    Java解析wsdl文档获取具体的方法与参数

    总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...

    Java解析WSDL&Jar.7z

    6. **错误处理**: 处理可能抛出的异常,例如`javax.xml.ws.WebServiceException`,这可能表示网络问题或WSDL解析错误。 除了JAX-WS,还可以使用Apache CXF或 Axis2等其他Java Web服务框架来解析和使用WSDL。这些...

    WSDL解析示例(WSDL4j)

    NULL 博文链接:https://hongyegu.iteye.com/blog/283970

    JavaScript 调用wsdl示例

    1. **获取WSDL定义**:这通常涉及到一个后端代理或者使用支持WSDL解析的库。例如,`Zepo SOAP`库允许你提供WSDL URL,然后解析并构建相应的SOAP服务客户端。 2. **创建SOAP客户端**:一旦WSDL被解析,你可以创建一...

    wsdl4j 解析wsdl 文件

    WSDL4J是一个Java库,专门用于解析和操作Web服务描述语言(WSDL)文件。WSDL是一种XML格式,用于定义网络服务的接口,包括其输入、输出、操作和服务绑定等信息。理解WSDL4J的工作原理和使用方法对于开发和消费基于...

    wsdl4j解析wsdl文件例子代码

    一个用wsdl4j.jar,ws-commons-java5-1.0.1.jar,XmlSchema-1.3.2.jar完全解析wsdl的例子, 本例子原本是xcalia studio中的一个模块,拿来和初次接触的人参考,因为我走了很多弯路,希望别人能少走。

    wsdl4j.zip

    **描述分析:** 描述中提到,这个压缩包包含了wsdl4j的源码,目的是供学习者深入理解WSDL解析的原理。由于可能涉及到某些监管问题,建议国内开发者参考这些源码,尝试自研WSDL解析工具,以便在国内环境下更好地使用...

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

    幸运的是,gSOAP包中的'wsdl2h'WSDL解析器和'soapcpp2’存根及架构编译器能够将web服务客户端及服务端的开发工作自动化。  'soapcpp2’存根及架构编译器是可以生成构建C++ SOAP客户端所需的C++源码的预编译器。该预...

    wsdl生成工具

    这通常涉及模拟调用、使用WSDL解析器检查结构,或者直接部署到服务器进行实际测试。 10. **最佳实践**:在使用WSDL生成工具时,应遵循良好的设计原则,如保持接口清晰、避免过于复杂的类型定义,以及合理使用命名...

    onvif wsdl转成java代码

    这个过程通常涉及到SOAP(Simple Object Access Protocol)库,如Apache CXF或 Axis2,这些库能将WSDL解析并生成Java代码。 在Eclipse中,导入生成的Java包后,开发者就可以在Java项目中直接调用ONVIF服务,实现对...

    最新onvif wsdl合集

    在实际应用中,开发者通常会使用WSDL解析库(如Java的JAX-WS或.NET的WCF)来生成客户端代理类,这些类可以直接调用ONVIF服务,简化编程工作。同时,理解WSDL文件结构也有助于排查通信问题,确保设备能够正确地遵循...

    wsdl4j-1.5.2

    1. **WSDL解析**:WSDL4J能够解析WSDL文件,将其转换为内存中的对象模型,使开发者可以方便地访问和操作WSDL元素,如服务、端点、消息、绑定、操作等。 2. **WSDL创建与修改**:除了解析,WSDL4J还支持动态创建和...

    java解析wsdl文档获取方法与参数

    总结,Java解析WSDL文档获取方法与参数涉及到的技术点包括:了解WSDL的基本概念,使用Apache CXF或其他类似库,加载和解析WSDL文档,获取服务、端点、操作和消息信息,最后可能还需要生成Java客户端代码以便于调用...

    wsdl开发工具

    7. ** wsdlpull **:这是一个轻量级的、高性能的WSDL解析库,适用于C++开发者,可以快速地解析和执行WSDL服务。 8. ** SoapClient(PHP)**:PHP内置的SoapClient类提供了对WSDL文件的直接支持,能够动态生成与WSDL...

    java解析wsdl示例-详细版

    Java解析WSDL(Web Service Description Language)文档是一个关键任务,特别是在开发基于Web服务的应用程序时。WSDL是一种XML格式,用于定义服务接口、操作、消息结构以及如何通过网络调用这些服务。本示例将深入...

Global site tag (gtag.js) - Google Analytics