Examen 1 de septiembre 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_e110901_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"?>
<examen>
  <pregunta 1>
  XML significa ...
  </pregunta>
  <respuesta correcta>
  ... eXtensible Markup Language
  </respuesta>

Ejercicio 2. DTD (XYZ_e110901_2.xml)

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

<?xml version="1.0" encoding="UTF-8"?>
<software>
  <programa id="P0001">
    <nombre>Firefox <version>6</version></nombre>
    <fecha_publicacion año="2011" mes="agosto" />
    <sistema_operativo>Windows</sistema_operativo>
    <sistema_operativo>GNU/Linux</sistema_operativo>
    <sistema_operativo>Mac</sistema_operativo>
  </programa>
</software>

Ejercicio 3. XPath (XYZ_e110901_3.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"?>
<premios_nobel>
  <individuos>
    <individuo sexo="mujer">
      <nombre>María Curie</nombre>
      <nacido pais="Polonia" fecha="1867"/>
    </individuo>
    <individuo sexo="hombre">
      <nombre>Isaac Bashevis Singer</nombre>
      <nacido pais="Polonia" fecha="1902"/>
    </individuo>
    <individuo>
      <nombre sexo="hombre">Mario Vargas Llosa</nombre>
      <nacido pais="Perú" fecha="1936"/>
    </individuo>
    <individuo>
      <nombre sexo="hombre">Gerhard Ertl</nombre>
      <nacido pais="Alemania" fecha="1936"/>
    </individuo>
  </individuos>
  <premios>
    <premio categoria="física">
      <año>1903</año>
      <premiado>María Curie</premiado>
      <motivo>descubrimiento radioactividad</motivo>
    </premio>
    <premio categoria="química">
      <año>1911</año>
      <premiado>María Curie</premiado>
      <motivo>descubrimiento radioactividad</motivo>
    </premio>
    <premio categoria="literatura">
      <año>1978</año>
      <premiado>Isaac Bashevis Singer</premiado>
    </premio>
    <premio categoria="física">
      <año>2007</año>
      <premiado>Gerhard Ertl</premiado>
      <motivo>procesos químicos en superficies sólidas</motivo>
    </premio>
    <premio categoria="literatura">
      <año>2010</año>
      <premiado>Mario Vargas Llosa</premiado>
    </premio>
  </premios>
</premios_nobel>
  1. Nombre de ganadores de premios Nobel:
    María Curie
    María Curie
    Isaac Bashevis Singer
    Gerhard Ertl
    Mario Vargas Llosa
    
  2. Premios ganados por María Curie:
    categoria="física"
    categoria="química"
    
  3. Nombre del premiado en 2007:
    <premiado>Gerhard Ertl</premiado>
  4. Países de origen de los premiados en Literatura:
    pais="Polonia"
    pais="Perú"
    

Ejercicio 4. XSLT (XYZ_e110901_4a.xml y XYZ_e110901_4a.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"?>
<premios_nobel>
  <premios>
    <premio categoria="física">
      <año>1903</año>
      <premiado>María Curie</premiado>
      <motivo>descubrimiento radioactividad</motivo>
    </premio>
    <premio categoria="química">
      <año>1911</año>
      <premiado>María Curie</premiado>
      <motivo>descubrimiento radioactividad</motivo>
    </premio>
    <premio categoria="literatura">
      <año>1978</año>
      <premiado>Isaac Bashevis Singer</premiado>
    </premio>
    <premio categoria="física">
      <año>2007</año>
      <premiado>Gerhard Ertl</premiado>
      <motivo>procesos químicos en superficies sólidas</motivo>
    </premio>
    <premio categoria="literatura">
      <año>2010</año>
      <premiado>Mario Vargas Llosa</premiado>
    </premio>
  </premios>
</premios_nobel>
  1. Premios
    <?xml version="1.0" encoding="UTF-8"?>
    <premios_nobel>
      <premio>María Curie (física, 1903)</premio>
      <premio>María Curie (química, 1911)</premio>
      <premio>Isaac Bashevis Singer (literatura, 1978)</premio>
      <premio>Gerhard Ertl (física, 2007)</premio>
      <premio>Mario Vargas Llosa (literatura, 2010)</premio>
    </premios_nobel>
    
  2. Ganadores
    <?xml version="1.0" encoding="UTF-8"?>
    <html>
      <table border="1">
        <tr>
          <th>Categoría y Año</th>
          <th>Ganador</th>
        </tr>
        <tr>
          <td>física 1903</td>
          <td>María Curie</td>
        </tr>
        <tr>
          <td>química 1911</td>
          <td>María Curie</td>
        </tr>
        <tr>
          <td>literatura 1978</td>
          <td>Isaac Bashevis Singer</td>
        </tr>
        <tr>
          <td>física 2007</td>
          <td>Gerhard Ertl</td>
        </tr>
        <tr>
          <td>literatura 2010</td>
          <td>Mario Vargas Llosa</td>
        </tr>
      </table>
    </html>
    
    Categoría y Año Ganador
    física 1903 María Curie
    química 1911 María Curie
    literatura 1978 Isaac Bashevis Singer
    física 2007 Gerhard Ertl
    literatura 2010 Mario Vargas Llosa