Está en la página 1de 23

Leer y escribir

datos XML
Descripcin

Descripcin de la arquitectura XML en ASP.NET


XML y el objeto DataSet
Trabajar con datos XML
Utilizar el control de servidor Web XML
Leccin: descripcin de la arquitectura XML en ASP.NET

Qu es XML?
Principales tecnologas XML
Qu es XML?

Proporciona un mtodo uniforme para describir e


intercambiar datos estructurados
Podemos definir nuestros propios elementos y atributos
Los elementos pueden anidarse Atributos

Instruccin de
procesamiento <?xml version="1.0"?>
<authors>
<author ID="1">
Elementos
<name>Jay</name>
</author>
<!-- There are more authors. --> Comentarios
</authors>

XML vlido frente a XML con un formato correcto


Principales tecnologas XML
Definicin de esquemas XML (XSD)
Define la estructura requerida de un documento XML vlido
Extensible Stylesheet Language Transformation (XSLT)
Transforma el contenido de un documento XML fuente en otro
documento que es diferente en formato o estructura
Lenguaje XML Path (XPath)
Direcciona partes de un documento XML
Document Object Model (DOM)
Modelo de objetos para trabajar programticamente con
documentos XML en memoria
XML Query (XQuery)
Lenguaje de fcil implementacin en el que las consultas son
concisas y se entienden fcilmente
Leccin: XML y el objeto DataSet

Por qu utilizar XML con DataSets?


Descripcin de XML y DataSets
Mtodos basados en XML del objeto DataSet
Demostracin: leer y escribir XML a/desde un DataSet
Prctica: uso del mtodo ReadXml
Crear datos XML anidados
Demostracin: crear XML anidado
Por qu utilizar XML con Datasets?

XML es el formato universal para intercambiar datos en Internet


Los Datasets serializan datos en forma de XML
XML proporciona un formato cmodo para transferir el contenido
de un Dataset a/desde clientes remotos
Los objetos XML sincronizan y transforman datos

Cortafuegos Legible por una persona


Servidor Web Archivo
XML
Legible por el navegador
DataSet o
Flujo
Legible por un mainframe
Descripcin de XML y DataSets

WriteXML Archivo Archivo


DataAdapter XML XML
Doc.Save

Objeto Objeto
Base de DataSet XmlDataDocument
datos
Objeto
XslTransform
ReadXML
Archivo
XML Archivo Archivo
XML o XSLT
HTML
Los mtodos basados en XML del objeto DataSet

Utilizan ReadXml para cargar datos de un archivo o flujo


DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("filename.xml"));

Utilizan WriteXml para escribir datos XML a un archivo o flujo

DataSet ds = new DataSet();


