名称空间声明中的限定名称

时间:2012-06-13 07:17:03

标签: wpf xml xaml qualified-name

在阅读MSDN-XAML NamespacesMSDN-Understanding XAML Namespaces后,我仍然不明白拥有合格名称(QName)的目的。

以下面的命名空间声明为例:

  

的xmlns:X =的 'http://www.w3.org/1999/XSL/Transform'

x是完整URI的前缀缩写(在本例中为URL):http://www.w3.org/1999/XSL/Transform。然后有一个名为xmlns的QName。 mdsn中QName的定义是:

  

包含前缀的完整名称是a的词汇形式   限定名称(QName):

这是什么意思,为什么它存在,因为thet语句已经有一个定位器和一个前缀来标识命名空间及其名称?

1 个答案:

答案 0 :(得分:1)

我认为这不仅仅是一个XAML问题,它只是一个XML命名空间问题。

xmlns属性(特殊属性)只是XML中用于定义命名空间的属性。它说“这里有一个命名空间声明”。如果您不添加前缀,那么您告诉它将属性的值设置为该页面的默认命名空间。如果完全省略默认名称空间,则假定该属性的值(在=之后和引号之间)。

XAML是XML,并选择使用XML机制声明名称空间。我猜他们可以创建他们自己的机制,但是因为他们没有,如果你在你的问题中提示你添加你的命名空间,没有xmlns:,处理XML的应用程序(在这种情况下是.NET框架) ,解析XAML文件)不知道你试图定义命名空间;它会认为你正在为它定义的元素添加一个名为“x”的属性(很可能不是为该元素定义的属性)。

有关XML名称空间的更多信息

http://www.w3.org/TR/REC-xml/

http://www.w3schools.com/XML/xml_namespaces.asp

http://en.wikipedia.org/wiki/XML_namespace