Aprender algo nuevo cada dia

Saturday, January 21, 2006

Namespaces en XML son (si he entendido bien) métodos para distinguir entre elementos. Básicamente, permiten tener elementos que corresponden a diferentes lenguajes(como MathML,SVG...) dentro de un mismo documento XML.
La definición formal sería:
XML namespaces provide a simple method for qualifying element and attribute names used in Extensible Markup Language documents by associating them with namespaces identified by URI references.
Más aquí

Para crear los namespaces hay que usar el atributo XMLNS, que significa XML NameSpace. El valor del atributo XMLNS es una URI, que no tiene por qué apuntar a un documento existente(!), pero sin embargo debe ser único(!!).

Un ejemplo (simplificado) podía ser:

<html xmlns="http://www.w3.org/1999/xhtml">
<title>Graphics>/title>
<graphic xmlns="http://example.org/#graphics-ns">
<name>03-namespaces.png>/name>
<type>image/png>/type>
<size unit="B">3371>/size>
<height unit="px">162>/height>
<width unit="px">412>/width>
</graphic>
</html>
Donde tenemos 2 namespaces HTML y GRAPHIC definidos con atributo xmlns.
A este ejemplo podría aplicase este código CSS extraído en parte de la documentación del W3C en parte de Anne’s Weblog:

@namespace foo url(http://www.w3.org/1999/xhtml);
@namespace graphic url(http://example.org/#graphics-ns);

foo|h1 { color: blue }
foo|* { color: yellow }
|h1 { color: red }
*|h1 { color: green }
h1 { color: green }
graphic|h1 { color: black }
Ahora, con lo arto complicado que es, no le veo mucha utilidad. Ni siquiera esta implementado medianamente en los navegadores. Según la wikipedia los namespaces son heredados de otros lenguajes como C++ y pyton donde quizá tengan más sentido.

Si no te ha quedado claro, puedes seguir leyendo en este tutorial.

0 Comments:

Post a Comment

<< Home