Ejercicios - DTDLos siguientes documentos no son válidos porque contienen uno o dos errores (los errores no están en la DTD interna). Corrija los errores y compruebe con XML Copy Editor que ya son documentos válidos.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE numeros [ <!ELEMENT numeros (#PCDATA)> ]> <numeros> <numero>25</numero> </numeros>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE letras [ <!ELEMENT letras (letra)> <!ELEMENT letra (#PCDATA)> ]> <letras> <letra>m</letra> <letra>uve doble</letra> </letras>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE colores [ <!ELEMENT colores (color*)> <!ELEMENT color (#PCDATA)> ]> <colores> <color>azul marino</color> negro <color>amarillo</color> </colores>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE flores [ <!ELEMENT flores (flor+)> <!ELEMENT flor (#PCDATA)> ]> <flores> </flores>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE animales [ <!ELEMENT animales (animal*)> <!ELEMENT animal (#PCDATA)> ]> <animales> <perro>Caniche</perro> <gato>Siamés</gato> </animales>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE escritores [
<!ELEMENT escritores (escritor*)>
<!ELEMENT escritor (nombre, nacimiento)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT nacimiento (#PCDATA)>
]>
<escritores>
<escritor>
<nombre>Mario Vargas LLosa</nombre>
<nacimiento>28 de marzo de 1936</nacimiento>
</escritor>
<escritor>
<nacimiento>1 de abril de 1929</nacimiento>
<nombre>Milan Kundera</nombre>
</escritor>
</escritores>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE musicos [
<!ELEMENT musicos (musico*)>
<!ELEMENT musico ((nombre | apodo), fechaNacimiento)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apodo (#PCDATA)>
<!ELEMENT fechaNacimiento (#PCDATA)>
]>
<musicos>
<musico>
<nombre>Antonio Vivaldi</nombre>
<apodo>El cura pelirrojillo</apodo>
<fechaNacimiento>4 de marzo de 1678</fechaNacimiento>
</musico>
<musico>
<nombre>Johann Sebastian Bach</nombre>
<apodo>El viejo peluca</apodo>
<fechaNacimiento>21 de marzo de 1685</fechaNacimiento>
</musico>
</musicos>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE agenda [
<!ELEMENT agenda (contacto*)>
<!ELEMENT contacto (nombre, telefonoFijo*, telefonoMovil+)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT telefonoFijo (#PCDATA)>
<!ELEMENT telefonoMovil (#PCDATA)>
]>
<agenda>
<contacto>
<nombre>Ayuntamiento</nombre>
<telefonoFijo>010</telefonoFijo>
</contacto>
<contacto>
<nombre>Emergencias</nombre>
<telefonoFijo>112 (Unión Europea)</telefonoFijo>
<telefonoMovil>Desconocido</telefonoMovil>
<telefonoFijo>911 (Estados Unidos)</telefonoFijo>
</contacto>
</agenda>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sistemaSolar [
<!ELEMENT sistemaSolar (cuerpo*)>
<!ELEMENT cuerpo ((planeta|satelite|asteroide)+)>
<!ELEMENT planeta (#PCDATA)>
<!ELEMENT satelite (#PCDATA)>
<!ELEMENT asteroide (#PCDATA)>
]>
<sistemaSolar>
<cuerpo>
<planeta>Tierra</planeta>
<satelite>Luna</satelite>
</cuerpo>
<asteroide>Ceres</asteroide>
</sistemaSolar>
Los siguientes documentos no son válidos porque contienen errores (los errores están en la DTD interna). Corrija los errores y compruebe con XML Copy Editor que ya son documentos válidos. Casi siempre habrá varias maneras de corregir la DTD, intente elegir la más sencilla.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE favoritos [
<!ELEMENT favoritos (marcador)>
<!ELEMENT marcador (nombre, uri)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT uri (#PCDATA)>
]>
<marcadores>
<marcador>
<nombre>W3C</nombre>
<uri>http://www.w3.org/</uri>
</marcador>
<marcador>
<nombre>Web Hypertext Application Technology Working Group (WHATWG)</nombre>
<uri>http://www.whatwg.org/</uri>
</marcador>
</marcadores>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE efemerides [
<!ELEMENT efemerides (efemeride)>
<!ELEMENT efemeride (fecha, hecho)>
]>
<efemerides>
<efemeride>
<fecha>20 de julio de 1969</fecha>
<hecho>Llegada del hombre a la Luna</hecho>
</efemeride>
<efemeride>
<fecha>12 de octubre de 1492</fecha>
<hecho>Llegada de Colón a América</hecho>
</efemeride>
<efemeride>
<fecha>6 de abril de 1909</fecha>
<hecho>llegada de Robert Peary al Polo Norte</hecho>
</efemeride>
</efemerides>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE aeropuertos [
<!ELEMENT aeropuertos (aeropuerto*)>
<!ELEMENT aeropuerto (nombre, cerrado)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT cerrado (#PCDATA)>
]>
<aeropuertos>
<aeropuerto>
<nombre>Berlín Schönefeld (SFX)</nombre>
</aeropuerto>
<aeropuerto>
<nombre>Berlín Tempelhof (THF)</nombre>
<cerrado />
</aeropuerto>
</aeropuertos>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vuelos [
<!ELEMENT vuelos (vuelo*)>
<!ELEMENT vuelo (origen, destino)>
<!ELEMENT origen (#PCDATA)>
<!ELEMENT destino (#PCDATA)>
]>
<vuelos>
<vuelo>
<origen>Valencia (VLC)</origen>
<destino>Londres Heathrow (LHR)</destino>
</vuelo>
<vuelo>
<destino>Berlín Schönefeld (SFX)</destino>
<origen>Paris Charles de Gaulle (CDG)</origen>
</vuelo>
</vuelos>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reyesEspañoles [
<!ELEMENT reyesEspañoles (rey*, reina*)>
<!ELEMENT rey (nombre, padre, madre)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT padre (#PCDATA)>
<!ELEMENT madre (#PCDATA)>
]>
<reyesEspañoles>
<rey>
<nombre>Felipe III</nombre>
<padre>Felipe II</padre>
<madre>Ana de Austria</madre>
</rey>
<reina>
<nombre>Juana la Loca</nombre>
<padre>Fernando el Católico</padre>
<madre>Isabel la Católica</madre>
</reina>
<rey>
<nombre>Carlos I</nombre>
<padre>Felipe el Hermoso</padre>
<madre>Juan la Loca</madre>
</rey>
</reyesEspañoles>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [
<!ELEMENT pais (nombre, unionEuropea, otan)>
<!ELEMENT nombre EMPTY>
<!ELEMENT unionEuropea EMPTY>
<!ELEMENT otan EMPTY>
]>
<paises>
<pais>
<nombre>España</nombre>
<unionEuropea />
<otan />
</pais>
<pais>
<nombre>Noruega</nombre>
<otan />
</pais>
<pais>
<nombre>Austria</nombre>
<unionEuropea />
</pais>
</paises>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE colores [
<!ELEMENT colores (color*)>
<!ELEMENT nombreSvg (#PCDATA)>
<!ELEMENT rgb (#PCDATA)>
<!ELEMENT cmyk (#PCDATA)>
]>
<colores>
<color>
<nombreSvg>Purple</nombreSvg>
<codigo>
<rgb>#800080</rgb>
</codigo>
</color>
<color>
<nombreSvg>Purple</nombreSvg>
<codigo>
<cmyk>#00FF007F</cmyk>
</codigo>
</color>
</colores>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE contabilidad [
<!ELEMENT contabilidad ((ingreso | gasto)*)>
<!ELEMENT fecha (#PCDATA)>
<!ELEMENT cantidad (#PCDATA)>
<!ELEMENT concepto (#PCDATA)>
]>
<contabilidad>
<apunte>
<ingreso />
<fecha>24 de febrero de 2011</fecha>
<cantidad>1800,00 €</cantidad>
<concepto>Salario</concepto>
</apunte>
<apunte>
<gasto />
<fecha>28 de febrero de 2011</fecha>
<cantidad>74,25 €</cantidad>
<concepto>Recibo luz</concepto>
</apunte>
</contabilidad>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mensajes [
<!ELEMENT mensajes (mensaje)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT hora (#PCDATA)>
<!ELEMENT texto (#PCDATA)>
<!ELEMENT strong (#PCDATA)>
]>
<mensajes>
<mensaje>
<de>Pepe (pepe@example.com)</de>
<para>Juan (juan@example.com)</para>
<hora>28/02/2011 17:48:23,61</hora>
<texto>¿Hola, Juan, qué haces?</texto>
</mensaje>
<mensaje>
<de>Juan (juan@example.com)</de>
<para>Pepe (pepe@example.com)</para>
<hora>28/02/2011 17:54:20,87</hora>
<texto>Aquí, aprendiendo <strong>XML</strong></texto>
</mensaje>
</mensajes>
Los siguientes documentos no son válidos porque contienen uno o dos errores (los errores no están en la DTD interna). Corrija los errores y compruebe con XML Copy Editor que ya son documentos válidos.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE persona [ <!ELEMENT persona EMPTY> <!ATTLIST persona nombre CDATA #IMPLIED> ]> <persona dni="03141592E" />κ
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pelicula [ <!ELEMENT pelicula EMPTY> <!ATTLIST pelicula titulo CDATA #IMPLIED> ]> <pelicula titulo="La diligencia" genero="oeste" />
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cuadros [ <!ELEMENT cuadros (cuadro*)> <!ELEMENT cuadro EMPTY> <!ATTLIST cuadro titulo ID #REQUIRED> <!ATTLIST cuadro autor CDATA #REQUIRED> ]> <cuadros> <cuadro titulo="Adán y Eva" autor="Alberto Durero" /> <cuadro autor="Lucas Cranach, el viejo" titulo="Adán y Eva" /> </cuadros>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE listaCompra [ <!ELEMENT listaCompra (item*)> <!ELEMENT item EMPTY> <!ATTLIST item nombre CDATA #REQUIRED> <!ATTLIST item cantidad CDATA #REQUIRED> ]> <listaCompra> <leche cantidad="12 litros" ></leche> <pan cantidad="3 barras de cuarto" /> </listaCompra>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jugadoresFutbol [ <!ELEMENT futbol (jugador*)> <!ELEMENT jugador EMPTY> <!ATTLIST jugador nombre NMTOKENS #REQUIRED> <!ATTLIST jugador codigo ID #REQUIRED> ]> <futbol> <jugador nombre="Alfredo Di Stéfano" codigo="1"/> <jugador nombre="Edison Arantes do Nascimento, Pelé" codigo="2" /> <jugador nombre="Diego Armando Maradona" codigo="3" /> <jugador nombre="Johan Cruyff" codigo="4" /> </futbol>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE futbol [ <!ELEMENT futbol ((jugador|equipo)*)> <!ELEMENT jugador EMPTY> <!ATTLIST jugador nombre NMTOKENS #REQUIRED> <!ATTLIST jugador codigo ID #REQUIRED> <!ELEMENT equipo EMPTY> <!ATTLIST equipo nombre CDATA #REQUIRED> <!ATTLIST equipo jugadores IDREFS #IMPLIED> ]> <futbol> <jugador nombre="Alfredo Di Stéfano" codigo="ads"/> <jugador nombre="Edison Arantes do Nascimento" codigo="ean" /> <jugador nombre="Diego Armando Maradona" codigo="dam" /> <jugador nombre="Johan Cruyff" codigo="jc" /> <equipo nombre="Società Sportiva Calcio Napoli" jugadores="Maradona" /> <equipo nombre="Futbol Club Barcelona" jugadores="Cruyff, Maradona" /> </futbol>
Los siguientes documentos no son válidos porque contienen errores (los errores están en la DTD interna). Corrija los errores y compruebe con XML Copy Editor que ya son documentos válidos. Casi siempre habrá varias maneras de corregir la DTD, intente elegir la más sencilla.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE libro [ <!ELEMENT libro EMPTY> <!ATTLIST libro autor NMTOKEN #REQUIRED> ]> <libro autor="Mario Vargas LLosa" />
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE inventores [ <!ELEMENT inventores> <!ELEMENT inventor EMPTY> <!ATTLIST inventor invento CDATA #REQUIRED> <!ATTLIST inventor nombre ID #REQUIRED> ]> <inventores> <inventor nombre="Robert Adler" invento="Mando a distancia" /> <inventor nombre="Laszlo Josef Biro" invento="Bolígrafo" /> <inventor nombre="Josephine Garis Cochran" invento="Lavaplatos" /> <inventor invento="Fuego" /> </inventores>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cosasPorHacer [ <!ELEMENT cosasPorHacer (cosa)> <!ELEMENT cosa EMPTY> <!ATTLIST cosa fecha CDATA #REQUIRED> <!ATTLIST cosa asunto CDATA #REQUIRED> <!ATTLIST cosa fechaLimite CDATA #REQUIRED> ]> <cosasPorHacer> <cosa fecha="20 de febrero de 2011" fechaLimite="1 de marzo de 2011"> Preparar ejercicios de DTDs</cosa> <cosa fecha="21 de febrero de 2011" fechaLimite="5 de marzo de 2011"> Preparar tema XSLT</cosa> </cosasPorHacer>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE resoluciones [ <!ELEMENT resoluciones EMPTY> <!ATTLIST resoluciones nombre NMTOKEN #REQUIRED> <!ATTLIST resoluciones alto CDATA #REQUIRED> <!ATTLIST resoluciones ancho CDATA #REQUIRED> ]> <resoluciones> <resolucion nombre="VGA" alto="480" ancho="640" /> <resolucion nombre="XGA" alto="1024" ancho="768" /> <resolucion nombre="HD 1080" alto="1920" ancho="1080" /> </resoluciones>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE albumesMortadelo [ <!ELEMENT albumesMortadelo (album*)> <!ELEMENT album (nombre, fecha)> <!ATTLIST album nombre CDATA #REQUIRED> <!ATTLIST album fecha(1969,1970,1971,1972,1973,1974) #REQUIRED> ]> <albumesMortadelo> <album nombre="El sulfato atómico" fecha="1969"/> <album nombre="La caja de diez cerrojos" fecha="1971"/> <album nombre="El otro yo del profesor Bacterio" fecha="1973"/> <album nombre="Los cacharros majaretas" fecha="1974"/> </albumesMortadelo>
Se quiere definir un lenguaje de marcas para representar los resultados de una liga de fútbol. La información que se quiere almacenar de cada partido es:
Escribe tres documentos que incluyan los siguientes resultados:
Cada documento incluirá un DTD diferente para representar ese lenguaje de marcas:
Esta obra está bajo una licencia de Creative
Commons.