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 atributofoto
, donde su valor será una entidad.<!ATTLIST fruta foto ENTITY #REQUIRED>
- Existen dos entidades (
manzana
ynaranja
), donde sus valores serán cargados de ficheros externos (manzana.jpg
ynaranja.jpg
). Estos ficheros no deben ser interpetadas por el procesador XML, sino por la aplicación definida en la notación con nombrejpg
.<!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ónimage/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>