直接访问web.xml_直接通过HTTP将XML用于Web服务(如果适用)

直接访问web.xml

SOAP为系统提供了一种打包和交换以XML编码的消息的方式。 SOAP被设计为Web服务系统所需的各种功能的基础层,但因此SOAP并不是通过Internet协议交换XML的最直接方法。 基本的Web体系结构使交换不仅仅是HTML页面成为可能。 明显的项目是图像和流行格式,例如PDF。 其他系统可以直接从Web上获取XML:RSS,Atom,Creative Commons,XSLT样式表,SVG等。 当然,您可以通过在Web服务器上放置适当的XML文件来创建自己的服务。 您甚至可以通过允许HTTP POSTPUTDELETE命令来支持写操作。 正如我将在本文中演示的那样,您可以使用WSDL描述这些简单的服务。 有趣的是,大多数SOAP系统通过在Web服务器上托管来交换WSDL文件的方式说明了如何使用这种基本Web原理来引导整个Web服务世界。

一些专家使用名称表示状态传输(REST)来描述仅依赖于核心Web体系结构的服务。 对于何时使用SOAP和何时使用REST,您不会找到任何严格的规则,但是重要的是始终至少考虑将REST用于Web服务任务,而不仅仅是使用SOAP。 大量已安装的工具和服务基础隐含了对REST的理解,尽管SOAP是一种快速发展的技术,但在运行代码方面仍远远落后于REST。 Web代理,蜘蛛,搜寻器和其他代理,以及普遍部署的浏览器等已经可以处理通过HTTP明确传送的XML。

考虑所有其他可处理通过HTTP,FTP或其他方式检索的XML的XML技术也很重要。 您可以使用标准document()函数轻松地合并从RESTful服务检索的XML,但是合并SOAP请求的唯一方法是通过专有扩展。 可以通过XInclude包含通过RESTful服务可用的XML文档,也可以使用XLink甚至基本HTML和XHTML链接将它们链接到XML文档。 通过SOAP,这些都不是简单明了的。

WSDL的作用

即使不使用SOAP,您仍然可以使用WSDL。 WSDL一直支持与RPC样式的SOAP over HTTP以外的约定的绑定,而该绑定与它之间的关系最为密切。 但是,这些替代绑定并未得到尽可能频繁的使用。 问题的一部分是WSDL的复杂性:描述简单的Web访问感觉有点过头了。 清单1显示了一个WSDL 1.2示例,用于表示RSS服务的常用方法:简单下载。

清单1.用于描述通过Web RESTful可用的RSS的WSDL 1.2示例
<?xml version='1.0' encoding='UTF-8'?>
<definitions name='rss-service'
    targetNamespace='http://example.com/rss-service/'
    xmlns='http://www.w3.org/2003/06/wsdl'
    xmlns:http='http://www.w3.org/2003/06/wsdl/http'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema'
>

  <message name='rss-request'>
    <part name='feed' type='xsd:string'/>
  </message>

  <message name='retrieved-rss'>
    <part name='rss-doc' mimeType='application/rss+xml'/>
  </message>

  <interface name='rss-interface'>
    <operation name='retrieve-rss'>
      <input name='rss-request'/>
      <output name='retrieved-rss'/>
    </operation>
  </interface>

  <binding name='rss-interface-http1' type='rss-interface'>
    <http:binding verb='GET'/>

    <operation name='retrieve-rss'>
      <http:operation location='syndication/{feed}.rss'/>
      <input>
        <!-- no parameters other than the one already worked
             into the URL -->
      </input>
      <output>
        <!-- no parameters because response is explicitly
             the HTTP response -->
      </output>
    </operation>
  </binding>

</definitions>

message元素代表实际的HTTP请求和响应。 part元素代表通过HTTP交换提供详细信息的信息。 对于该请求,我参数化RSS feed文件名的名称。 这样,我可以使用相同的WSDL来覆盖RSS 0.91 feed和RSS 1.0 feed。 绑定指定此描述涵盖低级HTTP 1.1。 http:operation上的location属性将feed参数映射为其在服务器上选择文件名时的角色。 方括号是WSDL 1.2约定,与属性值模板没有什么不同:内容被给定名称的消息部分代替。

把事情简单化

Web服务源于非常宏伟的愿景。 当实现了整体构想并且所有部分都可以广泛使用时,将证明很多复杂性是合理的。 但是,就目前情况而言,有时最好使用更简单的约定,在Web服务出现之前整整十年使Web爆炸式增长。 如果XML通过简单的HTTP 1.1提供服务可能可以解决问题,则值得考虑。


翻译自: https://www.ibm.com/developerworks/xml/library/x-tiphttp/index.html

直接访问web.xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值