Posts gespeichert unter 'Xforms'

Xforms - Chiba Implementierung

Hier etwas tieferer Einblick in die Implemtierung und Hintergrund
Es gibt nur wenige Möglichkeiten Xform Daten derzeit zu verarbeiten.
Einige Implementierungen seien hier erwähnt:

  • Chiba (openSource Framework, Serverseitige Implementierung)
  • IBM (Serverseitig)
  • Xformation (kommerzielles Produkt clientseitig als Browserplugin)
  • Mozillla Browser-Plugin
  • XSmiles (XML browser mit XForm Plugin)

Die Entscheidung fällt denmach relativ einfach. Browser Plugins kommen für das Einbetten in ViewPlus (VP) Software genau so wenig in Frage wie Server basierte Lösungen.

Meine Wahl: die freie Java basierte Implementierung von Chiba.

Nachdem das Framework gut strukturiert und der Kern von der Implementierung getrennt ist bietet sich die Möglichkeit eine eigene Implementierung zu entwickeln.

Der Kern (Chiba-Sandbox) übernimmt hierbei das Verarbeiten der XML Namensräume und Xform Sprachelemente und leitet entsprechende Kommmandos an Benutzerinterface und Eventhandler weiter.

Zu Erstellen ist also ein Adapter zwischen Core und Client, ein Userinterface und Eventhandling.
chiba.jpg

Zunächst wird die XF Datei an den Chiba-Core übergeben. Dank Adapter wird das geparste XF nebst DOM an die GUI weitergereicht und dort gerendert. Wird ein Event ausgelöst erfolgt ein Feedback zum ChibaCore und eine clientseitige Reaktion der GUI.

Wie genau sind Xforms aufgebaut:

Das Xform Konzept verfolgt die strikte Trennung von Modell (also Beschreibung wie ein Dokument strukturiert ist) und der grafischen Anzeige (wie sollen die Elemente angeordnet werden).

Es kann somit zum Beispiel ein Informatiker den Grobentwurf mit Eventhandlung und Feldvalidierung erstellen woraufhin der Grafiker die Anordnung der Grafikelemmente übernimmt.
Außergewähnlich ist, dass die Beschreibung der Grafikelemente nur eine Art “Empfehlung” darstellt, denn XFormen sind fähig auf beliebigen Anzeigegeräten zu laufen und sich entsprechend anzupassen.

[xf:group xf:appearance=”minimal”…] (eine Gruppe von Grafikelementen)
würde zum Beispiel Elemente innerhalb der Gruppe als Dropdown-Felder drop.jpg darstellen wohingegen

[xf:group xf:appearance=”full”…]
dieselben Elemente als KomboBox anzeigen würde
combo.jpg
Wie nun genau welche Elemente zu behandeln sind lässt sich wiederum in XSLT Dateien definieren. XSLT ähnelt Stylsheets. Dort definierte “Format-” besser “Ersetzungsanweisungen” werden direkt zu Laufzeit in den Chibacore geladen.

jeder Plattform lauffähig. Eine ideale Lösung für mobile GerätePDA.jpg wie PDA´s, Handys oder Blindengeräte wie Embosser oder Touchpads, die auf eine minimale grafische Anzeige hoffen.
hier ein Beispiel:

Nach der Beschreibung der Namensräume (wir definieren hier den namensrauem “ev” für XML Events und “xforms” für Xforms sowie ” ” für HTML) fedinieren wir wie unser Dokument ausehen soll:
Eine Gruppe von XML Objekten mit dem Namen “SMS” und Objekten:

  • Number
  • Text
  • Lenght wiederum Objektgruppe mit den Objekten
  • current
  • left
  • maximum

code_model.jpg

Zusätzlich binden wir die Anzahl der Zeichen an das Textobjekt und setzen wir Einschränkungen, dass die Maximale Anzahl gemäß “maximum” nicht 0 unterschreiten darf.

Wir definieren uns eine Gruppe von Grafikobjekten (Gruppen Elemente verhalten sich wie [table] Elemente in HTML) erzeugen ein Eingabefeld für das “number” Objekt. Mit “Hint” definieren wir die Anziege im Falle eines Fehlers.
code_gui.jpg

[output] aktualisiert das Label welches uns die Anzahl verbleibender Buchstaben berechnet. [xforms:alert] wird ausgelöst wenn die Anzahl maximaler Zeichen überschritten wird und wird ein Popup Fenster mit einer Warnung wird geöffnet.

Das Eventhandling:
Nun ist unser Formular fast fertig, jedoch nicht interaktiv. Es fehlen die Events.code_event.jpg
Der Trigger wird ein XML Event auslösen, das bei jeder Änderung des Document Object Models (DOM) die Berechnung der übrigen Zeichen anstößt.
Der Submitbutton wird die Benutzereingaben in eine xml Datei auf der Festplatte speichern.

(weiterführende Literatur sei empfohlen :-) W3C XForm Standart)

Wie funktioniert die Formverarbeitung im Detail:

Xforms alleine sind nicht lauffähig. Sie werden in eine Muttersprache gewrappt. In unserem Beispiel war das HTML.
(Für die VP Anwendungen verwenden wir als Hülldokument eine SVG Datei.)

chiba_flow.jpg

Für Fragen und Anregungen bin ich jederzeit offen :-)

    jetzt kommentieren? 15. July 2006

    Die XFormen - Einleitung

    jetzt kommentieren? 14. July 2006


    Kalender

    September 2010
    M T W T F S S
    « Apr    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  

    Monatsarchiv

    Themenarchiv