(Anterior) XML y sus Orígenes
DOM, SAX y JDOM (Siguiente)

Manipulación y Proceso de XML

Parsers: DOM, SAX y JDOM.

Un parser es la herramienta utilizada para procesar cualquier documento, estructura o fragmento en XML, además éste también es utilizado en conjunción con otras herramientas para XML como XSL y XMLRPC/SOAP; el parser es para XML como un sistema operativo a una computadora: imprescindible.

Hoy en día ya existen diversos parsers para diversos lenguajes, esto garantiza que la información residente en XML pueda ser procesada en un ambiente de programación especifico, esto seria, ejecutar procesos en Perl, invocar métodos en Java o ejecutar programas en C++ o VBasic, todo con la información definida en XML.

Algunos parsers son los siguientes:

Aunque el trabajo de cada parser sea simplemente manipular información en XML, existen diversas maneras para interactuar con dicha información.Una de estas metodologías es llamada DOM ("Document Object Model") y la otra SAX ("Simple API for XML"), los detalles de ambas serán descritas a fondo en otra sección de este curso, por ahora basta decir que "DOM" trabaja con arboles de información mientras SAX lo hace através de eventos.

Cabe mencionarse que la mayoría de los parsers antes mencionados ofrecen ambas opciones, el uso de una alternativa sobre la otra también será explorada posteriormente; finalmente vale decir que existe una metodología/parser llamado JDOM que permite procesar documentos XML en ambientes Java, aunque esto es posible através de DOM o SAX, JDOM se ajusta más fácilmente a un ambiente Java.

Estructuras: Namespaces, Schemas y DTD's.

Debido al principio de XML: estructuras de datos describiendo a otras estructuras de datos, es posible definir cualquier estructura definiendo cualquier información y es debido a esta flexibilidad que surgen las siguientes incógnitas:

Si bien XML permite definir estructuras flexibles de información, conforme empieza a crecer un desarrollo con XML , este puede tornarse arbitrario si no son definidos mecanismos de su estructura, y debido a esto surgieron las estructuras para definir XML.

DTD's

Los DTD's son documentos definidos en el formato Extended Backus Naur Form los cuales provienen de SGML y forman una fuerte base de éste, el ejemplo más claro son los DTD's utilizados para HTML: (empleados por todo navegador hoy en día) http://www.w3.org/TR/REC-html40/sgml/dtd.html .

Lamentablemente el uso de DTD's no es solamente complejo (debido al formato EBNF) sino también ineficiente; esa ineficiencia se debe a la falta de apoyo para Namespaces.

Namespaces

El concepto de "Namespaces" surge de la necesidad de combinar diferentes vocabularios en XML, esto es, suponga que esta trabajando con sus proveedores | clientes y estos le facilitan su información en XML, debido a que están en la misma industria es muy probable ya utilicen elementos en común como <monitor> , <software> o <servidor>. Si desarrolla una aplicación que haga uso de estos elementos comunes es mediante Namespaces que se elimina la ambigüedad que pueda surgir entre sus definiciones y aquellas de sus clientes | proveedores, para hacer uso de Namespaces se requiere utilizar Schemas.

Schemas

Schemas es una especificación que permite el uso de Namespaces y al igual que DTD's define las estructuras que tomará un documento XML , sin embargo, la principal ventaja de Schemas a diferencia de DTD's es que un Schema se encuentra definido en puro XML, mientras un DTD utiliza el lenguaje EBNF.

Al utilizarse XML para definir Schemas no solo se goza de Namespaces y mayor expresividad comparado con EBNF, sino que también permite a un programador familiarizado con XML generar estructuras sin la necesidad de comprender el antiguo formato EBNF.

Transformaciones: XSL, XSLT, XPath, XSLF.

Mientras la manipulación de XML se lleva acabo mediante un parser, también existen herramientas que son capaces de transformar información en XML, estas son llamadas XSL Engines, algunos "XSL Engines" son los siguientes:

La transformación que se realiza con esta herramienta es la de XML hacia otro lenguaje de marcación, o bien, otro documento XML; suponga que tiene un depósito de información en XML y desea traerlo a un ambiente Web en HTML ("Hyper Text Markup Language"), inalámbrico WML ("Wireless Markup Language"), Acrobat Reader (PDF) o simplemente desea depurarlo (modificar) para utilizarlo en otro ambiente, es através de XSL ("eXtensible Stylesheet Language") vía el "XSL Engine" que se logra esta transformación fácilmente.

Finalmente cabe aclarar que un "XSL Engine" contiene un parser en su estructura interna el cual es necesario para iniciar las transformaciones antes mencionadas, su uso será descrito a fondo en otra sección de este curso.

Procedimientos: XMLRPC y SOAP ("Web-Services").

En el ámbito de procedimientos remotos XML ha cobrado vida bajo el nombre de XMLRPC y SOAP, através de estos mecanismos es posible invocar/ejecutar procedimientos através de una gran gama de lenguajes.

El interés que han generado se debe a la misma portabilidad de XML, el proceso por el cual se lleva acabo la comunicación entre métodos remotos típicamente es una tarea compleja debido a la representación de datos entre diversos sistemas, digamos de una máquina operando con C++/AIX a otra en Java/Solaris o Windows/DCOM, sin embargo , con el surgimiento de XML es posible llevar acabo esta comunicación de una manera transparente, la cual también será explorada a fondo en este curso.

Menú Curso

XML y sus Orígenes

Manipulación y Proceso de XML

DOM, SAX y JDOM

Namespaces, Schemas y DTD's

XSL: XSLT, XPath y TraX

XMLRPC y SOAP (Web Services)

Diseño con XMLRPC

Diseño con SOAP .

Apéndice "A" (Procesando XML con parsers).

Apéndice "B" (Validando XML con Schemas y DTD's).

Apéndice "C" (XSL: XPath y "XSL Stylesheets").

Apéndice "D" (XMLRPC: Diseño).

Apéndice "E" (SOAP, WSDL, UDDI y WSIL : Diseño).