SqlDataAdapter da = new SqlDataAdapter("select * from
Authors", conn);
da.Fill(ds);
ds.WriteXml(Server.MapPath("filename.xml"));
Utilizan GetXml para escribir datos a una variable de cadena

string strXmlDS = ds.GetXml();

Cdigo de ejemplo de Visual Basic .NET


Demostracin: leer y escribir XML a/desde un DataSet

Leer XML
Crear un DataSet
Cargar un DataSet desde un archivo XML
Mostrar en un DataGrid

Escribir XML
Crear un DataSet desde la base de datos
Crear un archivo XML desde un DataSet
Prctica: Uso del mtodo ReadXml

Los estudiantes:
Crearn un DataSet
Cargarn un DataSet desde un archivo
XML
Lo mostrarn en un DataGrid
Tiempo: 5 Minutos
Crear datos XML anidados

De forma predeterminada, la salida de DataTable es


secuencial
Para anidar XML, anidar DataRelation
Dim dr As New DataRelation _ DataRelation dr = new
("name", parentCol, childCol) DataRelation("name",
dr.Nested = True parentCol,
ds.Relations.Add(dr) childCol);
dr.Nested = true;
ds.Relations.Add(dr);

Secuencial Anidado
<Title name="title1" /> <Publisher name="pub1" >
<Title name="title2" /> <Title name="title1" />
<Title name="title3" /> <Title name="title3" />
<Publisher name="pub1" /> </Publisher>
<Publisher name="pub2" /> <Publisher name="pub2" >
<Title name="title2" />
</Publisher>
Demostracin: Crear XML anidado

WriteXml fuera de un DataSet sin


anidacin
Visualizar el archivo XML resultante
WriteXml fuera de un DataSet con
anidacin
Visualizar el archivo XML resultante
Leccin: trabajar con datos XML

Descripcin de la sincronizacin de un DataSet con un


XmlDataDocument
Cmo sincronizar un DataSet con un XmlDataDocument
Trabajar con un XmlDataDocument
Transformar datos XML con XSLT
Demostracin: transformar datos con XSLT
Sincronizacin de un DataSet con un XmlDataDocument

System.Data System.Xml
Transformaciones XML
Base de
Otros tipos de documentos XML
datos
Navegacin por documentos XML
DataAdapter

DataSet XmlDataDocument

Tablas Sincronizado
Cmo sincronizar un DataSet con un XmlDataDocument

Almacenar datos XML en un XmlDataDocument


Dim objXmlDataDoc As New XmlDataDocument()
objXmlDataDoc.Load(Server.MapPath ("file.xml"))
-or-
objXmlDataDoc.DataSet.ReadXml(Server.MapPath ("file.xml"))

XmlDataDocument objXmlDataDoc = new XmlDataDocument();


objXmlDataDoc.Load(Server.MapPath ("file.xml"));
-or-
objXmlDataDoc.DataSet.ReadXml(Server.MapPath ("file.xml"));

Almacenar un DataSet en un XmlDataDocument


Dim ds As New DataSet()
'fill in ds
Dim objXmlDataDoc As New XmlDataDocument(ds)

DataSet ds = new DataSet();


//fill in ds
objXmlDataDoc = new XmlDataDocument(ds);
Trabajar con un XmlDataDocument
Mostrar datos en un control enlazado a lista
dg.DataSource = objXmlDataDoc.DataSet

dg.DataSource = objXmlDataDoc.DataSet;

Extraer filas del Dataset como XML


Dim elem As XmlElement
elem = objXmlDataDoc.GetElementFromRow _
(ds.Tables(0).Rows(1))

XmlElement elem;
Utilizar
elem mtodos XML DOM
= objXmlDataDoc.GetElementFromRow(ds.Tables[0].Rows[1]);

XmlDataDocument hereda de XmlDocument


Aplicar una transformacin XSLT
Objeto XslTransform
Transformar datos XML con XSLT

Crear un XmlDataDocument
Dim ds As New DataSet()
'fill in DataSet
...
Dim xmlDoc As New XmlDataDocument(ds)

Crear el objeto XSLTransform e invocar el mtodo


Transform
Dim xslTran As New XslTransform()
xslTran.Load(Server.MapPath("PubTitles.xsl"))
Dim writer As New XmlTextWriter _
(Server.MapPath("PubTitles_output.html"), _
System.Text.Encoding.UTF8)
xslTran.Transform(xmlDoc, Nothing, writer)
writer.Close()
Cdigo de ejemplo de #
Demostracin: transformar datos con XSLT

Crear un DataSet con dos DataTables


Crear XslTransform
Transformar el documento DataSet en
HTML
Leccin: uso del control de Servidor Web XML

Qu es el control de Servidor Web XML?


Cargar y guardar datos XML
Demostracin: uso del control de Servidor Web XML
Qu es el control de Servidor Web XML?

Escribe a un documento XML


Escribe el resultado de una transformacin XSLT a una
pgina Web
<asp:Xml id="Xml1"
Document="XmlDocument object to display"
DocumentContent="String of XML"
DocumentSource="Path to XML Document"
Transform="XslTransform object"
TransformSource="Path to XSL Document"
runat="server"/>
Cargar y guardar datos XML

Control de Servidor Web XML (en el formulario Web Form)


<asp:Xml id="xmlCtl" runat="server" />

Cargar datos dinmicamente (en la pgina de cdigo


subyacente)
xmlCtl.Document.Load(Server.MapPath("text.xml"))

xmlCtl.Document.Load(Server.MapPath("text.xml"));

Guardar datos (en la pgina de cdigo subyacente)


xmlCtl.Document.Save(Server.MapPath("text.xml"))

xmlCtl.Document.Save(Server.MapPath("text.xml"));
Demostracin: uso del control de Servidor Web XML

Agregar el control de Servidor Web XML a


un formulario Web Form
Establecer la propiedad DocumentSource
para leer un archivo XML
Ver el resultado
Establecer la propiedad TransformSource
para leer un archivo XSLT
Ver el resultado

También podría gustarte