父元素声明了xmlns:prefix,而子元素没有前缀的XML命名空间是什么?

7

我知道XML中的默认命名空间,例如为元素声明xmlns =“xxx”,则此命名空间将适用于所有没有前缀的子元素。我的问题是,如果不是在元素中声明xmlns =“ ...”,而是在元素中声明xmlns:pre =“ ...”,那么未带前缀的子元素是否仍与父节点的命名空间相关联?

以下是示例:

<?xml version="1.0" ?>
<srv:tutorial xmlns:srv='http://www.w3resource.com/server-side-tutorial'>
    <name>php</name>
    <name>asp</name>
    <name>jsp</name>
</srv:tutorial>

三个内部name元素的命名空间是什么?
1个回答

5

所有三个内部的“name”元素属于“默认”或“空”命名空间,而不是带有“srv”前缀的命名空间。


2
没有空的NS。这是不存在的。在这里,也没有默认的NS。因此它们不属于任何NS。 - Ludovic Kuty
“默认”和“空”是指它们在“逻辑上”位于“那个”命名空间中,当然这不是一个合法的命名空间。我们可以参考http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-breakdown,其中包含了一个RESERVATION,其中包含了SEAT和DEPARTURE,这与我们的情况非常相似。 - Alfred Xiao

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