XForms: nästa generations webbformulär
av Steven Pemberton, CWI och W3C
En av nyckelkomponenterna i den kommersiella revolutionen på webben var
formulär i HTML. Efter 10
års användning av HTML-formulär har nu W3C
publicerat XForms, den nästa generationen av formulär på webben. Till
skillnad från HTML-formulär, i vilka uppmärkning för funktion och
presentation är sammanvävda, så kan man i XForms skilja mellan beskrivning av
formulärets ändamål, dess presentation och hur resultaten (inmatade data)
skall representeras i XML.
Designen av XForms utgick från en analys av hur HTML-formulär har använts
under de gångna 10 åren, och vad som borde ändras för att göra formulär än mer
användbara. I korthet: XForms tillåter att man kan göra allt som man kan göra
i HTML-formulär, och dessutom:
-
kontrollera användargivna data medan användaren matar in dem,
-
deklarera att vissa fält måste fyllas i och att formuläret inte kan
skickas in utan att de fyllts i,
-
begränsa mängden giltiga värden, såsom att kräva att värdet ligger i
ett visst intervall,
-
skicka in data (till servern) i XML-format,
-
integrera i webb-tjänster (web services), t.ex. genom användning av
SOAP och XML RPC,
-
möjlighet att sända in samma formulär till olika servrar (t.ex. att
sända en söksträng till olika sökmotorer),
-
att spara i och hämta formulär från en fil,
-
att använda resultatet av ett insänt formulär som indata till andra
formulär,
-
hämta standardvärden för fält i ett formulär från ett externt dokument,
-
beräkna vissa inmatningsvärden från andra inmatningsvärden, och
-
konstruera "kundkorg" och formulär med inbyggd hjälp, utan att behöva
använda skriptspråk.
XForms egenskaper
XForms har ett antal viktiga egenskaper:
-
XForms förstärker användarupplevelsen: XForms har designats på ett sätt
så att webbläsaren kan kontrollera innehållet i formulär innan det skickas,
såsom att data i vissa fält är av viss typ, att ett speciellt fält måste
fyllas i och att ett datum tidsmässigt ligger efter ett annat datum. Detta
minskar såväl behovet av anrop till servern som omfattande användning av
skriptprogram, och ökar användbarheten genom att vid inmatning av data ge
direkt återkoppling till användaren.
-
Det är lättare att författa formulär med komplex logik: eftersom XForms
använder deklarativ uppmärkning för att uttrycka egenskaper hos värden och
att ange sambandet mellan värden, så är det lättare att skapa komplicerade,
användaranpassade formulär utan att behöva använda skriptspråk. Om man
översätter ett existerande HTML-formulär till XForms, så är resultatet inte
så mycket annorlunda. Men om man skapar formulär som HTML inte var anpassat
för, så blir det mycket enklare då man använder XForms. I dokumentet "XForms
for HTML Authors" (se referenslistan nedan) återges ett antal exempel på hur
man går från HTML-formulär till XForms.
-
Det är XML, och det kan sända in XML: XForms är helt integrerat i XML -
det är en XML-applikation, data som matas in sparas som XML, det kan ladda in
initialvärden från externa XML-dokument och insända data kan skickas som
XML. Genom att ta in användaren i XML-kedjan, så uppnår man end-to-end XML,
ända upp till användarens skrivbord.
-
Det kombinerar existerande XML-teknologier: istället för att
återuppfinna hjulet så använder XForms ett antal existerande XML-teknologier,
såsom XPath för att hämta och beräkna värden och XML Schema för att definiera
datatyper. Detta har klara nyttoeffekter - det är enklare att lära sig
XForms för de som redan känner till existerande XML-teknologier, och
implementatörer kan använda existerande programvarukomponenter för att bygga
sina system.
-
det är apparatoberoende: samma formulär kan levereras, i samma form,
till en traditionell webbläsare, en PDA, en mobiltelefon, en röststyrd
webbläsare, och t.o.m. till några mer aparta typer av användarsystem som
Instant Messenger. Detta gör det mycket lättare att skapa formulär för bred
användning, eftersom formulär bara behöver skapas en gång.
-
det är internationaliserat: eftersom data sändes in som XML, så
understöds internationalisering.
-
det är tillgängligt: XForms har skapats för att det skall fungera bra
tillsammans med både handikapphjälpmedel (t.ex. för synskadade) och med
vanliga webbläsare.
Implementationer
W3C:s arbetsgrupp för XForms (XForms Working Group) har deltagare
från många större IT-företag. Ett antal implementationer av XForms växer fram
-- i själva verket är XForms en av de W3C-standarder som har flest
implementationer.
Det finns ett antal implementationer som låter dig använda XForms i
vanliga webbläsare, antingen som plugg-in eller genom att, på servern, transformera
formuläret till kod som kan hanteras av webbläsaren. Dessutom
finns ett antal direkta implementationer av XForms.
XForms har demonstrerats på PDA:er och på mobiltelefoner genom användning av
proxies, en teknik som redan används för att presentera webbinnehåll på små
apparater. Utveckling av direkta XForms-implementationer på mobila
apparater är på gång.
Det finns en förteckning över XForms-implementationer (http://www.xml.com/pub/a/2003/09/10/xforms.html ) som
innehåller detaljerad information om implementationerna, redaktionella
kommentarer, samt skärmdumpar av ett antal av dessa implementationer.
XForms behöver inget speciellt stöd på server-sidan -- den fungerar med alla
existerande serverimplementationer. Fastän XForms har ett antal nya
insändningsmetoder som inte återfinns i HTML-formulär, så är dessa extra metoder
stödda av vanlig HTTP. XForms kan använda "PUT" för att sända data till
servern, kan interagera med SOAP- och XML RPC-servers, men stöder även äldre
format, vilket gör att XForms kan interagera med alla existerande typer av
servers.
Slutligen bör påpekas att breda användargrupper växer fram, bl.a. inom
ett antal offentliga sektorers initiativ för eGovernment, skattemyndigheter och
försäkringsindustri.
Steven Pemberton är forskare vid CWI i Amsterdam. Han leder W3C:s XForms
Working Group.
Länkar:
XForms hemsida: http://www.w3.org/MarkUp/Forms
"XForms for HTML Authors": http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html
XForms implementations: http://www.w3.org/MarkUp/Forms/#implementations
[översättning av artikeln
XForms: the Next Generation of Web Forms, ursprungligen publicerad i
ERCIM News No. 56, January 2004]
Last modified: Fri Sep 23 07:59:30 W. Europe Daylight Time 2005