`
viking.liu
  • 浏览: 53956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SOAP绑定操作和参数的名称空间问题?

    博客分类:
  • SOAP
阅读更多
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Body>
     <op:add  xmlns:op=“http://act.buaa.edu.cn/add”>
         <a>12</a>
         <b>45</b>
     </op:add >
   </env:Body>
</env:Envelope>
 

在SOAP消息中,绑定操作是需要名称空间的,那操作的名称空间是从哪来的呢?
答:wsdl呀!----那不废话吗?究竟是wsdl中的哪个名称空间呢?
很多人都认为是wsdl的targetNamespace属性,但其实不是。

既然操作需要名称空间,那参数需要名称空间吗?为什么有时候需要,有时候不需要?如果需要那名称空间是什么,跟操作的名称空间什么关系?
答:随便。----这能随便吗?
很多人都认为是操作的名称空间,但其实不是。
-----------------------------------美丽的分割线--------------------------------

操作的名称空间问题
WS-I组织的BP1.1规范限制使用encoded编码方式,只能使用literal编码方式。也就是说只存在两种绑定样式,rpc-literal和document-literal,当然document-literal-wrapped属于document-literal了。
l  rpc-literal绑定
WSDL 定义时 soap:body元素添加namespace属性。在Body元素下构造操作时的名称空间就是namespace属性值 。
l  document-literal-wrapped绑定
WSDL 定义时 soap:body、soap:header、soap:headerfault、soap:fault元素都不能添加namespace属性。document-literal-wrapped的名称空间来自 wsdl中schema的targetNamespace属性。
-----------------------------------美丽的分割线--------------------------------


参数的名称空间问题。
需不需要完全是根据是根据参数定义所在的Schema的elementFormDefault属性决定,elementFormDefault=”qualified”表示需要名称空间限定,名称空间为Schema的tartNamespace属性。如果elementFormDefault=”unqualified”,默认值也是”unqualified”,就不需要名称空间限定。
参数的名称空间和操作的名称空间没有任何关系。
分享到:
评论

相关推荐

    Xfire调用webservice无法接收到参数问题解决

    在IT行业中,Web服务(Web Service)...总之,解决Xfire调用Web服务参数传递问题需要对XML序列化、SOAP协议、命名空间、SOAP绑定配置和安全机制有深入理解。通过细心排查和调试,我们一定能找到问题的根源并成功修复。

    soap白皮书 TXT格式

    例如,`SOAPAction`头部字段用于指示所调用的Web服务操作名称。 #### 六、SOAP与HTTP的结合实例 示例1展示了SOAP消息通过HTTP协议发送的具体格式。其中,`POST /StockQuote HTTP/1.1`行指明了请求的方法和资源路径...

    soap协议规范.pdf

    其中,`SOAPAction`头部用于指定请求的操作类型,而消息体则包含了具体的请求参数。 #### 六、总结 综上所述,SOAP协议作为一种基于XML的标准化通信协议,通过其封装、编码规则及RPC表示等关键部分,为分布式环境...

    Web+Service学习SOAP协议简介WSDL简介

    SOAP 的语法规则包括 SOAP 消息必须用 XML 来编码、SOAP 消息必须使用 SOAP Envelope 命名空间、SOAP 消息必须使用 SOAP Encoding 命名空间、SOAP 消息不能包含 DTD 引用和 SOAP 消息不能包含 XML 处理指令等。...

    WebService描述语言WSDL详解.docx

    例如,SOAP绑定描述了如何将操作转换为SOAP消息。 5. **Service**:服务定义了可以在何处找到服务的端点(也称为服务地址或WS地址),它引用一个或多个绑定,表示服务的不同实例或端口。 ### 示例及元素详解 - **...

    简单的wcf服务绑定案例

    1. **服务绑定**:服务绑定定义了客户端和服务间通信的协议、传输方式、编码等参数。WCF提供了多种内置的绑定,例如BasicHttpBinding(用于与SOAP 1.1兼容的HTTP服务)、NetTcpBinding(用于高效、安全的内部网络...

    WebService之WSDL文件讲解

    - **其他xmlns**:定义了其他的命名空间,如用于引用外部Schema或SOAP绑定。 ##### 3.3 `message`元素 `message`元素定义了Web服务操作的输入和输出参数。例如: ```xml ``` - **name** 属性:定义了消息...

    cxf实现webservice 常用注解总结

    对于SOAP绑定,此值将确定SOAP操作的行为。 其他注解 * @WebResult:指定WebService操作的返回值类型。 * @WebParam:指定WebService操作的参数类型。 * @WebFault:指定WebService操作的错误信息。 使用这些注解...

    使用php搭建webService服务器(代码实例)

    2. `&lt;message&gt;` 元素:定义每个消息的部件,包括消息名称、参数和返回类型。 3. `&lt;portType&gt;` 元素:描述一个 Web Service 的接口,定义了可被执行的操作和相关的消息。 4. `&lt;binding&gt;` 元素:定义每个端口的消息...

    创建WSDL文档基本过程

    在创建WSDL(Web服务描述语言)文档的过程中,我们需要理解WSDL的核心概念和步骤,以及如何定义服务的操作、消息和绑定。WSDL是一种基于XML的应用,用于定义Web服务的接口和实现方式,使得客户端能够发现、理解和...

    一个完整的WSDL文档及各标签详解

    - 使用`soap:operation`和`soap:body`等元素来描述SOAP绑定的具体细节。 ##### 6. `&lt;wsdl:service&gt;` - **作用**:定义了服务本身的信息,包括名称、端口等。 - **内容解析**: - 定义了`HelloService`服务,其中...

    gSoap2.8.17 User Guide

    - 指定匿名参数名称:指导如何在Web服务方法中使用没有具体名称的参数。 - 指定无输入参数的方法:如何定义一个不接受输入参数的Web服务方法。 - 指定无输出参数的方法:如何定义一个不返回输出参数的Web服务方法。 ...

    wsdl-报文模板读取(生成类似soapui打开wsdl模板样式)

    WSDL文件是一个XML文档,它包含了服务的接口、消息格式、操作、绑定和端点等信息。例如,服务的端点(也称为服务地址或SOAP地址)定义了服务在哪里可以被访问,而操作(Operation)则描述了服务能执行哪些功能。 ...

    Java调用以WSDL形式发布的web service.doc

    首先,WSDL文件包含了Web服务的元数据,如服务的命名空间、端点(即服务地址)、操作(方法)和消息类型。当Java应用需要与一个以WSDL发布的Web服务交互时,它通常会使用一种名为“SOAP”(简单对象访问协议)的协议...

    wsdl文件结构分析.doc

    文档会详细指定命名空间、操作名称、输入和输出消息的结构,以及使用SOAP 1.1或1.2进行通信的具体细节。 理解WSDL的结构对于开发和消费Web服务至关重要,因为它是服务接口的蓝图,允许客户端程序正确地构造和解析与...

    WEBServiceWSDL[参照].pdf

    3. `&lt;message&gt;`:描述服务操作的输入和输出参数,每个消息由一个或多个`&lt;part&gt;`组成,每个部分指定一个名称和类型。 4. `&lt;portType&gt;`:定义服务的操作集合,即服务提供的抽象接口,不涉及具体传输协议。 5. `...

    WSDL中文详解(简体中文)

    - **PortTypes**:定义了服务的操作签名,即操作名称、输入参数和输出参数。 **2. 具体定义** - **Bindings**:将PortTypes中的抽象操作绑定到具体的传输协议和消息格式上,如SOAP over HTTP。 - **Services**:...

Global site tag (gtag.js) - Google Analytics