DE Pszichológiai Intézet
Az intézeti kérdıív kezelı rendszer dokumentációja v1.0.2 Készítette: Szász Béla Sándor 2009. január
Tartalom MI AZ XML?
2
XML SZINTAXIS SZABÁLYAI
3
A KÉRDİÍVET LEÍRÓ XML ÁLLOMÁNY SZERKEZETE
4
A KÉRDİÍV ÁLLOMÁNY SZERKEZETI RÉSZEI MINDIG KEZDJÜK ÍGY… EGY KONKRÉT PÉLDA A KÉRDİÍV XML ÁLLOMÁNY TESZTELÉSE ITEMEK 1. BEVITELI ITEM: 2. JELÖLİ ITEM: 3. VÁLASZTÓ ITEM: 4. „JELÖLİ + EGYÉB” ITEM: 5. „VÁLASZTÓ + EGYÉB” ITEM: 6. FOKOZATOS ITEM: 7. SZÖVEG ITEM: ITEMEK KORLÁTAI EGYÉB TUDNIVALÓK 1. SORTÖRÉS HASZNÁLATA 2. ZÁRSZÓ MEGADÁSA 3. MEGJEGYZÉS MEGADÁSA
4 5 6 7 9 9 9 10 10 10 10 11 11 11 11 12 12
Mi az XML? − Az XML (eXtensible Meta Language) leírónyelvet adatok rendszerezésére, tárolására és közvetítésére tervezték (és nem arra, hogy ebben a formában jelenítsük meg az adatokat). − Nincsenek elıre definiált XML elemek. Neked kell a saját elemeidet létrehoznod. − Úgy tervezték a nyelvet, hogy önmagát magyarázza. − A W3C (The Word Wide Web Consortium) ajánlása. Egy XML állomány elemekbıl áll. Az elemeknek lehet értékük, lehetnek tulajdonságaik, valamint további elemeket tartalmazhatnak (vagyis az elemek egymásba ágyazhatók). Egy elem egy nyitó és egy záró taggal adható meg. A nyitó és záró tagot angolul is „tag”-nak írják (bár „teg”-nek ejtik; a jelentése pedig: cédula, címke). Egy elem nyitó tagját úgy képezzük, hogy < és > jel közé írjuk az elem nevét. A lezáró tagját hasonlóan, de a név elé teszünk egy / (osztás) jelet. Az elem kezdı és lezáró tagja közötti szöveg az elem értéke. Pl.: ha egy „üzenet” nevő elemet szeretnénk létrehozni, akkor a nyitó tag
míg a záró tag lenne. A következı példa egy Tomitól Julinak szóló üzenetet mutat be:
Tomi Juli emlékeztetı Gondolj rám a hét végén! Az elsı sor az XML deklaráció, amely megadja, hogy az 1.0-ás XML változatot használjuk, és az állományban használatos karakterkódolás most UTF-8. A következı sor (
) írja le a dokumentum gyökér elemét (mintha azt mondaná: „ez a dokumentum egy üzenet”). A következı 4 sor a gyökér elem 4 gyermek elemét írja le. (kitıl, kinek, tárgy, tartalom) A legutolsó sor () a gyökér elem végét jelenti. Az XML állományokban kötelezı gyökér elemnek lennie. Ez az elem minden más elem „szülıje”. Az elemek egy dokumentum fát alkotnak, amely a gyökérnél kezdıdik és a fa legmélyebb szintjéig ágazik. Minden elemnek lehetnek al-elemei (= gyermek elemei):
...
Szülı, gyermek, testvér – így nevezzük az elemek közötti kapcsolatokat.
2 / 12
XML szintaxis szabályai Az XML szintaxis szabályai nagyon egyszerőek és logikusak, melyeket könnyő megtanulni, és használni. 1. Minden elemnek lennie kell lezáró tagjának. Megjegyzés: talán észrevetted, hogy a legelsı példában az XML deklarációnak nincs lezáró tagja. Ez nem hiba, mivel a deklaráció nem része magának az XML dokumentumnak. 2. Az XML tagok érzékenyek a kis és nagybetők közti különbségre. Pl.:
és különbözı tagok. Egy elem nyitó és záró tagjában a nevet ugyanúgy kell írni. 3. Az elemeket megfelelıen kell egymásba ágyazni. <dolt>E szöveg félkövér és dılt helytelen <dolt>E szöveg félkövér és dılt helyes 4. Az XML dokumentumokban kötelezı gyökér elemnek lennie. Ez az elem minden más elem „szülıje”. 5. Az XML attribútumok értékeit kötelezı idézıjelek közé tenni. Az XML elemeknek lehetnek attribútumai (jellemzıi) név/érték párokkal megadva. Az értékeket kötelezı idézıjelek közé tenni: helytelen
helyes
Tomi Juli Tomi Juli
6. Entitás hivatkozások Néhány karakter különleges jelentést hordoz az XML-ben. Ha például egy „<” jelet teszünk egy XML elem belsejébe, akkor az hibát fog okozni, mivel az értelmezı úgy fogja venni, mint új elem kezdetét. Pl. a következı sor hibát ad: ha a születési éved < 1980 akkor figyelj
Ezt elkerülendı, cseréljük fel a „<” jelet egy entitás hivatkozással: ha a születési éved < 1980 akkor figyelj
Az XML-ben 5 elıre definiált entitás hivatkozás van: szövegben megkívánt jel (entitás)
ezt használjuk helyette (entitás hivatkozás)
miért? mit jelent?
< > & ’ ”
< > & ' "
less than greater than ampersand apostrophe quotation mark
7. Megjegyzések az XML-ben Mint ahogy az alábbi példában:
3 / 12
A kérdıívet leíró XML állomány szerkezete Kérdıív leíráshoz létrehoztunk egy elemhalmazt és szabályrendszert, amelyet a következıkben bemutatunk. E leíró szerkezet célja, hogy általánosan elterjedt válaszformákat használva könnyen írhassunk webes kérdıíveket. A kérdıív állomány szerkezeti részei kérdıív cím leírás 1. itemcsokor cím leírás 1.1. item
…
1.2. item 1.n. item
2. itemcsokor cím leírás 2.1. item
…
2.2. item
…
2.n. item
n. itemcsokor
zárósor
Amint látható, a kérdıíven szereplı itemekeket (kérdés-válasz elemeket) csoportokba, ún. itemcsokrokba kell rendezni. Csak 1 szintnyi mélységig csoportosíthatók az itemek. A csokrokat illetve a bennük lévı itemeket a rendszer sorszámmal látja el (az XML dokumentumban lévı helyük alapján)!
4 / 12
A kérdıívnek és az itemcsokroknak külön-külön egyedi cím és leírás adható. Az itemek a kérdés-válasz elemek. Hétféle item használható: item neve célja 1. beviteli szöveges válasz bekérése 2. jelölı több választási lehetıség megjelölése 3. választó több lehetıség közül 1 kiválasztása 4. jelölı + egyéb mint a jelölı, de az utolsó lehetıséget a kitöltı adja meg 5. választó + egyéb mint a választó, de az utolsó lehetıséget a kitöltı adja meg 6. fokozatos két szélsı érték közti állapot fokának megadása 7. szöveg terjedelmesebb szöveg megjelenítése tanulmányozásra Mindig kezdjük így… Ahhoz, hogy a rendszer segíteni tudjon a kérdıív állományunk szintaktikai helyességének ellenırzésében, mindig az alábbi két sorral kezdjük a leíróállományt:
Az elsı sor – mint ahogy azt a „Mi az XML?” c. fejezetben láttuk a fıként az állományban használt karakterkódolás megadására szolgál. (Az UTF-8 kódolással például biztos, hogy úgy tudunk magyar ı és ő betőket megadni, hogy azok annak is jelenjenek meg, és ne a „kalapos” változataikként. Persze ehhez olyan szövegszerkesztıvel kell az XML állományunkat szerkeszteni, amely támogatja az UTF-8 kódolást, mint például a Notepad++. Lásd lentebb…) A második sor a kérdıív leírónk szintaxisának érvényességének ellenırzéséhez kell. Ha ez a sor meg van adva, akkor a rendszer meg tudja mondani, hogy ha az állományunkban szintaktikai hiba van, akkor az mi és melyik sorban található. A kérdıív állományunk szerkesztését bármilyen szövegszerkesztıvel elvégezhetjük, amely képes egyszerő szövegként mentei a beleírt tartalmat. (Érdemes .xml kiterjesztést adni a mentett állománynak.) Tipp: a Notepad++ egy ingyenes forráskód-szerkesztı (és a hagyományos Jegyzettömb leváltására hivatott program) amely számos programozási nyelvet támogat a MS Windows környezetben. XML állományok szerkesztésére kiválóan alkalmas, már csak azért is, mert támogatja ezen állományok szintaxisának kiemelését és az UTF-8 karakterkódolást is. (Honlapja: http://notepad-plus.sourceforge.net )
5 / 12
Egy konkrét példa Az alábbi példa a kialakított szabályrendszerrel leírt, egyszerő kérdıívet mutat.
6 / 12
A kérdıív XML állomány tesztelése Ahhoz, hogy teszteljük, van-e a kérdıívünkben szintaktikai hiba, vagy, hogy hogyan jelenik majd meg a kérdıívünk, másoljuk át az XML tartalmat a szövegszerkesztıbıl a http://psycho.unideb.hu/kellekek/kivteszt.php oldalon kialakított ellenırzı felület szövegdobozába:
A Mutat gombra kattintva megkapjuk a kérdıívünk elınézeti képét:
7 / 12
8 / 12
Itemek Közös az itemek megadásában: − - és
elemnév párral adjuk meg, melynek lennie kell egy típus attribútumának; − a kérdést (vagy állítást) az item elembe ágyazott és elemnév pár közé írva kell megadnunk. (kötelezı), − ha akarunk, az itemekhez 1-1 képet helyezhetünk el, amely a kérdés(/állítás) alatt fog megjelenni. A kép elhelyezéshez az item elembe tegyünk egy és elemnév párt, amely közé írva adjuk meg a képállomány nevét kiterjesztéssel. (útvonal nélkül). Csak a következı formátumok valamelyikét használhatjuk: JPEG, GIF, PNG. // A tesztfelületen a képek helyett tájékoztatási céllal csak egy helykitöltı kép jelenik meg („Itt a kép helye!” felirattal). A kívánt képek csak azután fognak megjelenni, ha a kérdıívet véglegesen szerverre feltöltötte a kérdıív rendszer üzemeltetıje. − ha akarunk, az itemhez egy megjegyzést adhatunk, amely az item utolsó soraként jelenik meg megkülönböztetı színnel. Használhatjuk pl.: további instrukciók megjelenítésére. A megjegyzés a <megjegyzes> és elemnév pár közé írva adható meg. Amiben eltér a hétféle item megadása: 1. Beviteli item:
Az item elem típus attribútumának az értéke „beviteli” kell, hogy legyen. Választható további attribútumok a „hossz” – amellyel a megjelenı szövegdoboz szélességét adhatjuk meg karakterekben mérve, illetve a „maxhossz” amellyel a szövegdobozba írható karakterek számát korlátozhatjuk. Pl.:
2. Jelölı item:
Az item elem típus attribútumának az értéke „jelolo” kell, hogy legyen. A jelölhetı válaszokat az item elembe ágyazott és elemnév pár közé írva kell megadnunk. Az item elemnek lehet (vagyis nem kötelezı) egy oszlop attribútuma is, amellyel beállíthatjuk, hogy a válaszok sorfolytonos megjelenítése hány oszlopba osztódjon. Ez attribútum elmaradása esetén egy sorba kerülnek a válaszok. A válasz elemeknek lehet egy helyes attribútuma, mellyel a gépi javításhoz adhatjuk meg az elfogadható válasz(oka)t. A helyes attribútum, ha megvan adva, akkor értéke csak 0 vagy 1 lehet, attól függıen, hogy helyes, vagy helytelen a válasz. Ha egy válasznál nincs megadva ez az attribútum, akkor a gépi javításnál azt a választ helytelennek tekinti majd a rendszer. - Mi a kör kerületének és átmérıjének hányadosa 1 tizedes jegy pontossággal? 4*(8/9)^2 16/5 22/7 3,1415 10/3
9 / 12
3. Választó item:
Az item elem típus attribútumának az értéke „valaszto” kell, hogy legyen. A választható válaszokat az item elembe ágyazott és elemnév pár közé írva kell megadnunk. Az item elemnek lehet egy oszlop attribútuma, melynek szerepét és megadási módját lásd a jelölı item leírásánál. A válasz elemeknek lehet egy helyes attribútuma, melynek szerepét és megadási módját lásd a jelölı item leírásánál.
4. „Jelölı + egyéb” item:
Erre az itemtípusra igaz, amit a jelölı itemnél olvashattunk, 2 eltéréssel: 1) Az item elem típus attribútumának az értéke „jeloloegyeb” kell, hogy legyen. 2) A válaszok után meg kell adnunk az utolsó lehetıségnek biztosítandó beviteli mezı elıtti feliratot az <egyeb> és elemnév pár közé írva. 5. „Választó + egyéb” item:
Erre az itemtípusra igaz, amit a választó itemnél olvashattunk, 2 eltéréssel: 1) Az item elem típus attribútumának az értéke „valsztoegyeb” kell, hogy legyen. 2) A válaszok után meg kell adnunk az utolsó lehetıségnek biztosítandó beviteli mezı elıtti feliratot az <egyeb> és elemnév pár közé írva. 6. Fokozatos item:
Az item elem típus attribútumának az értéke „fokozatos” kell, hogy legyen. A fokozatok számát az item elembe ágyazott és elemnév pár közé írt pozitív egész számmal kell megadnunk. A fokozatsor bal oldalára írandó szöveget az item elembe ágyazott és elemnév pár közé írva kell megadnunk. A fokozatsor jobb oldalára írandó szöveget pedig az item elembe ágyazott és elemnév pár között.
Megjelenítéskor a fokozatokat karikák jelzi. Ha azt szeretnék, hogy a karikák alatt számozás is megjelenjen (1-tıl a fokok számáig), akkor a fokok elem szamozas attribútumát 1-re kell állítanunk. Pl.: 5 A szamozas attribútum nem kötelezı (alapértéke 0), de ha megadtuk, akkor értéke csak 0 vagy 1 lehet. 10 / 12
7. Szöveg item:
Az item elem típus attribútumának az értéke „szoveg” kell, hogy legyen. A terjedelmes szöveget az item elembe ágyazott <szoveg> és elemnév pár közé írt szöveggel kell megadnunk. Figyeljünk arra, hogy a >, <, &, ”, ’ karakterek helyett a megfelelı XML entitásokat használjuk! Kizárólag ennél az item típusnál lehetıségünk van a sortörés jelölésére is a &br; helyi entitás segítségével. Itemek korlátai 1. 2. 3. 4.
item neve beviteli jelölı választó jelölı + egyéb
5.
választó + egyéb
6.
fokozatos
korlátozás a „maxhossz” értéke legfeljebb 255 lehet legfeljebb 88 válasz adható meg legfeljebb 88 válasz adható meg legfeljebb 88 válasz adható meg (az egyébbel együtt), a „egyéb” mezıbe írt szöveg legfeljebb 50 karakter hosszú lehet legfeljebb 88 válasz adható meg (az egyébbel együtt) a „egyéb” mezıbe írt szöveg legfeljebb 50 karakter hosszú lehet a „fokok” száma legalább 3, legfeljebb 21 lehet
Egyéb tudnivalók 1. Sortörés használata
A leiras, zarosor, szoveg elemekben, és csakis ezekben, lehetıségünk van sortörést jelölni a &br; helyi (azaz csak a kérdıív típusú XML állományokban értelmezett) entitás segítségével. Ha nem használjuk ezt az entitást, akkor a mondatok sortörés nélkül (az XML állományba írt esetleges „enterek” ellenére) sorfolytonosan jelennek meg. Például: Attitődök Tisztelt Hallgató!&br;&br; Az egyetemi diákság életét részben szervezı hallgatói önkormányzatról, a képzés minıségérıl, a jövıvel kapcsolatos elképzelésekrıl kialakult hallgatói vélemények megismerése több szempontból is hasznos lehet. Ahhoz, hogy a véleményeket megismerjük, néhány kérdést fogalmaztunk meg. Nincsenek hibás vagy jó válaszok, kizárólag a saját véleményedet fejezd ki válaszaiddal.&br; Természetesen a válaszadás nem kötelezı és névtelen. A felmérésbıl származó adatokat a Pszichológiai Intézet hallgatói fogják szakmai munkájukhoz felhasználni. … …
Amely így jelenik majd meg:
11 / 12
2. Zárszó megadása
A kérdıív végén lehetıségünk van egy záró mondatot elhelyezni a legutolsó csokor elem után egy és elemnév pár közé írt szöveggel. Példaként lásd fentebb az „Egy konkrét példa” c. fejezet pédáját. 3. Megjegyzés megadása
Az „Itemek” c. fejezetben láttuk, hogy bármelyik típusú itmehez megadhatunk egy megjegyzést. A megjegyzéssel például az itemhez kapcsolódó részletesebb instrukciókat adhatunk. Például: … … - Ön sportol-e? igen nem <megjegyzes>Amennyiben nem sportol, akkor 'sport' témakör további (alábbi) kérdéseire nem kell válaszolnia. (Folytathatja a kitöltést a 'kockázatvállalás' témakörnél.)
… …
Amely körülbelül* így jelenik majd meg:
*: nyilván a item sorszáma attól függ, hol helyezkedik el a leíró állományban.
12 / 12