XForms

XForms är ett XML- format som används för att samla in indata från webbformulär . XForms designades för att vara nästa generation av HTML / XHTML -formulär, men är tillräckligt generiskt för att det också kan användas på ett fristående sätt eller med andra presentationsspråk än XHTML för att beskriva ett användargränssnitt och en uppsättning vanliga uppgifter för datamanipulering .

XForms 1.0 (tredje upplagan) publicerades den 29 oktober 2007. Den ursprungliga XForms-specifikationen blev en officiell W3C-rekommendation den 14 oktober 2003, medan XForms 1.1, som införde ett antal förbättringar, nådde samma status den 20 oktober 2009.

Skillnader från webbformulär

I motsats till de ursprungliga webbformulären (ursprungligen definierade i HTML), har skaparna av XForms använt en modell-vy-kontroller (MVC) tillvägagångssätt. Modellen består av en eller flera XForms-modeller som beskriver formulärdata, begränsningar för dessa data och inlämningar. Vyn beskriver vilka kontroller som visas i formuläret, hur de är grupperade och vilken data de är bundna till. CSS kan användas för att beskriva ett formulärs utseende.

Ett XForms-dokument kan vara så enkelt som ett webbformulär (genom att endast ange inlämningselementet i modellsektionen och placera kontrollerna i kroppen), men XForms innehåller många avancerade funktioner. Till exempel kan nya data begäras och användas för att uppdatera formuläret medan det körs, ungefär som att använda XMLHttpRequest / AJAX förutom utan skript. Formulärförfattaren kan validera användardata mot XML-schemadatatyper , kräva vissa data, inaktivera inmatningskontroller eller ändra sektioner av formuläret beroende på omständigheterna, framtvinga särskilda relationer mellan data, mata in datamatriser med variabel längd, mata ut beräknade värden härledda från formulärdata , fyll i förhandsposter med hjälp av ett XML-dokument, svara på åtgärder i realtid (mot inlämningstiden) och ändra stilen för varje kontroll beroende på vilken enhet de visas på (datorwebbläsare kontra mobil kontra endast text, etc.). Det behövs ofta inget skript med språk som JavaScript. Men XForms inkluderar en händelsemodell och åtgärder för att implementera mer komplexa formbeteenden. Åtgärder och händelsehantering specificeras med XForms XML-dialekt snarare än vanligare skriptspråk som JavaScript.

Precis som webbformulär kan XForms använda olika icke-XML-inlämningsprotokoll ( multipart/form-data , application/x-www-form-urlencoded ), men en ny funktion är att XForms kan skicka data till en server i XML-format. XML-dokument kan också användas för att förfylla data i formuläret. Eftersom XML är en standard finns det många verktyg som kan analysera och ändra data vid inlämning. Liknande verktyg för äldre formulär finns också. XForms är i sig en XML-dialekt och kan därför skapa och skapas från andra XML-dokument med XSLT . Med hjälp av transformationer kan XForms skapas automatiskt från XML-scheman och XForms kan konverteras till XHTML-formulär.

Programvarustöd

När detta skrivs stöder ingen allmänt använd webbläsare XForms inbyggt. Det finns dock olika webbläsarplugins, klienttillägg och server/klientlösningar. Följande listar några implementeringar:

  • Firefox XForms - tillägget var en del av Mozilla-projektet. XForms 1.0 SE-stöd är inte komplett men täcker det mesta av specifikationen med ett anmärkningsvärt undantag för attributbaserad upprepning som används i HTML-tabeller. Tillägget var tillgängligt för både Firefox 2 och Firefox 3, men är inte uppgraderat för att stödja Firefox 4 och högre. I juli 2011 skrev huvudutvecklaren att XForms support inte längre skulle uppdateras. Stöd för XForms fasades så småningom ut i Firefox 19.
  • IBM Lotus Forms stöder utveckling och distribution av XForms-baserade rena XML-formulär. Provnedladdningar är tillgängliga för en Eclipse-baserad visuell designmiljö och en klient-side viewer som kan köra XForms-baserade formulär både i webbläsaren och som en fristående skrivbordsapplikation.
  • OpenOffice.org version 2.0 och senare och LibreOffice stöder XForms.

Jämförde implementeringstekniker

FormFaces , AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon och Smartsite Forms är baserade på Ajax-teknik. Mängden bearbetning på serversidan och klientsidan varierar mellan dessa implementeringar. Till exempel, Ubiquity XForms, FormFaces och XSLTForms tillhandahåller 100 % XForms-bearbetning på klientsidan och datamodelluppdateringar via ren Ajax-bearbetning på XForms-standarden. De andra använder server-side Java/.NET XForms bearbetning omkodning till Ajax markup innan innehållet levereras till webbläsaren. Båda teknikerna kan fungera i alla webbläsare. Varje implementering är avsevärt olika med avseende på beroenden, skalbarhet, prestanda, licensiering, mognad, nätverkstrafik, offlinekapacitet och kompatibilitet över webbläsare. Systemarkitekter bör utvärdera dessa begränsningar mot deras behov för att fastställa potentiella risker och mål.

