2012-06-13 25 views
6

Después de leer MSDN-XAML Namespaces y MSDN-Understanding XAML Namespaces, todavía no entiendo el propósito de tener un nombre calificado (QName).Nombre calificado en la declaración de espacio de nombres

Tome la siguiente declaración de espacio de nombres como un ejemplo:

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

x es el prefijo abreviatura para el URI completo (en este caso, una URL): http://www.w3.org/1999/XSL/Transform. Luego está este QName llamado xmlns. La definición para QName en MDSN es:

Este nombre completo incluyendo el prefijo es la forma léxica de un nombre calificado (QName):

¿Qué se supone que significa y por qué es allí desde ¿esa declaración ya tiene un localizador y un prefijo para identificar el espacio de nombres y sus nombres que se utilizarán?

Respuesta

1

Creo que más que esto es una pregunta de XAML es solo una pregunta de espacio de nombres XML.

El atributo xmlns (un atributo especial) es solo el atributo utilizado en XML para definir un espacio de nombres. Dice "aquí viene una declaración de espacio de nombres". Si no agrega un prefijo, entonces le está diciendo que establezca el espacio de nombre que es el valor del atributo como el espacio de nombre predeterminado para la página. Si omite por completo, se supone que el espacio de nombre predeterminado es el valor del atributo (después de = y entre las comillas).

XAML es XML y elige utilizar el mecanismo XML para declarar espacios de nombres. Supongo que podrían haber creado su propio mecanismo para hacerlo, pero como no lo hicieron, si agregaste tu espacio de nombres como lo indicas en tu pregunta, sin las xmlns: la aplicación que procesa el XML (el framework .NET en este caso) , analiza el archivo XAML) no sabría que estaba tratando de definir un espacio de nombres; pensaría que está agregando un atributo llamado "x" al elemento en el que se definió (que muy probablemente no sería un atributo definido para ese elemento).

Para más información sobre espacios de nombres XML

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

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

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

+0

se puede explicar en el contexto de XAML? – KMC

+0

Lo siento, tenía XHTML en el cerebro ya que estaba haciendo mucho de eso ayer. Cambié la respuesta para solo hablar sobre XML (y XAML hasta cierto punto) –

Cuestiones relacionadas