Hlavní strana | Wap | Rss | Kontakt | PetrHeller.info

XForms - první pohled

XHTML 2 sebou přineslo bezpochyby velmi razantní změny, kterým se nevyhnuly ani tak zásadní věci jako formuláře. Ty se nyní vytváří pomocí XML a dokonce i odeslání dat je řešeno prostřednictvím XML. V tomto článku bych vám rád XForms stručně představil a ukázal vám, jaké (ne)výhody mohou webové formuláře XForms přinést.

V první řadě zapomeňte na starý způsob psaní formulářů. XForms jsou naprosto odlišná. Na jednoduchém příkladu si rozdíl ukážeme. Formulář na výběr jídla v restauraci bude vypadat takto:


<form action='objednat.php' method='post'>

 <label>Vepřové</label><input type='radio' name='hlchod' value='vepřové' checked='checked' /><br />
 <label>Hovězí</label><input type='radio' name='hlchod' value='hovězí' /><br />
 <label>Příloha:</label><input type='text' name='priloha' /><br />
 <input type='submit' />

</form>

To je asi tak vše, co nám dnešní formuláře umožňují (mimo jednoduchých změn vzhledu pomocí CSS). Tvorba formuláře pomocí XForms sice je o něco těžší, ale větší kontrolu nad formulářem máme zaručenou. Ukážeme si tedy, jak by se ten samý formulář vytvořil pomocí XForms.

Nejprve si v hlavičce nadefinujeme model element, kterým popíšeme data formuláře a vytvoříme strukturu XML, která se odešle cílovému skriptu.


<head>
<xforms:model>
  <xforms:instance>
    <vecere xmlns=''>
      <hlavnichod/>
      <priloha/>
    </vecere>
  </xforms:instance>
<xforms:submission action='objednat.php' method='post' id='submit'/>
</xforms:model>
</head>

Vytvořily jsme model elementu vecere, který obsahuje elementy hlavnichod a priloha. V těle dokumentu poté samotný element vytvoříme:


<body>

 <xforms:select1 ref='hlavnichod'>
  <xforms:label>Hlavní chod</xforms:label>
  <xforms:item>
    <xforms:label>Vepřové:</xforms:label>
    <xforms:value>veprove</xforms:value>
  </xforms:item>
  <xforms:item>
    <xforms:label>Hovězí:</xforms:label>
    <xforms:value>hovezi</xforms:value>
  </xforms:item>
 </xforms:select1>

 <xforms:input ref='priloha'>
  <xforms:label>Příloha:</xforms:label>
 </xforms:input>

 <xforms:submit submission='submit'>
  <xforms:label>Odeslat</xforms:label>
 </xforms:submit>

</body>

Jak jsem již naznačil v úvodu článku, výsledná data se odešlou cílovému skriptu v XML. V naší objednávce večeře by data, za předpokadu, že uživatel vybere hlavní chod „hovězí“ a jako přílohu napíše např. „omáčka s knedlíkem“ vypadala takto:


<vecere>
  <hlavnichod>hovezi</hlavnichod>
  <priloha>omáčka s knedlíkem</priloha>
</vecere>

Tento kód se výborně hodí pro zpracování různými XML parsery.

Výhody a nevýhody XForms

Jako každá technologie, tak i XForms mají některé pro a proti.

  • XForms obsahují interní funkce pro základní matematiku či pro jednoduchou práci s řetězci, odpadá tak nutnost používat skriptování
  • XForms oddělují data a samotný web
  • XForms jsou založeny na XML a tudíž jsou velmi flexibilní
  • Výměna dat v XML přímo předurčuje nasazení XForms v obchodním styku
  • Jsou složitější na implementaci
  • Zatím nedostatečná podpora ze strany prohlížečů

Hlavně absence prohlížečů podporujících XForms je dnes podle mého názoru hlavním problémem k prosazení této velmi zajímavé technologie. To samé se ale říkalo i o Flashi či Javě, která je dnes běžnou součástí moderního webu. To samé bude určitě zanedlouho platit i o XForms.