soap soapenv SOAP-ENV 区别

来源:互联网 发布:美工工作描述 编辑:程序博客网 时间:2024/06/05 10:21
接受:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body>  <helloWorldResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">   <helloWorldReturn xsi:type="xsd:string">Hello World! This  is Test!</helloWorldReturn>  </helloWorldResponse> </soapenv:Body></soapenv:Envelope>



有时soapevn 是大写: SOAP-ENV,这完全是命名空间的定义

这个属于XML基础知识。
带有冒号的xml标签用于声明xml的标签元素的命名空间。

为什么要使用命名空间呢?这是因为XML文档中同一个标签名可能有着不同的含义。例如<table>这个标签,一般我们知道它是一个网页上的表格,如果一个家具商,它当然认为这表示一张桌子了。有时即使是在一个XML文件内也可能有这样的命名冲突。因此XML规范制定者们引入了名字空间的概念。具体做法就是先用xmlns:xxx 声明一个命名空间,这样在标签的前面加个前缀并与标签本身的名字用冒号隔开。这就是SOAP的XML文本中冒号和xmlns满天飞的由来。

这个前缀soapenv 应该而且只需要与xmlns:后面的东西完全一样。换句话说。你可以叫soapenv 也可以叫SOAP-ENV或其他任何你喜欢的名字,但后面的 xmlns:xxx=yyyy这个xxx也必须叫这个名字。后面的这个yyyy可是固定的内容。
XML规范还规定了,命名空间是向下包含的。除非特别另外声明,子节点的命名空间默认就是它的父节点的命名空间,这样可以减少书写的麻烦。

0 0