All data som ska lagras sparas i filer i XML- eller JSP-format. Nedan re-
dogörs för de olika typer av filer som används. AllaXML-filer har var sin
Document Type Definition-fil, (DTD-fil). Dessa finns i bilaga H.
8.5.1 Administratörer
Administratörerna är de som kan logga in i designapplikationen och till exempel publicera enkäter. Vi har valt att enbart lagra deras användar- namn och lösenord, men i framtiden kan mera information om administ- ratörerna vara passande, till exempel namn, e-postadress och eventuell behörighetsnivå. Denna fil lagras i nuläget okrypterad. Nedan visasXML-
strukturen för filen där administratörernas inloggningsuppgifter finns:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE users SYSTEM "../dtd/users.dtd"> <users>
<user userName="123" password="456"/> <user userName="456" password="789"/> </users>
8.5.2 Enkätundersökningar
Undersökningsfilen kopplar samman en frågesamling och en målgrupp samt innehåller det meddelande som enkätskaparen vill att respondenter- na ska ta del av via e-postmeddelandet. I denna fil anges även enkätun- dersökningens titel och namn. Titeln behöver inte vara unik men namnet är alltid unikt och detsamma som filens filnamn.
Som ett underelement tillsurveylagras information om vilka respon-
denter som redan har besvarat enkäten och därför inte ska kunna logga in igen.
8.5. Lagrade data 77
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE survey SYSTEM "../dtd/surveys.dtd"> <survey title="Västerskolans allmänhälsa"
questionnaireFileName="allman_halsa.xml" responderFileName="vasterskolan_ak9.xml" message="Hej! Svara på enkäten! Hälsningar Louise Andersson, Skolsköterska"
name="1128502282363" /> <expiredResponders>
<user userName="hrgfaerg" /> </expiredResponders>
TillhörandeDTDfinns i bilaga H.
8.5.3 Frågesamlingar
Frågesamlingsfilerna innehåller de frågor som enkäten består av. Nedan visas XML-strukturen för en frågesamlingsfil. För varje fråga specificeras
vilken typ av fråga det handlar om, på vilken plats i enkäten som frågan ska hamna, en rubrik, en beskrivning samt vilka svarsalternativ som finns.
Filerna kan ha vilket filnamn som helst, men det måste vara unikt. Frågesamlingen ovan har först en antingen-eller-fråga om responden- ten känner sig frisk eller inte och därefter följer en flervalsfråga om vilka typer av sportaktiviteter som respondenten utför på fritiden.
De frågetyper som finns samt vilka underelement som de kan ha be- skrivs i tabell 8.5 på sidan 78. En utförligare beskrivning finns i stycke 5.2. Samtliga frågetyper har attributen heading, description, type och sortOrder, förutom rubriktypen, som saknar attributetsortOrder. Un-
derelementen kan i sin tur ha attribut, och de som har det beskrivs i tabell 8.6 på sidan 78.
Ett större exempel med alla frågetyper representerade finns i bilaga I, och i bilaga J finns en skärmbild av samma demonstrationsenkät som den visas för respondenten.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE questionnaire SYSTEM
"../dtd/questionnaires.dtd"> <?xml-stylesheet type="text/xsl"
href="../xsl/present_questionnaire.xsl"?>
Tabell 8.5: Frågetyper med svarsalternativ
Frågetyp Beteckning Underelement
Antingen-eller-frågor radio option, subques- tion
Flervalsfrågor checkbox option, subques-
tion
Fritextfrågor med en rad text columns
Fritextfrågor med flera rader textarea columns,rows
Frågor med numeriska svar numerical minValue, maxVa- lue,columns
Frågor med skala scale minValue, max-
Value, minLabel, maxLabel
Rubrik heading Underelement sak-
nas.
Tabell 8.6: Frågetypernas underelement Underelement Attribut
option text,sortOrder subquestion text,sortOrder
name="allman_halsa" description="I en ny stor
undersökning studerar vi det allmäna hälsotillståndet hos eleverna på skolan. Den här enkäten ligger till grund för resultatet.">
<question heading="Känner du dig frisk?"
description="" type="radio" sortOrder="001"> <option text="Ja" sortOrder="001" />
<option text="Nej" sortOrder="002" /> </question>
<question
heading="Utövar du någon sportaktivitet på fritiden?"
8.5. Lagrade data 79
description="Markera de sporttyper som du utövar."
type="checkbox" sortOrder="002">
<option text="Bollsport" sortOrder="001" /> <option text="Motorsport" sortOrder="002" /> <option text="Ensamsport" sortOrder="003" /> <option text="Annan sport" sortOrder="004" /> </question>
</questionnaire>
8.5.4 Målgrupper
Varje målgrupp sparas i enXML-fil, med den struktur som visas nedan.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE responders SYSTEM "../dtd/responders.dtd"> <responders title="Åk 9 Västerskolan"
name="ak9_vaster_2005-08"> <responder userName="nriofvng" password="jsldugkl" eMailAddress="jonas@webbservern.se" /> <responder userName="hrgfaerg" password="ehrgserh" eMailAddress="julia@webbservern.se" /> </responders>
Användarnamn och lösenord är engångsuppgifter, och parametern
expiredanger om respondenten har besvarat enkäten eller inte.
8.5.5 Publicerade enkäter
Publicerade enkäter sparas i var sin JSP-fil, som har genererats från mot-
svarande frågesamlingsfil tillsammans med dess XSL-fil. Nedanstående HTML-kod är den som genereras frånJSP-filen när enkäten ska visas upp i
webbläsaren.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> <head>
content="text/html; charset=UTF-8">
<title>Besvara enkät</title> <base href="http://localhost:8080/
questionnaireAnswerer/show_questionnaire.jsp">
<link type="text/css" href="stylesheets/stylesheet.css" rel="stylesheet">
<script type="text/javascript"> <!--Begin JavaScript.
function confirmSubmit() {
var confirmed = confirm("Vill du att svaren ska skickas? \rOK skickar svaren och Avbryt avbryter
skickandet."); return confirmed; } // End JavaScript.--></script> </head> <body> <div id="nomenucontent"> <h1>Allmänhälsa kort</h1>
<p>I en ny stor undersökning studerar vi det allmäna hälsotillståndet hos eleverna på skolan. Den här enkäten ligger till grund för resultatet.</p>
<p><span class="error"><br> </span></p>
<form onSubmit="return confirmSubmit();" accept-charset="UTF-8" method="POST"
action="action/answersurvey?choice=receiveAnswers">
<h2>001. Känner du dig frisk?</h2> <p></p>
<p class="instruction">Svara genom att välja ett av alternativen.</p>
<p><span class="error"></span></p>
<p><input type="radio" name="value(001)" value="Ja"> Ja
<input type="radio" name="value(001)" value="Nej"> Nej
8.5. Lagrade data 81
<input type="hidden" name="value(001)" value=""></p>
<h2>002. Utövar du någon sportaktivitet på fritiden?</h2>
<p>Markera de sporttyper som du utövar.</p> <p class="instruction">Svara genom att välja
så många alternativ du vill.</p> <p><input type="checkbox" name="value(002o001)"
value="Bollsport">Bollsport
<input type="checkbox" name="value(002o002)" value="Motorsport">Motorsport
<input type="checkbox" name="value(002o003)" value="Ensamsport">Ensamsport
<input type="checkbox" name="value(002o004)" value="Annan sport">Annan sport </p>
<p class="notification">Dina svar kommer att behandlas i enlighet med Personuppgiftslagen (1998:204).</p> <p><input value="Skicka svar" type="submit"></p> </form>
</div> </body> </html>
8.5.6 Enkätsvar
Varje respondents svar lagras i en separat fil. Nedan visasXML-strukturen
för en enkätsvarsfil. Filens innehåll lagras krypterat.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE response SYSTEM "../dtd/answers.dtd"> <response id="1128502282363" userName="nriofvng">
<question sortOrder="1"> <answer>Ja</answer> </question> <question sortOrder="2"> <answer>Ensamsport</answer> <answer>Annan sport</answer> </question> </response>