xforms von matthias keck. Übersicht 1. motivation 2. aufbau von xforms model user interface 3. form...

Post on 05-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

XForms

Von Matthias Keck

Übersicht

1. Motivation2. Aufbau von XForms

model user interface

3. form controls und binden4. data types und functions5. actions und events6. Ausblick

Was ist XForms?

XForms ermöglicht plattform- und geräteunabhängige Formulare

XForms ist kein eigener Dokumententyp

Einbindung in beliebige XML- Dokumente XForms ist der Nachfolger von HTML- form und wird

dieses in XHTML 2.0 ersetzen Aktuelle Version: XForms 1.0

(W3C Recommendation 14.10.2003)

Vorteile von XForms

Trennung der Darstellung von Daten und Logik

Daten werden in XML gesammelt und als XML- Dokument gesendet

Unterstützt Berechnungen und Validierung

man braucht weniger/keine Scripte

weniger Arbeit für Server

Aufbau von XForms

1. Deklariere Daten(-logik) und Übertragungsart in <model>

2. Benutze XForms Controls (<input>, <submit>,…)

3. Binde XForms Controls an in <model> deklarierte Elemente

Aufbau in XHTML<h:html xmlns:h="http://www.w3.org/1999/xhtml"

xmlns="http://www.w3.org/2002/xforms"> <h:head> <h:title>Search</h:title> <model> <submission action="http://example.com/search" method="get"

id="s"/> </model> </h:head> <h:body> <h:p> <input ref="q"> <label>Find</label> </input> <submit submission="s"> <label>Go</label> </submit> </h:p> </h:body> </h:html>

Ansicht in XSmiles

XForms Core Attribute

ID: Weist Element eine ID zu src: Fügt unter URI angegebene

Ressource ein

Wichtige Elemente - model

In <model> werden die zu sammelnden Daten beschrieben

Beliebig viele model- Elemente in einem Dokument Auswahl über Attribut ID

Wichtige Elemente - instance

Optionales Element Enthält vorgegebene Werte für bestimmte

Elemente (oder eine Referenz darauf)

Wichtige Elemente - submission

Gibt an wohin und wie die Daten gesendet werden sollen

Mindestens 2 Attribute notwendigaction: Ziel des Übertragungmethod: Übertragungsart (z.B. put, post,

get…)

Beispiel: model

<model> <instance>

<person> <fname>Ein_Vorname</fname> <lname/>

</person> </instance> <submission id="form1" action="submit.asp"

method="get"/> </model>

XForms Controls

input Eingabefeld textarea großes Eingabefeld secret Eingabefeld für Passwörter select1 Auswahl genau eines Elements select Auswahl von Elementen range Schieberegler upload Öffnet Auswahlfenster zum Upload trigger Startet eine Aktion submit Übertrage Daten output Zeige gesammelte Daten

Attribute für XForms Controls

Das Erscheinungsbild jedes XForms Controls lässt sich über das Attribut appearance in drei Stufen variieren. fullcompactminimal

Binden: XPath

<person>

<name>

<fname/>

<lname/>

</name>

</person>

/

/person

/person/name

/person/name/fname

name/lname

Mit „/“ absolut von root aus, ohne „/“ relativ

Binden mit ref

<instance>

<person>

<name>

<fname/>

<lname/>

</name>

</person>

</instance>

<input ref="name/fname">

<label>First Name </label>

</input>

<input ref="name/lname">

<label>Last Name </label>

</input>

In <model> Im user interface

Binden mit bind

<model> ……

<bind nodeset= "/person/name/fname"

id="firstname"/>

<bind nodeset= "/person/name/lname"

id="lastname"/></model>

<input bind="firstname"> <label> First Name </label> </input>

<input bind="lastname"> <label>Last Name </label>

</input>

In <model> Im user interface

Beispiel: user interface<model> ….</model>

<input ref="fname"> <label>First Name</label>

</input><br /> <input ref="lname">

<label>Last Name</label></input><br /><submit submission="form1">

<label>Submit</label></submit>

Beispiel: model

<model> <instance>

<person> <fname>Ein_Vorname</fname> <lname/>

</person> </instance> <submission id="form1" action="submit.asp"

method="get"/> </model>

XForms data types mit XML Schema

<html xmlns:xf= "http://www.w3.org/2002/xforms"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<xf:instance>

<person xmlns=""> <fname xsi:type="xsd:string"/> <lname xsi:type="xsd:string"/> <born xsi:type="xsd:date>"/> <size xsi:type="xsd:integer"/></person>

</xf:instance>

Alternative Möglichkeit

Einem Element kann mit bind ein Typ

zugewiesen werden

<xf:bind nodeset="/person/size" type="xsd:integer"/>

XPath Funktionen

if(booleantest, string1, string2) avg(node-set) min(node-set) max(node-set) count-non-empty(node-set) now() starts-with() …

XPath Funktionen

Beispiel:

max(werte) = 10Oder auch:a+b, a-b, a/b, a*b, a or b, a div b….

<werte> <a>2</a> <b>1</b> <c>10</c> <d>5</d></werte>

actions and events

Aktionen (actions) werden durch Ereignisse (events) gestartet.

Beispiel:

<setvalue bind="frequency" ev:event="xforms-ready"> 0</setvalue>

XForms events

DOMActivate DOMFocusIn/DOMFocusOut xforms-ready xforms-model-construct-done xforms-model-destruct xforms-help/xforms-hint xforms-reset xforms-submit

XForms events

xforms-value-changed xforms-select / xforms-deselect xforms-valid / xforms-invalid xforms-readonly / xforms-readwrite xforms-required / xforms-optional xforms-enabled / xforms-disabled xforms-out-of-range / xforms-in-range xforms-submit-done

XForms actions

message: Zeigt eine Nachricht an

setvalue: Setzt ein Element auf einen Wert

setfocus: Fokussiert ein form control

send: Startet submission

reset: Löscht alle eingegebenen Daten

load: Lädt eine URL

XForms actions

toggle:Wechselt zu anderem case

insert: Fügt neues Element ein

delete:Löscht Element

setindex: Setzt den Index von repeat

dispatch: Leitet (veränderte) events weiter

action: Ruft (mehrere) andere actions auf

switch - case

<model>

<toggle ev:event="xforms-ready" case="go"> ...

</model>

<switch>

<case id="default_message">You are using a browser that doesn't support XForms</case>

<case id="go">...</case>

</switch>

switch - case

Implementierungen

X-Smiles, open source Java-basierter XML Browser der Helsinki University of Technology.

FormsPlayer, XForms processor plug-in für Internet Explorer 6 SP 1.

Novell XForms, Java Application. Für Mozilla in Bearbeitung

Quellen

XForms 1.0 Recommendation Errata

(http://www.w3.org/2003/10/REC-xforms-10-20031014-errata.html)

XForms Essentials

(http://xformsinstitute.com/essentials/

browse/book.php)

Vielen Dank

top related