miércoles, 6 de junio de 2012

Las entidades predefinidas

En algunos manuales las entidades predefinidas se conocen como entities references, lo cual a mi da que se puede traducir como referencias de entidades. Las entidades predefinidas XML forman parte de la familia de la entidades XML. Recordemos que las entidades XML pueden ser:

  • Entidades de caracteres
  • Entidades de nombre
  • Entidades externas
  • Entidades de parámetro
  • Entidades predefinidas

La entidades predefinidas sirven para escapar determinados signos y que no interfieran con el parser al procesar el documentos. Es obvio que parcer puede tomar por una apertura de etiqueta el signo de ángulo abierto a la derecha: “<”, por ello se escapa mediante el código: (<) Por tanto, la entidades predefinidas se utilizan para escapar determinados caracteres que pueden producir conflictos al ser introducidos en la síntaxis XML.

Para la representación de contenido, tal como he dicho más arriba, XML proporciona una serie de construcciones sintácticas que comienzan con un signo (&) y terminan con un punto y coma (;).

Las referencias de caracteres también proporcionan una forma de insertar caracteres Unicode mediante un número que apunta al punto de código Unicode deseado.

Elementos de código pueden ser identificados utilizando decimal o hexadecimal.

Son las siguientes, extraidas de wikipedia:
Name Character Unicode code point (decimal) Standard Description
quot " U+0022 (34) XML 1.0 double quotation mark
amp & U+0026 (38) XML 1.0 ampersand
apos ' U+0027 (39) XML 1.0 apostrophe (= apostrophe-quote)
lt < U+003C (60) XML 1.0 less-than sign
gt > U+003E (62) XML 1.0 greater-than sign

El siguiente documento XML es válido. En él he sustituido los ángulos por sus correspondientes entidad predefinida XML. Para no olvidarme de las principales digo una regla nemotécnica que es "el loto del gato", frase cuyas vocales con la adición de (&) al principio y (;) al final te dan las entidades.


Table 2. Enumeración de las frutas que están en una estantería
<?xml version="1.0" encoding="UTF-8"?>

<!-- New document created with EditiX at Tue Jun 05 18:18:29 BST 2012 -->

<frutas_de_la_estantería>
 <fruta>Naranjas</fruta>
 <fruta>Melones</fruta>
 <fruta>Sandías</fruta>
 <fruta>Limones</fruta>
 <fruta>Peras</fruta> 
 <fruta>Ciruelas</fruta>
</frutas_de_la_estantería>

El tema no es baladí, porque si estuviese escribiendo el texto anterior, que es un ejemplo a mostrar en mi blog, utilizando para ello un editor XML, no habría manera de escribirlo porque el parseador nunca te daría el texto como válido al producirse un error en su validación y nunca podrías guardarlo. Se produce un error porque interpreta los signos en ángulo como aperturas y cierres de etiquetas sin que yo esté editando ninguna de ellas.

No hay comentarios:

Publicar un comentario