Saltar al contenido principal

Privadas

Las notaciones privadas son aquellas que no están recogidas en ningún estándar público.

Una notación privada tiene la siguiente sintaxis:

<!NOTATION name SYSTEM "helper">

Donde:

  • name es el nombre de la notación que queremos definir.
  • SYSTEM hace referencia a que se trata de una notación privada.
  • helper es el nombre del sistema encargado de procesar el tipo de fichero.

Consideremos el sigiuente documento XML:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE frutas [
<!ELEMENT frutas (fruta)*>
<!ELEMENT fruta EMPTY>
<!ATTLIST fruta foto ENTITY #REQUIRED>
<!ENTITY manzana SYSTEM "manzana.jpg" NDATA jpg>
<!ENTITY naranja SYSTEM "naranja.jpg" NDATA jpg>
<!NOTATION jpg SYSTEM "image/jpeg">
]>
<frutas>
<fruta foto="manzana"/>
<fruta foto="naranja"/>
</frutas>

En el documento anterior, se indica que:

  • Los elementos fruta que se escriban tienen que incluir obligatoriamente el atributo foto, donde su valor será una entidad.
    <!ATTLIST fruta foto ENTITY #REQUIRED>
  • Existen dos entidades (manzana y naranja), donde sus valores serán cargados de ficheros externos (manzana.jpg y naranja.jpg). Estos ficheros no deben ser interpetadas por el procesador XML, sino por la aplicación definida en la notación con nombre jpg.
    <!ENTITY manzana SYSTEM "manzana.jpg" NDATA jpg>
    <!ENTITY naranja SYSTEM "naranja.jpg" NDATA jpg>
  • La notación jpg indica que se debe utilizar la aplicación image/jpeg para interpretar correctamente los ficheros vinculados a esta notación.
    <!NOTATION jpg SYSTEM "image/jpeg">

Si queremos ser más específicos, podemos especificar la ruta del programa a utilizar. Por ejemplo, si en el sistema existe un programa capaz de procesar imágenes JPG, llamado jpg-viewer.exe y ubicando dentro del directorio apps, también se podría escribir:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE frutas [
<!ELEMENT frutas (fruta)*>
<!ELEMENT fruta EMPTY>
<!ATTLIST fruta foto ENTITY #REQUIRED>
<!ENTITY manzana SYSTEM "manzana.jpg" NDATA jpg>
<!ENTITY naranja SYSTEM "naranja.jpg" NDATA jpg>
<!NOTATION jpg SYSTEM "apps/jpg-viewer.exe">
]>
<frutas>
<fruta foto="manzana"/>
<fruta foto="naranja"/>
</frutas>