2 Web-lomakkeet. 2 Web-lomakkeet

Samankaltaiset tiedostot
2 Web-lomakkeet. 2 Web-lomakkeet

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

ICT1TN004. Lomakkeet. Heikki Hietala

Digitaalisen median tekniikat xhtml - jatkuu

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

Digitaalisen median tekniikat xhtml - jatkuu

10 Nykyaikainen WWW-arkkitehtuuri

10 Lomakkeet Kontrollit. 10 Lomakkeet

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

3 Verkkosaavutettavuuden tekniset perusteet

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

3 Verkkopalveluarkkitehtuuri

Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin

Palvelinpuolen ohjelmointi

Järjestelmäarkkitehtuuri (TK081702)

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

9 Edistynyt PHP-ohjelmointi

8 Hypermedian suunnitteleminen

XML johdanto, uusimmat standardit ja kehitys

3 Verkkopalveluarkkitehtuuri

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Palvelun rekisteröinti Virtu - luottamusverkostoon / testipalveluun

Luento 10: XML WWW:ssä

Johdatus rakenteisiin dokumentteihin

5 Verkkopalvelun sisällön hallinta

Mitä direktiivi käytännössä velvoittaa?

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Johdatusta selainohjelmointiin

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

Käyttöohje. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot

Maksuturva-palvelun rajapintakuvaus verkkokaupalle / MAKSUN PERUUTUS

ELM GROUP 04. Teemu Laakso Henrik Talarmo

TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G

W3C & verkkojulkaisun standardit

Suomen virtuaaliammattikorkeakoulu The XML Dokuments > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Taustaa. CGI-ohjelmointi

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Kurssin hallinta -työväline

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

HSMT Web-sovellustekniikoista

ARVO - verkkomateriaalien arviointiin

ARVO - verkkomateriaalien arviointiin

Action Request System

KYMP Webmail -palvelu

Manager. Doro Experience. ja Doro PhoneEasy 740. Suomi

Digitaalisen median tekniikat. Luento 4: JavaScript

Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Kotopro käyttäjän ohje


Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

3 Verkkopalveluarkkitehtuuri

ARVI-järjestelmän ohje arvioinnin syöttäjälle

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Google-dokumentit. Opetusteknologiakeskus Mediamylly

5 Sisällönhallinta- ja julkaisujärjestelmät

Suomen virtuaaliammattikorkeakoulu XML_mark_up_language > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Digitaalisen median tekniikat Luento 1: Intro

SmartShip Connect Lite lisäosa WooCommerce alustalle (c) Webbisivut.org

Opettajan pikaopas Opintojaksopalaute-järjestelmään

Tekninen suunnitelma - StatbeatMOBILE

Microsoft Visual Studio 2005

Käyttöohje. Visy Access Net UPM

Luo mediaopas Tarinatallentimella

Sonyn suomenkielisen Web-portaalin käyttöohjeet

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

CLOUDBACKUP TSM varmistusohjelmiston asennus

JulkICT portaalin käyttöohje

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

opiskelijan ohje - kirjautuminen

Ristijärven metsästysseura tysseura osti lisenssin jahtipaikat.fi verkkopalveluun, jotta seuran

Comtieto Uutiskirje on helppokäyttöinen ja tehokas ratkaisu markkinointiin ja

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Visma Nova Webservice Versio 1.1 /

Suuli api dokumentaatio

Sivuston tiedotmysiteworthcheck.com

Lomakkeiden suunnittelu. Aiheina

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Prosessien mallintaminen

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

6 Mukautuvat verkkopalvelut

Suomen virtuaaliammattikorkeakoulu Teknillinen mekanikka fem tutorials > 80 % % % < 50 % Suhteellinen osuus maksimiarvosta (%)

Toimittajaportaalin pikaohje

Tiedonsiirto- ja rajapintastandardit

Transkriptio:

