Silverlight XAML - действительно ли XMLNS выходит наружу? - PullRequest
1 голос
/ 08 октября 2010

Когда вы создаете новую страницу Silverlight, вы получаете несколько пространств имен XML, автоматически созданных в теге пользовательского элемента управления. Например -

<UserControl x:Class="QuickStart.MainPage"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable="d"
   d:DesignHeight="300" d:DesignWidth="400">

Я знаю, что xmlns имеет основные теги silverlight,: x имеет элементы языка xaml,: d имеет материал для смешивания выражений и т. Д. У меня такой вопрос: действительно ли silverlight выполняет вызов определенных интерфейсов схемы либо во время проектирования, либо во время выполнения? время? Я не могу себе представить, что он выходит на schemas.microsoft.com каждый раз, когда отображает страницу. Но если нет, то действительно ли URI являются просто константами?

Ответы [ 3 ]

4 голосов
/ 08 октября 2010

Пространства имен XML являются URL-адресами, но в большинстве случаев они не соответствуют реальным веб-сайтам, документации или чему-либо еще.Они в основном служат для предоставления уникального идентификатора для элементов XML, если каждый сотрудничает, использует доменное имя, которым они владеют, как часть URL.В первые дни, кто бы ни придумал использовать URL-адреса для xmlns, возможно, предназначался для того, чтобы люди публиковали документацию по URL-адресам, но на самом деле никто этого не делает.

Синтаксические анализаторы XML не посещают эти URL-адреса в любой момент, онив основном просто идентификаторы.

1 голос
/ 08 октября 2010

На ваш вопрос уже дан ответ, но никто не упомянул , почему они используются.

Не упоминается, что вы также можете указать пространство имен через ссылку на сборку, но это будет означать, что вам потребуется одно пространство имен на сборку. Библиотеки Silverlight распределены по нескольким сборкам (на это указывает не только приведенный выше пример записей xmls).

Использование «константы», которую вы правильно называете в качестве пространства имен, означает , что на несколько сборок можно ссылаться с помощью одного общего пространства имен .

Это экономит большое количество отдельных записей xmlns, но создает проблему выяснения , какие сборки относится к пространству namspace , если у вас есть только источник страницы:)

1 голос
/ 08 октября 2010

Нет, он не выходит на microsoft.com (эти папки даже не существуют), и да, это делает их в основном постоянными.

...