DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 15 回です。今回からはリッチテキストフィールドの構造について調査した結果をまとめます。
リッチテキストと段落
まずは、単純な例です。リッチテキスト(Body フィールド)に 3 行分の文字を入力して DXL で出力すると次の通りとなります。
続いて、2 行目だけ行間を 1.5 に変更して、DXL を確認します。
これで、各ノードの関係が見えてきますね。
行間を変更した 2 行目の前の pardef id='2' の行が増えていて、2 行目を表すノードの属性が def='2' となっています。この結果より、各ノードの役割が読み取れます。
- pardef ノードは段落のスタイルを定義
- par ノードは段落のコンテンツを定義
- par ノードに適用されるスタイルは、def 属性で pardef の id を指定
ちなみに段落とはリッチテキスト内のコンテンツを管理する1つの単位ですが、文字プロパティの[段落整列]タブの設定が有効な範囲と言えばわかりやすいですね。
この段落に配置できるのは文字だけでなく、添付ファイルや画像、ホットスポットなどさまざまなオブジェクトがあります。これらはすべて par ノード配下のサブノードとして作成されます。
ただ、いくつか例外があるので確認しましょう。
表と DXL
リッチテキスト内に次のように表を追加した場合の DXL を確認します。
すべてを表示すると長くなるので、一部省略していますが DXL は次の通りです。表を挿入すると表の前後に 1 行ずつ段落が挿入されますよね。DXL では、その段落も表現されています。
表は table というノードで表現されています。表の構造については別途詳しくまとめますので、今回は割愛します。
現時点でのポイントは、table ノードは、段落(par ノード)配下になっていない点です。par ノードと同じ階層、並列に表現されていますね。
まとめ
上記事例のように richtext ノード直下には配置できるノードが限定されているようです。現時点で確認できている範囲では次の 4 種です。
pardef | 段落の定義 |
par | 段落 |
table | 表 |
section | セクション |
前回 | DXL Step-by-Step | 次回 |
0 件のコメント:
コメントを投稿