xml - 为 XML 命名空间前缀使用不同的名称是否重要?

标签 xml soap xml-namespaces

长话短说,我正在更改应用程序的 Web 服务器容器。旧容器将发送回 SOAP 响应,如下所示:

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

在新服务器中,我可以发回以下响应:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     ... other elements ...
   </soap:Body>
</soap:Envelope>

如您所见,唯一不同的是使用的命名空间前缀( SOAP-ENV soap )。我对可能依赖这些 Web 服务的所有客户端不透明,但两个 XML 响应是 相同 ?任何客户端是否会因为看到(仅)根信封和正文标记的不同命名空间前缀而中断,即使它们最终指向 相同的 URI ?

最佳答案

不,命名空间前缀名称除了绑定(bind)到命名空间值之外是无关紧要的。

一些写得不好的软件可能会对 XML 命名空间前缀产生不正确的依赖。但是,根据广泛采用的 W3C 标准,命名空间前缀名称只能通过绑定(bind)到命名空间值来获得意义。除了这种约束力之外,它们微不足道。

没有符合的 XML 处理器将依赖于特定的 namespace 前缀名称本身。

关于xml - 为 XML 命名空间前缀使用不同的名称是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54791081/

相关文章:

android - 将颜色设置为 TextView

java - 创建 Java Web 服务客户端

带有 HTTPS 的 XML 命名空间 URI?

javascript - 使用 $.delegate() 在命名空间中选择元素

c# - 当我们有多个名称相同但属性不同的元素时,如何使用 Xdocument 从 xml 中删除元素

java - Android:在没有 startOffset 的情况下创建动画延迟?

xml - 使用 Microsoft XML v3.0 或 v6.0 时出错

c# - 使用 IClientMessageInspector 从 WCF soap 请求中删除操作节点 mustUnderstand

java - Perl 客户端到 JAX-WS java 服务器问题

xml - 使用 xsl 从 xml 中删除 xmlns 命名空间