Internetformulieren vormen de hoeksteen van de hedendaagse e-handel. De toenemende vraag naar betere formulieren met een hogere gebruikersinteractiviteit, hebben ertoe geleid dat Xforms (eXtensible Forms) zijn ontsproten aan de breinen achter het W3C (World Wide Web Consortium, http://www.w3.org). Xforms zijn ontworpen met de oude Html-formulieren in het achterhoofd en met de ogen sterk gericht op de toekomst van internet, aldus twee consultants.
De huidige Html-formulieren maken geen onderscheid tussen het doel en de presentatie van een formulier. Dit zorgt ervoor dat formulieren niet één op één hergebruikt kunnen worden op verschillende apparaten. Sterker nog, Html- formulieren kunnen alleen getoond worden in een browser.
Xforms zijn wel opgedeeld in verschillende logische delen die afzonderlijk verantwoordelijk zijn voor wat een formulier dient te doen en hoe een formulier moet worden getoond. Deze strikte scheiding zorgt ervoor dat hetzelfde formulier op dezelfde wijze getoond kan worden in verschillende media. Bij het ontwerp van het formulier hoeft men dus niet langer rekening te houden met het uiteindelijke medium dat verantwoordelijk is voor de presentatie.
Formulieren zijn er om gegevens te verzamelen. Binnen Xforms worden de gegevens in het geheugen als XML-document bewaard. Volgens de specificatie van Xforms wordt dit ‘instance data’ genoemd. Middels Xpath is het mogelijk om de interne datastructuur te koppelen aan de verschillende formulierobjecten. (Gegevens die niet gekoppeld worden aan formulierobjecten, worden gezien als verborgen data, dit zijn de oude ‘hidden fields’ in Html.)
Het onderdeel waarin de structuur van het formulier is gedefinieerd, heet het ‘model’. Deze structuur kan op een tweetal manieren worden bewaakt, met behulp van XML Schemas of door middel van formulierspecifieke eigenschappen. Voor de validatie van het formulier moest je vroeger zelf allerlei routines schrijven, dankzij het ‘model’ is dit echter verleden tijd. Wanneer je nu een formulierobject willen valideren, dan kunnen we hiervoor XML Schema-definities gebruiken. De Xforms Processor handelt dit dan zelf af.
In de ‘presentation’ is terug te vinden hoe het formulier er uit dient te zien. Hier is een aantal objecten te herkennen, zoals aankruisvakjes, radiobuttons, vervolglijsten, enzovoort. Tevens is een aantal nieuwe objecten te herkennen, zoals een ‘slider control’, waarmee een waarde geselecteerd kan worden tussen twee extremen en een ‘output control’, waarmee je gemanipuleerde formulierdata kunt tonen in regels tekst. Het feit dat de data (instance data) gescheiden zijn van de presentatie (presentation), zorgt ervoor dat de gegevens op dezelfde wijze in verschillende omgevingen getoond kunnen worden. Formulieren worden op deze manier herbruikbaar op verschillende apparatuur.
Bij het versturen van het formulier worden alleen de formuliergegevens (instance data) als XML-document verstuurd naar de server. Xforms heeft hiervoor zijn eigen Submit Protocol gedefinieerd. Xforms kunnen ook als url-gecodeerde of Mime multipart/form-data worden verstuurd, in verband met compatibiliteit met reeds bestaande formulieren.
Uit bovenstaand verhaal valt af te leiden dat Xforms gebruik maken van het ‘model view controller’ (mvc) architectuurpatroon. Hierbij wordt de presentatie verzorgd door de ‘view’, het ‘model’ bevat de gegevens (instance data) en de ‘controller’ dwingt de ‘business rules’ (validatie) af.
Voor- en nadelen
De kracht van Xforms zit in het feit dat het onderdeel uitmaakt van de XML-familie. Bij de ontwikkeling van XML zijn ontkoppeling en uitbreidbaarheid het uitgangspunt geweest. Xforms maakt hier dankbaar gebruik van, het is conform de syntaxis van XML opgebouwd, alleen de semantiek verschilt. Dit zorgt ervoor dat het protocol makkelijk geïntegreerd kan worden met andere bestaande of toekomstige protocollen, zoals SVG (Scalable Vector Graphics), Xhtml, WML (Wireless Markup Language), enzovoort.
Het feit dat het interne XML-document (instance data) vergezeld gaat van een XML-schema (model), zorgt ervoor dat de structuur van het document bewaakt blijft. Veel invoerfouten kunnen op deze wijze voorkomen worden, wat resulteert in een snellere verwerking van de gegevens op de server.
Niet het gehele formulier wordt verstuurd, alleen de ‘instance data’ vinden hun weg van client naar server. Dit maakt het mogelijk dat iedere laag binnen een client/server-applicatie gebruik kan maken van hetzelfde protocol. Je hoeft niet langer op iedere laag een transformatie te laten plaatsvinden naar een of ander exotisch formaat, opdat de desbetreffende laag de gegevens kan interpreteren. Iedere laag ‘praat’ XML en hoeft dus geen extra werk te verrichten.
Binnen het ‘model’ is het mogelijk om de bestaande set van beperkingen (het XML-Schema) uit te breiden met aanvullende eisen ten aanzien van de structuur van het ingevulde formulier. Dit verhoogt de bruikbaarheid ervan.
Het feit dat de ‘instance data’ voldoen aan de XML 1.0-specificatie, maakt internationalisatie mede mogelijk.
Doordat de presentatie gescheiden is van de inhoud. is dezelfde inhoud te tonen op meerdere apparaten; alleen de presentatie van de inhoud kan verschillend zijn per apparaat.
Een ontwikkelaar hoeft minder te programmeren om te bereiken dat invoervelden op de juiste wijze zijn ingevuld. Door het toekennen van zelfgedefinieerde veldtypen met bijbehorende eigenschappen zal de Xforms Processor de validatie voor zijn rekening nemen.
Hoewel Xforms veel voordelen bieden, kampen ze vooralsnog met een groot nadeel. Geen enkele browser ondersteunt momenteel dit protocol. Inmiddels zijn er wel verschillende oplossingen waarbij op de server Xforms worden geïnterpreteerd en uitgeserveerd als Html naar de client. Een van de bekendste oplossingen hiervan, is die van Mozquito.
Xdocs
Halverwege het jaar 2003 hoopt Microsoft met de nieuwe versie van zijn Office-pakket uit te komen. Met de introductie van deze nieuwe versie (nummer 11) zal een nieuwe applicatie het daglicht zien, genaamd Xdocs. Tot nu toe heeft Microsoft slechts een vage omschrijving van de kracht van deze applicatie gegeven. Speerpunten van deze applicatie zijn echter het verzamelen, weergeven en bewerken van allerhande informatie die onttrokken is aan verscheidene applicaties en bedrijfsprocessen. Deze informatie wordt in de vorm van XML aangeleverd. Ten tijde van het bewerken van deze informatie staat een aantal functies de gebruiker ter beschikking, zoals validatie, autocorrectie en spellingcontrole.
Op internet zijn inmiddels meerdere discussies terug te vinden waarin één vraag centraal staat. Probeert Microsoft middels Xdocs een eigen antwoord op Xforms te formuleren en deze via zijn Office-pakketen aan de man te brengen? Een kleine groep doemdenkers onder ons zullen bovenstaande vraag met een stellig ‘ja’ beantwoorden. De algemene gedachtegang is dat Microsoft zijn Xdocs-applicatie zal conformeren aan de nieuwe standaard Xforms. Microsoft is immers, al dan niet in samenwerking met IBM, al weer enige tijd bezig om nieuwe standaarden (gebaseerd op XML) aan de man te brengen (onder andere het .Net-platform). Wat voor baat zal het hebben om weer een eigen protocol te lanceren en aldus tegen de eigen strategie in te gaan?
Laatste hindernis
De roep om formulieren die hogere gebruikersinteractiviteit mogelijk maken, en de wijze waarop het formulier door de diverse media getoond dient te worden getoond, hebben ertoe geleid dat Xforms in het leven zijn geroepen.
Gezien de vele voordelen die dit protocol biedt en het feit dat het gebaseerd is op een universeel geaccepteerd protocol (XML), staat Xforms niets meer in de weg. De laatste hindernis die nog genomen moet worden, is die van de implementatie van het protocol in diverse browsers.
Op 12 november 2002 is de specificatie van Xforms gepromoveerd tot een W3C ‘candidate recommendation’. Dit houdt in dat de specificatie stabiel is en nagenoeg geen veranderingen meer zal ondergaan. De verschillende softwareleveranciers kunnen deze specificatie gebruiken om hun Xforms-applicaties te vervolmaken.
http://www.w3.org/TR/2002/CR-Xforms-20021112/
Sander Duivestein, Pascal van Paridon, managing consultants Cap Gemini Ernst and Young