INF1040 Oppgavesett 5: XML (Kapittel 3) Husk: De viktigste oppgavetypene i oppgavesettet er Tenk selv - og Prøv selv - oppgavene. Fasitoppgaver Ingen fasitoppgaver denne gang. Se flervalgsoppgavene under. Flervalgsoppgaver I følgende oppgaver er det oppgitt fem alternativer der nøyaktig ett svar er riktig. 1. Hvilken av følgende påstander er korrekt? (a) HTML erstatter XML. (b) XML erstatter HTML. (c) XHTML erstatter HTML. (d) XHTML erstatter XML. (e) Ingen av delene. 2. Hvilken av følgende påstander er korrekt? (a) Alle XML dokumenter må ha en DTD. (b) Alle XML elementer må skrives med små bokstaver. (c) XML elementer kan ikke være tomme. (d) XML elementer må være perfekt nøstet. (e) Alle påstandene over er korrekte. 1
3. Hva er ikke et gyldig elementnavn i XML? (a) <1a> (b) <a1> (c) <Element> (d) <NAVN> (e) Alle over er gyldige. 4. Hvor mange strukturfeil finnes i følgende XML-dokument? <?xml version = "1.0" encoding="iso-8859-1"?> <to>mamma</to> <innhold> Send mer <krav>penger <krav>brød </innhold> <from>ole</from> (a) Ingen feil. (b) 1 feil. (c) 2 feil. (d) 3 feil. (e) 4 feil. 5. Hvordan skrives kommentarer i XML? (a) */ Kommentar */ (b) /* Kommentar */ (c) // Kommentar (d) <!-- Kommentar --> (e) % Kommentar 6. I XML-koden <emne id="e123">inf1040</emne> er emne (a) et attributtnavn (b) en egenskap (c) et elementnavn (d) et navnerom (e) en selektor 2
7. I XML-koden <emne id="e123">inf1040</emne> er id (a) et attributtnavn (b) en egenskap (c) et elementnavn (d) et navnerom (e) en selektor 8. Hvilken av følgende er ikke et krav til et velformet XML-dokument? (a) Dokumentet har nøyaktig ett rotelement. (b) Alle elementer er pefekt nøstede. (c) Alle ikke-tomme elementer har både en start- og en slutt-markering. (d) Attributter til ikke-tomme elementer må skrives som en del av startmarkeringen til det aktuelle elementet. (e) Tomme elementer kan ikke inneholde attributter. 9. Hvilken av følgende påstander om DTDer og XML-skjemaer er korrekt? (a) DTD og XML-skjema er to ulike navn på det samme. (b) DTDer angir bare hvilke elementer som kan brukes i et XML-dokument, mens XML-skjemaer angir også hvordan disse elementene kan nøstes. (c) XML-skjemaer angir bare hvilke elementer som kan brukes i et XMLdokument, mens DTDer angir også hvordan disse elementene kan nøstes. (d) DTDer følger XML-syntaksen, mens XML-skjemaer ikke gjør det. (e) XML-skjemaer følger XML-syntaksen, mens DTDer ikke gjør det. Tenk selv -oppgaver 10. Velstrukturerte XML-dokumenter (a) Hva er kravene til et velstrukturert (velformet) XML-dokument? (b) Følgende XML-fil er ikke velstrukturert. Finn først alle feilene uten hjelp av datamaskin, og sjekk etterpå med http://www.w3schools. com/dom/dom_validate.asp eller http://www.xml.com/pub/a/tools/ ruwf/check.html 3
<?xml version="1.0" encoding=utf-8!> <eventyr> <samling>asbjørnsen & Moe</tittel> <tittel>snøhvit og de sju dvergene<samling/> <xmltekst> Det var en gang... <br>...og snipp, snapp, snute, så var det eventyret ute. </XMLtekst> <hr> <publiseringsdato> 20. august 2006 11. Gyldige XML-dokumenter (a) Hva vil det si at et XML-dokument er gyldig? (b) Hva er forskjellen på en dokumenttypedeklarasjon og en dokumenttypedefinisjon? (c) Det er ikke et mål her å gjøre deg til ekspert på å skrive DTDer, men prøv allikevel å skrive ned DTDen for XML-dokumentet i figur 3-8 i læreboken. 12. Ulike former for XML-dokumenter (a) Hva er forskjellen på et datasentrert og et dokumentsentrert XMLdokument? (b) Hva skjer hvis vi forsøker å vise fram et XML-dokument ved hjelp av en nettleser? Prøv selv -oppgaver 13. Gitt følgende XML-dokument <?xml version = "1.0" encoding="iso-8859-1"?> <eventyr> <samling>asbjørnsen og Moe</samling> <tittel>snøhvit og de sju dvergene</tittel> <tekst> Det var en gang...... og snipp, snapp, snute, så var det eventyret ute. </tekst> <publiseringsdato>20. august 2006</publiseringsdato> </eventyr> Lag et eksternt stilark for å angi hvordan et slikt XML-eventyr skal vises frem i en nettleser. 4
Hint: Et XML-dokument kan referere til et stilark ved å plassere instruksjonen <?xml-stylesheet type="text/css" href="stilark.css"?> i prologen, dvs før rotelementet. Programmeringsoppgaver (for deg som tar/har tatt INF1000) 14. Skriv et program som sjekker at markeringene i et XML-dokument er perfekt nøstet. Hint: Lag først et program som bare teller antall start/slutt-markeringer, uten å ta hensyn til type. 15. Skriv et program som konverterer fra XML til ren tekst ved at navnet på hver startmarkering gjøres om til store bokstaver og skrives på egen linje, mens innholdet kommer for seg på neste linje osv. For eksempel skal XML-dokumentet i oppgave 13 over kunne gjøres om til: EVENTYR: SAMLING: Asbjørnsen og Moe TITTEL: Snøhvit og de sju dvergene TEKST: Det var en gang...... og snipp, snapp, snute, så var det eventyret ute. PUBLISERINGSDATO: 20. august 2006 5
Fasit til fasitoppgaver og flervalgsoppgaver Hvis du finner feil i fasiten er det fint om du gir beskjed om dette ved å sende en mail til ragnhilk@ifi.uio.no 1. (c) 2. (d) 3. (a) 4. (d) 5. (d) 6. (c) 7. (a) 8. (e) 9. (e) 6