xmlintro
— Introducción a XML
Puede pensarse en un archivo XML[23]
como un documento con estructura.
Para dar estructura se emplean marquillas que delimitan elementos.
Un elemento puede tener atributos, otros elementos que dan
estructura o contenido.
El siguiente ejemplo comienza con el elemento
secuencia
:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE secuencia PUBLIC "-//Structio//DTD secuencia 1.1" "sec.dtd"> <secuencia formato="texto" tipos="periodo"> <desc>Secuencia sobre fe en Jesús</desc> <derechos tipo="Dominio público" tiempo="2003">Liberado al dominio público. No se ofrecen garantías</derechos> <biblio>http://de.geocities.com/nuestroamigojesus/bdp</biblio> <autor fecha="2003">Vladimir Támara</autor> <sec tipo="periodo" id="p1"><desc>Primer periodo</desc> <refcla tipo="Indicador" idcla="contexto.geografía"/> <refcla tipo="Indicador" idcla="contexto.historia"/> </sec> <sec tipo="periodo" id="p2"><desc>Segundo periodo</desc> <refcla tipo="Indicador" idcla="establece.reflexiona"/> </sec> </secuencia>
Note que los elementos se encierran entre < y > y que todo
elemento que se abre debe cerrarse, por ejemplo el elemento
secuencia
que se abre en la tercera línea, se
cierra en la última con </secuencia>
.
Antes del primer elemento, en la primera línea, se declara que se trata de un documento XML que emplea caracteres de español[24].
Las marquillas que pueden emplearse y la forma como se emplean se especifican en un DTD[25], para este ejemplo tal DTD se identifica con
<!DOCTYPE secuencia PUBLIC "-//Structio//DTD secuencia 1.1" "sec.dtd">
Este DTD es un archivo (sec.dtd
) que está en
algún directorio de su sistema que puede ser ubicado por los
programas que emplean XML[26].
En el ejemplo presentado el elemento secuencia
esta formado por otros elementos, por ejemplo por el elemento
desc
, cuyo contenido es Secuencia sobre
fe en Jesús
. El elemento secuencia
tiene también dos atributos: formato
que tiene
el valor texto
y tipos
que
tiene el valor periodo
Dado que la codificación del ejemplo presentado es apropiada
para español, pueden emplearse todos los caracteres de nuestro
idioma al escribir el contenido de un elemento o el valor de un
atributo. Son excepciones los caracteres <, > y & que
deben escribirse como
<
, >
y
&
respectivamente. Los espacios en el
contenido no serán tenidos en cuenta más que para separar palabras.
Dado que el valor de un atributo debe escribirse entre comillas (")
o entre apostrofes ('), pueden ser útiles las secuencias especiales
" y ' que los generan respectivamente.
Hay algunos atributos especiales que en el DTD están marcados
como identificadores, (por ejemplo el atributo id
del elemento sec
) en tal caso el valor del
atributo no debe contener espacios ni signos de puntuación, excepto
los siguientes: ':', '.', '-', '_'. Además los identificadores
deben ser únicos en todo el documento.
Las entidades permiten: (1) incluir un archivo o (2) definir
una especie de macro. Una versión simplificada del comienzo del
manual de repasa
es:
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ <!ENTITY % confv SYSTEM "confv.ent"> %confv; <!ENTITY repasa "<literal>repasa</literal>"> <!ENTITY fcreditos SYSTEM "creditos.xdbk"> <!ENTITY fderechos SYSTEM "derechos.xdbk">
Note que las entidades se declaran junto con el tipo de documento, harán
parte del DTD y tendrán precedencia sobre entidades del mismo nombre del
DTD -//OASIS//DTD DocBook V4.1//EN
.
Cada entidad se declara primero y se usa después cuantas veces sea
necesario. Por ejemplo la entidad confv
se
declara en la segunda línea y se incluye en la tercera con
%confv;
. La declaración indica que se trata
del archivo confv.ent
y el símbolo
%
indica que es una entidad que se emplea en el
DTD. Las otras entidades presentadas no son apropiadas para el DTD
sino para el contenido en si del documento XML, por ejemplo la
entidad repasa
abrevia la cadena
<literal>repasa</literal>
y cada
vez que en un atributo o en contenido se emplee
&repasa;
. Por su parte la entidad
fcreditos
hace referencia al archivo
creditos.xdbk
, cada vez que en el documento se
emplee &fcreditos;
se incluirá el contenido
completo de tal archivo.
La descripción de los formatos de repasa
def(1),
prdef(5)
clasif(5)
secuencia(5)
La especificación completa de XML 1.0 está disponible en: http://www.w3.org/TR/REC-xml
[23] XML proviene de Extensible Markup Language (lenguaje de marcado extensible)
[24] ISO-8859-1 se refiere a un estándar para codificación de caracteres, que puede codificar todos los caracteres de los lenguajes de Europa occidental.
[25] DTD proviene de Document Type Declaration
[26] Para ubicar archivos XML
pueden emplear un catálogo que asocia el identificador del
tipo de documento con archivos del sistema de archivos. Las
herramientas de repasa
no usan catálogos sino vías
configuradas en el momento de la instalación.