1.2 Reconocimiento de las características de lenguajes de marcas

Etiquetas

Las etiquetas se escriben en minúsculas encerradas entre ángulos, es decir < y >. Normalmente, se utiliza una de inicio y otra de fin. Los nombres de las etiquetas han de ser autodescriptivos, lo que facilita el trabajo que se hace con ellas.

Ejemplo:

<etiqueta>texto que sufrirá las consecuencias de la etiqueta</etiqueta>

Los documentos XML pueden tener comentarios, que no son interpretados por el interprete XML. Estos se incluyen entre las cadenas "<!--" y "-->", pueden estar en cualquier posición en el documento salvo, antes del prólogo y dentro de una etiqueta.

Ejemplo:

<!-- comentario -->

Los elementos

La formación de elementos ha de cumplir ciertas normas:
  • En todo documento XML debe existir un elemento raíz, y sólo uno.
  • Todos los elementos tienen una etiqueta de inicio y otra de cierre. En el caso de que en el documento existan elementos vacíos, se pueden sustituir las etiquetas de inicio y cierre por una de elemento vacío. Ésta se construye como la etiqueta de inicio, pero sustituyendo el carácter ">" por "/>. Es decir, <elemento></elemento> puede sustituirse por: <elemento/>
  • Al anidar elementos hay que tener en cuenta que no puede cerrarse un elemento que contenga algún otro elemento que aún no se haya cerrado.
  • Los nombres de las etiquetas de inicio y de cierre de un mismo elemento han de ser idénticos, respetando las mayúsculas y minúsculas. Pueden ser cualquier cadena alfanumérica que no contenga espacios y no comience ni por el carácter dos puntos, ":", ni por la cadena "xml" ni ninguna de sus versiones en que se cambien mayúsculas y minúsculas ("XML", "XmL", "xML",...).
  • El contenido de los elementos no puede contener la cadena "]]>". Además no se pueden utilizar directamente los caracteres mayor que, >, menor que, <, ampersand, &, dobles comillas, ", y apostrofe, ‘. En el caso de tener que utilizar estos caracteres se sustituyen por las siguientes cadenas: 
  • Para utilizar caracteres especiales, como £, ©, ®,... hay que usar las expresiones &#D; o &#H; donde D y H se corresponden respectivamente con el número decimal o hexadecimal correspondiente al carácter que se quiere representar en el código UNICODE. Por ejemplo, para incluir el carácter de Euro, €, se usarían las cadenas &#8364; o &#x20AC;


Los atributos

Permiten añadir propiedades a los elementos de un documento. Los atributos no pueden organizarse en ninguna jerarquía, no pueden contener ningún otro elemento o atributo y no reflejan ninguna estructura lógica. No se debe utilizar un atributo para contener información susceptible de ser dividido.

Ejemplo:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<!DOCTYPE biblioteca >
<biblioteca>
    <ejemplar tipo_ejem="libro" titulo="XML práctico" editorial="Ediciones Eni">
        <tipo> <libro isbn="978-2-7460-4958-1" edicion="1" paginas="347"></libro> </tipo>
        <autor nombre="Sebastien Lecomte"></autor>
        <autor nombre="Thierry Boulanger"></autor>
        <autor nombre="Angel Belinchon Calleja" funcion="traductor"></autor>
        <prestado lector="Pepito Grillo">
            <fecha_pres dia="13" mes="mar" año="2009"></fecha_pres>
            <fecha_devol dia="21" mes="jun" año="2009"></fecha_devol> 
        </prestado>
    </ejemplar> 
</biblioteca>


Como se observa en el ejemplo, los atributos se definen y dan valor dentro de una etiqueta de inicio o de elemento vacio, a continuación del nombre del elemento o de la definición de otro atributo siempre separado de ellos por un espacio. Los valores del atributo van precedidos de un igual que sigue al nombre del mismo y tienen que definirse entre comillas simples o dobles. Los nombres de los atributos han de cumplir las mismas reglas que los de los elementos. Excepto la forma de expresar un atributo vacío, la cual la podemos observar en el siguiente ejemplo, donde vemos como el atributo "nombre" se encuentra vacío:

<autor nombre=""></autor>


¿Utilizar elemento o atributo?

El dato será un elemento si cumple alguna de las siguientes condiciones:
  • Contiene subestructuras.
  • Es de un tamaño considerable.
  • Su valor cambia frecuentemente.
  • Su valor va a ser mostrado a un usuario o aplicación.
Los casos en los que el dato será un atributo son:
  • El dato es de pequeño tamaño y su valor raramente cambia, aunque hay situaciones en las que este caso puede ser un elemento.
  • El dato solo puede tener unos cuantos valores fijos.
  • El dato guía el procesamiento XML pero no se va a mostrar

Espacios de nombres

De forma general, los documentos XML se suelen combinar con otros documentos XML existentes. El problema que surge es la posible coincidencia de los nombres de los elementos que conformen los módulos que se quieren usar. Los espacios de nombres permiten asignar nombres extendidos a los elementos, de forma que se pueda evitar este problema.

La construcción de estos nombres extendidos se realiza uniendo el nombre del elemento o atributo y el espacio de nombres, usando como conector ":". Los elementos tendrán así un nombre compuesto por dos partes: una primera con su nombre y una segunda con el nombre de espacio de nombres. Este nombre compuesto permitirá identificar de forma unívoca al elemento en cuestión.

Un espacio de nombres se define como una referencia URI (hipervínculo que da acceso a un recurso remoto). Pero como las URI pueden ser largas o contener caracteres no válidos en XML, se le asigna un sinónimo corto al espacio de nombres de forma que este sinónimo corto sea el que se use a lo largo del documento. El sinónimo se asigna usando el separador ":" y la etiqueta "xmlns".

Ejemplo:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<!DOCTYPE asistentes>
<asistentes xmlns:alumnos="http://DAM/alumnos" xmlns:profesores="http://DAM/profesores">
    <alumnos:nombre>Fernando Fernández González</alumnos:nombre>
    <alumnos:nombre>Isabel González Fernández</alumnos:nombre>
    <alumnos:nombre>Ricardo Martínez López</alumnos:nombre>
    <profesores:nombre>Pilar Ruiz Pérez</profesores:nombre>
    <profesores:nombre>Tomás Rodríguez Hernández</profesores:nombre> 
</asistentes>

No hay comentarios:

Publicar un comentario