since: 31st/Aug./2001; last modified: 13th/Sep./2001
テキスト拡張モジュールには、次の三つのモジュールが含まれています:
ここでは、双方向テキストモジュールに含まれる要素タイプを紹介します。この要素タイプはテキストレベル (Inline) 要素です。
bdo| 要素 | 属性 | 最小内容モデル |
|---|---|---|
bdo |
Core, dir* ("ltr" | "rtl") |
(PCDATA | Inline)* |
このモジュールが使われるときは、 bdo 要素が、テキスト・モジュールの内容セット Inline に追加されます。また、属性 dir* ("ltr" | "rtl") を、属性集合 I18N に加えます。
bdo 要素は、内容のテキスト方向を明示的に示します。Unicode では通常、当該文字が属する言語毎にテキスト方向も情報として含んでいます。しかし、この要素内では、それらの暗黙的に決定しているテキスト方向が無視され、 dir 属性値に上書きされます。
| 名前 | bdo |
|---|---|
| 分類 | Inline |
| 意味 | bidirectional over-ride |
| 日本語 | 双方向アルゴリズムの上書き |
文字データとテキストレベルの要素 (Inline) が許されます。
Coredir = ltr | rtlbdo 要素の必須属性です。I18N 属性集合に含まれており、殆どの要素タイプでも定義されています。bdo 要素以外の要素に用いた場合は、固有の文字方向を持たない場合に限り、基本方向を指定します。bdo 要素で用いた場合は、固有の方向を無視して基本方向を指定します。
ltr: 左から右へのテキスト (Left-to-right)rtl: 右から左へのテキスト (Right-to-left)基本的な使い方は、当該文書の html 要素で指定されている言語固有のテキスト基準方向に反する方向を持つ文字列を、スポット的に指定することです:
<p>English1 <bdo dir="rtl">Hebrew1</bdo> English2 dir="rtl">Hebrew2</bdo></p>
【表示例】
English1 Hebrew1 English2 Hebrew2
【表示概念図】
English1 1werbeH English2 2werbeH
<------ <------
---------------------------------> 全体の基準方向
また、既にテキスト基準方向を反転させた文字列が、当該文字コードの持つ固有方向に従って再反転されないように、双方向テキストアルゴリズムを無視するためにも用います:
<p xml:lang="en"><bdo dir="ltr">English1 <span xml:lang="he">1werbeH</span> English2 <span xml:lang="he">2werbeH</span></bdo></p>
English1 1werbeH English2 2werbeH
これをしないと、折角反転させて記述した文字列が再反転して、目的のテキスト方向とは逆になってしまうことがありえます。
dir 属性dir 属性を table 要素で用いると、行内のセルの配置順番方向に影響を与えます。但し、行要素やグループ要素に用いた場合は、当該要素内のセル内容のテキスト基準方向を指定するだけで、セルの配置自体には影響を与えません:
<table dir="rtl" border="1" xml:lang="he"
summary="dir属性とセル配置方向">
<thead >
<tr>
<th>0</th> <th>1</th> <th>2</th>
</tr>
</thead>
<tbody>
<tr>
<td>(0, 0)</td> <td>(0, 1)</td> <td>(0, 2)</td>
</tr><tr>
<td>(1, 0)</td> <td>(1, 1)</td> <td>(1, 2)</td>
</tr><tr>
<td>(2, 0)</td> <td>(2, 1)</td> <td>(2, 2)</td>
</tr>
</tbody>
<tbody dir="ltr">
<tr>
<td>123</td><td>456</td> <td><bdo dir="rtl">789</bdo></td>
</tr>
</tbody>
</table>
| 0 | 1 | 2 |
|---|---|---|
| (0, 0) | (0, 1) | (0, 2) |
| (1, 0) | (1, 1) | (1, 2) |
| (2, 0) | (2, 1) | (2, 2) |
| 123 | 456 | 789 |
dir 属性は属性セット I18N に含まれており、殆ど全ての要素タイプで定義されています。しかし、ユニコードで固有に定義されている基準方向を上書きするのは bdo 要素での指定だけであることに注意してください。