2 Web-lomakkeet. 2 Web-lomakkeet

Samankaltaiset tiedostot
2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

2 Web-lomakkeet. 2 Web-lomakkeet

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

ICT1TN004. Lomakkeet. Heikki Hietala

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

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Digitaalisen median tekniikat xhtml - jatkuu

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

10 Nykyaikainen WWW-arkkitehtuuri

10 Lomakkeet Kontrollit. 10 Lomakkeet

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

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

3 Verkkopalveluarkkitehtuuri

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

Palvelinpuolen ohjelmointi

3 Verkkosaavutettavuuden tekniset perusteet

Luento 10: XML WWW:ssä

Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin

XML johdanto, uusimmat standardit ja kehitys

Taustaa. CGI-ohjelmointi

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

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

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

Johdatusta selainohjelmointiin

9 Edistynyt PHP-ohjelmointi

HSMT Web-sovellustekniikoista

TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G

Järjestelmäarkkitehtuuri (TK081702)

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

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

3 Verkkopalveluarkkitehtuuri

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

Johdatus rakenteisiin dokumentteihin

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

Sivuston tiedotmysiteworthcheck.com

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Action Request System

Palvelun rekisteröinti Virtu - luottamusverkostoon / testipalveluun

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

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

Flash ActionScript osa 4

Maksuturva-palvelun rajapintakuvaus verkkokaupalle / MAKSUN PERUUTUS

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

8 Hypermedian suunnitteleminen

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

CLOUDBACKUP TSM varmistusohjelmiston asennus

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

Manager. Doro Experience. ja Doro PhoneEasy 740. Suomi

Aulikki Hyrskykari Antti Sand

ARVO - verkkomateriaalien arviointiin

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

Hirviö. Design Patterns

Microsoft Visual Studio 2005

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Informaatiotekniikan kehitysyksikkö

opiskelijan ohje - kirjautuminen

Tiedonsiirto- ja rajapintastandardit

WWW ja servletit. Luku Johdanto

6 Mukautuvat verkkopalvelut

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

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

Saavutettavuus > Tapio Haanperä Saavutettavuusasiantuntija tel

commerce_paytrail_fi Paytrail maksumoduuli Drupal Commerce - verkkokauppaan

Selaimessa, jossa on PDF-blugin Acrobat Readerissä Adobe Acrobat Standard tai Professional -ohjelmissa

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

Sisällysluettelo. s.1(14) CRA Computer & Robot applications Oy. v.1.2 ESITTELY TOIMINNALLISUUS... CRA-TV HALLINTA-OHJELMA...

Avoin metsätieto - Rajapintapalvelut

Testidatan generointi

Datahub 0.1 Julkaisutiedot

ez Publish ja Toolbar yleisohjeet

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

Sivuston tiedotsiteoptimer.com

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Kurssin hallinta -työväline

Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit

Visma Nova Webservice Versio 1.1 /

Tilastokeskuksen rajapintapalveluiden käyttöönotto ArcGISohjelmistossa

Ulkoasun muokkaus CSS-tiedostossa

TermBase NET versio (Beta)

Omat Lähdöt ohjelmointirajapinta: Versio 1.01

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

JAKELUPISTE KÄYTTÖOHJE 2/6

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

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

KYMP Webmail -palvelu

Digitaalisen median tekniikat css tyylimääritykset

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

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

Sonyn suomenkielisen Web-portaalin käyttöohjeet

JulkICT portaalin käyttöohje

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

3 Verkkopalveluarkkitehtuuri

SQL Buddy JAMK Labranet Wiki

C# Windows ohjelmointi perusopas

Luo mediaopas Tarinatallentimella

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 Tulevaisuuden keino Web-lomakkeiden toteuttamiseen: XForms Tutustutaan nyt HTML-kielen lomakkeisiin sekä XForms-määrityksen perusteisiin 7307010 Hypermedian ohjelmointi (kevät 2005) 20

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,... 7307010 Hypermedian ohjelmointi (kevät 2005) 21

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) Komponenttien 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) 7307010 Hypermedian ohjelmointi (kevät 2005) 22

Esimerkkejä input-elementin käytöstä: Tekstikenttä: <input name="name" id="id-name" type="text"/> Valintaruuduilla (checkbox) voidaan valita monta vaihtoehtoa: <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". 7307010 Hypermedian ohjelmointi (kevät 2005) 23

Lisää lomakekomponentteja Valikon avulla 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 hankalaa, joten se kannattaa mahdollisuuksien mukaan 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 7307010 Hypermedian ohjelmointi (kevät 2005) 24

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 kieliversioinnin, assosiatiivisten linkkien muodostamisen tai esimerkiksi hakuehtojen listaamisen. 7307010 Hypermedian ohjelmointi (kevät 2005) 25

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> <select name="rating" id="id-rating"> <option value="excellent">erinomainen</option> <option value="poor">huono</option> </select> </fieldset> </form> Selain esittää fieldset-elementin tyypillisesti rajaamalla komponentit reunaviivalla. Komponentin valinta onnistuu graafisessa selaimessa label-elementtiä näpäyttämällä. 7307010 Hypermedian ohjelmointi (kevät 2005) 26

