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

KMC*_*KMC 6 xml wpf xaml qualified-name

在阅读MSDN-XAML命名空间MSDN理解XAML命名空间之后,我仍然不理解拥有合格名称(QName)的目的.

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

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

x是前缀短于完整的URI(在这种情况下,URL): http://www.w3.org/1999/XSL/Transform.然后有这个QName调用xmlns.mdsn中QName的定义是:

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

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

Jay*_*zen 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