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
<?xml version="1.0"?> <authors> <author ID="1"> <name>Jay</name> </author> <!-- There are more authors. --> </authors>
Atributos

Instruccin de procesamiento

Elementos

Comentarios

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 Transforma el contenido de un documento XML fuente en otro documento que es diferente en formato o estructura

Extensible Stylesheet Language Transformation (XSLT)

Lenguaje XML Path (XPath)

Direcciona partes de un documento XML


Modelo de objetos para trabajar programticamente con documentos XML en memoria Lenguaje de fcil implementacin en el que las consultas son concisas y se entienden fcilmente

Document Object Model (DOM)

XML Query (XQuery)

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 Servidor Web Legible por una persona

Archivo XML o

Legible por el navegador

DataSet

Flujo

Legible por un mainframe

Descripcin de XML y DataSets


WriteXML DataAdapter

Archivo XML

Archivo XML
Doc.Save

Base de datos

Objeto DataSet

Objeto XmlDataDocument Objeto XslTransform

ReadXML

Archivo XML

Archivo XML o HTML

Archivo XSLT

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
DataRelation dr = new DataRelation("name", parentCol, childCol); dr.Nested = true; ds.Relations.Add(dr);

Dim dr As New DataRelation _ ("name", parentCol, childCol) dr.Nested = True ds.Relations.Add(dr)

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

Anidado
<Publisher name="pub1" <Title name="title1" <Title name="title3" </Publisher> <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
Base de datos

System.Xml
Transformaciones XML
Otros tipos de documentos XML Navegacin por documentos XML XmlDataDocument

DataAdapter
DataSet

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")) -orobjXmlDataDoc.DataSet.ReadXml(Server.MapPath ("file.xml"))
XmlDataDocument objXmlDataDoc = new XmlDataDocument(); objXmlDataDoc.Load(Server.MapPath ("file.xml")); -orobjXmlDataDoc.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; elem = objXmlDataDoc.GetElementFromRow(ds.Tables[0].Rows[1]); Utilizar mtodos XML DOM

XmlDataDocument hereda de XmlDocument Objeto XslTransform

Aplicar una transformacin XSLT

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) Cargar datos dinmicamente (en la pgina de cdigo subyacente)

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

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