2 Web-lomakkeet Web-lomakeet ovat verkkopalvelun tekninen perusta; käyttäjän syötteen välittäminen tapahtuu käytännössä aina lomakkeiden avulla Esimerkkejä lomakkeiden käytöstä: yksinkertaiset toiminnot: palautelomake, vieraskirja sovellukset: verkkokauppa (tuotteiden valinta, tilaajan tiedot, sisäänkirjautuminen, maksaminen,...) tai organisaation portaali Ainoa nykyselainten tukema keino lomakkeiden toteuttamiseen on HTML-kieli Lomakkeiden käsittelijöitä voidaan toteuttaa useilla eri ohjelmointikielillä CGI-rajapinta: Perl, Python, C++,... dokumentteihin upotettavat kielet: PHP, ASP, JSP,... sovelluspalvelimet: J2EE, EJB, Oracle, Plone,... Tulevaisuuden keino Web-lomakkeiden toteuttamiseen on XForms Tutustutaan nyt HTML-kielen lomakkeisiin sekä XForms-määrityksen perusteisiin MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 21

HTML-lomakkeet XHTML-moduulit jakaa HTML-lomakkeet kahteen moduuliin: Basic Forms Module: form, input, label, select, option, textarea Form module: form, input, select, option, textarea, button, fieldset, label, legend, optgroup Basic Forms Module on HTML-lomakkeiden pienin yhteinen tekijä, joka sisältyy esimerkiksi HTML-kielen yksinkertaisimpaan versioon, XHTML Basic -kieleen. Yksinkertainen lomake: <form action="rekisteroi.php" method="post"> <p><label for="id-name">nimi:</label> <input name="name" id="id-name" type="text"/> <input type="submit" value="lähetä"/> </p> </form> Huomioita: lomakkeen juurielementti, lomakkeen käsittelijän määritteleminen, välitystavan valinta, lomakkeen komponenttien määritteleminen ja nimeäminen, komponenttien nimilaput,... MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 22

Lomakkeiden perusteet Käydään lyhyesti läpi keskeiset HTML-lomakkeiden määrittelemiseen liittyvät elementit ja attribuutit. Täydelliset tiedot löytyvät esimerkiksi HTML 4.01 -suosituksesta. Lomakkeen juurielementti: form-elementti lomakkeen käsittelijä: action-attribuutti tietojen välitystapa: method-attribuutti (post get) Lomakekomponenttien yleiset attribuutit: nimi (käytetään arvon avaimena käsittelijässä): name-attribuutti arvo: value-attribuutti komponentti ei ole käytössä: disabled="disabled" lisäksi kaikille HTML-elementeille yhteiset id, class, title, style,... Suuri osa lomakkeen komponenteista toteutetaan input-elementin avulla: komponentin tyyppi: type-attribuutti (text password checkbox radio submit reset file hidden image button) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 23

Esimerkkejä input-elementin käytöstä: Tekstikenttä: <input name="name" id="id-name" type="text"/> Valintaruuduilla (checkbox) voidaan valita useita vaihtoehtoja: <p>kiinnostavat tyylilajit: <input type="checkbox" name="genre" value="pop"/> Pop <input type="checkbox" name="genre" value="rock"/> Rock <input type="checkbox" name="genre" value="surf"/> Surf </p> Valintapainikkeilla (radiobutton) voidaan valita ainoastaan yksi vaihtoehto: <p>arvostelu: <input type="radio" name="rating" value="excellent"/> Loistava! <input type="radio" name="rating" value="poor"/> Oikein huono </p> Tiedoston lähettäminen: <p>valitse tiedosto: <input type="file"/></p> Tiedoston lähettäminen: form-elementtiin lisättävä attribuutti enctype="multipart/form-data". MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 24

Lisää lomakekomponentteja Valikosta voidaan valita oletuksena yksi vaihtoehto: <select name="rating" id="id-rating"> <option value="excellent">erinomainen</option> <option value="poor">huono</option> </select> Valikko voidaan toteuttaa myös siten, että siitä voidaan valita useita vaihtoehtoja. Komponentin käyttäminen on kuitenkin niin hankalaa, että se kannattaa korvata valintaruuduilla. <select name="genre" multiple="multiple"> <option value="pop">pop</option> <option value="rock">rock</option> <option value="surf">surf</option> </select> Tekstialueeseen voidaan syöttää useita rivejä tekstiä: <p><textarea name="comment">kommenttisi levystä</textarea></p> Lisäksi: accesskey-attribuutti, tabindex-attribuutti, button-elementti MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 25

