Soluciones de los ejercicios - DTDEstos 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 )
Para corregirlo, habría que reordenar las etiquetas <telefonoFijo> y <telefonoMovil> en el segundo <contacto>.
![]()
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 16, column 3: Element sistemaSolar content does not follow the DTD, expecting (cuerpo)*, got (cuerpo asteroide )
<?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>
<cuerpo>
<asteroide>Ceres</asteroide>
</cuerpo>
</sistemaSolar>
Volver al principio de la página
![]()
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>Paris 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>
Volver al principio de la página
![]()
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>
Volver al principio de la página
![]()
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>
Volver al principio de la página
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 Munich</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 Munich</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 Munich" localGoles="4" visitanteNombre="Esteaua es del grifo" visitanteGoles="2" /> </ligaDeFutbol>
Volver al principio de la página
Esta página forma parte del curso "XML: Lenguaje de Marcas Extensible" disponible en http://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons.