Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

10. Usando Datos Xml

4,735 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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>

×