Referenciar Entidades Binarias
Esta sección no contiene ejercicios de programación. En su lugar, explica las opciones
para referenciar ficheros binarios como imágenes y datos multimedia.
Usar un Tipo de Datos MIME
Hay dos formas de referenciar una entidad sin analizar como un fichero de imagen binario.
Una es usar la especificación de la
NOTATION
DTD --un mecanismo de especificación. Sin embargo, este mecanismo es el más complejo, y poco
intuitivo de todos los que existen por compatibilidad con los documentos
SGML. Tendremos ocasión de explicarlo
un poco más en profundidad cuando veamos el API DTDHandler, pero por
ahora, es suficiente, decir que la combinación del recientemente definido
espacio de nombres XML estándard,
en conjunción con los
tipos de
Datos MIME definidos para adjuntar a mensajes electrónicos, proporcionan un
mecanismo más útil, para referenciar entidades externas sin analizar.
Para configurar el slideshow para usar imágenes, añadimos el texto
en negrita de abajo, a nuestro fichero slideshow.dtd.
<!ELEMENT slide (image?, title, item*)>
<!ATTLIST slide
type (tech | exec | all) #IMPLIED
>
<!ELEMENT title (#PCDATA)>
<!ELEMENT item (#PCDATA | item)* >
<!ELEMENT image EMPTY>
<!ATTLIST image
alt CDATA #IMPLIED
src CDATA #REQUIRED
type CDATA "image/gif"
>
Estas modificaciones declaran image como un elemento opcional
en un slide, lo define como un elemento vacío, y define los atributos
que requiere.
Los atributos de la etiqueta image son definidos por la entrada
ATTLIST. El atributo alt, define el texto
alternativo a mostrar en caso de que no se pueda encontrar la imagen, acepta caracteres
(CDATA). Tiene un valor "implied", lo que significa que
es opcional, y que el programa que procesa los datos conoce un sustituto, algo como
"Image not found". Por otro lado, el atributo src, que
nombra la imagen a mostrar, es requerido.
El atributo type es para la especificación del tipo MIME, como se
define en ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/.
Tiene un valor por defecto: image/gif.
En el documento, una referencia a una imagen llamada "intro-pic"
podría parecerse algo a esto:
<image src="image/intro-pic.gif", alt="Intro Pic", type="image/gif" />
La Alternativa: Usar Referencias de Entidad
Usar un tipo de dato MIME como un atributo de un elemento es un mecanismo flexible y
expandible. Para crear una referencia ENTITY externa usamos el
mecanismo de notación, necesitamos elementos NOTATION DTD para
datos jpeg y gif. Estos pueden obtenerse desde un repositorio central. Pero entonces
necesitamos definir un elemento ENTITY diferente para cada imagen
que queramos referenciar! En otras palabras, añadir una nueva imagen a nuestro documento,
siempre requiere una nueva definición de entidad en el DTD y una referencia a ella en
el documento. Dada la anticipada ubicuidad de la especificación HTML 4.0, el nuevo
estándard es usar los tipos de datos MIME y una declaración como
image, que asume que la aplicación sabe como procesar dichos elementos.