xml中名称空间在属性上的作用域 我对XML命名空间的范围有概念上的混淆,考虑这个例子, <envelope> <order xmlns="http://example.org/ord" xmlns:prod="http://example.org/prod"> <number>123ABBCC123</number> <items> <product xmlns="http://example.org/prod"> <number prod:id="prod557">557</number> <name xmlns="">Short-Sleeved Linen Blouse</name> <prod:size system="US-DRESS">10</prod:size> <prod:color xmlns:prod="http://example.org/prod2" prod:value="blue"/> </product> </items> </order> </envelope> 123ABBC123 557 短袖亚麻衬衫 10

xml中名称空间在属性上的作用域 我对XML命名空间的范围有概念上的混淆,考虑这个例子, <envelope> <order xmlns="http://example.org/ord" xmlns:prod="http://example.org/prod"> <number>123ABBCC123</number> <items> <product xmlns="http://example.org/prod"> <number prod:id="prod557">557</number> <name xmlns="">Short-Sleeved Linen Blouse</name> <prod:size system="US-DRESS">10</prod:size> <prod:color xmlns:prod="http://example.org/prod2" prod:value="blue"/> </product> </items> </order> </envelope> 123ABBC123 557 短袖亚麻衬衫 10,xml,namespaces,Xml,Namespaces,属性“系统””的名称空间是什么 它在前缀为prod的命名空间中是否与其元素大小相同 或者它在默认名称空间中作为其父元素product 答案是“是” 前缀prod指的是后来在product元素上设置为默认名称空间的同一名称空间。通常认为没有前缀的属性不在名称空间中;当然,这是大多数API以及XQuery、XPath和XSLT呈现它们的方式 然而,我听到学究们建议,名称空间规范实际上并没有这样说。规范实际上说的是: 显然,“directly”一词是委员会的折衷方案,因为有些人认为未固定属性的名称空间

属性“系统””的名称空间是什么

它在前缀为prod的命名空间中是否与其元素大小相同

或者它在默认名称空间中作为其父元素product

答案是“是”


前缀
prod
指的是后来在
product
元素上设置为默认名称空间的同一名称空间。

通常认为没有前缀的属性不在名称空间中;当然,这是大多数API以及XQuery、XPath和XSLT呈现它们的方式

然而,我听到学究们建议,名称空间规范实际上并没有这样说。规范实际上说的是:


显然,“directly”一词是委员会的折衷方案,因为有些人认为未固定属性的名称空间实际上是相关XML词汇表的语义问题。我甚至遇到过一些人,他们断言这句话应该理解为一个unfixed属性与其包含的元素位于同一名称空间中。然而,真正重要的是XML API做了什么,而不是名称空间规范说了什么。

我应该如何从“大”默认名称空间中的元素内部引用某些内容?这个名称空间没有任何前缀..你说“你应该如何引用”是什么意思?我问一个对此相当了解的人,他说default scope不适用于属性,所以这是一个没有名称的空间更好,看看@MichaelKay的答案。如果他说我错了,那我就错了。
Default namespace declarations do not apply directly to attribute names;
the interpretation of unprefixed attributes is determined by
the element on which they appear.