双方向テキストモジュール

since: 31st/Aug./2001; last modified: 13th/Sep./2001

テキスト拡張モジュールには、次の三つのモジュールが含まれています:

  1. プレゼンテーションモジュール: DTD
  2. 編集モジュール: DTD
  3. 双方向テキストモジュール: DTD

ここでは、双方向テキストモジュールに含まれる要素タイプを紹介します。この要素タイプはテキストレベル (Inline) 要素です。

双方向テキスト・モジュール [私訳]
bdo
要素 属性 最小内容モデル
bdo Core, dir* ("ltr" | "rtl") (PCDATA | Inline)*

このモジュールが使われるときは、 bdo 要素が、テキスト・モジュールの内容セット Inline に追加されます。また、属性 dir* ("ltr" | "rtl") を、属性集合 I18N に加えます。

bdo 要素は、内容のテキスト方向を明示的に示します。Unicode では通常、当該文字が属する言語毎にテキスト方向も情報として含んでいます。しかし、この要素内では、それらの暗黙的に決定しているテキスト方向が無視され、 dir 属性値に上書きされます。

名前bdo
分類Inline
意味bidirectional over-ride
日本語双方向アルゴリズムの上書き

内容モデル

文字データとテキストレベルの要素 (Inline) が許されます。

属性

Core
dir = ltr | rtl

サンプル

基本的な使い方は、当該文書の 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>
012
(0, 0) (0, 1) (0, 2)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1) (2, 2)
123456789

dir 属性は属性セット I18N に含まれており、殆ど全ての要素タイプで定義されています。しかし、ユニコードで固有に定義されている基準方向を上書きするのは bdo 要素での指定だけであることに注意してください。


Copyright © 2001, SUGAI, Manabu. All rights reserved. 著作権は放棄していません。