Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
XML permit e def inir la inf ormación o el cont enido de los dat os de la f orma que se desee, mient ras sea
conf orme a la est ruct ura general que XML requi ere:
• <gato>
<nombre>Micifú</nombre>
<raza>Persa</raza>
</gato>
• <gato raza=“Persa”>Micifú</gato>
• <gato raza=“Persa” nombre=“Micifú”/>
Sin embargo, XML no def ine la present ación de los dat os.
12. 1. 1. CONCEPT OS BÁSICOS DE XML
En primer lugar, cualquier document o XML debe est ar bien formado para poderse anali zar
correct ament e. Un document o bi en f ormado:
128 Informática III
• Si se especif ica SYSTEM el siguient e parámet ro debe indicar al analizador desde dónde se puede
cargar el f ichero DTD (mediant e un URI-o una URL).
<!DOCTYPE lista SYSTEM “Lista.dtd”>
<!DOCTYPE book SYSTEM “http://www.oreilly.com/catalog/JavaXML.dtd”>
• Si se especif ica PUBLIC quiere decir que el DTD se ha hecho público y est á disponible para
ut ilizarse por cual quiera. En est e caso, ant es de especif icar un URI se debe i ndicar un nombre
público y el analizador i nt ent ará primero ut i lizar el nombre público para locali zar el DTD y
solament e si f alla ut i lizará el URI.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
Capítulo 12. XML (eXtensible Markup Language) 129
Los element os deben est ar correct ament e ani dados: el primer element o que se abra debe ser siempre
el últ imo que se cierre.
También puede haber element os vacíos, es decir, no cont ienen dat os de t ipo t ext o ni ot ros element os
anidados. En ese caso se consolidan las et iquet as de apert ura y ci erre en una única et iquet a.
<img src=”xml.gif”/>
12. 2. 2. 3. At ribut os de element o
Los el ement os pueden cont ener at ri but os con sus respect ivos valores i ncluidos dent ro de la et i quet a de
apert ura.
<precio moneda=“EURO”>20</precio>
En est e caso moneda es el nombre del at ribut o. Las reglas que siguen los nombres de at ri but os son las
mismas que las de los nombres de element os. Los val ores de los at ribut os deben encerrarse ent re comil las
dobl es (el est ándar) o simples.
También pueden incluirse at ribut os en los element os vacíos:
<gato raza=“Persa” nombre=“Micifú”/>
12. 2. 2. 4. Ref erencias a ent idad
Si se desea int roducir como cont enido en un document o XML algún caráct er reservado para el marcado,
deben ut ili zarse ent idades. Las ent i dades se emplean para represent ar est os caract eres especiales y, más
en general , para represent ar a ot ros dat os de sust it ución. Las ref erencias a ent idad en un document o XML
se hacen precediendo el nombre de la ent idad por “ &” y t erminando con “ ; ” . Cuando un analizador XML
se encuent ra una ref erenci a a ent idad, el valor de sust it ución especif icado se insert a y no se procesa.
En XML 1. 0 se def inen cinco ent idades para represent ar caract eres especiales y que no se i nt erpret an
como marcado por el analizador XML
Referencia a Entidad Carácter
& &
< <
> >
' ‘
" “
El usuario puede def inir ent idades propias en un DTD, como se verá más adel ant e, de manera que la
ref erencia a cada ent idad sea sust it uida por el cont enido específ ico indicado por el usuario.
130 Informática III
También pueden incl uirse las rest ricciones, que a cont inuación se explican, en el propio document o
XML:
<?xml version="1.0"?>
<!DOCTYPE ToDoList [
<!ELEMENT ToDoList (task)*>
<!ELEMENT task (#PCDATA)>
<!ATTLIST task status (important|normal) #REQUIRED>
]>
<ToDoList>
<task status="important">This is an important
task that must be completed</task>
<task status="normal">This task can wait</task>
</ToDoList>
<Book>My book</Book>
<Copyright>
<Chapter>Chapter 1</Chapter>
</Copyright>
</Topic>
Indicador Frecuencia
? Opcional (0 ó 1 vez)
* Opcional y repetible (0 ó más veces)
+ Necesario y repetible (1 ó más veces)
Si por ej emplo se quiere permit ir que el encabezami ent o (el ement o Heading) de un capít ulo aparezca
una vez o que opcional ment e se omit a, y que puedan aparecer uno o más element os Topic, hay que hacer
la siguient e declaración:
<!ELEMENT Chapter (Heading?,Topic+)>
Un document o XML válido sería:
132 Informática III
<Chapter>
<Topic> ¿Qué es XML?</Topic>
<Topic> ¿Cómo se utiliza XML?</Topic>
</Chapter>
El primer parámet ro corresponde al nombre del element o. A cont inuación pueden def inirse múlt i pl es
at ribut os para cual quier el ement o.
12. 3. 2. 1. Modif icadores
Para especif icar el grado de necesidad de una at ribut o se ut ili za una de las siguient es palabras
reservadas: #IMPLIED (no se requiere para que el document o sea válido), #REQUIRED (es necesario
incl uirlo) , #FIXED (el usuario nunca puede cambiar el valor del at ribut o; es poco f recuent e en
aplicaciones). El f ormat o de est e úl t imo es:
<!ATTLIST [Enclosing Element] [Attribute Name] #FIXED [Fixed Value]>
12. 3. 2. 2. Tipos de at ri but o
Para indicar que el valor del at ri but o puede ser cualquier dat o de t ipo t ext o se ut i liza la palabra
reservada CDATA.
<!ATTLIST texto idioma CDATA #REQUIRED>
<!ATTLIST img url CDATA #REQUIRED alt CDATA #IMPLIED>
Capítulo 12. XML (eXtensible Markup Language) 133
Si quiere darse un valor por def ect o, en vez de ut i l izar un modif icador, debe escribirse el valor por
def ect o ent re comillas.
<!ATTLIST texto idioma CDATA "inglés">
Si se desea enumerar un conj unt o de valores permit i dos se escriben ent re parént esis y separados por el
operador “ | ” . En est e caso, t ambi én puede indicarse por def ect o uno de los val ores de la list a, en vez de
ut ilizar un modif icador.
<!ATTLIST Chapter focus (XML|Java) “Java”>
<!ATTLIST task status (important|normal) #REQUIRED>
El t ipo ID permit e que un at ribut o det erminado t enga un nombre único que podrá ser ref erenciado por
un at ribut o de ot ro el ement o que sea de t ipo IDREF. Permit e implement ar un sist ema de hipervínculos en
un document o XML.
<!ELEMENT enlace EMPTY>
<!ATTLIST enlace destino IDREF #REQUIRED>
<!ELEMENT capitulo (parrafo)*>
<!ATTLIST capitulo referencia ID #IMPLIED>
12. 3. 3. REFERENCIAS A ENT IDAD
Cuando el analizador se encuent ra con una ref erencia a ent idad int ent a resolverla ut ili zando el DTD.
Las declaraciones de ent idades en un DTD t ienen la siguient e not ación:
• Si se especif ica un conj unt o de caract eres de reempl azo:
<!ENTITY ovni “Objeto Volador No Identificado”>
que se ut i lizaría en el document o XML:
<texto>
<titulo> Durmiendo en clase, Álvaro soñó con un &ovni; </titulo>
</texto>