XML在命名空间内查找命名空

时间:2013-12-23 13:49:34

标签: xml namespaces

我有这段代码:

<st:friend xmlns:st='areacode:819'>
<st:name xmlns:st='urn:555'>Company</st:name>
<type>B</type>
</st:friend>

有人可以解释为什么st被宣告两次吗?

1 个答案:

答案 0 :(得分:2)

您的XML示例格式不正确,因为它没有关闭<st:friend>元素,但我假设您打算在<type>元素之后关闭它。

这里发生的是<st:name>元素正在重新定义st前缀引用的命名空间(到urn:555)。此定义仅适用于<st:name>元素(如果存在,也适用于子元素)。结束标记<st:name/>后,st前缀再次引用其原始名称空间(areacode:819)。