HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidat nr: Eksamensdato: 12. desember 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO515D Fagnavn: Klasser: NETT2005H Studiepoeng: 6 Faglærer: Tore Mallaug tlf 73 55 93 37 (mobil : 99 23 82 32) Hjelpemidler: Alle trykte og skrevne hjelpemidler, samt godkjent kalkulator Oppgavesettet består av: 3 oppgaver og 6 sider (medregnet denne forsiden og vedlegg) Vedlegg består av: 1 side Merknad: Oppgaveteksten kan beholdes av studenter som sitter eksamenstiden ut. NB! Les hele oppgaveteksten før du setter i gang, og planlegg tiden. Dersom noe virker uklart i denne oppgaven, må du selv gjøre antagelser og få med disse antagelsene i besvarelsen. Det er ført opp vektlegging for hver oppgave. Merk at det kan være ulik vektlegging for de ulike deloppgavene. Lykke til!
HiST - Avdeling for informatikk og e-læring Side 2 av 6 I vedlegg A ligger XML-skjemaet beskjeder.xsd som viser lovlige elementer for data i et enkelt beskjedsystem til studenter som tar et FU-fag. Hvert fag har et XML-dokument i henhold til XML-skjemaet. Eksempler på hvordan beskjedene kan se ut i en nettleser er vist i Oppgave 1. Oppgave 1 XML-dokument, stilark og presentasjon ( 40 % ) Merk deg: Alle deloppgave i denne oppgaven henger sammen, så det kan lønne seg å lese igjennom hele oppgaven før du løser den! a) Lag et lovlig (validerbart) XML-dokument ut fra beskjeder.xsd i vedlegg A. Bruk eksempeldataene i figuren under (dvs. dokumentet skal inneholde en tittel og 3 beskjeder). b) Lag et stilark slik at dataene fra XML-dokumentet i Oppgave a) blir seende omtrent ut som på figuren under (i en nettleser). Hvis du i denne deloppgavene forutsetter bruk av en bestemt nettleser, må du beskrive hvilken du velger. c) Lag en presentasjon over beskjedene i XML-dokumentet i Oppgave a) som vist på figuren under. I denne presentasjonen skal: Beskjedene vises i en tabell. Månedsnavn skrives ut i stedet for nummeret til måneden. MERK: Vi begrenser oss til beskjeder for høstsemesteret som går fra august til desember hvert år. Hvis måned ikke er innenfor denne perioden, skriver presentasjonen ut tegnene?? i stedet for månedsnavn. Antall beskjeder skrives ut under tabellen slik som i figuren. Teksten Antall beskjeder vises med fet skrift.
HiST - Avdeling for informatikk og e-læring Side 3 av 6 d) Vis hvordan XSLT kan brukes til å transformere datoelementene i XML-dokumentet i Oppgave a) til et nytt datoelement dato vist under (datoen under er et eksempel): <dato>1.november 2005</dato> MERK DEG: Du skal ikke skrive hele XSLT-dokumentet i denne oppgaven, kun koden for å endre datoformatet.
HiST - Avdeling for informatikk og e-læring Side 4 av 6 Oppgave 2 XML-skjema ( 35 % ) I XML-skjemaet i Vedlegg A er beskjed-delen representert som ustrukturert fritekst. Vi ønsker å utvide strukturen til beskjeder slik at vi kan si noe mer om hva slags type beskjeder som er lagret i XML-dokumentene. Følgende nye krav til en beskjed settes: En beskjed skal knyttes opp mot et læringsobjekt. Et læringsobjekt er enten en leksjon, ei øving, et løsningsforslag eller faginfo (samlebetegnelse for div. info. om faggjennomføringen). En beskjed skal videre knyttes opp mot en hendelse. Eksempler på en hendelse er feil, forsinkelse eller opplysning. I friteksten til beskjeden ønsker vi å kunne ha referanser. Foreløpig sier vi at en referanse i teksten har en referansetekst og eventuelt en webadresse (URL). Men ikke alle referanser trenger å være en URL vi kan tenke oss at i fremtiden kan også en beskjed inneholde referanser til andre objekter, f.eks. andre XML-dokumenter. Under vises to eksempler på beskjeder etter den nye spesifikasjonen. Dato: 01.09.2005 Beskjedtype: Leksjon feil Beskjedtekst: Det var dessverre noen småfeil i pdf-utgaven av leksjon 2. Dette er nå rettet. Dato: 01.11.2005 Beskjedtype: Faginfo opplysning Beskjedtekst: Minner om at eksamen i faget er mandag 12. desember. Referanser er understreket over - i dette eksemplet er referansen pdf-utgaven av leksjon 2 knyttet til webadressen http://www.aitel.hist.no/fag/xml/lek02/xml-ls-xml2.pdf, mens referansen eksamen er ikke knyttet til noen webadresse. a) Endre fritekst-elementet i XML-skjema i Vedlegg A, slik at skjemaet kan brukes til å verifisere beskjeder etter den nye spesifikasjonen. MERK DEG! Du skal ikke ha med den delen av XML-skjemaet som ikke endres fra Vedlegg A i svaret ditt.
HiST - Avdeling for informatikk og e-læring Side 5 av 6 Oppgave 3 Diverse ( 25 % ) a) Forklar kort forskjellen mellom stilark, dokument og skjema i XML? Hva er fordelen med å skille disse fra hverandre? b) Nevn tre fordeler ved å bruke XML-dokumenter fremfor andre dokumentformater. Begrunn svaret. c) Finnes det tilfeller hvor det ikke er hensiktsmessig å bruke XML? Begrunn svaret. d) Vis hvordan XPath kan brukes til å plukke ut beskjeder fra desember 2005 fra XMLdokumenter validert av XML-skjemaet i Vedlegg A. Skriv også templaten som plukker ut beskjedene i XSLT. e) Lag SVG-kode for figuren under. Figuren skal ha et gult hode (slik som smiley ), to svarte øyne, en liten blå nese og en rød munn.
HiST - Avdeling for informatikk og e-læring Side 6 av 6 Vedlegg A filen beskjeder.xsd <?xml version="1.0" encoding="iso-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:annotation> <xsd:documentation>beskjeder for et fag</xsd:documentation> </xsd:annotation> <xsd:element name="beskjeder" type="beskjeder" /> <xsd:complextype name="beskjeder"> <xsd:sequence> <xsd:element name="spraak" type="xsd:string" /> <xsd:element name="tittel" type="tittel" /> <xsd:element name="beskjed" type="beskjed" minoccurs="0" maxoccurs="unbounded" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="tittel"> <xsd:sequence> <xsd:element name="emnekode" type="xsd:string" /> <xsd:element name="semester" type="xsd:string" /> <xsd:element name="aar" type="xsd:string" /> <xsd:element name="brukernavn" type="xsd:string" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="beskjed"> <xsd:sequence> <xsd:element name="dag" type="xsd:string" /> <xsd:element name="mnd" type="xsd:string" /> <xsd:element name="aar" type="xsd:string" /> <xsd:element name="fritekst" type="xsd:string" maxoccurs="unbounded" /> </xsd:sequence> </xsd:complextype> </xsd:schema>