はじめに
大抵の開発者は、XFormsは従来のHTML Formsに代わるXMLベースのフォーム言語だと聞いているでしょう。基本的にはそのとおりですが、それがすべてではありません。XFormsはHTMLフォームの次世代バージョンとして作成されたものですが、その設計目標は、Webブラウザ以外の環境(例えば一般的なオフィスアプリケーションなど)でもフォームとして使用できるようにすることです。実際、OpenOfficeやSunのStarOfficeでは、フォームベースのアプリケーションを作成する1つの方法としてXFormsが実装されています。
本稿で紹介するXFormは、Microsoft Windows XPシステムとXandros Linuxシステムの両方でテスト済みです。なお、出力送信先のファイルURIは、各オペレーティングシステムに固有のファイルパスに合わせてあります。
本稿では、OpenOfficeフォームをエンドユーザーとしてデザインする方法を概説すると共に、OpenOffice XFormを適切なXML出力フォーマットに適合させるための構文を示します。本稿の解説は、読者が少なくともXML、XPath、XML Schemaの基本的な知識を持っていることを前提としています。ダウンロードサンプルを使用するためには、OpenOfficeのバージョン2.4以上をインストールしておく必要があります。
XMLフォーマットの選択
フォームにはXMLフォーマットが必要です。今回のサンプルでは、デンマーク政府が使用している住所のフォーマットを利用します。このフォーマットで表現されるデータは、単一の住所にデンマーク固有の構造情報を加えたものです(住所のみを示し、住人を識別するような付帯情報はありません)。このフォーマットは単純で分かりやすく、しかも実用に耐えるものなので、サンプルに使用するにはちょうどよいでしょう。
このXKOM(XML Kommittee)AddressPostalフォーマットでは、AddressPostal
という名前の単一の複合要素を定義します。この複合要素は11個の単純要素から成りますが、必須の要素はそのうち一部だけです。インスタンスドキュメントには最大4つの名前空間があります。本稿で使用するデータの例を次に示します。この例には3つの名前空間と5つの必須要素が含まれています。
<xkom:AddressPostal xmlns:xkom= "http://rep.oio.dk/xkom.dk/xml/schemas/2006/01/06/" xmlns:dkcc= "http://rep.oio.dk/ebxml/xml/schemas/dkcc/2003/02/13/" xmlns:dkcc2005= "http://rep.oio.dk/ebxml/xml/schemas/dkcc/2005/03/15/" > <dkcc2005:StreetName> Narum Hovedgade</dkcc2005:StreetName> <dkcc:StreetBuildingIdentifier> 10</dkcc:StreetBuildingIdentifier> <dkcc2005:PostCodeIdentifier> 2850</dkcc2005:PostCodeIdentifier> <dkcc2005:DistrictName> Narum</dkcc2005:DistrictName> </xkom:AddressPostal>