SOAP元素的xmlns:soap属性

8

我刚开始学习web服务,但是我不理解SOAP元素中的xmlns:soap属性的用途。谢谢。


你有任何代码吗?你在考虑的是SOAP头部分还是你在消息元素中看到了这个? - littlegeek
@Littlegeek--> 抱歉,我的书只有理论部分,所以即使是简单的概念也很难理解没有程序的情况下。 - Warrior
3个回答

14

"xmlns:" 属性并不特定于 SOAP。它们定义了稍后用于引用 XML 命名空间的前缀。例如:

<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" 
    DTS:ExecutableType="SSIS.Package.2">

该代码将DTS定义为前缀,表示命名空间"www.microsoft.com/SqlServer/Dts"。然后引用该命名空间中的ExecutableType属性。

XML命名空间与C#或C ++中的命名空间执行相同的任务。它们提供了一个空间来定义名称,使得一个命名空间中的名称不会与另一个命名空间中的名称冲突。您可以定义自己的“ExecutableType”属性,它可能完全不同于Microsoft定义的属性。两者都可以在同一文档中使用,而无需确定哪个是哪个。


5
基于你的问题水平(请不要生气),看起来你对XML以及基于XML的Web服务还很陌生。John Saunders正确地描述了XML命名空间及其用途。如果你想更好地理解XML和基于XML的Web服务,我建议你从W3 Schools的XML教程开始学习(特别是关于XML命名空间的部分)。
该教程位于:http://www.w3schools.com/xml/default.asp XML命名空间部分位于:http://www.w3schools.com/xml/xml_namespaces.asp

2
这段引用来自 W3C SOAP规范,应该对此有所帮助:
一个SOAP应用程序应该在其生成的消息中定义的所有元素和属性上包含正确的SOAP命名空间。它必须能够处理接收到的SOAP命名空间,但是如果消息具有不正确的命名空间,则必须丢弃该消息(请参阅第4.4节)。此外,它也可以像处理正确的SOAP命名空间一样处理没有SOAP命名空间的SOAP消息。
SOAP定义了两个命名空间(有关XML命名空间的更多信息,请参见[8]):
• SOAP信封的命名空间标识符为“http://schemas.xmlsoap.org/soap/envelope/
• SOAP序列化的命名空间标识符为“http://schemas.xmlsoap.org/soap/encoding/
一个SOAP消息不能包含文档类型声明。SOAP消息不能包含处理指令。[7]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接