Examen 2 de junio de 2011

Resuelva los siguientes ejercicios guardando las respuestas en una carpeta con su nombre y apellidos. Los nombres de los ficheros están indicados en los enunciados (XYZ corresponde a sus propias iniciales, Nombre Apellido1 Apellido2).

Ejercicio 1. Documentos bien formados (XYZ_e110602_1.xml)

El siguiente documento no está bien formado porque contiene errores. Corrija los errores (si para corregir algún error hay que inventarse una etiqueta o atributo, utilice un nombre que tenga relación con la información contenida en el documento).

<?xml version="1.0" encoding="UTF-8"?>
<documento>
  <autor />Bartolomé Sintes Marco
  <fecha fecha=30/05/11>
  <contenido>
  <punto 1>XML significa eXtensible Markup Languages</punto 1>
  </contenido>
</documentos>

Ejercicio 2. Documentos bien formados (XYZ_e110602_2.xml)

El siguiente documento no está bien formado porque contiene errores. Corrija los errores (si para corregir algún error hay que inventarse una etiqueta o atributo, utilice un nombre que tenga relación con la información contenida en el documento).

<persona>
<nombre="Pepito Conejo">
pepito.conejo@example.org
<persona>
<nombre>Juanita Banana</nombre>
<telefono fijo>3141593</telefono fijo>

Ejercicio 3. DTD (XYZ_e110602_3.xml)

Escriba la DTD que corresponde al siguiente documento, incluyéndola en el propio documento.

<?xml version="1.0" encoding="UTF-8"?>
<formula1 año="2011">
<carrera>
  <nombre>GP de Mónaco</nombre>
  <fecha><dia>29</dia> de <mes>mayo</mes> de <año>2011</año></fecha>
  <podium>
    <orden n="1" nombre="Sebastian Vettel" escudería="Red Bull"/>
    <orden n="2" nombre="Fernando Alonso" />
    <orden n="3" nombre="Jenson Button" />
  </podium>
</carrera>
</formula1>

Ejercicio 4. CSS (XYZ_e110602_4.xml y XYZ_e110602_4.css)

Escriba la hoja de estilo CSS para que el siguiente documento se vea en el navegador como muestra la imagen.

<?xml version="1.0" encoding="UTF-8"?>
<citas>
  <cita>
    <autor>Will Rogers</autor>
    <fechas>1879 - 1935</fechas>
    <texto>Todo ha cambiado. La gente se toma a los humoristas en serio y a los políticos en broma.</texto>
  </cita>
  <cita>
    <autor>Groucho Marx</autor>
    <fechas>1890 - 1977</fechas>
    <texto>No reírse de nada es de tontos, reírse de todo es de estúpidos.</texto>
  </cita>
  <cita>
    <autor>Isaac Asimov</autor>
    <fechas>1920 - 1992</fechas>
    <texto>La primera ley de la dietética parece ser: si está bueno, es malo para usted.</texto>
  </cita>
  <cita>
    <autor>Robin Williams</autor>
    <fechas>1952 - </fechas>
    <texto>El problema es que Dios le dio al hombre un cerebro y un pene, pero no le dio sangre suficiente para los dos a la vez.</texto>
  </cita>
</citas>

La captura de la pantalla siguiente tiene un tamaño de 400 x 300 px. Haga clic en la imagen para ver la captura a 1024 x 768 px.

Ejercicio CSS resultado

Ejercicio 5. XPath (XYZ_e110602_5.txt)

Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada. La respuestas está indicada entre paréntesis y unas veces incluye las etiquetas y otras no). Escriba las expresiones XPath y los resultados obtenidos en el fichero txt.

<?xml version="1.0" encoding="UTF-8"?>
<cine>
  <personas>
    <persona sexo="hombre">
      <nombre>Alfred Hitchcock</nombre>
      <fechas nacimiento="1899" fallecimiento="1980" />
    </persona>
    <persona sexo="mujer">
      <nombre>Lauren Bacall</nombre>
      <fechas nacimiento="1924" />
    </persona>
    <persona sexo="hombre">
      <nombre>Sidney Lumet</nombre>
      <fechas nacimiento="1924" fallecimiento="2011" />
    </persona>
    <persona sexo="hombre">
      <nombre>Jerry Lewis</nombre>
      <fechas nacimiento="1926" />
    </persona>
    <persona sexo="mujer">
      <nombre>Janet Leigh</nombre>
      <fechas nacimiento="1927" fallecimiento="2004" />
    </persona>
    <persona sexo="hombre">
      <nombre>Anthony Perkins</nombre>
      <fechas nacimiento="1932" fallecimiento="1992" />
    </persona>
  </personas>
  <peliculas>
    <pelicula>
      <titulo>Psicosis</titulo>
      <fecha>1960</fecha>
      <director>Alfred Hitchcock</director>
      <actor>Anthony Perkins</actor>
      <actor>Janet Leigh</actor>
    </pelicula>
    <pelicula>
      <titulo>Tres en un sofá</titulo>
      <fecha>1966</fecha>
      <director>Jerry Lewis</director>
      <actor>Jerry Lewis</actor>
      <actor>Janet Leigh</actor>
    </pelicula>
    <pelicula>
      <titulo>Asesinato en el Orient Express</titulo>
      <fecha>1966</fecha>
      <director>Sidney Lumet</director>
      <actor>Anthony Perkins</actor>
      <actor>Lauren Bacall</actor>
    </pelicula>
  </peliculas>
