主要概念
フォーム設計の概要
XLSFormとは?
rtSurveyはフォーム設計にXLSForm標準の拡張版を使用しており、高度な調査を作成するための強力な機能を提供します。このガイドでは、基本的なXLSForm構造からrtSurvey固有の高度な機能まで、rtSurveyにおけるフォーム設計の主要概念を紹介します。
XLSFormを使えば、おなじみのExcelツールを使って人間が読みやすい形式でフォームを作成でき、ほぼすべての人がアクセスできます。 この標準により、フォーム作成の共有と共同作業が容易になります。
XLSFormは初心者に優しい一方で、経験豊富なユーザーが複雑なフォームを作成することも可能です。
rtSurveyは、さまざまなWebおよびモバイルデータ収集プラットフォームにわたって、スキップロジックなどの高度な機能をフォームに組み込む一貫した方法を提供します。
XLSFormの構造
XLSFormは通常2つのメインワークシートで構成されます:
- survey:フォームの構造と内容を定義する。
- choices:多肢選択式質問の回答選択肢を指定する。
オプションのsettingsワークシートで追加のフォーム仕様を提供できます。
surveyワークシートとchoicesワークシートの必須列はフォームが正しく機能するために存在する必要があることに注意してください。両方のワークシートのオプション列は各エントリの動作をさらに制御しますが、必須ではありません。
Excelワークブックの列はどの順序でも表示でき、オプション列は空白にしておくことができます。ただし、フォームが正しく機能するためにXLSFormドキュメントで指定された正確な構文と命名規則を使用することが重要です。
surveyワークシート
surveyワークシートはフォームの構造を定義してコンテンツを提供する場所です。surveyワークシートの各行はフォームの質問または要素を表します。surveyワークシートで必須の列は以下の通りです:
type:質問に対して期待するエントリのタイプを指定する。name:そのエントリの一意の変数名を指定する。名前は文字またはアンダースコアで始まり、文字、数字、ハイフン、アンダースコア、ピリオドのみを含むことができる。名前は大文字小文字を区別する。label:フォームの質問に表示される実際のテキストを含む。
| type | name | label |
|---|---|---|
| today | today | |
| select_one gender | gender | 回答者の性別は? |
| integer | age | 回答者の年齢は? |
choicesワークシート
**choices**ワークシートは多肢選択式質問の回答選択肢を指定するために使用します。
各行は回答選択肢を表します。choicesワークシートで必須の列は以下の通りです:
list_name:関連する回答選択肢のセットをグループ化する。name:その回答選択肢の一意の変数名を指定する。label:フォームに表示したい通りに回答選択肢を表示する。
| list_name | name | label |
|---|---|---|
| gender | transgender | トランスジェンダー |
| gender | female | 女性 |
| gender | male | 男性 |
| gender | other | その他 |
Excelワークブックに追加する列(必須またはオプションに関わらず)はどの順序でも表示できます。オプション列は完全に省略できます。行や列は可読性を高めるために空白にしておくことができますが、シート上の20個の連続した空白列または行の後のデータは処理されません。すべての.xlsxファイルのフォーマットは無視されるため、フォームをより読みやすくするために区切り線、陰影、その他のフォントフォーマットを使用できます。
Excelでフォームを作成する際に覚えておくべきことの一つは、使用する構文が正確でなければならないということです。例えば、choicesの代わりにChoicesまたはchoiceと書くと、フォームは機能しません。
settingsワークシート
settingsワークシートはオプションですが、フォームレベルのメタデータと動作を指定できます。settingsワークシートの一般的な列には以下が含まれます:
| 列 | 説明 |
|---|---|
| form_title | ユーザーに表示されるフォームのタイトル |
| form_id | データ管理とAPI呼び出しで使用されるフォームの一意識別子 |
| default_language | 多言語フォームのデフォルト言語コード(例:英語は’en’) |
| version | フォームのバージョン番号。変更の追跡に役立つ |
| instance_name | 各フォーム送信の一意の名前を生成する式 |
| generation | フォームの世代を示す整数。構造的変更の場合に増加させる |
| family | 構造的変更をまたがる関連フォームをグループ化する識別子 |
rtSurveyのsettingsワークシートには、rtSurveyの拡張機能に特有の追加設定も含めることができます。サポートされる設定の完全なリストについてはrtSurveyドキュメントを参照してください。
surveyワークシートの主要コンポーネント
surveyワークシートはフォーム設計の中核です。主要コンポーネントの概要は以下の通りです:
| コンポーネント | 説明 |
|---|---|
| type | 質問タイプを指定する(例:text、integer、select_one) |
| name | 質問の一意識別子 |
| label | 回答者に表示されるテキスト |
| hint | 回答者への追加ガイダンス |
| appearance | 質問の表示方法を変更する |
| relevant | 質問をいつ尋ねるかを決定する(スキップロジック) |
| constraint | 回答を検証する |
| calculation | 他の回答に基づいて値を計算する |
| required | 質問が必須かどうかを指定する |
これらの各コンポーネントは効果的で効率的な調査を作成するうえで重要な役割を果たします。
質問タイプ
XLSFormは多くの質問タイプをサポートしています。XLSFormのsurveyワークシートのtype列に入力できるオプションの一部は以下の通りです:
| 質問タイプ | 回答入力 |
|---|---|
| integer | 整数入力。 |
| decimal | 小数入力。 |
| range | 範囲入力(評価を含む) |
| text | 自由記述回答。 |
| select_one [options] | 多肢選択式質問(1つのみ選択可)。 |
| select_multiple [options] | 多肢選択式質問(複数選択可)。 |
| select_one_from_file [file] | ファイルからの多肢選択(1つのみ選択可)。 |
| select_multiple_from_file [file] | ファイルからの多肢選択(複数選択可)。 |
| rank [options] | 順位付け質問(リストの順序を決める)。 |
| note | 画面にメモを表示し、入力は不要。type=textとreadonly=trueの省略形。 |
| geopoint | 単一のGPS座標を収集する。 |
| geotrace | 2点以上のGPS座標の線を記録する。 |
| geoshape | 複数のGPS座標のポリゴンを記録する(最後の点は最初の点と同じ)。 |
| date | 日付入力。 |
| time | 時間入力。 |
| dateTime | 日付と時間入力。 |
| image | 写真を撮るか画像ファイルをアップロードする。 |
| audio | 音声を録音するか音声ファイルをアップロードする。 |
| background-audio | フォーム入力中にバックグラウンドで音声を録音する。 |
| video | 動画を録画するか動画ファイルをアップロードする。 |
| file | 汎用ファイル入力(txt、pdf、xls、xlsx、doc、docx、rtf、zip) |
| barcode | バーコードをスキャンする(バーコードスキャナーアプリのインストールが必要)。 |
| calculate | 計算を実行する。 |
| acknowledge | 選択された場合に値を「OK」に設定する確認プロンプト。 |
| hidden | 定数を格納するために使用できるUIなしのフィールド。 |
| xml-external | 外部XMLデータファイルへの参照を追加する。 |
ラベル
ラベルは各質問に対して回答者に表示されるテキストです。調査での明確なコミュニケーションに不可欠です。
- 基本的な使い方:
label列に質問テキストを入力する。 - 複数言語:多言語調査には
label::Englishやlabel::Frenchなどの追加列を使用する。 - フォーマット:rtSurveyはラベルでの強調や構造のための基本的なHTMLフォーマットをサポートする。
ヒント
ヒントは主要な質問テキストを煩雑にせずに回答者への追加ガイダンスを提供します。
- 使い方:
hint列にヒントを追加する。 - 表示:ヒントは通常、主要な質問テキストの下に表示される。
- 多言語:ラベルと同様に、
hint::Language列を使って複数の言語でヒントを指定できる。
外観
rtSurveyのappearance列は質問の表示方法のカスタマイズを可能にします。
- 標準オプション:テキストには’multiline’、選択質問には’horizontal’などがある。
- rtSurvey拡張:
- 時間入力:さまざまな時計表示オプション(例:
inline、inline-1line) - 色のカスタマイズ:アイコンの色を変更するには
colors()関数を使用する
- 時間入力:さまざまな時計表示オプション(例:
Relevant
relevant列はスキップロジックを実装し、質問を表示するタイミングを決定します。
- 構文:条件を定義するためにXPath式を使用する。
- 変数:
${question_name}を使って他の質問名を参照する。
Required
required列は質問に必ず回答しなければならないかどうかを指定します。
- 基本的な使い方:質問を必須にするには’yes’または’true’を使用する。
- 高度:条件付き要件のための式を使用できる。
繰り返し
繰り返しは質問グループに複数回回答できるようにします。
- 使い方:繰り返しグループを定義するために
begin repeatとend repeatの行を使用する。 - 命名:各繰り返しグループに一意の名前を付ける。
メディア
rtSurveyは調査内の画像、音声、動画を含むさまざまなメディアタイプをサポートします。
- 質問タイプ:type列に’image’、‘audio’、または’video’を使用する。
- ラベル内のメディア:HTMLタグを使ってラベルでメディアファイルを参照する。
読み取り専用
読み取り専用質問はユーザー入力なしに情報を表示します。
- 使い方:
appearance列に’readonly’を追加する。 - 計算:計算された値を表示するためにcalculateタイプとよく一緒に使われる。
rtSurvey拡張機能
rtSurveyはグリッドレイアウト、HTMLフォーマット、多くの新しいウィジェットなどの追加機能をサポートすることでXLSForm標準を拡張しています。
グリッドレイアウト
rtSurveyでは複数の質問を1行にまとめることで従来の紙の調査の見た目に近いフォームを作ることができます。