2012-06-13 2 views
6

После прочтения MSDN-XAML Namespaces и MSDN-Understanding XAML Namespaces я до сих пор не понимаю цели присвоения Квалифицированное имя (QName).Квалифицированное имя в декларации пространства имен

Возьмем следующее объявление пространства имен в качестве примера:

Xmlns: х = 'HTTP: //www.w3.org/1999/XSL/Transform'

x является префиксом краткое для полного URI (в данном случае, URL): http://www.w3.org/1999/XSL/Transform. Затем это QName называется xmlns. Определение QName в MDSN является:

Это полное имя, включая префикс является лексической формой квалифицированного имени (QName):

Что это должно означать, и почему его там так В инструкции thet уже есть локатор и префикс для определения пространства имен и имен, которые будут использоваться?

ответ

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

+0

вы можете объяснить в контексте XAML? – KMC

+0

Извините, у меня был XHTML на мозге, так как я много делал это вчера. Я изменил ответ, чтобы просто поговорить о XML (и XAML в некоторой степени) –

Смежные вопросы