2024/01/05

DXL Step-by-Step:#15)リッチテキストを構成する基本要素

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 件のコメント:

コメントを投稿