Volver al índice Soluciones de los ejercicios - DTD

Estos ejercicios se pueden resolver de varias maneras. En las soluciones siguientes se proponen algunas posibilidades, pero otras son aceptables.


DTD - Ejercicio 1 - Elementos sin atributos - Corregir errores en los elementos

  1. Números (dtd_11.xml)
  2. Letras (dtd_12.xml)
  3. Colores (dtd_13.xml)
  4. Flores (dtd_14.xml)
  5. Animales (dtd_15.xml)
  6. Escritores (dtd_16.xml)
  7. Músicos (dtd_17.xml)
  8. Teléfonos de emergencia (dtd_18.xml)
  9. El sistema solar (dtd_19.xml)

Volver al principio de la página


DTD - Ejercicio 2 - Elementos sin atributos - Corregir errores en la DTD

  1. Marcadores (dtd_21.xml)
  2. Efemérides (dtd_22.xml)
  3. Aeropuertos (dtd_23.xml)
  4. Vuelos (dtd_24.xml)
  5. Reyes españoles (dtd_25.xml)
  6. Países (dtd_26.xml)
  7. Códigos de colores (dtd_27.xml)
  8. Contabilidad (dtd_28.xml)
  9. Mensajes (dtd_29.xml)

Volver al principio de la página


DTD - Ejercicio 3 - Elementos con atributos - Corregir errores en los elementos

  1. Datos personales (dtd_31.xml)
  2. Película (dtd_32.xml)
  3. Cuadros (dtd_33.xml)
  4. Lista de la compra (dtd_34.xml)
  5. Jugadores de fútbol (dtd_35.xml)
  6. Jugadores y equipos de fútbol (dtd_36.xml)

Volver al principio de la página


DTD - Ejercicio 4 - Elementos con atributos - Corregir errores en la DTD

  1. Libro (dtd_41.xml)
  2. Inventores (dtd_42.xml)
  3. Cosas por hacer (dtd_43.xml)
  4. Resoluciones de pantalla (dtd_44.xml)
  5. Álbumes de Mortadelo y Filemón (dtd_45.xml)

Volver al principio de la página


DTD - Ejercicio 5 - DTDs alternativos

Unas posibles soluciones serían las siguientes:

  1. DTD sin atributos, únicamente contiene etiquetas
    <?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>
  2. DTD en la que los goles sean atributos
    <?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>
  3. DTD DTD en la toda la información se guarde en forma de atributos
    <?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
Autor: Bartolomé Sintes Marco
Última modificación: 6 de marzo de 2012

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.