当前位置:  开发笔记 > Android > 正文

WSDL中Type和Element有什么区别?

如何解决《WSDL中Type和Element有什么区别?》经验,为你挑选了2个好方法。

在WSDL文件中,函数可以返回Type或Element.到目前为止,我只使用自定义类型作为结果.但是,我想知道什么时候Element应该比Type更合适?他们之间有什么区别?

两者之间有什么区别吗?


    


    

从客户角度(使用Web服务的应用程序)?

正如斯卡弗曼指出的那样,上述问题引出了另一个问题.有什么区别


 ...


   ...



1> John Saunder..:

除此之外还有更多.

标准中存在一些可能导致互操作性问题的模糊性.您必须使用类型或元素,具体取决于您使用的是基于文档的服务还是基于RPC的服务.

也有歧义.如果你说


然后你说过消息的内容必须根据类型"ns:type1"进行验证.但是你对包含内容的元素一无所知.它的名称空间是什么?

有关此问题的一些规则,请参阅WS-I Basic Profile.


关于"document/literal"与"document/literal/wrapped"的评论中有一些讨论.这是我的看法.

我刚刚创建了一个Web服务.这是整个事情:

using System.Web.Services;

namespace WebService1
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class SimpleMathService : WebService
    {
        [WebMethod]
        public int Add(int a, int b)
        {
            return a + b;
        }

        [WebMethod]
        public int Multiply(int a, int b)
        {
            return a*b;
        }
    }
}

我不会发布整个 WSDL,但这里是"好的部分":



    
        
            
                
                    
                        
                        
                    
                
            
            
                
                    
                        
                    
                
            
            
        
    
    
        
    
    
        
    
    
        
            
            
        
    
    
        
        
            
            
                
            
            
                
            
        
    
    
        
            
        
    

请注意"包裹"一词是如何显示的.IBM在他们的文档中调用"document/literal/wrapped"只是"document/literal",碰巧使用单个消息部分,恰好有一个名称派生自服务名称,而且恰好引用到一个元素,它碰巧包含操作的参数.

这里没什么神奇的,这里没有什么不标准的.

在许多标准组织中,公司最终会站在一边.在SOAP的情况下,我们有"RPC方面"和"文档方面".RPC对许多人来说比较熟悉 - 它通过函数调用一对一映射.文档不太熟悉,并且要求您实际考虑简单的XML.也许IBM在RPC方面,我不知道.


我现在已经完成了IBM文档,哪种WSDL样式.摘要是:

摘要

有四种绑定样式(实际上有五种,但文档/编码没有意义).虽然每种风格都有它的位置,但在大多数情况下,最好的风格是文档/文字包装.


我还想根据消息中是否存在操作名称,对文档中讨论调度难度的地方作出反应.这不是问题.如果您阅读该文档,您会注意到它从未讨论过该部分中的任何内容.那里存在"无操作名称"问题的解决方案.


    
    
        

soapAction在请求的HTTP头中发送,可用于调度:

POST /SimpleMathService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/Add"



  
    
      int
      int
    
  



2> skaffman..:

您使用哪一个取决于它所引用的架构.如果tns:Person在模式中定义为:


 ...

然后你用


另一方面,如果将模式定义为


   ...

然后你用


所以问题实际上是Schema元素和Schema类型之间的区别.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有