PHP SOAP信封命名空间:<soap:Envelope和<SOAP-ENV:Envelope

4
什么是两者之间的区别?
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" ...>

and

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ...>

我该如何在它们之间切换?

如何将响应从 < SOAP-ENV:Envelope 切换为使用 < soap:Envelope?

1个回答

7

没有区别。

XML命名空间由xmlns属性引用其值("http://schemas.xmlsoap.org/soap/envelope/"),该引用的简短形式紧随其后,即在您的一个案例中是soap,而在另一个案例中是SOAP-ENV

该简短形式现在被一致地用作在XML命名空间中定义的元素的前缀。由于元素<Envelope>与定义的命名空间"http://schemas.xmlsoap.org/soap/envelope/"的连接,它的特殊含义已知于底层XML解析器。

简短形式可以是任何允许的字符串 - 只要给出了正确的命名空间URL,对于XML解析器来说并不重要。

我猜你有一个潜在的问题,让你认为命名空间很重要 - 你应该在你的问题中解释那个问题,或者可能提出一个新的问题。


1
换句话说,如果你的代码依赖于前缀保持不变,那么请修复它以依赖于 URI,这样你就可以忽略差异了。 - IMSoP

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