[top] [previous] [next]

 

4. 表構造リストの保存形式

本章ではH3-Codeの外部ファイルの構造について説明する.


4.1 H3-Codeファイルパッケージ

本節では,H3-Codeの外部ファイルの構成について説明する.
H3-Codeファイルパッケージは,一つの文書内のデータを管理するための外部ファイル集合である.

外部ファイルには,一つの文書に配置される複数の表に対するデータを保存することができる.
一つの文書には,通常複数の表と様々なコンテンツが配置される.
これらのデータを効率よく管理するために,次のような3種類のファイル構造を定義する.


H3-Codeの外部ファイルは,3種類のファイルから構成される.

  1. HLTC (HLIST for a Table Cell)
    HLTCは,一つの表を表現するファイルである.
    このファイルは,3章で説明した表の抽象的なデータ構造に対するデータを保存する.
  2. HCContent (Contents List for H3-Code)
    HCContentは,表内部に配置されるコンテンツに対するデータを保存するために使用される.
    各セルに対するリンクや文字列データ,コンテンツに対するリンク等が記述される.
  3. HCTableLayer(Table Layers for H3-Code)
    HCTableLayerは,複数の表を管理するために使用される.

4.2 HLTC: 表構造リスト用ファイル

表構造リスト用ファイル(HLTC: HLIST for a Table Cell)


表構造リスト用ファイル(HLTC)は,拡張子htcのテキストファイルである.
HTCファイルは,ヘッダー部セル部の2つの部分に分けられる.

(1)ヘッダー部
 ファイルの必ず先頭1行目に記述される情報である.
 ヘッダー部には,次の情報が空白文字で区切られて順に記述される.(各情報は整数値)

 1. HTC Version: バージョン情報である.HTC Versionは,整数値である.
 2. Row Size:    行のサイズ行数).Row Sizeは,整数値である.
 3. Column Size: 列のサイズ列数).Column Sizeは,整数値である.
1 3 3
% ヘッダー部の例
% H3-Code Version=1.0, ROW=3, COLUMN=3

 

注意: ヘッダー部は,必ず1行目に記述される.コメント行や空行もいれてはならない.

 

 

(2)セル部
 ヘッダの下にはセル部が続く.
 1つのセルは1行で表される.
 セルを表す1行には次の情報が空白文字で区切られて並ぶ.
  1. 基本情報
    01. node id : 
      セル番号を表し,"3.4節(2)のnode id"と対応する.
      1以上の整数値である.
    0はNULLを表す.(0番は,通常ファイルには書き出されない.) 02. cell type : セルの型情報を表す. 値は,次の整数値である. (1) 値が0のとき,型はPerimeter Cellである. (2) 値が1のとき,型はCellである.
    03. nwe_left : 北壁のためのポインタである. "3.4節(1)のnwe_left"に対応する. 北壁がこのセルの左側のどのセルと等しいかを表し,値はその北壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 04. swe_left : 南壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 南壁がこのセルの左側のどのセルと等しいかを表し,値はその南壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 05. nwe_right: 北壁のためのポインタである. "3.4節(1)のnwe_right"に対応する. 北壁がこのセルの右側のどのセルと等しいかを表し,値はその北壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 06. swe_right : 南壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 南壁がこのセルの右側のどのセルと等しいかを表し,値はその南壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 07. wwe_upper : 西壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 西壁がこのセルの上側のどのセルと等しいかを表し,値はその西壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 08. ewe_upper : 東壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 東壁がこのセルの上側のどのセルと等しいかを表し,値はその東壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 09. wwe_lower : 西壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 西壁がこのセルの下側のどのセルと等しいかを表し,値はその西壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 10. ewe_lower : 東壁のためのポインタである. "3.4節(1)のswe_left"に対応する. 東壁がこのセルの下側のどのセルと等しいかを表し,値はその東壁が等しいセルの"node id"である. 値は0以上の整数値である. 値0は,NULLを表す. 11. north wall :  北壁の位置を表す値である. "3.4節(2)のnorth wall"に対応する. 値は,平面にこのセルを描画した場合の北壁のX座標(横方向の座標)である. 値は,0以上の整数値である. 12. south wall : 南壁の位置を表す値である. "3.4節(2)の"south wall"に対応する. 値は,平面にこのセルを描画した場合の南壁のX座標(横方向の座標)である. 値は,0以上の整数値である. 13. west wall : 西壁の位置を表す値である. "3.4節(2)の"west wall"に対応する. 値は,平面にこのセルを描画した場合の西壁のY座標(縦方向の座標)である. 値は,0以上の整数値である. 14. east wall : 東壁の位置を表す値である. "3.4節(2)の"east wall"に対応する. 値は,平面にこのセルを描画した場合の東壁のY座標(縦方向の座標)である. 値は,0以上の整数値である. 15. content id : セル内部に配置するコンテンツの情報へのポインタである. "3.4節(2)のcontent"に対応する. 値は,HCContentファイル内の1つのコンテンツを識別するための番号である. 値は整数値である. 値0は,コンテンツが無い空の状態(NULL)を表す. 16. content align : コンテンツの配置情報である. "3.4節(2)のalign"に対応する.
    値は0以上の整数値である. 上の"content id"の値が0の時は,値が0である. それ以外のときは,値と配置の対応は次の通りである. 配置(1): 「左揃え」 = 1 配置(2): 「中央揃え」 = 2 配置(3): 「右揃え」 = 3
  2. 拡張情報
       表を拡張するための情報である.
       この部分は記述されなくても構わない.
       拡張情報を記述する場合は,基本情報に続いて次の項目の順番通りに記述する.
       項目を使用しない場合は,0と記述する.
    
    
    
    17. e_point :
         H3-Code対応XMLファイルへの変換の際に利用する"e_point"に対する値である.
         "3.4節(2)のe_point"に対応する.
         値は次の通りである.
    
         使用しない = 0,
         true = 1,
         false = 2,
    	 
    	 
    	 
  3. セル部の制約
    セル部は次の制約をもつ.

    1. 各行は,セルIDが1であるセルから始まり,2,3,4,...と昇順に続くものとする.

 

