我刚刚开始学习Web服务。我无法理解使用xmlns:SOAP元素的soap属性。谢谢。
答案 0 :(得分:11)
那些“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定义的完全不同的东西。两者都可以在同一个文档中使用,没有含糊不清的含义。
答案 1 :(得分:3)
根据您的问题级别(请不要冒犯),听起来您不熟悉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 :(得分:1)
来自W3C SOAP specifications的引用也应该对此有所帮助:
SOAP应用程序应该包括 所有元素上适当的SOAP命名空间 和SOAP定义的属性 它生成的消息。一个SOAP 应用程序必须能够处理 它的消息中的SOAP命名空间 收到。它必须丢弃消息 具有不正确的命名空间(请参阅 第4.4节)它可以处理SOAP 没有SOAP命名空间的消息 虽然他们有正确的SOAP 命名空间。
SOAP定义了两个名称空间(参见[8] 有关XML的更多信息 命名空间):
•SOAP信封具有命名空间 识别码 “http://schemas.xmlsoap.org/soap/envelope/”
•SOAP序列化具有 名称标识符 “http://schemas.xmlsoap.org/soap/encoding/”
SOAP消息不得包含 文件类型声明。一个SOAP 消息不得包含Processing 说明。 [7]