【发布时间】:2012-02-12 22:55:39
【问题描述】:
假设我的 XML 文档中有这样的元素:
<xs:appinfo>
<CustomXML>
<Something>something</Something>
</CustomXML>
</xs:appinfo>
“xs”被声明为默认模式命名空间。我的问题是:解析器如何解释 xs:appinfo 的内部元素?它们属于哪个命名空间?
我问是因为我正在用 C# 解析代码,并且它不断向 CustomXML 元素添加“xmlns=""”,这让我假设否则它会将这些元素视为架构元素。
【问题讨论】:
-
抱歉 - 我错了 - svick 是对的。使用特定前缀定义的 XML 名称空间不会继承给其子项(除非它们还指定了该 XML 名称空间前缀)。另一方面,default XML 命名空间(定义为
xmlns="......",不带任何前缀) 沿子节点链继承。 -
因此,在您的情况下,
<CustomXML>和<Something>是 default XML 命名空间的一部分(无论可能是什么),而<appinfo>节点显然是在定义的xs="....."XML 命名空间中