Lomakekomponenttien valinta HTML-kielen komponentit voidaan jakaa kahteen luokkaan: Vapaa syöte: tekstikenttä, tekstialue, salasana,... Luetellut vaihtoehdot: valintaruutu, valintapainike, valikko Tärkein tekijä komponentin valinnassa on syötteen käyttötarkoitus: luetellut vaihtoehdot: syötettä tullaan käyttämään ehtolauseen ehtona tai ohjelmallisessa päättelyssä vapaa syöte: vaihtoehtojen luetteleminen on mahdotonta, syöte esitetään tekstinä sovelluksen käyttöliittymässä Komponentin valinta voi vaikuttaa itsestään selvältä asialta. Kuitenkin esimerkiksi tiedonhaun apuvälineiden toteuttaminen riippuu syötteestä. Ongelmia aiheuttavat: kirjoitusvirheet, sanojen taivutus, vaihtoehtoiset esitystavat,..., avainsanojen valinta Luetellut vaihtoehdot mahdollistavat syötteen kieliversioinnin, assosiatiivisten linkkien muodostamisen tai esimerkiksi hakuehtojen listaamisen käyttäjälle. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 26

Lomakkeen käytettävyys ja saavutettavuus Lomakkeen komponenttien nimilaput ja ryhmittely parantavat lomakkeen käytettävyyttä ja saavutettavuutta sekä graafisissa selaimissa että ääniselaimissa. HTML-lomakkeissa ryhmittely tehdään fieldset-elementillä. Ryhmät otsikoidaan legend-elementillä. Komponenttien nimilaput määritellään label-elementillä. <form action="add-record.php"> <fieldset><legend>levyn tiedot</legend> <label for="id-recordname">nimi:</label> <input name="recordname" id="id-recordname" type="text"/> <label for="id-artist">esittäjä:</label> <input name="artist" id="id-artist" type="text"/> </fieldset> <fieldset><legend>arvostelu</legend> <label for="id-rating">arvostelu:</label> <!-- lomakekomponentti arvostelutiedoille --> </fieldset> </form> Selain esittää fieldset-elementin tyypillisesti rajaamalla komponentit reunaviivalla. Komponentin valinta onnistuu graafisessa selaimessa label-elementtiä näpäyttämällä. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 27

Lomakkeen taitto ja ulkoasu HTML-kielen puutteellisten taitto-ominaisuuksien takia lomakkeen toteuttaminen tehdään usein table-elementin avulla: <fieldset> <legend>lähiosoite</legend> <p> <label for="id-streetname">katuosoite</label> <br /> <input name="streetname" type="text"/> </p> <table> <tr><td>postinumero</td><td>postitoimipaikka</td></tr> <tr><td><input name="postcode" type="text"/></td> <td><input name="postoffice" type="text"/></td> </tr> </table> </fieldset> On tärkeää huomata, että taulukon käyttäminen lomakkeen taittamiseen heikentää lomakkeen saavutettavuutta ja laiteriippumattomuutta. Toisaalta komponenttien harkittu asettelu edistää lomakkeen käytettävyyttä. Suunnitteluratkaisujen tekeminen edellyttää sovelluksen kohderyhmän kartoittamista! MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 28

Data- ja dokumenttikeskeinen tieto lomakkeissa Verkkopalvelun sisältö voidaan jakaa datakeskeiseen ja dokumenttikeskeiseen tietoon: Datakeskeinen tieto on jäsennettävissä pieniin palasiin, jotka voidaan tallentaa esimerkiksi relaatiotietokantaan. Esimerkkejä: levyn kappaletiedot, reseptin valmistusaineet tai henkilötiedot Dokumenttikeskeinen tieto muodostuu tiettyä asiaa muodostavista (hypertekstimuotoisista) kokonaisuuksista. Esimerkkejä: kirja, raportti, käyttöohje, levyn kansilehti. HTML-lomakkeet soveltuvat hyvin datakeskeisen tiedon syöttämiseen, esimerkkejä: Henkilötiedot: tekstikentät etu- ja sukunimelle, alasvetovalikko sukupuolelle,... Päivämäärän valinta: kolme alasvetovalikkoa tai tekstikenttä tehokäyttäjälle Mieluisimmat musiikkityylilajit: valintaruutuja Dokumenttikeskeinen tieto on syötettävä käytännössä aina tekstialueeseen. Ongelmaksi muodostuu kuitenkin tiedon sisäisen rakenteen kuvaaminen. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 29

