Documentos y datos XML

.NET Framework proporciona un conjunto de clases completo e integrado que permiten crear, de forma sencilla, aplicaciones preparadas para XML. Las clases de los espacios de nombres siguientes admiten análisis y escritura XML, edición de datos XML en memoria, validación de datos y transformación XSLT.

Para obtener una lista completa, busque "System.Xml" en el explorador de API de .NET.

Las clases de estos espacios de nombres admiten las recomendaciones del World Wide Web Consortium (W3C). Por ejemplo:

Las clases XML de .NET Framework proporcionan estas ventajas:

  • Productividad.Con LINQ to XML (C#) y LINQ to XML (Visual Basic) resulta más sencillo programar con XML, y proporcionan una experiencia de consulta similar a SQL.

  • Extensibilidad. Las clases XML en .NET Framework se pueden extender mediante el uso de clases base abstractas y métodos virtuales. Por ejemplo, puede crear una clase derivada de la clase XmlUrlResolver que almacene el flujo caché en el disco local.

  • Arquitectura conectable. .NET Framework proporciona una arquitectura en la que los componentes se pueden usar unos con otros y se puede hacer streaming de los datos entre componentes. Por ejemplo, un almacén de datos, como un objeto XPathDocument o XmlDocument, se puede transformar con la clase XslCompiledTransform y, posteriormente, se pueden hacer streaming de los resultados a otro almacén o devolverse como flujo desde un servicio web.

  • Rendimiento. Para obtener un mejor rendimiento de la aplicación, algunas de las clases XML de .NET Framework admiten un modelo basado en streaming con las características siguientes:

    • Almacenamiento en caché mínimo para el análisis de modelos de incorporación de cambios solo hacia delante (XmlReader).

    • Validación solo hacia delante con (XmlReader).

    • Navegación al estilo de cursores que reduce la creación de nodos a un único nodo virtual, a la vez que proporciona acceso aleatorio al documento (XPathNavigator).

    Para obtener un mejor rendimiento cuando se requiera un procesamiento XSLT, puede usar la clase XPathDocument, que es un almacén optimizado de solo lectura para consultas XPath diseñadas para funcionar, de forma eficiente, con la clase XslCompiledTransform.

  • Integración con ADO.NET. Las clases XML y ADO.NET están estrechamente integradas para reunir datos relacionales y XML. La clase DataSet es una caché almacenada en memoria de datos devueltos desde una base de datos. La clase DataSet puede leer y escribir XML mediante las clases XmlReader y XmlWriter, con el fin de almacenar su estructura de esquema relacional interna como esquemas XML (XSD) y para deducir la estructura de esquema de un documento XML.

En esta sección

En Opciones de procesamiento XML se describen las opciones para procesar datos XML.

En Procesamiento de datos XML en memoria se describen los tres modelos para procesar datos XML en memoria: LINQ to XML (C#) y LINQ to XML (Visual Basic), la clase XmlDocument (basada en Document Object Model del W3C) y la clase XPathDocument (basada en el modelo de datos XPath).

Transformaciones XSLT
Describe cómo utilizar el procesador XSLT.

Modelo de objetos de esquema XML (SOM)
Describe las clases que se usan para crear y tratar esquemas XML (XSD) mediante una clase XmlSchema que carga y modifica un esquema.

Integración de XML con datos relacionales y ADO.NET
Describe cómo habilita .NET Framework el acceso sincrónico en tiempo real a las representaciones relacional y jerárquica de los datos mediante los objetos DataSet y XmlDataDocument.

Administrar espacios de nombres en un documento XML
Describe cómo se usa la clase XmlNamespaceManager para almacenar y mantener la información sobre espacios de nombres.

Compatibilidad de tipos en las clases System.Xml
Describe cómo se asignan los tipos de datos XML a los tipos CLR, cómo se convierten los tipos de datos XML y otras características de compatibilidad de tipos de las clases System.Xml.

ADO.NET
Proporciona información sobre cómo acceder a los datos mediante ADO.NET.

Seguridad
Ofrece información general sobre todo el sistema de seguridad de .NET Framework.