Estoy seguro que algunos de los visitantes de gulsin.org alguna vez se habran preguntado que ondas con el XML.
Y han sacado sus conjeturas si es xml un lenguaje programacion?….que relacion tiene este con el html….. Cual es la sintaxis y reglas que este debe de seguir…. razon por la que escribo esto.
Siempre he pensado que es mucho mas facil y rapido leer a un tipo en la red que se da a entender en unas pocas palabras en el tutorial que el mismo publica, que leernos el libro de principio a fin del topico que andamos buscando, claro que el libro nos garantiza un buen conocimiento y resultado… pero seamos francos el tiempo en que se cocina este buen resultado suele ser de una semana como minimo a un mes… y por lo regular la gente se interesa en un tema en especifico que habra que presentar aplicado a su trabajo..(si de esto vive ) tal vez en una hora o 48 horas despues.
Por lo que este minitutorial abarca los conceptos mas fundamentales del XML:
1.- Introduccion al XML y sus Fundamentos 2.- Definiciones del tipo de Documento (DTDs) 3.- Espacios de nombres (Namespaces)
1.- Introduccion al XML y sus Fundamentos
1.1.- Relacion entre HTML Y XML
XML es un lenguaje de metamarcas, como lo HTML.
HTML actualmente ha dejado de existir como tal para convertirce en XHTML, lenguaje de metamarcas derivado del XML.
Por lo que podemos concluir que si ya usaste HTML, entonces ya tuviste contacto con XML sin saberlo.
XML es tan portable como lo es HTML ( todo aquel html que cumple con las normas w3c..aclarando.. ). Gracias a esto, al igual que una pagina html puede ser visualizada en solaris, linux, mac y windows, un documento XML tambien lo sera, y por esta razon se menciona que XML ofrece un formato ideal para la portabilidad de datos entre plataformas.
1.2.- Lo Fundamental del XML
Todo documento XML esta integrado por: Elementos vacios o no vacios, con o sin atributos y con o sin caracteres de Datos
Veamos un ejemplo de un documento XML que describe a una persona
Analicemos lo anterior… el tag “persona” se puede tomar como “nodo raiz” de mi documento persona-01.xml, mientras que “nombre y profesion” serian “nodos hijo”. El nodo “nombre” es un nodo vacio y este solo contiene atributos “nombre_pila y
apellido_paterno”. Mientras que el nodo “profesion” contiene el conjunto de caracteres “Ingeniero en Sistemas de computo” y por lo mismo a este no se le considera un nodo vacio. Los nodos vacios tienden a terminar con / o bien podriamos declarar el documento persona-01.xml de la siguiente forma y tambien seria correcto. Observece que aqui se aprecia mejor que “nombre” es un nodo vacio.
La linea 0 del documento persona-01.xml declara la version de xml, el tipo de codificacion y la opcion de usar o no un archivo extra que definira todas las posible partes de nuestro documento xml, cuando esta opcion esta en “yes” el archivo extra que define las partes de nuestro documento xml no sera requerido. El archivo extra recibe el nombre de DTD ( Definicion del tipo de documento ).
2.- Definiciones del tipo de Documento (DTDs)
El DTD es un archivo que condiciona que elementos pueden aparecer dentro de un documento XML.
Esto lo podemos entender agregando a nuestro documento persona-01.xml un DTD:
Bueno expliquemos linea por linea lo que dice este archivo DTD..
La primera linea dice… El elemento persona estara compuesto de 2 elementos, nombre y profesion.
La segunda linea dice… El elemento profresion contendra datos de caractarer parseables…(ese es el significado de PCDATA)
La tercera linea dice… El elemento nombre es un un elemento vacio.
Y La cuarta y ultima linea nos dice que nombre contendra 2 atributos del tipo Datos de Caracter… (ese es el significado de CDATA).
2.1-Validando documentos XML
La mayoria de las librerias que parsean XML (existen en perl, python, java.. etc.) al leer el documento XML lo validaran con respecto a su dtd. Aqui un ejemplo de documento xml que al ser cargado por el parser SAX (un parser XML en java), SAX detecta que el archivo dtd pide un elemento “profesion”… el cual no aparece en el documento invalid_persona.xml, ya que el usuario olvido incluirlo… entonces podemos concluir… que gracias a el archivo dtd, logramos darnos cuenta del error en el documento xml que estabamos parseando.
$ java sax.SAXCount -v invalid_persona.xml [ERROR] "profesion must be declared"
Si deseas profundizar mas en las declaraciones de archivos DTD la informacion te la anexo a esta liga
3.- Espacios de nombres (Namespaces)
Los Espacios de nombres en XML cumplen 2 propositos:
* Distinguir entre elementos y atributos provenientes de diferentes vocabularios, pero que comparten el mismo nombre. * Agrupar todos los elementos y atributos relacionados provenientes de una aplicacion XML, para que entonces un software pueda reconocer estos.
El primer proposito es facil de explicar, pero el segundo es mucho mas importante en la practica.
Los espacios de nombres son implementados al anexar un prefijo a cada elemento y atributo. Cada prefijo esta vinculado a una URI mediante xmlns:”prefijo”.
