exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

4
M04. Llenguatges de Marques UF1. Programació en XML 2. Conversió i adaptació de documents XML curs 2014-2015 Sergi Grau Jordi Latorre

description

exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

Transcript of exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

Page 1: exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

M04. Llenguatges de Marques

UF1. Programació en XML2. Conversió i adaptació de documents XML

curs 2014-2015

Sergi GrauJordi Latorre

Page 2: exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

Escola del ClotCicles formatius de grau superior d'informàtica

M04. Llenguatges de marquesProf. Sergi Grau i Jordi Latorre

curs 2014-2015

1. Crea el següent document XML.

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="Exercici2.xsl" type="text/xsl"?>

<!-- El tipus per defecte del sonet és Shakespeareane -->

<sonet type='Shakespearean'>

<autor>

<cognom>Shakespeare</cognom>

<nom>William</nom>

<nacionalitat>British</nacionalitat>

<any-de-naixement>1564-04-28</any-de-naixement>

<any-de-defuncio>1616-04-23</any-de-defuncio>

</autor> <!-- Aquest sonet no té títol oficial. -->

<titol>sonet 130</titol>

<linies>

<linia>My mistress' eyes are nothing like the sun,</linia>

<linia>Coral is far more red than her lips red.</linia>

<linia>If snow be white, why then her breasts are dun,</linia>

<linia>If hairs be wires, black wires grow on her head.</linia>

<linia>I have seen roses damasked, red and white,</linia>

<linia>But no such roses see I in her cheeks.</linia>

<linia>And in some perfumes is there more delight</linia>

<linia>Than in the breath that from my mistress reeks.</linia>

<linia>I love to hear her speak, yet well I know</linia>

<linia>That music hath a far more pleasing sound.</linia>

<linia>I grant I never saw a goddess go,</linia>

<linia>My mistress when she walks, treads on the ground.</linia>

<linia>And yet, by Heaven, I think my love as rare</linia>

<linia>As any she belied with false compare.</linia>

</linies>

</sonet>

<!-- Títol del album d'Sting del 1987 "Nothing like the sun" -->

<!-- des de la linia 1 d'aquest sonet. -->

Page 3: exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

Escola del ClotCicles formatius de grau superior d'informàtica

M04. Llenguatges de marquesProf. Sergi Grau i Jordi Latorre

curs 2014-2015

2. Afegeix-li el següent DTD vinculat de manera interna. Apliqueu-li un documentXSLT que mostri tots els nodes de text de sonet concatenats per defecte. Lasortida ha de ser un document XML ben format.

<!ELEMENT sonet (autor, titol, linies)>

<!ATTLIST sonet public-domain CDATA "yes" type (Shakespearean | Petrarchan)"Shakespearean">

<!ELEMENT autor (cognom,nom,nacionalitat, any-de-naixement?,any-de-defuncio?)>

<!ELEMENT cognom (#PCDATA)>

<!ELEMENT nom (#PCDATA)>

<!ELEMENT nacionalitat (#PCDATA)>

<!ELEMENT any-de-naixement (#PCDATA)>

<!ELEMENT any-de-defuncio (#PCDATA)>

<!ELEMENT titol (#PCDATA)>

<!ELEMENT linies (linia,linia,linia,linia,

linia,linia,linia,linia,

linia,linia,linia,linia,

linia,linia)>

<!ELEMENT linia (#PCDATA)>

3. Realitza un programa XSLT que mostri totes les línies del sonet, formatades ambsalt de línia en HTML. La sortida serà un document HTML.

4. Desenvolupa un programa XSLT que transformi el document XML original en unde nou, que mostri les dades de l'autor corresponents al nom i cognom, i totesles linies del sonet concatenades i dins d'un nou element sonet. Utilitzeu enalgun cas la funció XSLT que ens permet accedir al text d'un element. La sortidaha d'estar formatada en un document XML. Exemple:

<?xml version="1.0" encoding="UTF-8"?>

<poema>

<autor>

Shakespeare - William

</autor>

<sonet>My mistress' eyes are nothing like the sun,Coral is far more red thanher lips red.If snow be white, why then her breasts are dun,If hairs be wires, blackwires grow on her head.I have seen roses damasked, red and white,But no such rosessee I in her cheeks.And in some perfumes is there more delightThan in the breaththat from my mistress reeks.I love to hear her speak, yet well I knowThat music hatha far more pleasing sound.I grant I never saw a goddess go,My mistress when shewalks, treads on the ground.And yet, by Heaven, I think my love as rareAs any shebelied with false compare.

</sonet>

</poema>

5. Realitza un programa en XSLT que mostri l'atribut de sonet, els primers i darrersfills de l'element autor, la primera i última línia del sonet i un missatge indicantel nombre total de línies del sonet. La sortida estarà formatada en format de texti tindrà el següent aspecte:

tipus de poema: Shakespearean dades de l'autor: Shakespeare -1616 Poema: Mymistress' eyes are nothing like the sun, ... As any she belied with false compare.total de linies :14

Page 4: exercicis UF2.2 2 Conversi├│ i adaptaci├│ de documents XML

Escola del ClotCicles formatius de grau superior d'informàtica

M04. Llenguatges de marquesProf. Sergi Grau i Jordi Latorre

curs 2014-2015

6. Exporta tots els comentaris del document XML concatenats a un fitxer de text.

7. Realitza un programa XSLT que generi una sortida en format text amb els anysque va viure cadascun dels autors, i quants fa que va nàixer També indiqueuquan de temps ha passat des del 01/01/2000

Shakespeare va viure fins el 1616

En total va viure 52 anys

El 2011 va fer 447 anys del seu naixement

Des del 2000 ha passat 4047 dies

8. Donat el següent esquema XML crea un document XML amb diversos nombres, icrea un programa XSLT que determini si són parells o senars i si són majors que10.

<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/Exercici8"

xmlns:tns="http://www.example.org/Exercici8" elementFormDefault="qualified">

<complexType name="tipusNombres">

<sequence>

<element name="nombre" type="integer" maxOccurs="unbounded" minOccurs="1"></element>

</sequence>

</complexType>

<element name="nombres" type="tns:tipusNombres"></element>

</schema>

possible sortida:

0 parell = 0 i major que 10 false

1 parell = 1 i major que 10 false

2 parell = 0 i major que 10 false

3 parell = 1 i major que 10 false

14 parell = 0 i major que 10 true

15 parell = 1 i major que 10 true

9. Continua amb el programa anterior i formata la sortida per a que indiqui si ésparell o senar.

10. Realitza un programa XSLT que ens indiqui quines de les línies del sonetcomencen per I.