Se ofrecen a continuación unas posibles soluciones de los ejercicios de DTD. Estos ejercicios se pueden resolver de varias maneras. En las soluciones siguientes se proponen algunas posibilidades, pero otras son aceptables.
Error at line 8, column 3: Element numeros was declared #PCDATA but contains non text nodes
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE numeros [
<!ELEMENT numeros (#PCDATA)>
]>
<numeros>
25
</numeros>
Error at line 10, column 3: Element letras content does not follow the DTD, expecting (letra), got (letra letra )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE letras [
<!ELEMENT letras (letra)>
<!ELEMENT letra (#PCDATA)>
]>
<letras>
<letra>m</letra>
</letras>
Error at line 11, column 3: Element colores content does not follow the DTD, expecting (color)*, got (color CDATA color )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE colores [
<!ELEMENT colores (color*)>
<!ELEMENT color (#PCDATA)>
]>
<colores>
<color>azul marino</color>
<color>negro</color>
<color>amarillo</color>
</colores>
Error at line 8, column 3: Element flores content does not follow the DTD, expecting (flor)+, got ()
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE flores [
<!ELEMENT flores (flor+)>
<!ELEMENT flor (#PCDATA)>
]>
<flores>
<flor>Rosa</flor>
</flores>
Error at line 10, column 3: Element animales content does not follow the DTD, expecting (animal)*, got (perro gato )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE animales [
<!ELEMENT animales (animal*)>
<!ELEMENT animal (#PCDATA)>
]>
<animales>
<animal>Perro Caniche</animal>
<animal>Gato Siamés</animal>
</animales>
Error at line 17, column 3: Element escritor content does not follow the DTD, expecting (nombre , nacimiento), got (nacimiento nombre )
<?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>
<nombre>Milan Kundera</nombre>
<nacimiento>1 de abril de 1929</nacimiento>
</escritor>
</escritores>
Error at line 20, column 3: Element musico content does not follow the DTD, expecting ((nombre | apodo) , fechaNacimiento), got (nombre apodo fechaNacimiento )
<?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>
<apodo>El cura pelirrojillo (Antonio Vivaldi)</apodo>
<fechaNacimiento>4 de marzo de 1678</fechaNacimiento>
</musico>
<musico>
<nombre>Johann Sebastian Bach (El viejo peluca)</nombre>
<fechaNacimiento>21 de marzo de 1685</fechaNacimiento>
</musico>
</musicos>
Error at line 20, column 3: Element contacto content does not follow the DTD, expecting (nombre , telefonoFijo* , telefonoMovil+), got (nombre telefonoFijo telefonoMovil telefonoFijo )
Error at line 14, column 3: Element contacto content does not follow the DTD, expecting (nombre , telefonoFijo* , telefonoMovil+), got (nombre telefonoFijo )
<?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>
<telefonoMovil></telefonoMovil>
</contacto>
<contacto>
<nombre>Emergencias</nombre>
<telefonoFijo>112 (Unión Europea)</telefonoFijo>
<telefonoFijo>911 (Estados Unidos)</telefonoFijo>
<telefonoMovil>Desconocido</telefonoMovil>
</contacto>
</agenda>
Error at line 14, column 12: element 'satelite' is not allowed for content model '(planeta|satelite|asteroide)'
Error at line 16, column 3: element 'asteroide' is not allowed for content model '(cuerpo)'
<?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>
</cuerpo>
<cuerpo>
<satelite>Luna</satelite>
</cuerpo>
<cuerpo>
<asteroide>Ceres</asteroide>
</cuerpo>
</sistemaSolar>
Error at line 18, column 3: No declaration for element marcadores
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE marcadores [
<!ELEMENT marcadores (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>
Error at line 20, column 3: Element efemerides content does not follow the DTD, expecting (efemeride), got (efemeride efemeride efemeride )
Error at line 18, column 47: No declaration for element hecho
Error at line 18, column 28: No declaration for element fecha
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE efemerides [
<!ELEMENT efemerides (efemeride*)>
<!ELEMENT efemeride (fecha, hecho)>
<!ELEMENT fecha (#PCDATA)>
<!ELEMENT hecho (#PCDATA)>
]>
<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>
Error at line 12, column 3: Element aeropuerto content does not follow the DTD, expecting (nombre , cerrado), got (nombre )
<?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>
Error at line 17, column 3: Element vuelo content does not follow the DTD, expecting (origen , destino), got (destino origen )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vuelos [
<!ELEMENT vuelos (vuelo*)>
<!ELEMENT vuelo ((origen, destino)|(destino, origen))>
<!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>París Charles de Gaulle (CDG)</origen>
</vuelo>
</vuelos>
Error at line 26, column 3: Element reyesEspañoles content does not follow the DTD, expecting (rey* , reina*), got (rey reina rey )
Error at line 21, column 3: No declaration for element reina
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reyesEspañoles [
<!ELEMENT reyesEspañoles ((rey|reina)*)>
<!ELEMENT rey (nombre, padre, madre)>
<!ELEMENT reina (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>
Error at line 23, column 3: No declaration for element paises
Error at line 23, column 3: Element pais content does not follow the DTD, expecting (nombre , unionEuropea , otan), got (nombre unionEuropea )
Error at line 21, column 18: Element nombre was declared EMPTY this one has content
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [
<!ELEMENT paises (pais*)>
<!ELEMENT pais (nombre, unionEuropea?, otan?)>
<!ELEMENT nombre (#PCDATA)>
<!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>
Error at line 21, column 3: No declaration for element color
Error at line 21, column 3: No declaration for element codigo
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE colores [
<!ELEMENT colores (color*)>
<!ELEMENT color (nombreSvg, codigo)>
<!ELEMENT nombreSvg (#PCDATA)>
<!ELEMENT codigo (rgb|cmyk)>
<!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>
Error at line 22, column 3: Element contabilidad content does not follow the DTD, expecting (ingreso | gasto)*, got (apunte apunte )
Error at line 18, column 9: No declaration for element gasto
Error at line 19, column 9: No declaration for element gasto
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE contabilidad [
<!ELEMENT contabilidad (apunte*)>
<!ELEMENT apunte ((ingreso | gasto)*, fecha, cantidad, concepto)>
<!ELEMENT ingreso EMPTY>
<!ELEMENT gasto EMPTY>
<!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>
Error at line 24, column 3: Element mensajes content does not follow the DTD, expecting (mensaje), got (mensaje mensaje )
Error at line 23, column 3: No declaration for element mensaje
Error at line 23, column 41: Element texto was declared #PCDATA but contains non text nodes
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mensajes [
<!ELEMENT mensajes (mensaje*)>
<!ELEMENT mensaje (de, para, hora, texto)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT hora (#PCDATA)>
<!ELEMENT texto ANY>
<!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>
Error at line 7, column 13: No declaration for attribute dni of element persona
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persona [
<!ELEMENT persona EMPTY>
<!ATTLIST persona nombre CDATA #IMPLIED>
]>
<persona />
Error at line 7, column 24: No declaration for attribute genero of element pelicula
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pelicula [
<!ELEMENT pelicula EMPTY>
<!ATTLIST pelicula titulo CDATA #IMPLIED>
]>
<pelicula titulo="La diligencia" />
Error at line 11, column 33: ID Adán y Eva already defined
Error at line 11, column 35: Syntax of value for attribute titulo of cuadro is not valid
<?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_1" autor="Alberto Durero" />
<cuadro autor="Lucas Cranach, el viejo" titulo="Adán_y_Eva_2" />
</cuadros>
Error at line 12, column 3: Element listaCompra content does not follow the DTD, expecting (item)*, got (leche pan )
<?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>
<item nombre="leche" cantidad="12 litros" />
<item nombre="pan" cantidad="3 barras de cuarto" />
</listaCompra>
Error at line 13, column 23: Syntax of value for attribute codigo of jugador is not valid
Error at line 11, column 59: Syntax of value for attribute nombre of jugador is not valid
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE futbol [
<!ELEMENT futbol (jugador*)>
<!ELEMENT jugador EMPTY>
<!ATTLIST jugador nombre NMTOKENS #REQUIRED>
<!ATTLIST jugador codigo ID #REQUIRED>
]>
<futbol>
<jugador nombre="Alfredo Di Stéfano" codigo="N1"/>
<jugador nombre="Edson Arantes do Nascimento - Pelé" codigo="N2" />
<jugador nombre="Diego Armando Maradona" codigo="N3" />
<jugador nombre="Johan Cruyff" codigo="N4" />
</futbol>
Error at line 19, column 3: IDREFS attribute jugadores references an unknown ID "Maradona"
Error at line 19, column 3: IDREFS attribute jugadores references an unknown ID "jc,"
<?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="dam" />
<equipo nombre="Futbol Club Barcelona" jugadores="jc dam" />
</futbol>
Error at line 7, column 13: Syntax of value for attribute autor of libro is not valid
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE libro [
<!ELEMENT libro EMPTY>
<!ATTLIST libro autor NMTOKENS #REQUIRED>
]>
<libro autor="Mario Vargas Llosa" />
Error at line 4, column 4: Extra content at the end of the document
Error at line 13, column 20: Element inventor does not carry attribute nombre
Error at line 12, column 25: Syntax of value for attribute nombre of inventor is not valid
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE inventores [
<!ELEMENT inventores (inventor*)>
<!ELEMENT inventor EMPTY>
<!ATTLIST inventor invento CDATA #REQUIRED>
<!ATTLIST inventor nombre CDATA #IMPLIED>
]>
<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>
Error at line 15, column 3: Element cosasPorHacer content does not follow the DTD, expecting (cosa), got (cosa cosa )
Error at line 14, column 21: Element cosa does not carry attribute asunto
Error at line 13, column 21: Element cosa was declared EMPTY this one has content
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cosasPorHacer [
<!ELEMENT cosasPorHacer (cosa*)>
<!ELEMENT cosa (#PCDATA)>
<!ATTLIST cosa fecha 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>
Error at line 13, column 3: Element resoluciones does not carry attribute alto.
Error at line 13, column 3: Element resoluciones was declared EMPTY this one has content
Error at line 12, column 32: No declaration for element resolucion
Error at line 13, column 30: Syntax of value for attribute nombre of resolucion is not valid
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resoluciones [
<!ELEMENT resoluciones (resolucion*)>
<!ELEMENT resolucion EMPTY>
<!ATTLIST resolucion nombre CDATA #REQUIRED>
<!ATTLIST resolucion alto CDATA #REQUIRED>
<!ATTLIST resolucion 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>
Error at line 6, column 25: Start tag expected, '<' not found
Error at line 13, column 22: Element album content does not follow the DTD, expecting (nombre , fecha), got
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE albumesMortadelo [
<!ELEMENT albumesMortadelo (album*)>
<!ELEMENT album EMPTY>
<!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>
Unas posibles soluciones serían las siguientes:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ligaDeFutbol [
<!ELEMENT ligaDeFutbol (partido*)>
<!ELEMENT partido (local, visitante)>
<!ELEMENT local (nombre, goles)>
<!ELEMENT visitante (nombre, goles)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT goles (#PCDATA)>
]>
<ligaDeFutbol>
<partido>
<local>
<nombre>Nottingham Presa</nombre>
<goles>0</goles>
</local>
<visitante>
<nombre>Inter de Mitente</nombre>
<goles>1</goles>
</visitante>
</partido>
<partido>
<local>
<nombre>Vodka Juniors</nombre>
<goles>3</goles>
</local>
<visitante>
<nombre>Sparta da Risa</nombre>
<goles>3</goles>
</visitante>
</partido>
<partido>
<local>
<nombre>Water de Múnich</nombre>
<goles>4</goles>
</local>
<visitante>
<nombre>Esteaua es del grifo</nombre>
<goles>2</goles>
</visitante>
</partido>
</ligaDeFutbol>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ligaDeFutbol [
<!ELEMENT ligaDeFutbol (partido*)>
<!ELEMENT partido (local, visitante)>
<!ELEMENT local (#PCDATA)>
<!ELEMENT visitante (#PCDATA)>
<!ATTLIST local goles CDATA #REQUIRED>
<!ATTLIST visitante goles CDATA #REQUIRED>
]>
<ligaDeFutbol>
<partido>
<local goles="0">Nottingham Presa</local>
<visitante goles="1">Inter de Mitente</visitante>
</partido>
<partido>
<local goles="3">Vodka Juniors</local>
<visitante goles="3">Sparta da Risa</visitante>
</partido>
<partido>
<local goles="4">Water de Múnich</local>
<visitante goles="2">Esteaua es del grifo</visitante>
</partido>
</ligaDeFutbol>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ligaDeFutbol [
<!ELEMENT ligaDeFutbol (partido*)>
<!ELEMENT partido EMPTY>
<!ATTLIST partido localNombre CDATA #REQUIRED>
<!ATTLIST partido localGoles CDATA #REQUIRED>
<!ATTLIST partido visitanteNombre CDATA #REQUIRED>
<!ATTLIST partido visitanteGoles CDATA #REQUIRED>
]>
<ligaDeFutbol>
<partido localNombre="Nottingham Presa" localGoles="0" visitanteNombre="Inter de Mitente" visitanteGoles="1" />
<partido localNombre="Vodka Juniors" localGoles="3" visitanteNombre="Sparta da Risa" visitanteGoles="3" />
<partido localNombre="Water de Múnich" localGoles="4" visitanteNombre="Esteaua es del grifo" visitanteGoles="2" />
</ligaDeFutbol>