</cine>
  1. Títulos de las películas:
    Psicosis
    Tres en un sofá
    Asesinato en el Orient Express
    
  2. Títulos de las películas en las que Anthony Perkins es actor:
    <titulo>Psicosis</titulo>
    <titulo>Asesinato en el Orient Express</titulo>
    
  3. Nombre de las personas de sexo femenino:
    <nombre>Lauren Bacall</nombre>
    <nombre>Janet Leigh</nombre>
    
  4. Directores de las películas en las que actúa Janet Leigh:
    <director>Alfred Hitchcock</director>
    <director>Jerry Lewis</director>
    
  5. Nombre de las personas vivas:
    Lauren Bacall
    Jerry Lewis
    
  6. Nombre de las personas que vivieron toda su vida en el siglo XX:
    <nombre>Anthony Perkins</nombre>
  7. Fecha de nacimiento de los actores de la película "Tres en un sofá":
    nacimiento="1926"
    nacimiento="1927"
    

Ejercicio 6. XSLT (XYZ_e110602_6a.xml y XYZ_e110602_6a.xsl, etc.)

Dado el siguiente documento XML, escriba las hojas de estilo XSLT que devuelvan la respuesta deseada y enlácelas desde el documento XML (uno para cada caso).

<?xml version="1.0" encoding="UTF-8"?>
<peliculas>
  <pelicula>
    <titulo>Psicosis</titulo>
    <fecha>1960</fecha>
    <director>Alfred Hitchcock</director>
    <actor>Anthony Perkins</actor>
    <actor>Janet Leigh</actor>
  </pelicula>
  <pelicula>
    <titulo>Tres en un sofá</titulo>
    <fecha>1966</fecha>
    <director>Jerry Lewis</director>
    <actor>Jerry Lewis</actor>
    <actor>Janet Leigh</actor>
  </pelicula>
  <pelicula>
    <titulo>Asesinato en el Orient Express</titulo>
    <fecha>1966</fecha>
    <director>Sidney Lumet</director>
    <actor>Anthony Perkins</actor>
    <actor>Lauren Bacall</actor>
  </pelicula>
</peliculas>
  1. Películas
    <?xml version="1.0" encoding="UTF-8"?>
    <peliculas>
      <pelicula titulo="Psicosis"/>
      <pelicula titulo="Tres en un sofá"/>
      <pelicula titulo="Asesinato en el Orient Express"/>
    </peliculas>
    
  2. Películas
    <?xml version="1.0" encoding="UTF-8"?>
    <peliculas>
      <pelicula>Psicosis (Alfred Hitchcock, 1960)</pelicula>
      <pelicula>Tres en un sofá (Jerry Lewis, 1966)</pelicula>
      <pelicula>Asesinato en el Orient Express (Sidney Lumet, 1966)</pelicula>
    </peliculas>
    
  3. Tabla Películas y Directores
    <?xml version="1.0" encoding="UTF-8"?>
    <html>
      <table border="1">
        <tr>
          <th>Película</th>
          <th>Director</th>
        </tr>
        <tr>
          <td>Psicosis</td>
          <td>Alfred Hitchcock</td>
        </tr>
        <tr>
          <td>Tres en un sofá</td>
          <td>Jerry Lewis</td>
        </tr>
        <tr>
          <td>Asesinato en el Orient Express</td>
          <td>Sidney Lumet</td>
        </tr>
      </table>
    </html>
    
    Película Director
    Psicosis Alfred Hitchcock
    Tres en un sofá Jerry Lewis
    Asesinato en el Orient Express Sidney Lumet
  4. Lista de Películas y Actores
    <?xml version="1.0" encoding="UTF-8"?>
    <html>
      <p>Psicosis</p>
      <ul>
        <li>Anthony Perkins</li>
        <li>Janet Leigh</li>
      </ul>
      <p>Tres en un sofá</p>
      <ul>
        <li>Jerry Lewis</li>
        <li>Janet Leigh</li>
      </ul>
      <p>Asesinato en el Orient Express</p>
      <ul>
        <li>Anthony Perkins</li>
        <li>Lauren Bacall</li>
      </ul>
    </html>
    

    Psicosis

    • Anthony Perkins
    • Janet Leigh

    Tres en un sofá

    • Jerry Lewis
    • Janet Leigh

    Asesinato en el Orient Express

    • Anthony Perkins
    • Lauren Bacall