10. Usando Datos Xml

4,538 views
4,346 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,538
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
166
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

10. Usando Datos Xml

  1. 1. Leer y escribir datos XML
  2. 2. Descripción <ul><li>Descripción de la arquitectura XML en ASP.NET </li></ul><ul><li>XML y el objeto DataSet </li></ul><ul><li>Trabajar con datos XML </li></ul><ul><li>Utilizar el control de servidor Web XML </li></ul>
  3. 3. Lección: descripción de la arquitectura XML en ASP.NET <ul><li>¿Qué es XML? </li></ul><ul><li>Principales tecnologías XML </li></ul>
  4. 4. ¿Qué es XML? <?xml version=&quot;1.0&quot;?> <authors> <author ID=&quot;1&quot;> <name>Jay</name> </author> <!-- There are more authors. --> </authors> <ul><li>Proporciona un método uniforme para describir e intercambiar datos estructurados </li></ul><ul><li>Podemos definir nuestros propios elementos y atributos </li></ul><ul><li>Los elementos pueden anidarse </li></ul><ul><li>XML válido frente a XML con un formato correcto </li></ul>Instrucción de procesamiento Elementos Atributos Comentarios
  5. 5. Principales tecnologías XML <ul><li>Definición de esquemas XML (XSD) </li></ul><ul><ul><li>Define la estructura requerida de un documento XML válido </li></ul></ul><ul><li>Extensible Stylesheet Language Transformation (XSLT) </li></ul><ul><ul><li>Transforma el contenido de un documento XML fuente en otro documento que es diferente en formato o estructura </li></ul></ul><ul><li>Lenguaje XML Path (XPath) </li></ul><ul><ul><li>Direcciona partes de un documento XML </li></ul></ul><ul><li>Document Object Model (DOM) </li></ul><ul><ul><li>Modelo de objetos para trabajar programáticamente con documentos XML en memoria </li></ul></ul><ul><li>XML Query (XQuery) </li></ul><ul><ul><li>Lenguaje de fácil implementación en el que las consultas son concisas y se entienden fácilmente </li></ul></ul>
  6. 6. Lección: XML y el objeto DataSet <ul><li>¿Por qué utilizar XML con DataSets? </li></ul><ul><li>Descripción de XML y DataSets </li></ul><ul><li>Métodos basados en XML del objeto DataSet </li></ul><ul><li>Demostración: leer y escribir XML a/desde un DataSet </li></ul><ul><li>Práctica: uso del método ReadXml </li></ul><ul><li>Crear datos XML anidados </li></ul><ul><li>Demostración: crear XML anidado </li></ul>
  7. 7. ¿Por qué utilizar XML con Datasets? <ul><li>XML es el formato universal para intercambiar datos en Internet </li></ul><ul><li>Los Datasets serializan datos en forma de XML </li></ul><ul><li>XML proporciona un formato cómodo para transferir el contenido de un Dataset a/desde clientes remotos </li></ul><ul><li>Los objetos XML sincronizan y transforman datos </li></ul>Legible por una persona Legible por un mainframe Archivo XML o Flujo Legible por el navegador Servidor Web DataSet Cortafuegos
  8. 8. Descripción de XML y DataSets Archivo XML Objeto DataSet Objeto XmlDataDocument Objeto XslTransform Archivo XML o HTML Base de datos DataAdapter ReadXML Doc.Save WriteXML Archivo XSLT ArchivoXML ArchivoXML
  9. 9. <ul><li>Utilizan ReadXml para cargar datos de un archivo o flujo </li></ul><ul><li>Utilizan WriteXml para escribir datos XML a un archivo o flujo </li></ul><ul><li>Utilizan GetXml para escribir datos a una variable de cadena </li></ul>Los métodos basados en XML del objeto DataSet DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath(&quot;filename.xml&quot;)); DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(&quot;select * from Authors&quot;, conn); da.Fill(ds); ds.WriteXml(Server.MapPath(&quot;filename.xml&quot;)); string strXmlDS = ds.GetXml(); Código de ejemplo de Visual Basic .NET
  10. 10. Demostración: leer y escribir XML a/desde un DataSet <ul><li>Leer XML </li></ul><ul><li>Crear un DataSet </li></ul><ul><li>Cargar un DataSet desde un archivo XML </li></ul><ul><li>Mostrar en un DataGrid </li></ul><ul><li>Escribir XML </li></ul><ul><li>Crear un DataSet desde la base de datos </li></ul><ul><li>Crear un archivo XML desde un DataSet </li></ul>
  11. 11. Práctica: Uso del método ReadXml <ul><li>Los estudiantes: </li></ul><ul><ul><li>Crearán un DataSet </li></ul></ul><ul><ul><li>Cargarán un DataSet desde un archivo XML </li></ul></ul><ul><ul><li>Lo mostrarán en un DataGrid </li></ul></ul><ul><li>Tiempo: 5 Minutos </li></ul>
  12. 12. <ul><li>De forma predeterminada, la salida de DataTable es secuencial </li></ul><ul><li>Para anidar XML, anidar DataRelation </li></ul><ul><li>Secuencial Anidado </li></ul>Crear datos XML anidados Dim dr As New DataRelation _ (&quot;name&quot;, parentCol, childCol) dr.Nested = True ds.Relations.Add(dr) <Title name=&quot;title1&quot; /> <Title name=&quot;title2&quot; /> <Title name=&quot;title3&quot; /> <Publisher name=&quot;pub1&quot; /> <Publisher name=&quot;pub2&quot; /> <Publisher name=&quot;pub1&quot; > <Title name=&quot;title1&quot; /> <Title name=&quot;title3&quot; /> </Publisher> <Publisher name=&quot;pub2&quot; > <Title name=&quot;title2&quot; /> </Publisher> DataRelation dr = new DataRelation(&quot;name&quot;, parentCol, childCol); dr.Nested = true; ds.Relations.Add(dr);
  13. 13. Demostración: Crear XML anidado <ul><li>WriteXml fuera de un DataSet sin anidación </li></ul><ul><li>Visualizar el archivo XML resultante </li></ul><ul><li>WriteXml fuera de un DataSet con anidación </li></ul><ul><li>Visualizar el archivo XML resultante </li></ul>
  14. 14. Lección: trabajar con datos XML <ul><li>Descripción de la sincronización de un DataSet con un XmlDataDocument </li></ul><ul><li>Cómo sincronizar un DataSet con un XmlDataDocument </li></ul><ul><li>Trabajar con un XmlDataDocument </li></ul><ul><li>Transformar datos XML con XSLT </li></ul><ul><li>Demostración: transformar datos con XSLT </li></ul>
  15. 15. 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
  16. 16. <ul><li>Almacenar datos XML en un XmlDataDocument </li></ul><ul><li>Almacenar un DataSet en un XmlDataDocument </li></ul>Cómo sincronizar un DataSet con un XmlDataDocument Dim ds As New DataSet() 'fill in ds Dim objXmlDataDoc As New XmlDataDocument(ds) XmlDataDocument objXmlDataDoc = new XmlDataDocument(); objXmlDataDoc.Load(Server.MapPath (&quot;file.xml&quot;)); -or- objXmlDataDoc.DataSet.ReadXml(Server.MapPath (&quot;file.xml&quot;)); DataSet ds = new DataSet(); //fill in ds objXmlDataDoc = new XmlDataDocument(ds); Dim objXmlDataDoc As New XmlDataDocument() objXmlDataDoc.Load(Server.MapPath (&quot;file.xml&quot;)) -or- objXmlDataDoc.DataSet.ReadXml(Server.MapPath (&quot;file.xml&quot;))
  17. 17. Trabajar con un XmlDataDocument <ul><li>Mostrar datos en un control enlazado a lista </li></ul><ul><li>Extraer filas del Dataset como XML </li></ul><ul><li>Utilizar métodos XML DOM </li></ul><ul><ul><li>XmlDataDocument hereda de XmlDocument </li></ul></ul><ul><li>Aplicar una transformación XSLT </li></ul><ul><ul><li>Objeto XslTransform </li></ul></ul>dg.DataSource = objXmlDataDoc.DataSet Dim elem As XmlElement elem = objXmlDataDoc.GetElementFromRow _ (ds.Tables(0).Rows(1)) XmlElement elem; elem = objXmlDataDoc.GetElementFromRow(ds.Tables[0].Rows[1]); dg.DataSource = objXmlDataDoc.DataSet;
  18. 18. Transformar datos XML con XSLT <ul><li>Crear un XmlDataDocument </li></ul><ul><li>Crear el objeto XSLTransform e invocar el método Transform </li></ul>Dim ds As New DataSet() 'fill in DataSet ... Dim xmlDoc As New XmlDataDocument(ds) Dim xslTran As New XslTransform() xslTran.Load(Server.MapPath(&quot;PubTitles.xsl&quot;)) Dim writer As New XmlTextWriter _ (Server.MapPath(&quot;PubTitles_output.html&quot;), _ System.Text.Encoding.UTF8) xslTran.Transform(xmlDoc, Nothing, writer) writer.Close() Código de ejemplo de #
  19. 19. Demostración: transformar datos con XSLT <ul><li>Crear un DataSet con dos DataTables </li></ul><ul><li>Crear XslTransform </li></ul><ul><li>Transformar el documento DataSet en HTML </li></ul>
  20. 20. Lección: uso del control de Servidor Web XML <ul><li>¿Qué es el control de Servidor Web XML? </li></ul><ul><li>Cargar y guardar datos XML </li></ul><ul><li>Demostración: uso del control de Servidor Web XML </li></ul>
  21. 21. ¿Qué es el control de Servidor Web XML? <ul><li>Escribe a un documento XML </li></ul><ul><li>Escribe el resultado de una transformación XSLT a una página Web </li></ul><asp:Xml id=&quot; Xml1 &quot; Document=&quot; XmlDocument object to display &quot; DocumentContent=&quot; String of XML &quot; DocumentSource=&quot; Path to XML Document &quot; Transform=&quot; XslTransform object &quot; TransformSource=&quot; Path to XSL Document &quot; runat=&quot;server&quot;/>
  22. 22. Cargar y guardar datos XML <ul><li>Control de Servidor Web XML (en el formulario Web Form) </li></ul><ul><li>Cargar datos dinámicamente (en la página de código subyacente) </li></ul><ul><li>Guardar datos (en la página de código subyacente) </li></ul>xmlCtl.Document.Save(Server.MapPath(&quot;text.xml&quot;)) xmlCtl.Document.Load(Server.MapPath(&quot;text.xml&quot;)) <asp:Xml id=&quot;xmlCtl&quot; runat=&quot;server&quot; /> xmlCtl.Document.Save(Server.MapPath(&quot;text.xml&quot;)) ; xmlCtl.Document.Load(Server.MapPath(&quot;text.xml&quot;));
  23. 23. Demostración: uso del control de Servidor Web XML <ul><li>Agregar el control de Servidor Web XML a un formulario Web Form </li></ul><ul><li>Establecer la propiedad DocumentSource para leer un archivo XML </li></ul><ul><li>Ver el resultado </li></ul><ul><li>Establecer la propiedad TransformSource para leer un archivo XSLT </li></ul><ul><li>Ver el resultado </li></ul>

×