10 1 9 6 11 12 7 20 17 14 100 200 100 200 0 0 0
% id=10, cell type=Cell, nwe_left=9, ..., north wall=100, south wall = 200, ...

 

 

(3)その他

1. %で始まる行はコメント行である.

2. 何もかかれていない行(改行コードのみの行)は,意味を持たない.
つまり,何もかかれていない改行だけの行をファイル内に加えても影響はない.

 

1 3 3

1 0 0 0 19 19 0 0 5 5 0 0 0 0 0 0 0
2 0 21 21 0 0 0 0 8 8 0 0 0 0 0 0 0
3 0 0 0 16 16 13 13 0 0 0 0 0 0 0 0 0
4 0 18 18 0 0 15 15 0 0 0 0 0 0 0 0 0
5 0 0 0 6 7 1 1 9 9 0 0 0 0 0 0 0
6 1 5 9 7 10 19 19 10 16 0 200 0 100 0 0 0
7 1 6 5 8 8 20 21 10 11 0 100 100 300 0 0 0
8 0 7 7 0 0 2 2 12 12 0 0 0 0 0 0 0
9 0 0 0 10 6 5 5 13 13 0 0 0 0 0 0 0
10 1 9 6 11 12 7 20 17 14 100 200 100 200 0 0 0
11 1 10 14 12 15 21 7 18 18 100 300 200 300 0 0 0
12 0 11 10 0 0 8 8 15 15 0 0 0 0 0 0 0
13 0 0 0 14 14 9 9 3 3 0 0 0 0 0 0 0
14 1 13 13 15 11 6 10 16 17 200 300 0 200 0 0 0
15 0 14 11 0 0 12 12 4 4 0 0 0 0 0 0 0
16 0 3 3 17 17 14 16 0 0 0 0 0 0 0 0 0
17 0 16 16 18 18 10 14 0 0 0 0 0 0 0 0 0
18 0 17 17 4 4 11 11 0 0 0 0 0 0 0 0 0
19 0 1 1 20 20 0 0 6 6 0 0 0 0 0 0 0
20 0 19 19 21 21 0 0 7 10 0 0 0 0 0 0 0
21 0 20 20 2 2 0 0 10 7 0 0 0 0 0 0 0
%HLTC例

4.3 HCContent: H3-Code用コンテンツリストファイル

HCContentは,コンテンツを管理するためのファイルである.
拡張子は,hccである.
このファイルは,ヘッダー部とコンテンツ部に分かれる.

(1)ヘッダー部
ファイルの必ず先頭1行目に記述される.
ヘッダー部には,次の情報が空白文字で区切られて順に記述される.(各情報は整数値

1. H3-Code Version : H3-Codeのバージョン情報である.
2. Contents : コンテンツ数

(2)コンテンツ部
 ヘッダー部に続いてコンテンツ部が記述される.
 1行が,1コンテンツに対応する.
 1つのコンテンツは,次の情報からなる.
1. content id : コンテンツの識別番号を表す整数値 同じcontent idをもつコンテンツはあってはならない. つまり,1つのコンテンツに対応するcontent idは一つである. 値は,1以上である. 2. content type : コンテンツのデータ型を表す番号. 値は次の整数値である. 型(1): テキスト型 = 1, 型(2): HTML型 = 100, 型(3): RFT(Rich Formatte Text)型: = 101, 型(4): イメージ型 = 102, 3. object : コンテンツまたはコンテンツへのリンクを表す文字列 ダブルクォート(“)で囲まれた文字列を記述する. 他のファイルへのリンクは,link: に続けてファイルへの(絶対もしくは相対)パスを記述する. 例:"link:./sample.gif"

4.4 HCTableLayer: H3-Code用テーブル階層ファイル


複数の表を管理するためのファイルである.
拡張子は,htlである.
HLTCとHCContentの2つのファイルで,一つのコンテンツ付き表を構成することができるが
それだけでは,複数の表に対応できない.
そのため,このファイルは,複数の表に対応するために使用される.

このファイルは,未実装である.
次回バージョンアップへの提案である.

 

[top] [previous] [next]