我理解常规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不起作用;有谁知道这是如何工作的?提前谢谢。
答案 0 :(得分:3)
请参阅this page on MSDN及相关属性:XmlnsDefinitionAttribute
此属性用于XAML处理器的clr映射,它允许将一个或多个clr-namespace映射到单个xmlns
,并且可以在汇编信息中定义。
答案 1 :(得分:1)
正如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(假设您已声明名称空间前缀legacy
和newSystem
):
<newSystem:Type newSystem:TypeName="Customer" newSystem:TableName="Customers" legacy:TableName="cstmr" />
两个TableName元素引用不同的东西,因为它们的名称空间不同。