XML中没有命名空间的元素

Pav*_*rin 3 xml

这是一个结构良好的XML,没有默认命名空间.

<?xml version="1.0" encoding="UTF-8"?>
<Zoo xmlns:Staff="URN:STAFF" xmlns:Animal="URN:ANIMAL">
    <Staff:Security name="John" surname="Connor"/>
    <Animal:Dog name="Hachico"/>
    <Visitor name="Arnold" surname="Schwarzenegger"/>
</Zoo>
Run Code Online (Sandbox Code Playgroud)
  1. 在哪个命名空间中有标签Animal:Dog的属性名称
  2. 在哪个命名空间中有元素访问者

IMS*_*SoP 5

它们根本不在任何名称空间中.

XML命名空间规范相关部分包括以下语句:

如果作用域中没有默认名称空间声明,则名称空间名称没有值.

在该规范的术语中,"扩展名称"由一对值组成,即"命名空间名称"和"本地名称".所以你可以将<Animal:Dog />元素表示为类似{'URN:ANIMAL', 'Dog'}<Visitor />元素,将元素表示为{null, 'Visitor'}.

如此相关问题中所讨论的,未加前缀的属性有点好奇,因为即使其中一个在范围内,它们也不会采用默认命名空间:

未加前缀的属性名称的名称空间名称始终没有值.

很多人会松散地将属性解释为与它所在的元素位于同一名称空间中,但从技术上讲,这不是这种情况.<Animal:Dog name="Hachico" />一样的<Animal:Dog Animal:name="Hachico" />.