SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

OpenOfficeでのXForms入門

OpenOfficeのXMLフォームの使い方・デザイン方法

ダウンロード サンプルソース (8.7 KB)

コントロールの追加

 次にフォームに送信ボタンを追加します。コントロールパネルで[Button]コントロールを選択し、フォーム上にボタンとなる長方形を描き、好みのサイズに調整します。ボタンの配置は、デフォルトではドキュメントの左上隅になります。この配置を変えたければ、ボタンを右クリックし、コンテキストメニューから[Position and Size]を選択し、アンカーを[As Character]から他の値に変更します。

 本稿では[Position and Size]の詳細には踏み込みませんが、[As Character]についてのみ簡単に説明しておきます。[As Character]はフォームコントロールを通常のドキュメントフローの一部にする設定です。ドキュメントに他のコンテンツがない場合は、フィールドのアンカー設定を[As Character]とすると、フィールドがドキュメントの外側マージンに沿って左端に配置されます。

 右側のXFormsモデルパネルの[Submissions]タブをクリックします。パネル内の左端にある[Add Submission]アイコンをクリックします。それにより、図6のような[Edit Submission]フォームがポップアップします。

図6 [Edit Submission]フォームではアクション、メソッド、送信名を指定できる
図6 [Edit Submission]フォームではアクション、メソッド、送信名を指定できる

 好みの名前を追加し、ファイルアクションとして「file:///」を設定し、ファイル出力を保存したいファイルシステム内の場所を入力します。Windowsなら、例えば「file:///c:/xforms/Example2.xml」を選択します。次にメソッドとしてPutを選択し、[Replace]フィールドで[Document]を選択して、フォーム送信によって既存のドキュメントが上書きされるようにします。

 ファイルの送信先とボタンが定義できたので、後はこの2つをバインドするだけです。ボタンを右クリックし、コンテキストメニューから[Control]を選択して、バインドを設定します。

 次に、テキストボックスを追加して、ユーザーが要素を編集できるようにします。フォームコントロールからテキストボックスアイコンを選択し、フォーム上でドラッグして、コントロールを好みのサイズに調整します。

 テキストボックスを右クリックし、[Control]を選択します。図7の内容に合わせてプロパティを編集します。

図7 テキストボックスのプロパティ。この設定により、XPath式/instanceData/AddressPostalがフォームモデルにバインドされる
図7 テキストボックスのプロパティ。この設定により、XPath式/instanceData/AddressPostalがフォームモデルにバインドされる

 [Binding expression]フィールドはXPath式です。XFormsでXPathを使用するときは、デフォルトで、生成される出力インスタンスのドキュメント要素(この例ではOpenOfficeで使用されるデフォルトのinstanceData要素)がルートになります。従って、図7の[Binding expression]フィールドの値は、実際には/instanceData/AddressPostalというXPathを意味します。この規約は糖衣構文的であり、どんな利点があるのか筆者には理解できません。

 ここまでの作業を終えたら、デザインモードをオフにし、テキストフィールドに「Hello World」と入力し、送信ボタンを押してみてください。ファイルパスで参照しているフォルダが存在する場合は、次のXMLを含む新しいファイルが表示されるはずです。

<?xml version="1.0"?>
<instanceData>
  <AddressPostal>
    Hello World
  </AddressPostal>
</instanceData>

 このファイルフォーマットはまだ最終的なターゲットXMLとは一致していませんが、XFormをどのように編集すればXMLドキュメントを作成できるかという例になっています。

OpenOfficeでのXForms構文

 OpenOfficeでのXFormsは一般的なMVCアーキテクチャに類似しています。XFormモデルはモデル、フォームフィールドはビュー、OpenOfficeフォームはコントロールにそれぞれ対応します。注意してほしいのは、OpenOfficeフォーム名前空間はフォームとそのプロパティを抽象的に表現するという点です。XForms仕様の実際のフォーム入力部分は実装されていません。これはXFormsのXHTMLモデルとは異なります(XHTMLモデルにはコントローラに明確に対応するものがないからです)。

 ここまでに作成したサンプルフォームのコードを見るには、このOpenOfficeドキュメントをunzipツールで展開し、Content.xmlというドキュメントを抽出してください。

 このドキュメントはいくつかのセクションに区分されています。具体的には、すべてのドキュメントスタイルを含むスタイルセクション、データとXMLスキーマと送信情報を含むXFormセクション、実際のフォームフィールドとXMLとの間のバインディングを含むフォームコントロールセクション、そして描画されるコントロール自体が含まれるセクションです。

 以降では、このドキュメントのXFormとバインディングに関する部分のコードを見ていきます。

次のページ
サンプルフォームのXFormsコード

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Bryan Rasmussen(Bryan Rasmussen)

デンマーク政府のデータ標準化プロジェクト「OIOXML」に参加し、コアXMLとWebテクノロジの概要ならびにUBLのデンマークサブセットを担当。現在はFESD Softwareのデンマーク政府公認ディストリビュータの1つであるSoftware Innovationに勤務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2802 2008/08/04 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー