Información general sobre los espacios de nombres (LINQ to XML)

En este artículo se presentan los nombres XML, los espacios de nombres XML, los prefijos de espacios de nombres XML y las clases XName y XNamespace.

Los nombres XML a menudo son una fuente de complejidad en la programación XML. Un nombre XML se compone de un espacio de nombres XML (también denominado URI de espacio de nombres XML) y un nombre local. Un espacio de nombres XML es similar a un espacio de nombres en un programa de .NET. Permite completar de forma única los nombres de elementos y atributos para evitar conflictos de nombres entre distintas partes de un documento XML. Una vez que haya declarado un espacio de nombres XML, puede seleccionar un nombre local que sólo debe ser único en dicho espacio de nombres.

Otro aspecto de los nombres XML son los prefijos de espacios de nombres XML, que están detrás de casi toda la complejidad de los nombres XML. Estos prefijos permiten crear un acceso directo de un espacio de nombres XML, lo que hace que el documento XML sea más conciso y comprensible. Sin embargo, el significado de un prefijo XML depende del contexto, lo que agrega complejidad al asunto. Por ejemplo, el prefijo XML aw podría asociarse a un espacio de nombres XML en una parte del árbol XML, y a un espacio de nombres diferente en otra parte.

Una de las ventajas de usar LINQ to XML con C# consiste en no tener que usar prefijos XML. Cuando LINQ to XML carga o analiza un documento XML, cada prefijo XML se resuelve en su espacio de nombres XML correspondiente. Después, cuando trabaje con un documento que usa espacios de nombres, la mayoría de las veces tendrá acceso a dichos espacios de nombres mediante el URI de éstos, y no mediante prefijo. Cuando los desarrolladores trabajan con nombres XML en LINQ to XML, siempre lo hacen con un nombre XML completo (es decir, un espacio de nombres XML y un nombre local). Sin embargo, LINQ to XML le permite trabajar con prefijos de espacio de nombres y controlarlos según sus necesidades.

Si usa LINQ to XML con literales XML y Visual Basic, debe usar los prefijos de los espacios de nombres al trabajar con documentos en espacios de nombres.

En LINQ to XML, la clase que representa los nombres XML es XName. Los nombres XML aparecen frecuentemente en la API de LINQ to XML, y cuando haga falta un nombre XML, encontrará un parámetro XName. En cambio, apenas se trabaja directamente con un objeto XName. XName contiene una conversión implícita de cadena.

Para obtener más información, vea XNamespace y XName.