2012-06-13 25 views
6

Po przeczytaniu MSDN-XAML Namespaces i MSDN-Understanding XAML Namespaces, nadal nie rozumiem celu, jakim jest posiadanie kwalifikowanej nazwy (QName).Kwalifikowana nazwa w deklaracji przestrzeni nazw

Take następującą deklarację przestrzeni nazw jako przykład:

xmlns: x = 'http: //www.w3.org/1999/XSL/Transform'

x jest prefiks krótki dla pełnego identyfikatora URI (w tym przypadku adresu URL): http://www.w3.org/1999/XSL/Transform. Następnie jest ta nazwa QName o nazwie xmlns. Definicja QName w mdsn jest:

Ta pełna nazwa wraz z prefiksem jest formą leksykalny z kwalifikowanej nazwy (QName):

Co to ma znaczyć i dlaczego jest tam od Instrukcja thet ma już lokalizator i prefiks identyfikujący przestrzeń nazw i jej nazwy, które mają być używane?

Odpowiedz

1

Myślę, że bardziej niż pytanie XAML jest tylko pytanie o nazwę XML.

Atrybut xmlns (specjalny atrybut) jest po prostu atrybutem używanym w XML do zdefiniowania przestrzeni nazw. Mówi "tu przychodzi deklaracja przestrzeni nazw". Jeśli nie dodasz przedrostka, to mówisz mu, aby ustawić przestrzeń nazw, która jest wartością atrybutu, jako domyślną przestrzeń nazw dla strony. Jeśli całkowicie pominąć domyślną przestrzeń nazw, wówczas przyjmuje się, że jest to wartość atrybutu (po znaku = i między cudzysłowami).

XAML to XML i wybiera mechanizm XML do deklarowania przestrzeni nazw. Sądzę, że mogliby stworzyć swój własny mechanizm, ale nie zrobili tego, jeśli dodaliście swoją przestrzeń nazw, o której mowa w pytaniu, bez xmlns :, aplikacji przetwarzającej XML (platforma .NET w tym przypadku , parsuje plik XAML) nie wiedziałby, że próbujesz zdefiniować przestrzeń nazw; mogłoby się wydawać, że dodajesz atrybut o nazwie "x" do elementu, w którym został zdefiniowany (co najprawdopodobniej nie byłoby atrybutem zdefiniowanym dla tego elementu).

Więcej informacji na temat nazw XML

http://www.w3.org/TR/REC-xml/

http://www.w3schools.com/XML/xml_namespaces.asp

http://en.wikipedia.org/wiki/XML_namespace

+0

można wyjaśnić w kontekście XAML? – KMC

+0

Przepraszam, miałem XHTML na mózgu, jak robiłem dużo tego wczoraj. Zmieniłem odpowiedź, aby porozmawiać o XML (i XAML do pewnego stopnia) –

Powiązane problemy