XForms er et XML -basert språk utviklet av W3C for å representere og samle skjemaer i XML-, XHTM-TDT- og SVG -dokumenter . [1]
XForms definerer hva et skjema er og hvilke funksjoner det skal utføre. Den lar deg også spesifisere hvilke data som skal legges inn i de ulike feltene (for eksempel: e-postadresse, navn, etternavn). Måten XForms sender og mottar data på, inkludert muligheten til å suspendere og gjenoppta utfyllingen av et skjema, er definert av XSP.
XForms er delt inn i tre nivåer:
XForms er enhetsuavhengig og kan brukes for eksempel med nettlesere og PDAer. Du kan også legge til XForms-elementer direkte i andre XML-applikasjoner som VoiceXML , WML og SVG (Scalable Vector Graphics). [2]
Hensikten med XForms er å samle informasjon, lage et grafisk grensesnitt som samhandler direkte med brukeren, og skaffe de nødvendige dataene. XForms lar deg koble de forskjellige interaksjonene samlet i et enkelt skjema. [3]
I HTML - skjemaer har datastrukturen ingen reell orden og funksjon og presentasjon skilles ikke. I XForms er funksjonen og presentasjonen i stedet forskjellige, og dette gir flere fordeler:
Datamodellen er kodet gjennom XML og blir sett på som en struktur av noder som bærer data. Dette gjør at data kan endres på to måter: ved å bruke widgets koblet til noder eller ved å koble data til en eller flere noder. XForms-data kan behandles direkte ved hjelp av XML-teknologier, mens XForms-prosessoren utvider verdiendringer til alle widgets som kan kobles til samme node i Model-view-controller- modus .
Dette eksemplet presenterer et HTML-skjema for å registrere tre opplysninger: hilsen, for- og etternavn.
<html> <hode> <title> HTML-skjema </title> </head> <body> <form action = "/ information_log /" method = "post"> Hilsen Sig: <input type = "radio" name = "hilsen" verdi = "Mr." /> Fru <input type = "radio" name = "hilsen" verdi = "Fru." />Skjemaet kan oversettes til XForms i et XHTML-dokument som følger:
<html> <hode> <title> XForms </title> <xforms: model id = "Form"> <xforms: submission id = "Form" action = "informasjonslogg" metode = "innlegg" /> </ xforms: model> </head> <body> <xforms: select1 model = "Forms" ref = "title"> <xforms: label> Hilsen: </ xforms: label> <xforms: valg> <xforms: item> <form action = "/ information_log /" method = "post"> Mr. <input type = "radio" name = "hilsen" verdi = "Mr." /> </ xforms: item> <xforms: item> Fru <input type = "radio" navn = "hilsen" verdi = "Fru." /> </ xforms: item> </ xforms: choices> </ xforms: velg1> <xforms: input model = "Form" ref = "name"> <xforms: label> Navn: <input type = "text" id = "name" /> </ xform: label> <xforms: label> Etternavn: <input type = "text" id = "name" /> </ xform: label> <xforms: submit submission = "Form"> <input type = "submit" class = "fadeIn fourth" value = "Logg inn"> </ xforms: submit> </form> </body> </html>Innenfor denne koden er det elementer som:
Inne i <body> er det tre kontroller, <xforms: select1>, <xforms: input> og <xforms: submit>, som tilhører samme skjema. I nettleservisning kan <xforms: select1> representeres med alternativknapp og < xforms : input> med en tekstboks.
XForms lar deg skille mellom ulike typer input i skjemaet:
Et skjema tilbyr brukere et strukturert grensesnitt for å legge inn eller endre informasjon som kan behandles utenfor det. XForms bruker XML-skjemaer ved å inkludere HTML-skjemaer som gir utvidelser som:
XForms tilbyr et begrenset antall datatyper og støtter XML-skjema innebygde enkle typer. Datamodellen til et skjema kan betinges av et eksternt skjema som inneholder enkle og komplekse datatyper, noe som sikrer at både dataverdier oppdateres og strukturendringer.
Skjemasystemer håndterer hendelser som utløses enten i intern form eller under brukerkontroll. Hendelser kan føre til at et skjema utvides eller endrer verdier. Vi definerer DOM-hendelser, strukturen og behandlingsreglene for nettleserhendelser.
XForms og HTML5 widgets har samme funksjon, men forskjellige navn. XForms kan bruke HTML5-widgets.
XForms | HTML5 | Detaljer |
---|---|---|
input | input | XForms-inndata-widgeten muliggjør gratis datainntasting |
produksjon | produksjon | utdata-widget for å vise de behandlede dataene |
avtrekker | inngang, knapp | Type input-attributtet på elementet må settes til knapp |
<last opp> | <input type = "fil"> | For opplasting av filer eller enhetsdata |
<send> | <input type = "submit"> | For sending av skjemadata Celletekst |
<velg> | <select multiple = "multiple"> eller flere <input type = "checkbox"> | For å velge ett, ingen eller flere alternativer |
<velg1> | <velg> eller flere <input type = "radio"> | For valg av kun ett alternativ blant de forskjellige |
Skjemaer må vise gjentatte data som kan endres med handlinger, for eksempel repeterende rader i en databasetabell . XForms for slike repetisjoner introduserer REPEAT-elementet, en intern Widget-mal som er plassert for hver del av datablokken som REPEAT er koblet til. Tidlige versjoner av HTML støtter ikke repetisjon mens XForms gjør det.
En XForms-prosessor må oppfylle ulike krav i tillegg til kravene til en HTML-skjemaprosessor. De er: