lunes, 10 de noviembre de 2008

XML, mi primer choque (I)

DJ_Bryan [blackhat4all@gmail.com]

XML, lenguaje extensible de etiquetas (eXtensible Markup Lenguage), es un meta lenguaje que nos permite definir lenguaje de marcado que se ajusten a nuestras necesidades, los elementos que lo componen nos brindan información sobre lo que contienen, pero no sobre su estructura física o presentación como el HTML. Las aplicaciones del mismo son muchas y en muchos campos de la informática como en hojas de calculo, base de datos, formatos de imágenes, incluso se plantea como un lenguaje de bajo nivel, no ha nivel de aplicación, si no a nivel de software para el intercambio de información entre distintas plataformas.


Los XML se dividen en dos grupos “bien formados” y “documentos validos”, los primeros son los que cumplen con las reglas sintácticas que plantea el lenguaje XML además de contar con una correcta jerarquía, los que se consideran “documentos validos” además de estar bien formados deben contar con la estructura y semántica que dicta el TDT.

Un ejemplo de XML:
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<ficha>
<nombre> Angel </nombre>
<apellido> Barbero </apellido>
<direccion> c/Ulises, 36 </direccion>
</ficha>

Documento XML bien formado:

Un documento XML esta bien formado cuando su estructura encaja con la especificación de producción del XML.

Los documentos XML, deben seguir una estructurar jerárquica estricta. A continuación un ejemplo incorrecto y uno correcto:
<li>HTML <b> permite <i> esto </b> </i>.


<li>En XML la <b> estructura <i> es </i> jerárquica </b>.</li>

Etiquetas vacías

HTML permite elementos sin contenido, XML también pero con la característica que la etiqueta tiene que tener esta forma <elemento sin contenido/>, un ejemplo incorrecto y otro correcto:
<li>Esto es HTML <br> en el que casi todo está permitido </li>
<li>En XML, es <br/> más restrictivo.</li>

Un solo elemento raíz

Los documentos XML bien formados solo pueden tener un nodo raíz, es decir, la jerarquía debe depender completamente de un único nodo inicial.

Valores de atributos

Los valores de atributos deben empezar siempre con comilla simples (') o dobles (“), en el siguiente ejemplo el primero es erróneo, el segundo si cumple con esto:
<a HREF=http://www.uci.cu/>
<a HREF="http://www.uci.cu/">

Tipos de letras, espacios en blanco

El formato XML distingue entre las mayúsculas y las minúsculas, por lo que “Etiqueta” no es lo mismo que “etiqueta” ni “eTiquEta”. Existen caracteres denominados espacio en blanco que los procesadores de XML lo tratan de forma diferente, como los espacios, tabuladores y retorno de carro. La especificación de 1.0 de XML permite el uso de esos caracteres para el mejor entendimiento del contenido, los procesadores de XML no los tienen en cuenta. No se pueden crear nombres que empiecen con la cadena "xml", "xML", "XML" o cualquier otra variante. Las letras y rayas se pueden usar en cualquier parte del nombre. También se pueden incluir dígitos, guiones y caracteres de punto, pero no se puede empezar por ninguno de ellos. El resto de los caracteres, como algunos símbolos, y espacios en blanco, no se pueden usar.

Elementos

Los elementos pueden tener dentro más elementos, caracteres, contener elementos y caracteres o simplemente ser vacios. Siempre empiezan por una etiqueta <etiqueta> que puede tener atributos o no y siempre tiene que terminar con una etiqueta con el mismo nombre </etiqueta>. Pueden ser elementos vacios como estos:
<Identificador ID=”123123”/>
<otra/>

Atributos

Como hemos visto anteriormente las etiquetas pueden tener atributos o no, los atributos le aportan mas información a las etiquetas, en el DTD podemos especificar que atributo puede tener cada etiqueta y que valores podemos asignarle, un ejemplo de una etiqueta con atributo seria:
<chiste tipo="peito" calidad="bueno"> Pepito como de costumbre…</chiste>

Entidades Predefinidas

Las entidades predefinidas nos permiten usar caracteres reservados de el lenguaje XML , como < sin que se interprete que es el comienzo de una etiqueta, uno de los problemas que resuelve esto que podamos representar elementos como estos <angular>></angular>, como quedaría esto <angular> &lt;</angular>,los equivalentes son los siguientes, &amp; = & , &lt; = <, &gt; = >, &apos; = ', &quot; = ".



Artículos relacionados


No hay comentarios: