命名空间中的 URL 引用,它们如何工作?

发布于 2024-11-05 16:44:19 字数 441 浏览 0 评论 0 原文

我了解常规 XML 命名空间,例如:

 xmlns:myExample="clr-namespace:WindowsApp.MyNamespace;assembly=MyAssembly"

但我经常看到以下形式的命名空间:

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

这些 URL 命名空间意味着什么?当我在浏览器中输入 URL 时,这些 URL 不起作用;有谁知道这是如何工作的?提前致谢。

I understand regular XML namespaces such as:

 xmlns:myExample="clr-namespace:WindowsApp.MyNamespace;assembly=MyAssembly"

But I often times see namespaces of the form:

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

What do these URL namespaces mean? The URLs don't work when I type them into my browser; does anyone know how this works? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风铃鹿 2024-11-12 16:44:19

请参阅 MSDN 上的此页面 和相关属性:XmlnsDefinitionAttribute

此属性用于 XAML 处理器进行 clr 映射,它允许将一个或多个 clr 命名空间映射到单个 xmlns 可以在程序集信息中定义。

See this page on MSDN and the relevant attribute: XmlnsDefinitionAttribute

This attribute is used for clr-mapping by the XAML processor, it allows mapping one or multiple clr-namespaces to a single xmlns and it can be defined in the assembly info.

一个人练习一个人 2024-11-12 16:44:19

正如 John Saunders 所说,命名空间就是 URL。事实上,它是一个 URL,具有误导性。命名空间由 URI(其中 URL 是其子集)标识。 URI 被视为字符串。当且仅当字符串相等时,两个命名空间标识符才相等,因此这三个表示不同的命名空间:

  • http://www.example.org/~wilbur
  • http://www .example.org/%7ewilbur
  • http://www.example.org/%7Ewilbur

(示例来自规范:http://www.w3.org/TR/xml-names/)

命名空间的作用(就像命名空间一样)使相同的名称能够引用不同的事物。因此,您可以像这样编写 XML(假设您已声明命名空间前缀 legacynewSystem):

<newSystem:Type newSystem:TypeName="Customer" newSystem:TableName="Customers" legacy:TableName="cstmr" />

这两个 TableName 元素引用不同的事物,因为它们的命名空间不同。

As John Saunders said, the namespace is the URL. The fact that it's a URL is misleading. The namespace is identified by a URI (of which URL is a subset). The URI is treated as a string. Two namespace identifiers are equal if and only if the strings are equal, so all three of these represent different namespaces:

  • http://www.example.org/~wilbur
  • http://www.example.org/%7ewilbur
  • http://www.example.org/%7Ewilbur

(The example is from the spec: http://www.w3.org/TR/xml-names/)

The namespace serves (as namespaces do) to enable the same name to refer to different things. Thus, you can write XML like this (assuming you have declared namespace prefixes legacy and newSystem):

<newSystem:Type newSystem:TypeName="Customer" newSystem:TableName="Customers" legacy:TableName="cstmr" />

The two TableName elements refer to different things because their namespaces are different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文