Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el...

23
Leer y escribir datos XML

Transcript of Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el...

Page 1: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Leer y escribir datos XML

Page 2: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Descripción

Descripción de la arquitectura XML en ASP.NET

XML y el objeto DataSet

Trabajar con datos XML

Utilizar el control de servidor Web XML

Page 3: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Lección: descripción de la arquitectura XML en ASP.NET

¿Qué es XML?

Principales tecnologías XML

Page 4: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

¿Qué es XML?

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

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

Proporciona un método uniforme para describir e intercambiar datos estructurados

Podemos definir nuestros propios elementos y atributos

Los elementos pueden anidarse

XML válido frente a XML con un formato correcto

Instrucción de procesamientoInstrucción de procesamiento

ElementosElementos

AtributosAtributos

ComentariosComentarios

Page 5: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Principales tecnologías XML

Definición de esquemas XML (XSD) Define la estructura requerida de un documento XML válido

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 programáticamente con

documentos XML en memoria

XML Query (XQuery) Lenguaje de fácil implementación en el que las consultas son

concisas y se entienden fácilmente

Page 6: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Lección: XML y el objeto DataSet

¿Por qué utilizar XML con DataSets?

Descripción de XML y DataSets

Métodos basados en XML del objeto DataSet

Demostración: leer y escribir XML a/desde un DataSet

Práctica: uso del método ReadXml

Crear datos XML anidados

Demostración: crear XML anidado

Page 7: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

¿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 cómodo para transferir el contenido de un Dataset a/desde clientes remotos

Los objetos XML sincronizan y transforman datos

Legible por una personaLegible por una persona

Legible por un mainframeLegible por un mainframe

Archivo XML

o

Flujo

Legible por el navegadorLegible por el navegador

Servidor WebServidor Web

DataSet

CortafuegosCortafuegos

Page 8: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Descripción de XML y DataSets

Archivo XML

ObjetoDataSet

ObjetoDataSet

ObjetoXmlDataDocument

ObjetoXmlDataDocument

ObjetoXslTransform

ObjetoXslTransform

Archivo XML o HTML

Base de datos

DataAdapterDataAdapter

ReadXMLReadXML

Doc.SaveDoc.Save

WriteXMLWriteXML

Archivo XSLT

ArchivoXML

ArchivoXML

Page 9: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Utilizan ReadXml para cargar datos de un archivo o flujo

Utilizan WriteXml para escribir datos XML a un archivo o flujo

Utilizan GetXml para escribir datos a una variable de cadena

Los métodos basados en XML del objeto DataSet

DataSet ds = new DataSet();

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

ds.ReadXml(Server.MapPath("filename.xml"));

DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter("select * from

Authors", conn);da.Fill(ds);ds.WriteXml(Server.MapPath("filename.xml"));

DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter("select * from

Authors", conn);da.Fill(ds);ds.WriteXml(Server.MapPath("filename.xml"));

string strXmlDS = ds.GetXml(); string strXmlDS = ds.GetXml();

Código de ejemplo de Visual Basic .NET

Page 10: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Demostración: 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

Page 11: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Práctica: Uso del método ReadXml

Los estudiantes:

Crearán un DataSet

Cargarán un DataSet desde un archivo XML

Lo mostrarán en un DataGrid

Tiempo: 5 Minutos

Page 12: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

De forma predeterminada, la salida de DataTable es secuencial

Para anidar XML, anidar DataRelation

Secuencial Anidado

Crear datos XML anidados

Dim dr As New DataRelation _("name", parentCol, childCol)

dr.Nested = Trueds.Relations.Add(dr)

Dim dr As New DataRelation _("name", parentCol, childCol)

dr.Nested = Trueds.Relations.Add(dr)

<Title name="title1" /><Title name="title2" /><Title name="title3" /><Publisher name="pub1" /><Publisher name="pub2" />

<Title name="title1" /><Title name="title2" /><Title name="title3" /><Publisher name="pub1" /><Publisher name="pub2" />

<Publisher name="pub1" ><Title name="title1" /><Title name="title3" />

</Publisher><Publisher name="pub2" >

<Title name="title2" /></Publisher>

<Publisher name="pub1" ><Title name="title1" /><Title name="title3" />

</Publisher><Publisher name="pub2" >

<Title name="title2" /></Publisher>

DataRelation dr = new DataRelation("name", parentCol, childCol);

dr.Nested = true;ds.Relations.Add(dr);

DataRelation dr = new DataRelation("name", parentCol, childCol);

dr.Nested = true;ds.Relations.Add(dr);

Page 13: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Demostración: Crear XML anidado

WriteXml fuera de un DataSet sin anidación

Visualizar el archivo XML resultante

WriteXml fuera de un DataSet con anidación

Visualizar el archivo XML resultante

Page 14: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Lección: trabajar con datos XML

Descripción de la sincronización de un DataSet con un XmlDataDocument

Cómo sincronizar un DataSet con un XmlDataDocument

Trabajar con un XmlDataDocument

Transformar datos XML con XSLT

Demostración: transformar datos con XSLT

Page 15: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Sincronización de un DataSet con un XmlDataDocument

Base de datos

DataAdapter

DataSet

Tablas

XmlDataDocument

Transformaciones XML

Otros tipos de documentos XML

Navegación por documentos XML

Sincronizado

System.Data System.Xml

Page 16: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Almacenar datos XML en un XmlDataDocument

Almacenar un DataSet en un XmlDataDocument

Cómo sincronizar un DataSet con un XmlDataDocument

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

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

XmlDataDocument objXmlDataDoc = 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"));

DataSet ds = new DataSet();//fill in dsobjXmlDataDoc = new XmlDataDocument(ds);

DataSet ds = new DataSet();//fill in dsobjXmlDataDoc = new XmlDataDocument(ds);

Dim objXmlDataDoc As New XmlDataDocument()objXmlDataDoc.Load(Server.MapPath ("file.xml"))

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

Dim objXmlDataDoc As New XmlDataDocument()objXmlDataDoc.Load(Server.MapPath ("file.xml"))

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

Page 17: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Trabajar con un XmlDataDocument

Mostrar datos en un control enlazado a lista

Extraer filas del Dataset como XML

Utilizar métodos XML DOM XmlDataDocument hereda de XmlDocument

Aplicar una transformación XSLT Objeto XslTransform

dg.DataSource = objXmlDataDoc.DataSetdg.DataSource = objXmlDataDoc.DataSet

Dim elem As XmlElementelem = objXmlDataDoc.GetElementFromRow _

(ds.Tables(0).Rows(1))

Dim elem As XmlElementelem = objXmlDataDoc.GetElementFromRow _

(ds.Tables(0).Rows(1))

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

dg.DataSource = objXmlDataDoc.DataSet;dg.DataSource = objXmlDataDoc.DataSet;

Page 18: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Transformar datos XML con XSLT

Crear un XmlDataDocument

Crear el objeto XSLTransform e invocar el método Transform

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

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

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()

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()

Código de ejemplo de #

Page 19: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Demostración: transformar datos con XSLT

Crear un DataSet con dos DataTables

Crear XslTransform

Transformar el documento DataSet en HTML

Page 20: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Lección: uso del control de Servidor Web XML

¿Qué es el control de Servidor Web XML?

Cargar y guardar datos XML

Demostración: uso del control de Servidor Web XML

Page 21: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

¿Qué es el control de Servidor Web XML?

<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"/>

<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"/>

Escribe a un documento XML

Escribe el resultado de una transformación XSLT a una página Web

Page 22: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Cargar y guardar datos XML

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

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

Cargar datos dinámicamente (en la página de código subyacente)

Guardar datos (en la página de código subyacente)

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

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

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

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

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

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

Page 23: Leer y escribir datos XML. Descripción Descripción de la arquitectura XML en ASP.NET XML y el objeto DataSet Trabajar con datos XML Utilizar el control.

Demostración: 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