Plugins som FormsPlayer och annan teknologi på klientsidan kan också ha vissa fördelar: eftersom de integrerar sig själva i webbläsaren kommer de att fungera med befintliga serverarkitekturer, kan vara mer lyhörda och kräva färre serverhämtningar.

Avvägningen mellan serversidan och klientens plugin-lösningar är där programvaran underhålls; antingen måste varje klient installera det nödvändiga plugin-programmet eller så måste serverarkitekturen ändras för att passa språkteknologin för XForms transcodermotor. Det är i teorin möjligt att blanda båda dessa lösningar, till exempel att testa webbläsaren för en XForms-implementering på klientsidan och i så fall servera inbyggda XForms, och i andra fall använda en serverlösning som standard.

Ubiquity XForms, FormFaces och XSLTForms tillhandahåller en "noll mjukvara"-lösning på vare sig klienten eller servern: ingen ny programvara behöver installeras på klienten och lösningen kan användas i kombination med vilken serversidesarkitektur som helst. Detta är möjligt eftersom FormFaces och Ubiquity XForms skrivs till 100 % i Ajax och eftersom XSLTForms skrivs i XSLT och i Ajax. Avvägningen är att jämfört med andra lösningar laddas mer kod initialt ner till klienten (koden kan cachelagras på klienten), och FormFaces stöder ännu inte XML Schema-validering. Dessutom kommer XForms-inlämningar med ersätt "alla"-beteende vanligtvis inte att resultera i verkliga sidbyten och därför bryter det normala bakåtknappsbeteendet.

XRX applikationsarkitektur

Eftersom XForms gör det enkelt att redigera komplexa XML-data finns det många fördelar med att använda XForms med inbyggda XML-databaser som ofta utnyttjar REST- gränssnitt. Kombinationen av tre teknologier (XForms på klienten, REST-gränssnitt och XQuery på servern) kallas gemensamt för XRX- applikationsutveckling. XRX är känt för sin enkla arkitektur som använder XML både på klienten och i databasen och undviker transformationer till objekt- eller relationsdatastrukturer. Se " XRX: Enkel, elegant, störande ".

XForms för mobila enheter

Fördelar

XForms ger specifika fördelar när de används på mobila enheter:

  • Användargränssnitt som använder XForms kräver färre rundresor med servern och är i den meningen mer fristående än användargränssnitt som använder HTML 4-formulär.
  • Mobila enheters kapacitet varierar mycket; Följaktligen är mängden av det arbete som är involverat i att skapa olika användargränssnitt för olika enheter av särskilt intresse i den mobila världen. XForms har designats från grunden för att tillåta formulär att beskrivas oberoende av enheten, vilket minskar mängden arbete som krävs för att rikta in sig på flera enheter.
  • XForms minskar behovet av JavaScript, vilket är särskilt intressant eftersom JavaScript-stödet varierar mycket på mobila enheter och inte kan litas på i stor utsträckning. Detta tillåter också system där JavaScript är inaktiverat av säkerhetsskäl att fortsätta fungera felfritt.

Genomföranden

ODK

ODK är en mobil datainsamlingsplattform med öppen källkod som använder en delmängd av W3C XForms 1.0 som kallas ODK XForms. ODK tillhandahåller ODK XForms-behandlingsbibliotek i Java ( JavaRosa ) och JavaScript ( enketo-core) .

Xfolite

Xfolite är en lätt XForms-klient för J2ME-plattformen. Den skapades ursprungligen på Nokia Research Center, och den inkluderar en DOM- och XPath 1.0-implementering samt en XForms-motor som implementerar XForms 1.1-specifikationen nästan helt. XFolite släpptes som betaprogramvara och bör inte anses vara redo för produktionsanvändning som sådan. Den innehåller dock en mogen XForms-motor som har designats för att fungera med olika UI-implementeringar. XML-scheman och CSS ligger dock utanför projektets omfattning. Xfolite är öppen källkod och licensieras under LGPL-licensen, men utvecklas inte aktivt vidare.

Se även

  1. ^   Pemberton, Steven (juni 2014). "Live XML-data" . XML London 2014 : 96–102. doi : 10.14337/XMLLondon14.Pemberton01 . ISBN 978-0-9926471-1-7 .
  2. ^ Mozilla: Mozilla XForms Project - Ladda ner . Åtkomst 2013-03-12.
  3. ^ Philipp Wagner: The Future of Mozilla XForms , 13 juli 2011
  4. ^ Mozilla Developer Network (MDN): XForms . Åtkomst 2013-03-12.
  5. ^ Apache OpenOffice: [1] . Åtkomst 2020-05-24.
  6. ^ Dokumentgrunden: XML bildar dokument (XForms) . Åtkomst 2013-03-12.
  7. ^ http://getokk.org
  8. ^ "ODK XForms-specifikation" .

externa länkar