xmlns =“”究竟意味着什么

前端之家收集整理的这篇文章主要介绍了xmlns =“”究竟意味着什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给出以下(片段)肥皂呼叫;

<m1:NextCommencementDateInput xmlns:m1="http://foo.bar.com/Types">
    <aDate xmlns="">2010-06-02</aDate>
</m1:NextCommencementDateInput>

显然这与(使用XMLSpy对xsd进行验证时)相同

<m1:NextCommencementDateInput xmlns:m1="http://foo.bar.com/Types">
    <aDate>2010-06-02</aDate>
</m1:NextCommencementDateInput>

那么xmlns =“”到底是做什么的呢?

编辑:详细说明为什么我问这是因为我正在呼叫第三方,他们现在说我们应该从我们的请求中删除xmlns =“”.然而,我认为他们是一样的,他们应该改变他们的立场.

解决方法

xmlns =“”清除默认命名空间(又称空前缀)的定义.在此声明之后,所有没有前缀的元素都被认为具有null命名空间.

所以区别在于:

>第一个示例(使用xmlns =“”)清除空前缀,以便aDate元素具有null命名空间.
>第二个例子不清楚它. aDate元素的命名空间依赖于包含范围的名称空间声明.如果存在活动的xmlns =“some:namespace”声明,则aDate将具有此命名空间.否则它将具有null命名空间.

另外一些XML解析器抱怨xmlns =“”如果没有活动的xmlns =“some:namespace”声明要清除…

猜你在找的XML相关文章