Lomakkeen taitto ja ulkoasu HTML-kielen puutteellisten taitto-ominaisuuksien johdosta 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 taittoon heikentää lomakkeen saavutettavuutta ja laiteriippumattomuutta. Toisaalta komponenttien harkittu asettelu edistää lomakkeen käytettävyyttä. Suunnitteluratkaisujen tekeminen edellyttää sovelluksen kohderyhmän kartoittamista! 7307010 Hypermedian ohjelmointi (kevät 2005) 27

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ä 7307010 Hypermedian ohjelmointi (kevät 2005) 28

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). 7307010 Hypermedian ohjelmointi (kevät 2005) 29

Pysyvät URI-tunnisteet Luottamus sovelluksen toimintoihin perustuu kahteen keskeiseen tekijään: URItunnisteiden 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 julkaisukontekstista (käyttäjä, käyttötilanne ja päätelaite) riippumatta: representaatio räätälöidään julkaisukontekstiin sopivaksi HTTP-protokollan get-metodi mahdollistaa pysyvien URI-tunnusten toteuttamisen: kirjanmerkit, linkit ja välimuistin toiminta. Esimerkki: pysäkin numero 20 aikataulu talvikaudella 2005: http://www.tampere.fi/cgi-bin/tkl/client2.pl?numero=3525&kausi=talvi_2005 7307010 Hypermedian ohjelmointi (kevät 2005) 30

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 käyttää XForms-lomakkeita XForms 2.0 on parhaillaan kehitteillä Tutustutaan seuraavaksi XForms-määrityksen ideaan. 7307010 Hypermedian ohjelmointi (kevät 2005) 31

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. MVC-malli 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 voi takuulla ottaa oppia omien lomakesovellusten suunnitteluun ja toteuttamiseen! 7307010 Hypermedian ohjelmointi (kevät 2005) 32

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 kielen lomakkeeseen syötettyjen tietojen esittämiseen (XML Instance Data). Tietosisältö mahdollistaa esimerkiksi tietojen automaattisen kokonaan tai osittain. Lisäksi XForms määrittelee protokollan tietosisällön välittämiseen XFormslomakkeiden 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 julkaisukonteksteihin sopivat vaihtoehdot lomakkeesta. 7307010 Hypermedian ohjelmointi (kevät 2005) 33

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.2005-31.12.2005 select useamman vaihtoehdon valinta lueteltujen vaihtoehtojen joukosta select1 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 Myös elementit ohjeiden (help), vihjeiden (hint), virheilmoitusten (alert) ja nimilappujen (label) liittämiseen komponentteihin. 7307010 Hypermedian ohjelmointi (kevät 2005) 34

Käyttöesimerkki: XForms ja velho XForms mahdollistaa lomakkeen toteuttamisen ohjatun täyttämisen periaatteen mukaisesti => velho (wizard). Lomakkeen käyttöliittymä toteutetaan switch- ja caseelementtien avulla: <xforms:switch> <xforms:case id="personaldetails" selected="true"> <xforms:input ref="name"> <xforms:label>nimi</xforms:label> </xforms:input> <xforms:trigger><xforms:label>osoitetiedot</xforms:label> <xforms:toggle ev:event="domactivate" case="address"/> </xforms:trigger> </xforms:case> <xforms:case id="address" selected="false"> <xforms:input ref="steetaddress"> <xforms:label>katuosoite</xforms:label> </xforms:input> <xforms:trigger><xforms:label>henkilötiedot</xforms:label> <xforms:toggle ev:event="domactivate" case=" personaldetails "/> </xforms:trigger> </xforms:case></xforms:switch> Ohjatun täyttäminen voidaan toteuttaa myös esimerkiksi PHP-kieleen ja HTMLlomakkeisiin perustuvan ratkaisun ja istunnon avulla. Asiaan tullaan palaamaan. 7307010 Hypermedian ohjelmointi (kevät 2005) 35

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 mainio: yleistettävissä koko sovelluksen toteutukseen sovellettavissa myös omien lomaketoteutusten suunnittelemisessa ja toteuttamisessa: esimerkiksi ohjattu lomakkeen täyttäminen tai laiteriippumattomien lomakkeiden toteuttaminen Lomakkeet ovat selkeästi HTML-kielen haastavin osa-alue etenkin kun toteutuksessa pyritään ottamaan huomioon myös lomakkeen ulkoasu, käytettävyys ja saavutettavuus. Yhden kaikille soveltuvan ratkaisun sijaan voidaan toteuttaa joukko eri julkaisukonteksteihin sopivia vaihtoehtoja => monikanavajulkaiseminen. Yksinkertainen monikanavajulkaiseminen voidaan toteuttaa CSS-tyylien avulla. 7307010 Hypermedian ohjelmointi (kevät 2005) 36