Dokumenttikeskeisen tiedon syöttäminen Dokumenttikeskeistä tietoa voidaan syöttää verkkopalveluun kahden eri periaatteen mukaisesti: Suora HTML-merkkaus. HTML-merkkauksen kirjoittajan tueksi on toteutettu erilaisia Web-selaimessa toimivia WYSIWYG-editoreita. HTML-merkkauksen käytön ongelmia ovat mm. esitietovaatimukset, tiedon rämettyminen ja syötteen tietoturvan varmistaminen. Kevytrakenteinen merkkauskieli. Tietosisältö syötetään tekstialueeseen tekstinä, jonka sekaan lisätään yksinkertaista merkkausta, esim. _korostus_, *vahva korostus* ja Linkkiteksti :http:esimerkki.com. Kevytrakenteisen merkkauskielen soveltaminen on ehdottomasti harkitsemisen arvoinen vaihtoehto etenkin silloin kun suuri osa sovellukseen syötettävästä tiedosta on dokumenttimuotoista. Asiaan palataan sisällönhallintajärjestelmien yhteydessä. Textile (http://textism.com/tools/textile/) on esimerkki yleisesti käytetystä kevytrakenteisesta merkkauskielestä. Myös Wikeihin syötetään yleisesti tietoa kevytrakenteisilla merkkauskielillä. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 30

Ketterämpiä Web-lomakkeita? Web-soveltajat ovat viimeisen parin vuoden ajan kohisseet Ajax (Asyncronous JavaScript and XML) teknologiasta, joka monen mielestä mullistaa Weblomakkeiden (ja siten Web-sovellusten) toimintaperiaatteeen. Ajax-teknologia yhdistää seuraavat olemassa olevat Web-tekniikat: HTML-kieli ja CSS-tyylit: tiedon esittäminen selaimessa, Document Object Model (DOM): näkymän muokkaaminen dynaamisesti selaimessa, XML-kieli ja XMLHttpRequest-rajapinta: tiedon välittäminen selaimen ja palvelimen välillä, JavaScript (tai ECMAScript): toimintalogiikan toteuttaminen selaimeen. Lähde: Garrett, J. J. Ajax: A New Approach to Web Applications, 2005. Ajax-soveltajan on syytä olla tarkkana sovelluksen erityisesti saavutettavuuden, laiteriippumattomuuden ja käytettävyyden suhteen: Osa selaimista ei (vielä?) tue Ajax-teknologiapatteria kokonaisuudessan. Ajax-sovellukset käyttävät HTMLkomponentteja usein eri tavalla kuin mihin keskimääräinen Web-käyttäjä on tottunut. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 31

Verkkopalvelu ja toimintojen luonne Nykyaikainen WWW-arkkitehtuuri (http://www.w3.org/tr/webarch/) jakaa verkkopalveluiden toiminnot kahteen luokkaan; turvallisiin ja ei-turvallisiin: Turvallinen toiminto (safe intercation): toiminto vastaa luonteeltaan kyselyä/hakua toiminnon suorittaminen ei muuta sovelluksen tilaa Ei-turvallinen toiminto (unsafe interaction): toiminto vastaa luonteeltaan tilausta toiminnon suorittamisen seurauksena sovelluksen tila muuttuu: käyttäjän lisätään sähköpostilistalle tai rekisteröidään palveluun, toiminnon seurauksena syntyy maksutapahtuma,... Huom: ei-turvallinen tarkoittaa tässä eri asiaa kuin vaarallinen (dangerous) Toiminnon luonne pitäisi näkyä käyttöliittymässä tavalla tai toisella: ei-turvallisten toimintojen suorittamiseen voidaan esimerkiksi rakentaa selkeästi erottuva käyttöliittymä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 32

Toiminnon luonne & välitystavan valinta Selain välittää käyttäjän syötteen palvelimelle HTTP-protokollan avulla. HTTP sisältää kaksi vaihtoehtoista tapaa syötteen välittämiseen: get- ja post-metodit. get-metodi: turvalliset toiminnot: haku/kysely, sovelluksen tila ei muutu kaikki pyyntöön liittyvät tiedot koodataan mukaan URI-tunnisteeseen post-metodi: ei-turvalliset toiminnot: tilaus, sovelluksen tila muuttuu pyyntöön liittyvät tiedot koodataan HTTP-pyynnön otsikkotietoihin käyttäminen perusteltua myös arkaluontoisia tietoja (esim. salasana, yhteystiedot tai luottokortin numero) välitettäessä Välitystavoilla on myös selaimen toiminnan perusteella havaittavia eroja: getpyynnössä parametrit näkyvät selaimen osoitekentässä. post-pyynnön perusteella tuotetun näkymän päivittäminen aiheuttaa lomakkeen tietojen lähettämisen uudestaan palvelimelle (sovelluksen varauduttava tähän). MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 33

Pysyvät URI-tunnisteet Nykyaikaisen Web-arkkitehtuurin mukaan käyttäjän luottamus sovelluksen toimintoihin perustuu kahteen keskeiseen tekijään: URI-tunnisteiden pysyvyyteen (stability) ja ennustettavuuteen (predictability) Sovelluksen tulisi tarjota resurssia edustava representaatio URI-tunnisteen perusteella ajanhetkestä riippumatta Resurssin URI-tunnisteen tulisi pysyä muuttumattomana: Viileät URI:t eivät muutu Resurssin URI-tunnisteen tulisi olla sama jakelukontekstista (käyttäjä, käyttötilanne ja päätelaite) riippumatta: representaatio räätälöidään jakelukontekstiin sopivaksi HTTP-protokollan get-metodi mahdollistaa pysyvien URI-tunnusten toteuttamisen: kirjanmerkit, linkit ja välimuistin toiminta. Esimerkki: pysäkin numero 3525 aikataulu talvikaudella 2006: http://www.tampere.fi/cgi-bin/tkl/client2.pl?numero=3525&kausi=talvi_2006 MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 34

Muista myös nämä! Web-sovelluksen käyttäjä on usein pulassa Web-lomakkeiden kanssa. Keinoja käyttäjän tukemiseen: Ohjeet ja opasteet: Mitä kenttään on syötettävä? Syötteen pakollisuus? Oletusten ja rajoitusten esittäminen (esimerkiksi syötteen sallittu muoto ja mitta) Virheilmoitukset ja korjausehdotukset: Selkeä ilmoitus virheellisestä syötteestä korjausehdotuksineen. Mahdollisesti syötteen dynaaminen tarkastaminen käyttäjän kirjoittaessa syötettä (Ajax). Viestit onnistuneista toiminnoista: Selkeä ilmoitus myös onnistuneista toiminnoista ( Levyn Nieminen & Litmanen tiedot lisätty ). Syötteen kierrättäminen: Kerran syötetyn tiedon käyttäminen oletusarvona tulevissa lomakkeissa jne. Vaiheittain täytettävä lomake: Suuremman lomakkeen jakaminen selkeisiin kokonaisuuksiin, joiden välillä käyttäjä voi navigoida lomaketta täyttäen. Tukee erityisesti aloittelevia käyttäjiä. Käyttäjän tukeminen on otettava huomioon jo sovellusarkkitehtuurin suunnittelussa. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 35

Lomakkeiden tulevaisuus: Xforms XForms on W3C:n määrittelemä menetelmä laiteriippumattomien Weblomakkeiden toteuttamiseen XForms mahdollistaa lomakkeiden toteuttamisen siten, että lomakkeen täyttäminen onnistuu esimerkiksi työasemalla, kämmenlaitteella tai vaikkapa paperilla XForms 1.0 hyväksyttiin W3C-suositukseksi lokakuussa 2003 XForms 1.0 Basic Profile on XHTML Basic -kielen tapainen minimijoukko tulevaisuuden lomakkeiden pienin yhteinen tekijä XHTML 2.0 tulee käyttämään XForms-lomakkeita XForms 1.1 on parhaillaan kehitteillä Tutustutaan seuraavaksi XForms-määrityksen perusteisiin. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 36

XForms: suunnittelutavoitteita XForms-määrityksen suunnitelutyön pohjaksi määriteltiin joukko tavoitteita: tuki erilaisille päätelaitteille (HTML-kieltä) monipuolisemmat käyttöliittymäkomponentit tietosisällön, toiminnallisuuden ja esitystavan erottaminen (vrt. Malli-Näkymä- Ohjain -filosofia ohjelmistosuunnittelussa) tuki kansainvälistämiselle (i18n) mahdollisuus usean lomakkeen sijoittamiseen yhteen näkymään ja yhden lomakkeen jakamiseen useampaan näkymään lomakkeen täytön väliaikainen keskeyttäminen (suspend) ja täytön jatkaminen (resume) XML-yhteensopivuus Suunnittelutavoitteista on syytä ottaa oppia omien lomakesovellusten suunnittelussa ja toteuttamisessa vaikka XForms MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 37

XForms: esitystapa, toiminnallisuus ja tietosisältö XForms erottaa toisistaan lomakkeen toiminnallisuuden, esitystavan, ja tietosisällön: Toiminnallisuus: Lomakkeen toiminnallisuudesta tehdään yksi laiteriippumaton XML-kuvaus, joka voidaan liittää useampaan lomakkeen käyttöliittymään. Esitystapa: Lomakkeen käyttöliittymä voidaan toteuttaa esimerkiksi XHTML- tai WML-kielellä. XForms määrittelee myös joukon omia lomakekomponentteja, joiden tavoitteena on lopulta korvata XHTML-kielen määrittelemät lomakekomponentit. Tietosisältö: XForms määrittelee lisäksi kielen lomakkeeseen syötettyjen tietojen esittämiseen (XML Instance Data). XForms määrittelee myös protokollan tietosisällön välittämiseen XForms-lomakkeiden ja XForms-prosessorin välillä. XForms voidaan ottaa käyttöön vaikka heti. Selaimet eivät määritystä (vielä?) oletuksena tue, mutta käyttö on mahdollista esimerkiksi selainlaajennoksen avulla. Toinen vaihtoehto on se, että XForms-muotoinen lomakkeen kuvauksen perusteella tuotetaan palvelimella erilaisiin jakelukonteksteihin sopivat versiot (representaatio) lomakkeesta. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 38

XForms 1.0 -komponentit input secret tekstikenttä syöttäminen siten, että syöttämistä seuraava ei saa tietoa selville, esim. salasana textarea monirivinen tekstialue upload tiedoston lähettäminen sovellukselle, myös esimerkiksi mikrofoni tai digitaalikamera range valinta asteikosta, esim. päivämäärä väliltä 1.1.2007-31.12.2007 select yhden tai useamman vaihtoehdon valinta lueteltujen vaihtoehtojen joukosta select1 täsmälleen yhden vaihtoehdon valinta lueteltujen vaihtoehtojen joukosta output lomakkeen tietosisällön esittäminen käyttöliittymässä (täyttöön palaaminen, monisivuinen lomake) trigger käyttäjän käynnistämä toiminto submit lomakkeen tietojen lähettäminen osittain tai kokonaan Sanasto sisältää lisäksi elementit ohjeiden (help), vihjeiden (hint), virheilmoitusten (alert) ja nimilappujen (label) liittämiseen komponentteihin. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 39

Lopuksi Verkkopalvelun toteuttaminen edellyttää aina lomakkeiden käyttämistä Tällä hetkellä käytännössä ainoa keino lomakkeiden toteuttamiseen on HTML-kieli XForms on tulevaisuuden keino lomakkeiden määrittelemiseen XFormsin idea lomakkeen tietosisällön, toiminnallisuuden ja esitystavan erottamisesta on sovellettavissa omien lomaketoteutusten suunnittelemisessa ja toteuttamisessa, esimerkkinä ohjattu lomakkeen täyttäminen tai laiteriippumattomien lomakkeiden toteuttaminen. Toimintatapa on yleistettävissä koko sovelluksen toteutukseen. Lomakkeet ovat selkeästi HTML-kielen haastavin osa-alue etenkin kun toteutuksessa otetaan huomioon myös lomakkeen ulkoasu, käytettävyys ja saavutettavuus. Yhden kaikille soveltuvan ratkaisun sijaan voidaan toteuttaa joukko eri jakelukonteksteihin sopivia vaihtoehtoja => monikanavajulkaiseminen. Yksinkertainen monikanavajulkaiseminen voidaan toteuttaa CSS-tyylien avulla. Ajax-teknologia mahdollistaa nykyistä monipuolisempien lomakkeiden toteuttamisen, mutta haastaa sekä toteuttajan taidot että sovelluksen saavutettavuuden. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 40