URL ссылки в пространствах имен, как они работают? - PullRequest
5 голосов
/ 06 мая 2011

Я понимаю обычные пространства имен 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 не работают, когда я набираю их в своем браузере; Кто-нибудь знает, как это работает? Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

См. эту страницу в MSDN и соответствующий атрибут: XmlnsDefinitionAttribute

Этот атрибут используется для отображения clr процессором XAML, он позволяет отображатьодно или несколько пространств имен clr для одного xmlns, и это можно определить в информации о сборке.

1 голос
/ 06 мая 2011

Как сказал Джон Сондерс, пространство имен - это URL.Тот факт, что это URL, вводит в заблуждение.Пространство имен идентифицируется URI (из которых URL является подмножеством).URI обрабатывается как строка.Два идентификатора пространства имен равны тогда и только тогда, когда строки равны, поэтому все три из них представляют разные пространства имен:

(Пример из спецификации: http://www.w3.org/TR/xml-names/)

Пространство имен служит (как и пространства имен), чтобы одно и то же имя могло ссылаться на разные вещи. Таким образом,Вы можете написать XML следующим образом (при условии, что вы объявили префиксы пространства имен legacy и newSystem):

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

Два элемента TableName относятся к разным вещам, поскольку их пространства имен различны.

...