DTD - Soluciones

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.

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

DTD - Ejercicio 1-1 - Números - Solución

DTD - Ejercicio 1-2 - Letras - Solución

DTD - Ejercicio 1-3 - Colores - Solución

DTD - Ejercicio 1-4 - Flores - Solución

DTD - Ejercicio 1-5 - Animales - Solución

DTD - Ejercicio 1-6 - Escritores - Solución

DTD - Ejercicio 1-7 - Músicos - Solución

DTD - Ejercicio 1-8 - Teléfonos de emergencia - Solución

DTD - Ejercicio 1-9 - El sistema solar - Solución

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

DTD - Ejercicio 2-1 - Marcadores - Solución

DTD - Ejercicio 2-2 - Efemérides - Solución

DTD - Ejercicio 2-3 - Aeropuertos - Solución

DTD - Ejercicio 2-4 - Vuelos - Solución

DTD - Ejercicio 2-5 - Reyes españoles - Solución

DTD - Ejercicio 2-6 - Países - Solución

DTD - Ejercicio 2-7 - Códigos de colores - Solución

DTD - Ejercicio 2-8 - Contabilidad - Solución

DTD - Ejercicio 2-9 - Mensajes - Solución

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

DTD - Ejercicio 3-1 - Datos personales - Solución

DTD - Ejercicio 3-2 - Película - Solución

DTD - Ejercicio 3-3 - Cuadros - Solución

DTD - Ejercicio 3-4 - Lista de la compra - Solución

DTD - Ejercicio 3-5 - Jugadores de fútbol - Solución

DTD - Ejercicio 3-6 - Jugadores y equipos de fútbol - Solución

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

DTD - Ejercicio 4-1 - Libro - Solución

DTD - Ejercicio 4-2 - Inventores - Solución

DTD - Ejercicio 4-3 - Cosas por hacer - Solución

DTD - Ejercicio 4-4 - Resoluciones de pantalla - Solución

DTD - Ejercicio 4-5 - Álbumes de Mortadelo y Filemón - Solución

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 Múnich</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 Múnich</local>
        <visitante goles="2">Esteaua es del grifo</visitante>
      </partido>
    </ligaDeFutbol>
    
  3. DTD en la que 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 Múnich" localGoles="4" visitanteNombre="Esteaua es del grifo" visitanteGoles="2" />
    </ligaDeFutbol>