Examen 1 de junio de 2012 (tarde)

Resuelva los siguientes ejercicios guardando las respuestas en una carpeta con su nombre y apellidos.

Ejercicio 1. Documentos bien formados

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"?>
<invento codigo=I001>fonógrafo
<inventor id>Thomas Alva Edison
</invento>
</inventos>

Ejercicio 2. DTD

Dada la siguiente DTD:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [
  <!ELEMENT paises (pais*)>
  <!ELEMENT pais (superficie, moneda+, gobierno)>
  <!ATTLIST pais nombre ID #REQUIRED>
  <!ATTLIST pais fronteras IDREFS #REQUIRED>
  <!ELEMENT superficie (#PCDATA)>
  <!ATTLIST superficie unidad NMTOKEN #REQUIRED>
  <!ELEMENT moneda (#PCDATA)>
  <!ELEMENT gobierno EMPTY>
  <!ATTLIST gobierno sistema NMTOKEN #IMPLIED>
]>

... escriba un documento válido que contenga la siguiente información:

Ejercicio 3. XPath

Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan exactamente la respuesta indicadas en los cuadros. Escriba todas las expresiones XPath en un único fichero NAA_1.txt, numerando las respuestas.

<?xml version="1.0" encoding="UTF-8"?>
<tebeos>
  <autor>Bartolomé Sintes Marco</autor>
  <UltimaModificacion>20120601</UltimaModificacion>
  <personajes>
    <personaje id="P001" especie="humano">Astérix</personaje>
    <personaje id="P002" especie="animal">Idéfix</personaje>
    <personaje id="P003" especie="humano">Lucky Luke</personaje>
    <personaje id="P004" especie="animal">Jolly Jumper</personaje>
    <personaje id="P005" especie="humano">Averrell Dalton</personaje>
    <personaje id="P006" especie="humano">Cayo coyuntural</personaje>
  </personajes>
  <autores>
    <dibujantes>
      <dibujante id="D001">
        <nombre>Albert Uderzo</nombre>
        <nacimientoFecha>1927</nacimientoFecha>
        <nacimientoPais>Francia</nacimientoPais>
      </dibujante>
      <dibujante id="D002">
        <nombre>Maurice de Bévère</nombre>
        <apodo>Morris</apodo>
        <nacimientoFecha>1923</nacimientoFecha>
        <nacimientoPais>Bélgica</nacimientoPais>
        <fallecimientoFecha>2001</fallecimientoFecha>
      </dibujante>
    </dibujantes>
    <guionistas>
      <guionista id="G001">
        <nombre>René Goscinny</nombre>
        <nacimientoFecha>1926</nacimientoFecha>
        <nacimientoPais>Francia</nacimientoPais>
        <fallecimientoFecha>1977</fallecimientoFecha>
      </guionista>
    </guionistas>
  </autores>
  <albumes>
    <album id="A001">
      <titulo>Astérix, el galo</titulo>
      <personajes>
        <personaje>P001</personaje>
        <personaje>P002</personaje>
      </personajes>
      <autores>
        <dibujante>D001</dibujante>
        <guionista>G001</guionista>
      </autores>
      <fechaPublicacion>1961</fechaPublicacion>
    </album>
    <album id="A002">
      <titulo>Indulto para los Dalton</titulo>
      <personajes>
        <personaje>P003</personaje>
        <personaje>P004</personaje>
        <personaje>P005</personaje>
      </personajes>
      <autores>
        <dibujante>D002</dibujante>
        <guionista>G001</guionista>
      </autores>
      <fechaPublicacion>1965</fechaPublicacion>
    </album>
    <album id="A001">
      <titulo>Obélix y compañia</titulo>
      <personajes>
        <personaje>P001</personaje>
        <personaje>P002</personaje>
        <personaje>P006</personaje>
      </personajes>
      <autores>
        <dibujante>D001</dibujante>
        <guionista>G001</guionista>
      </autores>
      <fechaPublicacion>1976</fechaPublicacion>
    </album>
  </albumes>
</tebeos>
  1. Fecha de la última modificación del documento:
    20120601
  2. Fecha de nacimiento de los dibujantes:
    <nacimientoFecha>1927</nacimientoFecha>
    <nacimientoFecha>1923</nacimientoFecha>
    
  3. Fecha de nacimiento de dibujantes y guionistas:
    <nacimientoFecha>1927</nacimientoFecha>
    <nacimientoFecha>1923</nacimientoFecha>
    <nacimientoFecha>1926</nacimientoFecha>
    
  4. Nombre de los dibujantes nacidos en Francia:
    Albert Uderzo
  5. Nombre de los autores nacidos en Francia:
    <nombre>Albert Uderzo</nombre>
    <nombre>René Goscinny</nombre>
    
  6. Títulos de los álbumes publicados antes de 1970:
    Astérix, el galo
    Indulto para los Dalton
    
  7. Nombre de los personajes que aparecen en "Astérix, el galo":
    Astérix
    Idéfix
    
  8. Títulos de los álbumes dibujados por Albert Uderzo:
    <titulo>Astérix, el galo</titulo>
    <titulo>Obélix y compañia</titulo>
    

Ejercicio 4. XSLT

Dado el siguiente documento XML, escriba y enlace las hojas de estilo XSLT que devuelvan la respuesta deseada (una para cada caso).

Los nombres de los ficheros deben ser NAA_4-1.xml y NAA_4-1.xsl, etc.

<?xml version="1.0" encoding="UTF-8"?>
<lenguajes fuente="http://www.wikipedia.org" fecha="2012">
  <lenguaje>
    <nombre>C</nombre>
    <creador>Dennis Ritchie</creador>
    <fecha>1973</fecha>
    <compilado />
  </lenguaje>
  <lenguaje>
    <nombre>Python</nombre>
    <creador>Guido van Rossum</creador>
    <fecha>1991</fecha>
    <interpretado />
  </lenguaje>
  <lenguaje>
    <nombre>PHP</nombre>
    <creador>Rasmus Lerdorf</creador>
    <fecha>1995</fecha>
    <interpretado />
  </lenguaje>
  <lenguaje>
    <nombre>XSLT</nombre>
    <creador>James Clark</creador>
    <fecha>1998</fecha>
    <interpretado />
  </lenguaje>
</lenguajes>
  1. Nombres de los lenguajes
    <?xml version="1.0" encoding="UTF-8"?>
    <lenguajes>
      <lenguaje>C</lenguaje>
      <lenguaje>Python</lenguaje>
      <lenguaje>PHP</lenguaje>
      <lenguaje>XSLT</lenguaje>
    </lenguajes>
    
  2. Explicación de los lenguajes en forma de página web:
    <?xml version="1.0" encoding="UTF-8"?>
    <html>
      <h1>Lenguajes de programación</h1>
      <p>Dennis Ritchie creó el lenguaje C en 1973.</p>
      <p>Guido van Rossum creó el lenguaje Python en 1991.</p>
      <p>Rasmus Lerdorf creó el lenguaje PHP en 1995.</p>
      <p>James Clark creó el lenguaje XSLT en 1998.</p>
    </html>
    
  3. Otra explicación de los lenguajes en forma de página web:
    <?xml version="1.0" encoding="UTF-8"?>
    <html>
      <p>El lenguaje C es compilado.</p>
      <p>El lenguaje Python es interpretado.</p>
      <p>El lenguaje PHP es interpretado.</p>
      <p>El lenguaje XSLT es interpretado.</p>
      <p>Información obtenida de http://www.wikipedia.org en el año 2012</p>
    </html>