1 Introducción a XML 1.1 Problemas con los datos - Plataformas y herramientas heterogéneas - Generación de múltiples formatos de salida 1.2 Necesidad de XML - Formato procesado por cualquier computador - Define estructura y contenido - Lenguaje con gramática abierta y extensible 1.3 Historia de XML - 1970: IBM - Generalized Markup Language (GML) - 1986: ISO - Standard Generalized Markup Language - 1989: W3C - Hyper Text Markup Language (HTML) - 1997: W3C - eXtensible Markup Language (XML) 1.4 XML vs. HTML - XML: Lenguaje pre definido usado para presentación - HTML: Lenguaje de abierto usado para descripción 1.5 Ventajas - Autodescripción de datos - Extensible - Inter-operable 1.6 Usos - Automatización de procesos de negocios (BToB) - Integración de Aplicaciones Empresariales (EAI) - Administración del conocimiento (KM) 1.7 Estructura de un documento XML <?xml version="1.0" encoding="UTF-8"?> => PROLOGO <Empleados> => ELEMENTO RAIZ <Empleado> <Codigo>1</Codigo> <Nombre>Luis Dueñas</Nombre> <Sueldo>5000</Sueldo> </Empleado> </Empleado> 1.8 Contenido de un documento XML - Instrucciones de procesamiento: <?xml ... ?> - Comentarios: <!-- Comentario -> - Elementos: <Elemento></Elemento> - Atributos: <Elemento Atributo1="Valor"> 1.9 Documento XML bien formado - Un solo elemento raíz - Todo elemento debe tener un inicio y un fin - Case sensitive - No puede haber sobre cubrimiento - Valores de atributos deben estar entre comillas - No debe haber atributos repetidos en un elemento 1.10 Documento XML válido - Documento debe estar bien formado - Su estructura debe coincidir con un esquema -) DTD: Document Type Definition -) XSD: XML Schema Definition -) XDR: XML Data Reduced
2.XML y .NET 2.1 Herramientas de Visual Studio .NET a) Plantillas de archivos XML -) XML File -) XML Schema -) XSLT File b) Editor de documentos XML -) Autocompleta etiquetas -) Diferentes colores para contenido -) Selección de valores de atributos pre definidos -) Muestra resultado en el Browser c) Diseñador de Esquemas -) Creación visual de esquemas -) Integrado con el editor de documentos XML -) Enlazado a herramientas de datos (Dataset tipeado) 2.2 XML en el .NET Framework - XSLT: Transformación de documento XML - XPATH: Selección de datos en documentos XML - DOM: Programación de documentos XML - XML Schema: Validación de documentos XML 2.3 Manejo de documentos XML en .NET - Secuencial: Accede elemento x elemento. -) XMLReader y XMLWriter - Aleatoria: Crea un árbol de nodos (DOM). -) XMLDocument -) XMLDataDocument -) XPathDocument
3. XMLReader y XMLWriter 3.1 XMLWriter - Permite escribir en forma secuencial un archivo XML - Namespace: System.xml - Clases: XmlWriter, XmlTextWriter - Métodos: Write, WriteStartElement, WriteElement, WriteEndElement, Close, etc. 3.2 XMLReader - Permite leer en forma secuencial un documento XML - Namespace: System.xml - Clases: XmlReader, XmlTextReader - Métodos: Read, ReadStartElement, ReadElement, ReadEndElement, Close, etc.
4. XML y ADO .NET 4.1 DataSet - Tiene métodos para crear y leer documentos XML - Puede enlazarse con el objeto XmlDataDocument 4.2 ReadXML - Método que permite leer un documento XML y agregarlos como tablas del Dataset - Puede leer un flujo, archivo local, URL, etc. 4.3 WriteXML - Método que permite crear un documento XML con todas las tablas del Dataset - Por defecto, no conserva las relaciones del Dataset - Para conservar la jerarquía usar propiedad Nested
5. Document Object Model (DOM) 5.1 Definición: - DOM permite manipular un documento XML como un árbol de nodos en memoria. 5.2 Usos: - Operaciones de cálculo. - Carga dinámica de documentos XML, XSLT, etc. - Mantenimiento en el documento. 5.3 Limitaciones - Consume muchos recursos de memoria. - DOM en el NET Framework - Namespace: System.Xml - Clases: XMLDocument, XMLDataDocument 5.4 Métodos de desplazamiento x nodos: - FirstChild: Mueve el puntero al primer nodo hijo - LastChild: Mueve el puntero al último nodo hijo - PreviousSibling: Mueve el puntero al nodo anterior - NextSibling: Mueve el puntero al siguiente nodo 5.5 Métodos de búsqueda x nodos - SelectSingleNode: Coge el primer nodo que cumpla - SelectNodes: Coge todos los nodos que cumplan 5.6 Métodos de mantenimiento en nodos - AppendChild: Añade un nuevo nodo al árbol - RemoveChild: Elimina un nodo del árbol - Save: Graba el árbol en un archivo
6. Transformando con XSLT 6.1 Definición: - XSLT permite transformar documentos XML en otros formatos de texto (HTML, XML, etc). 6.2 Usos: - Presentación en el browser (HTML). - Creación de nuevos documentos (XML). 6.3 XSLT en el NET Framework - Namespace: System.Xsl - Clases: XslTransform 6.4 Proceso de transformación - Doc XML + XSLT = Nuevo Doc (HTML, XML, etc) 6.5 Arquitectura de XSLT en el NET Framework - Origenes de Datos: XPathDocument, XmlDocument, XmlDataDocument - Selección de datos: IXPathNavigable, XPathNavigator, XPathNodeIterator - Transformación de datos: XslTransform - Salida de datos: System.IO.Stream, System.IO.TextWriter, XmlWriter, XmlReader 6.6 Clases para trabajar con XSLTransform a) XPathDocument &am;nbsp; - Es el más eficiente para almacenar un documento XML que será transformado con XSLT. - Se usa cuando no se quiere modificar el documento XML. b) XmlDocument - Objeto DOM que puede almacenar un documento XML. - Se usa cuando se quiere hacer modificaciones sobre el XML. c) XmlDataDocument - Objeto DOM que almacena un documento asociado a un Dataset - Se usa cuando se quiere sincronizar el XML con el Dataset. d) IXPathNavigable - Interface con método CreateNavigator que crea XPathNavigator e) XPathNavigator - Cursor para navegar producto de una búsqueda con XPATH.
7. Validando con Esquemas XML 7.1 Definición: - XML Schemas permite validar documentos XML comparando con una estructura pre definida en un archivo de esquema (DTD, XSD, XDR, etc). 7.2 Usos: - Validar la estructura. - Validar los tipos de datos. 7.3 Schemas en el NET Framework - Namespace: System.Xml.Schema - SOM: Schemas Object Model -) Clases: XmlSchema, XmlSchemaCollection - Validar esquemas XML: -) Clase: XmlValidatingReader
Saludos: Luis Dueñas. |