2012-06-13 7 views
6

Nach dem Lesen MSDN-XAML Namespaces und MSDN-Understanding XAML Namespaces, verstehe ich immer noch nicht den Zweck, einen qualifizierten Namen (QName).Qualifizierter Name in Namespace-Deklaration

Nehmen Sie das folgende Namespace-Deklaration als Beispiel:

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

x ist das Präfix Abkürzung für den vollständigen URI (in diesem Fall eine URL): http://www.w3.org/1999/XSL/Transform. Dann gibt es diesen QName namens xmlns. Die Definition für QName in MDSN ist:

Diese vollständige Name einschließlich des Präfix ist die lexikalische Form eines qualifizierten Namen (QName):

Was soll das denn ist zu verstehen, und warum ist es dort seit Thet-Anweisung hat bereits einen Locator und ein Präfix, um den Namespace und seine zu verwendenden Namen zu identifizieren?

Antwort

1

Ich denke mehr als dies ist eine XAML-Frage, es ist nur eine XML-Namespace Frage.

Das Attribut xmlns (ein spezielles Attribut) ist nur das Attribut, das in XML zum Definieren eines Namespaces verwendet wird. Es heißt "Hier kommt eine Namespace-Deklaration". Wenn Sie kein Präfix hinzufügen, weisen Sie es an, den Namespace als Wert des Attributs als Standardnamespace für die Seite festzulegen. Wenn Sie den Standard-Namespace komplett weglassen, wird angenommen, dass er der Wert des Attributs ist (nach dem = und zwischen den Anführungszeichen).

XAML ist XML und verwendet den XML-Mechanismus zum Deklarieren von Namespaces. Ich denke, sie hätten ihren eigenen Mechanismus dafür erstellen können, aber da sie es nicht getan haben, wenn du deinen Namespace hinzugefügt hast, während du in deiner Frage anklopfst, ohne die xmlns :, verarbeitet die App das XML (in diesem Fall das .NET-Framework) , analysiert die XAML-Datei) würde nicht wissen, dass Sie versucht haben, einen Namespace zu definieren; es würde meinen, dass Sie dem Element, in dem es definiert wurde, ein Attribut namens "x" hinzufügen (was höchstwahrscheinlich kein Attribut wäre, das für dieses Element definiert ist).

Weitere Informationen zu XML-Namespaces

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

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

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

+0

können Sie im Rahmen der XAML erklären? – KMC

+0

Entschuldigung, ich hatte XHTML im Kopf, da ich gestern viel davon gemacht habe. Ich habe die Antwort geändert, um nur über XML (und XAML in gewissem Umfang) zu sprechen. –