X 4153 : 1998 (ISO/IEC 10179 : 1996)
(1)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
まえがき
この規格は,工業標準化法に基づいて,日本工業標準調査会の審議を経て,通商産業大臣が制定した日
本工業規格である。この規格は,JIS X 4151に適合するSGML文書のフォーマット処理指定及び変換処理
指定を行うために用いる,文書スタイル意味指定言語に必要となる規定を定めている。
JIS X 4153には,次に示す附属書がある。
附属書A(参考) その他の情報
X 4153 : 1998 (ISO/IEC 10179 : 1996)
(1)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
目次
ページ
0. 導入 ······························································································································ 1
0.1 背景 ···························································································································· 2
1. 適用範囲 ························································································································ 2
2. 適合性 ··························································································································· 3
3. 引用規格 ························································································································ 4
4. 定義 ······························································································································ 5
5. 記法及び規約 ·················································································································· 7
5.1 構文規則 ······················································································································ 7
5.2 手続き原型 ··················································································································· 7
6. DSSSL概要 ···················································································································· 8
6.1 標準化の領域 ················································································································ 8
6.2 概念モデル ··················································································································· 9
6.3 DSSSL言語 ··················································································································· 9
6.3.1 変換言語 ···················································································································· 9
6.3.1.1 変換処理の構成要素 ·································································································· 10
6.3.1.2 符号化文字,文字及びグリフ識別子のモデル ································································· 11
6.3.2 スタイル言語 ············································································································· 12
6.3.2.1 フォーマット処理の構成要素 ······················································································ 12
6.3.2.2 グローブ構築処理 ····································································································· 12
6.3.2.3 流し込みオブジェクト木 ···························································································· 13
6.3.2.4 流し込みオブジェクトクラス ······················································································ 13
6.3.2.5 領域 ······················································································································· 14
6.3.2.6 ページ及び段幾何構成 ······························································································· 14
6.3.2.7 式言語 ···················································································································· 15
6.3.2.8 符号化文字,文字及びグリフ識別子のモデル ································································· 15
7. DSSSL指定 ··················································································································· 15
7.1 DSSSL文書体系 ············································································································ 16
7.1.1 機能 ························································································································· 21
7.1.2 SGMLグローブ設計 ···································································································· 21
7.1.3 文字レパートリ ·········································································································· 21
7.1.4 標準文字 ··················································································································· 21
7.1.5 その他の文字 ············································································································· 22
7.1.6 符号化基本集合 ·········································································································· 22
7.1.7 リテラル記述文字 ······································································································· 23
7.1.8 SDATA実体対応 ········································································································· 23
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(2)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
7.1.9 分離文字 ··················································································································· 23
7.1.10 名前文字 ·················································································································· 23
7.1.11 組合せ文字 ··············································································································· 23
7.2 公開識別子 ·················································································································· 23
7.3 字句規約 ····················································································································· 23
7.3.1 大文字と小文字との区別 ······························································································ 23
7.3.2 識別子 ······················································································································ 24
7.3.3 トークン,空白類文字及び注釈 ····················································································· 24
8. 式言語 ·························································································································· 25
8.1 式言語の概要 ··············································································································· 25
8.2 基本概念 ····················································································································· 26
8.2.1 変数及び領域 ············································································································· 26
8.2.2 真及び偽 ··················································································································· 26
8.2.3 外部表現 ··················································································································· 26
8.2.4 型の独立性 ················································································································ 26
8.3 式 ······························································································································ 27
8.3.1 基本型の式 ················································································································ 27
8.3.1.1 変数参照 ················································································································· 27
8.3.1.2 リテラル ················································································································· 27
8.3.1.3 手続き呼出し ··········································································································· 28
8.3.1.4 lambda式 ················································································································ 28
8.3.1.5 条件式 ···················································································································· 30
8.3.2 派生式の型 ················································································································ 30
8.3.2.1 cond式 ··················································································································· 30
8.3.2.2 case式 ···················································································································· 31
8.3.2.3 And式 ···················································································································· 31
8.3.2.4 Or式 ······················································································································ 31
8.3.2.5 束縛構成子式 ··········································································································· 31
8.3.2.6 名前付きlet ············································································································· 33
8.3.2.7 クアジクォート ········································································································ 33
8.4 定義 ··························································································································· 34
8.5 標準手続き ·················································································································· 35
8.5.1 論理型 ······················································································································ 36
8.5.1.1 否定 ······················································································································· 36
8.5.1.2 論理型判定 ·············································································································· 36
8.5.2 等価 ························································································································· 36
8.5.3 対及びリスト ············································································································· 37
8.5.3.1 対型判定 ················································································································· 38
8.5.3.2 対構成手続き ··········································································································· 38
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(3)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
8.5.3.3 手続きcar················································································································ 38
8.5.3.4 手続きcdr ··············································································································· 38
8.5.3.5 c...r手続き ··············································································································· 39
8.5.3.6 空リスト型判定 ········································································································ 39
8.5.3.7 リスト型判定 ··········································································································· 40
8.5.3.8 リスト構成 ·············································································································· 40
8.5.3.9 リスト長 ················································································································· 40
8.5.3.10 リスト連結 ············································································································ 40
8.5.3.11 リスト反転············································································································· 40
8.5.3.12 部分リスト抽出 ······································································································ 40
8.5.3.13 リスト参照 ············································································································ 41
8.5.3.14 リスト要素 ············································································································ 41
8.5.3.15 関連リスト ············································································································ 41
8.5.4 シンボル ··················································································································· 41
8.5.4.1 シンボル型判定 ········································································································ 42
8.5.4.2 シンボルから文字列への変換 ······················································································ 42
8.5.4.3 文字列からシンボルヘの変換 ······················································································ 42
8.5.5 キーワード ················································································································ 42
8.5.5.1 キーワード型判定 ····································································································· 43
8.5.5.2 キーワードから文字列への変換 ··················································································· 43
8.5.5.3 文字列からキーワードへの変換 ··················································································· 43
8.5.6 名前付き定数 ············································································································· 43
8.5.7 数量及び数値 ············································································································· 43
8.5.7.1 数型 ······················································································································· 43
8.5.7.2 正確性 ···················································································································· 44
8.5.7.3 実装の制限 ·············································································································· 44
8.5.7.4 数値定数構文 ··········································································································· 45
8.5.7.5 数値型判定 ·············································································································· 46
8.5.7.6 正確性判定 ·············································································································· 46
8.5.7.7 大小判定 ················································································································· 46
8.5.7.8 数値特性判定 ··········································································································· 47
8.5.7.9 最大・最小関数 ········································································································ 47
8.5.7.10 加算 ····················································································································· 47
8.5.7.11 乗算 ····················································································································· 47
8.5.7.12 減算 ····················································································································· 47
8.5.7.13 除算 ····················································································································· 48
8.5.7.14 絶対値 ·················································································································· 48
8.5.7.15 整数除算 ··············································································································· 48
8.5.7.16 実数から整数への変換······························································································ 49
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(4)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
8.5.7.17 en及び自然対数 ······································································································· 49
8.5.7.18 三角関数 ··············································································································· 49
8.5.7.19 逆三角関数 ············································································································ 49
8.5.7.20 平方根関数 ············································································································ 50
8.5.7.21 指数関数 ··············································································································· 50
8.5.7.22 正確値変換 ············································································································ 50
8.5.7.23 数量から数値への変換······························································································ 50
8.5.7.24 数値から文字列への変換 ··························································································· 50
8.5.7.25 文字列から数値への変換 ··························································································· 51
8.5.8 文字 ························································································································· 51
8.5.8.1 文字特性 ················································································································· 52
8.5.8.2 言語依存操作 ··········································································································· 52
8.5.8.2.1 言語定義 ··············································································································· 53
8.5.8.2.1.1 照合 ·················································································································· 53
8.5.8.2.1.2 文字の大小変換···································································································· 54
8.5.8.3 文字型判定 ·············································································································· 54
8.5.8.4 文字比較判定 ··········································································································· 54
8.5.8.5 大小無視の文字判定 ·································································································· 54
8.5.8.6 文字の大小変換 ········································································································ 55
8.5.8.7 文字特性 ················································································································· 55
8.5.9 文字列 ······················································································································ 55
8.5.9.1 文字列型判定 ··········································································································· 55
8.5.9.2 文字列生成 ·············································································································· 55
8.5.9.3 文字列長 ················································································································· 56
8.5.9.4 文字列アクセス ········································································································ 56
8.5.9.5 文字列等価性 ··········································································································· 56
8.5.9.6 文字列比較 ·············································································································· 56
8.5.9.7 部分文字列抽出 ········································································································ 56
8.5.9.8 文字列の付加 ··········································································································· 56
8.5.9.9 文字列とリストとの間の変換 ······················································································ 56
8.5.10 手続き ····················································································································· 57
8.5.10.1 手続き型判定 ········································································································· 57
8.5.10.2 手続き適用 ············································································································ 57
8.5.10.3 リスト間対応手続き································································································· 57
8.5.10.4 外部手続き ············································································································ 57
8.5.11 日付及び時間 ············································································································ 58
8.5.12 誤り発生 ·················································································································· 58
8.6 中核式言語 ·················································································································· 58
8.6.1 構文 ························································································································· 58
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(5)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
8.6.2 手続き ······················································································································ 59
9. グローブ ······················································································································· 60
9.1 ノード型 (nodal) 特性 ···································································································· 61
9.2 グローブ設計 ··············································································································· 62
9.3 特性集合定義 ··············································································································· 63
9.3.1 共通属性 ··················································································································· 63
9.3.1.1 構成要素名 ·············································································································· 63
9.3.1.2 規格文書 ················································································································· 63
9.3.2 モジュール ················································································································ 64
9.3.3 データ型定義 ············································································································· 64
9.3.4 クラス定義 ················································································································ 65
9.3.5 特性定義 ··················································································································· 65
9.3.6 正規化規則定義 ·········································································································· 66
9.4 内在特性 ····················································································································· 66
9.5 補助グローブ ··············································································································· 68
9.6 SGML特性集合 ············································································································ 68
9.7 DSSSL SGMLグローブ設計 ···························································································· 108
10. 標準文書照会言語 (SDQL) ····························································································· 108
10.1 基本手続き ················································································································ 109
10.1.1 応用束縛 ················································································································· 109
10.1.2 ノードリスト ··········································································································· 109
10.1.3 名前付きノードリスト ······························································································· 109
10.1.4 エラー報告 ·············································································································· 110
10.1.5 応用名変換 ·············································································································· 110
10.1.6 特性値 ···················································································································· 110
10.1.7 SGMLグローブ構築 ·································································································· 111
10.2 派生手続き ················································································································ 111
10.2.1 HyTime支援 ············································································································ 111
10.2.2 リスト手続き ··········································································································· 114
10.2.3 共通特性操作 ··········································································································· 120
10.2.4 核照会言語 ·············································································································· 126
10.2.4.1 探査 ···················································································································· 126
10.2.4.2 計数 ···················································································································· 127
10.2.4.3 属性値のアクセス··································································································· 127
10.2.4.4 現所在の判定 ········································································································ 128
10.2.4.5 実体及び記法 ········································································································ 128
0.2.4.6 名前正規化 ············································································································· 129
10.2.5 SGML特性操作 ········································································································ 130
10.3 補助解析 ··················································································································· 131
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(6)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
10.3.1 単語検索 ················································································································· 131
10.3.2 ノード正規式 ··········································································································· 132
10.3.3 正規式構築子 ··········································································································· 132
10.3.4 正規式探索手続き ····································································································· 133
11. 変換言語 ···················································································································· 133
11.1 機能 ························································································································· 134
11.2 関連 ························································································································· 134
11.3 変換式 ······················································································································ 135
11.3.1 部分グローブ指定 ····································································································· 135
11.3.2 生成指定 ················································································································· 136
11.3.3 結果ノードリスト ····································································································· 137
11.3.4 変換グローブ指定 ····································································································· 138
11.3.5 SGML前書き解析 ····································································································· 138
11.4 SGML出力処理 ·········································································································· 139
11.4.1 検証対応 ················································································································· 139
11.41.2 文字変換 ··············································································································· 140
12. スタイル言語 ·············································································································· 140
12.1 機能 ························································································································· 141
12.2 流し込みオブジェクト木 ······························································································ 142
12.3 領域 ························································································································· 142
12.3.1 行外領域 ················································································································· 143
12.3.2 行内領域 ················································································································· 145
12.3.3 行内及び行外の流し込みオブジェクト ·········································································· 148
12.3.4 添付領域 ················································································································· 148
12.4 流し込みオブジェクト木構成 ························································································ 149
12.4.1 構成規則 ················································································································· 149
12.4.2 主要流し込みオブジェクト ························································································· 151
12.4.3 Sosofo ···················································································································· 152
12.4.4 並行処理機能 ··········································································································· 154
12.4.5 型style ··················································································································· 154
12.4.6 特質指定 ················································································································· 155
12.4.7 流し込みオブジェクトの同期 ······················································································ 157
12.5 共通データ型及び共通手続き ························································································ 158
12.5.1 レイアウト主導の生成テキスト ··················································································· 158
12.5.1.1 間接sosofoの構成 ·································································································· 159
12.5.1.2 レイアウト番号付け································································································ 159
12.5.1.3 参照値 ················································································································· 161
12.5.2 長さ指定 ················································································································· 162
12.5.3 修飾領域 ················································································································· 162
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(7)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
12.5.4 空き ······················································································································· 163
12.5.4.1 行外空き ·············································································································· 163
12.5.4.2 行内空き ·············································································································· 163
12.5.5 グリフ識別子 ··········································································································· 163
12.5.6 グリフ代替表 ··········································································································· 164
12.5.7 フォント情報 ··········································································································· 164
12.5.8 番地 ······················································································································· 165
12.5.9 カラー ···················································································································· 166
12.6 流し込みオブジェクトクラス ························································································ 167
12.6.1 列流し込みオブジェクトクラス (Sequence) ···································································· 167
12.6.2 行外グループ流し込みオブジェクトクラス (Display-group) ··············································· 167
12.6.3 単純ページ流し込みオブジェクトクラス (simple-page-sequenoe) ········································· 168
12.6.4 ページ列流し込みオブジェクトクラス (page-sequence) ····················································· 170
12.6.4.1 ページモデル (page-model) ······················································································· 171
12.6.5 段集合列流し込みオブジェクトクラス (column-set-sequence) ············································· 173
12.6.5.1 段集合モデル (column-set-model) ··············································································· 175
12.6.6 段落流し込みオブジェクト (Paragraph) ········································································· 183
12.6.6.1 行間調整 ·············································································································· 189
12.6.7 段落分割流し込みオブジェクト (paragraph-break) ···························································· 189
12.6.8 行フィールド流し込みオブジェクト (line-field)······························································· 190
12.6.9 側線流し込みオブジェクト (sideline) ············································································ 190
12.6.10 びょう(錨)流し込みオブジェクトクラス (anchor) ······················································· 191
12.6.11 文字流し込みオブジェクトクラス (character) ································································ 192
12.6.11.1 文字特性 ············································································································· 196
12.6.12 リーダけい(罫)流し込みオブジェクト (leader) ··························································· 198
12.6.13 埋込みテキスト流し込みオブジェクト (embedded-text) ··················································· 199
12.6.14 けい(罫)線流し込みオブジェクト (rule) ··································································· 200
12.6.15 外部グラフィック流し込みオブジェクトクラス (external-graphic) ······································ 203
12.6.16 取り込みコンテナ領域流し込みオブジェクト (Included-container-area) ································ 206
12.6.17 傍線・抹消線 (score) ······························································································· 210
12.6.18 囲みけい(罫)流し込みオブジェクト (box)································································· 212
12.6.19 並び流し込みオブジェクト (side-by-side) ····································································· 216
12.6.20 並び対象流し込みオブジェクト (side-by-side-item) ························································· 217
12.6.21 グリフ修飾流し込みオブジェクト (glyph-annotation) ······················································· 218
12.6.22 そろ(揃)え点流し込みオブジェクト (alignment-point) ·················································· 219
12.6.23 そろ(揃)い段流し込みオブジェクト (aligned-column) ·················································· 219
12.6.24 複数行行内注釈流し込みオブジェクト (multi-line-inline-note) ··········································· 221
12.6.25 強調マーク流し込みオブジェクト (emphasizing-mark) ····················································· 222
12.6.26 数式用流し込みオブジェクトクラス ··········································································· 223
X 4153 : 1998 (ISO/IEC 10179 : 1996) 目次
(8)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
12.6.26.1 数式列流し込みオブジェクト (math-sequence) ····························································· 223
12.6.26.2 数式解除流し込みオブジェクト (unmath) ··································································· 223
12.6.26.3 下付き流し込みオブジェクト (subscript) ···································································· 224
12.6.26.4 上付き流し込みオブジェクト (superscript) ·································································· 224
12.6.26.5 文字付き流し込みオブジェクト (script) ····································································· 225
12.6.26.6 マーク流し込みオブジェクト (mark)········································································· 226
12.6.26.7 フェンス流し込みオブジェクト (fence) ····································································· 226
12.6.26.8 除算流し込みオブジェクト (fraction) ········································································ 227
12.6.26.9 根号流し込みオブジェクト (radical)·········································································· 228
12.6.26.10 数学演算子流し込みオブジェクト (math-operator) ······················································ 228
12.6.26.11 格子流し込みオブジェクト (grid) ··········································································· 228
12.6.26.12 格子セル流し込みオブジェクト (grid-cell) ································································ 229
12.6.27 表用流し込みオブジェクト ······················································································· 230
12.6.27.1 表流し込みオブジェクト (table) ··············································································· 230
12.6.27.2 表部部分流し込みオブジェクト (table-part) ································································ 233
12.6.27.3 表列流し込みオブジェクト (table-column) ·································································· 234
12.6.27.4 表の幅の自動計算 ································································································· 236
12.6.27.5 表行流し込みオブジェクト (table-row) ······································································ 236
12.6.27.6 表セル流し込みオブジェクト (table-cell) ···································································· 236
12.6.27.7 表けい(罫)線流し込みオブジェクト (table-border) ···················································· 238
12.6.28 オンライン表示用流し込みオブジェクトクラス····························································· 239
12.6.28.1 スクロール流し込みオブジェクト (scroll) ·································································· 239
12.6.28.2 複数モード流し込みオブジェクトクラス (multi-mode) ·················································· 240
12.6.28.3 リンク流し込みオブジェクト (link) ·········································································· 241
12.6.28.4 余注流し込みオブジェクト (marginalia) ····································································· 241
附属書A(参考) その他の情報 ·························································································· 242
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本工業規格 JIS
X 4153 : 1998
(ISO/IEC 10179 : 1996)
文書スタイル意味指定言語
(DSSSL)
Information technology−Processing Languages−
Document Style Semantics and Specification Language (DSSSL)
序文 この規格は,1996年に第1版として発行されたISO/IEC 10179,Information technology−Processing
Languages−Document Style Semantics and Specification Language (DSSSL) を翻訳し,技術的内容を変更する
ことなく作成した日本工業規格である。
0. 導入
この規格は,SGML文書のフォーマット処理指定及びSGML文書の変換処理指定を行うために用いる文
書スタイル意味指定言語 (Document Style Semantics and Specification Language ; DSSSL) を規定する。
DSSSLは,SGML文書を異なる文書型定義 (DTD) に従ってマーク付けしたSGML文書へ変換すること,
並びにSGML文書を紙及び電子媒体のためのフォーマット処理することを,第一の目標としている。
DSSSLは,DTDに制約を加えたり修正を必要としたりすることなく,任意のSGML文書とともに利用で
きる。
この規格の主な目的は,フォーマット処理指定及び他の文書処理指定を,形式的で厳密な方法によって
記述する言語を提供することにある。DSSSLを利用することによって,多様なフォーマタがそれらの指定
を直接実行でき,変換機構を用いても実行できる。
DSSSLスタイル言語は,組み処理・レイアウト処理・ページ割りの際,多様なオブジェクトへの多種の
フォーマット処理の適用を,利用者指定可能にする。DSSSL変換言語は,あるSGML応用から他の応用
への変換を指定可能にする。
DSSSLは,文書のクラスに適用する指定記述を目的として設計されている。その指定は,特定の文書に
適用できると同時に,その応用に適合するすべてのSGML文書に適用できる。
DSSSL指定言語は宣言的であって,通常は完全なプログラム言語と関連する構成子を含んでいる。しか
し,完全なプログラム言語を意図して設計されていない。DSSSL指定は,異なる処理系間であいまい(曖
昧)さなく構文解析でき,解釈できる。さらに,DSSSL指定は,DSSSL処理系及び翻訳処理系を前置する
ことによって,既存のフォーマット処理系においても利用できる。DSSSLは,バッフォーマット処理系に
も,対話フォーマット処理系にも偏らない。フォーマット処理アルゴリズムに関しては,規格では定義せ
ず,事前に記述もしない。
DSSSLが規定するフォーマット処理の意味は,流し込みオブジェクトと呼ぶ基本構造の集合に基づき,
その流し込みオブジェクトに適用するフォーマット処理特質の集合に基づく。DSSSLは,意味構成子を新
規に定義する機構及び意味構成子を拡張する機構を提供して,設計者の応用環境への最適化を可能とする。
2
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
0.1
背景
DSSSLの背後にある概念は,共通符号化,特に標準一般マーク付け言語SGML (ISO 8879) の発展と関
連している。
歴史的には,電子原稿は,文書を特定の方法でフォーマットするための,制御コード又はマクロを含ん
でいた(現在の用語では,これを特定符号化と呼ぶ。)。それとは異なり,60年代に始まった共通符号化で
は,記述的タグを用いる。例えば,“3行空き,14ポイント,ボドニ書体”とは記述せず,その意味を表す
“見出し”という名のタグを用いて記述する。共通符号化の中心的概念は,文書の情報内容から,その内
容のフォーマット又は体裁を分離することにある。70年代初期に,共通符号化の概念は明確になり,SGML
の開発として結実した。
SGMLは,文書のクラスをモデル化する言語であるが,その規格では特定のモデル又は定義済みのタグ
集合を規定していない。SGMLを文書のクラスに適用する規則集合をSGML応用と呼び,主にDTD及び
その支援文書から成る。
SGMLは文書構造の表現法を標準化するが,フォーマタ及び他の一般目的の変換処理系とのインタフェ
ースを行うための技法を,利用者が独自に開発する余地を残している。DSSSLは,この第二のクラスの応
用を支援する。それは,標準化した枠組内において,利用者の指定の交換を可能としながら,フォーマッ
ト処理指定及び他の処理指定のための標準化した体系を提供することによって行う。
DSSSL指定は,通常,その指定を適用するSGML文書の外部にある。したがって,一つのSGML文書
に対して複数の指定を適用でき,同一データの様々な表現が可能になる。
SGMLを用いることによって,一方では文書の本質的内容とその構造との区別が可能となり,他方では
構造に関する処理指定が可能となる。DSSSLを用いることによって,フォーマット及び他の処理指定を
SGML文書とともに交換でき,標準化した文書表示指定を提供しながらも,内容とフォーマットとの本質
的な区別を保存できる。
1. 適用範囲
この規格は,適合SGML文書の処理指定を目的として設計されている。
DSSSLは,文書の処理指定を目的とし,次に示す二つの言語に関して,その構文・意味・処理モデルを
定義する。
a) 変換言語。一つ以上のDTDに従ってマーク付けした適合SGML文書を,他のDTDに従ってマーク付
けしたSGML文書へ変換する処理のために用いる。この変換処理の指定は,この規格が完全に規定す
る。
b) スタイル言語。フォーマット処理特質の集合をデータ部分に適用して結果を得る処理において使用す
る。したがって,この言語による指定は,応用が必要とする程度に正確だが,行末・段末などのフォ
ーマット処理上の決定は,組み処理及びレイアウト処理に任せている。
DSSSLスタイル言語は,単純な一段組みから複雑な段組みに至る,広い範囲の様々な環境においての使
用を意図している。この規格は,フォーマタを標準化せず,組み処理又はその他の処理のアルゴリズムも
標準化しない。この規格は,SGML文書にスタイル情報を関連させるための,“スタイル特質”の技法及
びその他の技法を,実装から外部化する手段を提供する。
DSSSLは,データ操作の目的で“外部処理”使用の指定を行う機構を提供する。これらの外部処理は,
その性質からDSSSLの適用範囲外だが,整列・目次作成などの典型的なデータ管理機能,特化したハイフ
ネーションアルゴリズムなどの典型的な組み処理機能,非SGMLデータのための画像処理又はマルチメデ
3
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ィア処理を含んでよい。
フォーマット済み文書又は階層構造情報若しくは共通マークを含まない文書は,この規格の適用範囲外
とする。
DSSSL指定は,入力文書を受け取り出力文書を生成する処理系が実行する処理を記述する。DSSSLは,
フォーマタの型,フォーマット処理系又は他の変換処理系の種別には依存しない。
DSSSLは,次の六つの構成子を含む。
a) SGML文書内のすべてのマークへのアクセス及び制御を行う機能を提供し,マーク付けされていない
データを操作する文字列処理の機構を提供する構成子。この構成子は,DSSSLの構成要素の標準文書
照会言語 (SDQL) が提供する。
備考 文字列処理は,表示の変更を示すだけの特殊なマークを入力文書に埋め込まずに済ますために
必要となる。行頭又は段落先頭において大きさを変えて行う大文字表示は,望ましい表示効果
実現のためには,最初の文字又は最初の文字グループを他から分離することを必要とし,文字
列処理が必要な場合の例となっている。
b) 変換処理への入力としての1個以上のSGML文書と,その処理の出力としての0個以上の結果SGML
文書との間の関係を指定するための規定。
c) 入力文書型定義によって記述されるSGML文書とフォーマット処理の結果との間の関係を指定する
ための規定。フォーマット処理は,標準ページ記述言語 (JIS X 4154) を出力してもよく,それ以外の
固有の形式の文書を出力してもよい。
d) 文書の組版スタイル及びレイアウトを記述するための規定。
e) DSSSL指定及びDSSSL指定の構成要素を表現する,機械処理可能な構文の定義。
f) 新規のDSSSL特質及びそれに関連する値,並びに新規の流し込みオブジェクトクラスを生成する機構。
それらは,DSSSL指定のフォーマット処理指定言語の宣言部で宣言する。
この規格は,電子出版及び従来の印刷の両方を含む,様々なSGML応用環境での使用を意図している。
2. 適合性
DSSSLは二つの独立した言語,すなわち変換言語及びスタイル言語を含み,それらによってSGML文
書の処理を指定する。DSSSL指定には多くの処理指定を含めることができ,各処理指定はスタイル言語又
は変換言語を用いる。スタイル言語を用いる処理指定をスタイル指定と呼び,変換言語を用いる処理指定
を変換指定と呼ぶ。
この規格のすべての規定に従うスタイル指定を,適合DSSSLスタイル指定とする。この規格のすべての
規定に従う変換指定を,適合DSSSL変換指定とする。
スタイル言語及び変換言語の両方において,幾つかの機能はオプションとする。各オプション機能は,
機能名称と関連付けられる。オプション機能を用いる処理指定は,要素型形式featuresを用いて宣言し,
関連する機能を利用可能にしなければならない。
適合DSSSL処理系は,スタイル言語・変換言語をそれぞれ単独にサポートするか,又はスタイル言語及
び変換言語の両方をサポートしなければならない。
適合DSSSL処理系のための支援文書は,処理系が変換言語又はスタイル言語を単独にサポートするか,
その両方をサポートするかを明示しなければならない。さらに,処理系がサポートする言語ごとに,どの
機能をサポートするかを明示しなければならない。
スタイル言語をサポートする適合DSSSL処理系は,その処理系の支援文書にサポートが記述されている
4
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
機能だけを利用可能にした任意の適合DSSSLスタイル指定を用いて,任意の適合SGML文書を処理でき
なければならない。
変換言語をサポートする適合DSSSL処理系は,その処理系の支援文書にサポートが記述されている機能
だけを利用可能とした任意の適合DSSSL変換指定を用いて,任意の適合SGML文書を処理できなければ
ならない。
3. 引用規格
次の規格に含まれる規定内容は,この規格の文中での引用によって,この規格の規定の一部となる。各
規格には,この規格の出版の際に有効であった版を表示してある。規格はすべて改訂の対象であり,この
規格に基づく合意の関係者は,次に示す規格の最新版の適用可能性を調べるのがよい。現在有効な国際規
格の登録維持は,ISO及びIECの構成員が行っている。
ISO 639 : 1988, Code for the representation of names of languages
JIS X 0304-1994 国名コード
備考 ISO/IEC 3166 : 1993, Codes for the representation of names of countriesが,この日本工業規格と
同等である。
JIS X 0211-1994 符号化文字集合用制御機能
備考 ISO/IEC 6429 : 1992, Information technology−Control functions for coded character setsが,この
日本工業規格に一致している。
ISO 8601 : 1988, Data elements and interchange formats−Information interchange−Representation of dates
and times
備考 JIS X 0301(日付及び時刻の表記)−1992が,この国際規格に対応(元号に関する規定を追
加)している。
ISO 8879 : 1986, Information processing−Text and office systems−Standard Generalized Markup Language
(SGML)
備考 JIS X 4151(文書記述言語SGML)−1992が,ISO 8879 : 1986及びISO 8879/Amendment 1 : 1988
の内容に,技術的追加及び編集上の変更を加えたものである。
JIS X 4172-1998 SGML公開テキスト所有者識別子
備考 ISO/IEC 9070 : 1991, Information technology−SGML support facilities−Registration procedures
for public text owner identifiersが,この日本工業規格に一致している。
JIS X 4161-1993 フォント情報交換 第1部 体系
備考 ISO/IEC 9541-1 : 1992, Information technology−Font information interchange−Part 1 :
Architectureが,この日本工業規格に一致している。
JIS X 4162-1993 フォント情報交換 第2部 交換様式
備考 ISO/IEC 9541-2 : 1992, Information technology−Font information interchange−Part 2 :
Interchange Formatが,この日本工業規格に一致している。
ISO/IEC 9945-2 : 1993, Information technology−Portable Operating System Interface (POSIX) −Part
2:Shell and utilities
JIS X 4154-1997 標準ページ記述言語SPDL
備考 ISO/IEC 10180 : 1995, Information technology−Processing languages−Standard Page Description
Language (SPDL) が,この日本工業規格に一致している。
5
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ISO/IEC 10646-1 : 1993, Information technology−Unversal Multiple−Octet Coded Character Set (UCS) −
Part 1 : Architecture and Basic Multilingual Plane
備考 JIS X 0221[国際符号化文字集合 (UCS) −第1部体系及び基本多言語面]−1995が,この
国際規格に対応(三つの附属書を付加)している。
JIS X 4155-1994 ハイパメディア及び時間依存情報の構造化言語 (HyTime)
備考 ISO/IEC 10744 : 1992, Information technology−Hypermedia/Time-based Structuring Language
(HyTime) が,この日本工業規格に一致している。
4. 定義
この規格には,ISO 8879の定義及び次の定義を適用する。
4.1
領域 (area) 固定の幅及び高さをもつ四角形であって,流し込みオブジェクトをフォーマット処理
して生成する。領域を表示媒体に可視化することによって,(図形,グリフ像などの)マークの集合を生成
する。
4.2
関連 (association) 照会式,変換式及び優先順位式から成る三つ組。優先順位式は,無指定時には
0と解釈する。関連は,変換処理を制御するために用いる。
4.3
原子流し込みオブジェクト (atomic flow object) ポートをもたない流し込みオブジェクト。
4.4
補助グローブ (auxiliary grove) 他のグローブ内のノードを解析することによって生成したグロー
ブ。
4.5
特質 (characteristic) 流し込みオブジェクトがもつ名前付きパラメタ。
4.6
完全グローブ (complete grove) 特性集合からすべてのクラス及び特性を選択したグローブ設計を
用いて構築したグローブ。
4.7
構成要素名 (component name) 特性集合内で定義した名前であって,参照具象構文名・応用名・
完全名の3形式をもつ。
4.8
生成起点 (creation origin) 結果グローブ内のノード位置を指定する際に起点とするノード。
4.9
子孫 (descendants) 子ノードの部分木の和集合。
4.10 列挙値 (enumerator) データ型enumerationのとり得る値。
4.11 流し込みオブジェクト (flow object) フォーマタが実行する処理の指定。流し込みオブジェクトは,
クラスをもつ。クラスは処理の種別を指定し,特質によって更にその詳細を指定する。
4.12 フォーマット処理系 (formatting process) スタイル言語によって,その処理の一部を指定される処
理系。
4.13 グローブ (grove) ノード型特性によってグラフ状に連結したノードの集合。グローブは,グロー
ブ設計を用いて構築する。
4.14 グローブ設計 (grove plan) 特性集合から選択したクラス及び特性の集合。
4.15 グローブ根 (grove root) グローブ内において起点をもたない,一意のノード。
4.16 内在特性 (intrinsic property) 特性集合の中で定義されることなく,自動的に特性集合の部分とな
る特性。
4.17 行進行方向 (line-progression-direction) 行内領域に関連する方向。行進行方向は,行内領域の行内
進行方向に直交する。
6
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
4.18 ノード型特性 (nodal property) ノード又はノードリストをその値とする特性。ノード型特性は,
その特性集合によって定義され,下位ノード (subnode) ・内部参照ノード (irefnode) ・非制限参照ノード
(urefnode) に分類できる。
4.19 ノード (node) 特性割当ての順序付き集合。ノードは,グローブの要素であって,グローブ構築に
用いるグローブ設計において定義するクラスに属する。
4.20 起点 (origin) ノードxに関して,xを含むノード集合を下位ノード (subnode) 特性として開示す
るノード。グローブ内のグローブ根以外の各ノードは,一意の起点をもつ。
4.21 起点下位ノード関係 (origin-to-subnode relationship) ノードの起点がもつ下位ノード (subnode)
特性であって,そのノードを値に含む。
4.22 ポート (port) 流し込みオブジェクト木内の流し込みオブジェクト上の点であって,そこに流し込
みオブジェクトの順序付き集合を付加できる。ポートは,流し込みオブジェクトの主要ポートとなるか,
名前付きポートとなる。
4.23 基本データ型 (primitive data type) 上位型をもたないデータ型。データ型の基本データ型は,そ
のデータ型が上位型をもたない場合にはデータ型そのものとなり,上位型をもつ場合,そのデータ型の上
位型の基本データ型となる。
4.24 特性割当て (property assignment) 特性名への特性値の割当て。
4.25 特性集合 (property set) 関連した定義をもつクラス及び特性の集合。
4.26 処理指定 (process specification) 処理指定要素内の指定と,その処理指定要素の使用を宣言した他
のすべての処理指定要素との組合せ。
4.27 処理指定要素 (process specification element) 要素型形式transformation-specification又は要素型形
式style-specificationのインスタンス。
4.28 処理指定部 (process specification part) 単一の処理指定要素に基づく処理指定の部分。属性useを
用いて参照しているすべての処理指定要素は,別の部とする。処理指定部は,それ以降のすべての処理指
定部に優先する。
4.29 (ノードの)兄弟 [siblings (of a node)] ノードの,起点下位ノード関係特性の値に出現するグロー
ブ内の他のノード。
4.30 流し込みオブジェクト列指定 (sosofo) 流し込みオブジェクト列の(生成に関する)指定。A
specification of a sequence of flow objectsの短縮形。
4.31 入力グローブ (source grove) 構文解析の結果,補助グローブを生成するグローブ。
4.32 見開き (spread) ページ列の中において連続する,裏ページ及び表ページの対。
4.33 ストリーム (stream) 流し込みオブジェクトのポートに付加した,流し込みオブジェクトの順序付
きリスト。
4.34 部分グローブ (subgrove) ノードとそのノードの下位ノード (subnode) 特性の値との和。
4.35 部分木 (subtree) ノードとその子の部分木との和。
参考 部分木は,ノード集合とその各要素の子の集合との和をとり,要素の重複を取り除く手続きを,
根ノードを一つだけ含む集合に適用して,手続きの入力となる集合の要素数と出力となる要素
数とが等しくなるまで,その出力への手続き適用を繰り返して得られるノード集合。
4.36 同期集合 (synchronization set) 異なるストリームに属しているが,相対位置を制約された流し込
みオブジェクトの集合。
7
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
4.37 変換処理系 (transformation process) 変換言語を用いて指定する処理系。変換処理は,1個以上の
SGML文書を0個以上のSGML文書に変換する。
4.38 木 (tree) 親をもたないノードの部分木。
4.39 検証グローブ (verification grove) SGML特性集合のすべてのクラス及び特性を含むグローブ設計
を用いて,結果グローブから生成したSGML文書又は副文書を構文解析して構築したグローブ。
4.40 区域 (zone) 段を構成する4部分,つまり上部浮動区域(区域top-float)・本文区域(区域body-text)・
下部浮動区域(区域bottom-float)・脚注区域(区域footnote)の一つとする。段集合領域コンテナに配置す
る領域の位置付けは,区域名でラベル付けることによって制御する。
5. 記法及び規約
5.1
構文規則
この規格は,次の例外を除き,ISO 8879と同様の形式構文で記述する。
式の列は,式が示された順で出現することを表す。演算子 (,) は,用いない。
出現指示子opt (?),出現指示子plus (+) 及び出現指示子rep (*) は,式の並びより高い優先順位をもち,
並びは接続子or (|) 及び接続子 (&) より優先する。したがって,次の二つの式は等価となる。
a b|c d*
(a b)|(c (d*))
構文リテラルは,等幅フォントを用いて次のとおりに示す。
syntactic-literal
構文規則では,orグループを囲むために二重角括弧 ([[]]) を用いることができる。この二重角括弧の意
味は,andグループと同様とする。しかし,orグループの任意の要素が出現指示子rep (*) 又は出現指示子
plus (+) をもつ場合,その要素は,そのグループの他の要素と入り交じって指示した回数だけ出現できる。
例えば,次の式は,a,b,c,dだけから成る並びを意味し,任意の数のa,1個以上のb,1個だけのc
及び多くとも1個のdを含むことを示す。
[[a*|b+|c|d?]]
5.2
手続き原型
各手続きは,手続き原型によって定義する。
(foo a b)
これは,識別子fooが最上位環境において手続きに束縛されており,二つの引数をもつことを示す。引
数の名前が型の名前である場合,その引数はその名前が示す型でなければならない。次の引数の命名規則
は,型の制限を意味する。
a) obj:任意のオブジェクト
b) list:リスト
c) q:数量
d) x:実数
e) y:実数
f) n:整数
g) k:正確値非負整数
h) string:文字列
手続きがキーワード引数を受け取る場合,原型は次の形式となる。
8
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(foo a b #!key key1: key2:)
これは,さらに二つのキーワード引数を受け取る手続きを示している。キーワード引数の名前は,引数
の指定に用いるキーワードを示し,型の制限はない。
6. DSSSL概要
一般化マーク付けのかぎ(鍵)となる特徴は,文書に関連するフォーマット処理及び文書に附属するそ
の他の処理情報と,文書に埋め込んだ共通タグとを分離していることにある。
どの一般化マーク付け方式においても,処理指定をSGMLマークに関連付けする方式が存在する。この
方式は,情報を要素の特定インスタンスに関連付けるだけでなく,一般の要素型,すなわちクラスにも関
連付けることができなければならない。DSSSLの主要な目的は,SGML文書又はSGML文書の一部の論
理マークに処理情報を関連付けするための,標準化した枠組み及び標準化した方式を提供することにある。
DSSSLは,要素の階層として構造化した文書とともに用いることを意図している。以降では,DSSSL
の概念を詳細に記述するためにSGMLの用語を用いる。
DSSSLは,フォーマット処理及び他の処理指定をこれらの論理要素に関連付け可能とし,その結果提示
のためのフォーマット済み文書を生成できる。例えば,設計者は,すべての章が新規の表ページで始まり,
表はページ幅規則に従うと同時にページの上又は下だけに位置付けると指定してよい。DSSSLの木構造変
換処理の際に,フォーマット処理情報を出力グローブに追加してよい。この情報は,SGML属性として表
現してよい。これらの情報は,更にフォーマット処理によって特定の値をもつ特質に変換されてよい。
6.1
標準化の領域
DSSSLは,次の四つの異なる標準化の領域を提供する。
a) 1個以上のSGML文書を0個以上のSGML文書に変換するための,言語及び処理モデル。
この言語を変換言語と呼ぶ。この変換は,変換指定を用いて制御する。変換指定は,関連のリスト
を含む。一つの関連には,照会式,変換式及びオプションの優先順位式の最大三つの部分から成る。
機能的には,新規の構造の作成,既存の構造の複製,既存の構造の並べ変え及びグループ変えを,関
連指定によって利用者が指定可能にする。
b) SGML文書にフォーマット処理特質の適用を指定するための言語。
フォーマット処理特質及び他のフォーマット関連処理特質をSGML文書に適用する処理を,フォー
マット処理と呼ぶ。この処理は,スタイル指定によって制御する。スタイル指定は,構築規則の列を
含む。構築規則には,幾つかの種類がある。詳細は,12.4.1を参照のこと。
備考 DSSSLスタイル言語は,処理自体を規定せず,処理の部分を制御する指定言語の意味及び形式
だけを標準化していることに注意されたい。残りのフォーマット処理機能・行分割・段分割・
ページ分割・他の様相スペースの配分などは標準化せず,フォーマタの制御に任せている。
c) SGML文書の部分を識別するために用いる,SDQLと呼ぶ照会言語。
SDQLは,DSSSL変換言語及びDSSSLスタイル言語の両方の部分となっている。SDQLは,SGML
文書の階層構造を渡り歩き,処理を行うSGMLマーク及び内容の重要な部分を識別するために用いる。
完全仕様のSDQLに加えて,この規格は中核照会言語 (core query language) と呼ぶSDQLの部分集合
を規定する。中核照会言語に関する詳細は,10.2.4を参照のこと。完全仕様のSDQLに関する詳細は,
10.を参照のこと。
d) 式言語 DSSSL式言語は,DSSSL変換言語及びDSSSLスタイル言語の両方の部分となっている。
DSSSL式言語は,オブジェクトの作成及び操作のために用いる。完全仕様の式言語に加えて,この規
9
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
格は中核式言語 (core expression language) と呼ぶ式言語の部分集合を規定する。中核式言語の詳細は,
8.6を参照のこと。DSSSL式言語は,IEEE Scheme規格及び“Schemeに関する報告 改訂4版 (R4RS)”
で定義するプログラム言語Schemeに基づく。DSSSLは,Schemeの規定のうち十分に機能的で,副作
用のない部分集合を用いる。DSSSL式言語の完全な記述については,8.を参照のこと。
6.2
概念モデル
DSSSL概念モデルは,次の二つの異なる処理から成る。
a) 変換処理
b) フォーマット処理
これら二つの処理は組み合わせて使用してよく,単独で使用してもよい。
DSSSL概念モデルを,図1に示す。
図1 DSSSL概念モデル
影付きの領域は,DSSSLによって標準化する処理モデルの部分を示す。
6.3
DSSSL言語
各DSSSL処理は,適切なDSSSL言語によって制御する。変換指定は,変換処理を制御する。同様に,
スタイル指定はフォーマット処理の様々な部分を制御する。
6.3.1
変換言語
変換処理は,変換指定及びSGML文書型定義の制御の下で,SGML文書を他のSGML文書に変換する。
変換処理の結果のSGML文書は,その後のフォーマット処理の入力として用いてよい。
変換処理において,利用者は対応付け又は変換と呼ぶ処理の対象となる,SGML文書の部分を識別する。
指定に合致する内容及び構造をもつSGML文書の部分の各ノードについて,指定は新しく作成する構造を
記述し,それに基づいて変換を達成する。
変換処理で実行するすべての操作は,後のフォーマット処理とは独立している。変換処理の際には,次
の操作を含んでよい。
a) 構造の組合せ SGML構造を再配置及び再分類して,全く新しい構造を作成する。例えば,入力DTD
に従い,脚注が脚注参照とともに本文中にある場合に,文書のフォーマットの際に脚注を集めて,章
の終わりに配置してよい。
10
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) 他の要素に対して利用者指定可能の関係をもつ,新しい要素の作成。
新しい構造又は属性を作成してよい。例えば,表において3ポイントのけい(罫)線が必要な場合
に,特殊なフォーマット記述をSGML属性として表現し,視覚的な効果を得るために5行ごとに関連
付けてよい。
c) 特定の内容列に対する,新しい記述の関連付け。
入力中の要素列が,別個のフォーマット処理記述との関連の契機となる場合がある。例えば,警告
に続く段落は,他の段落とは区別して提示すると要求してよい。
d) 特定の内容構成要素に対する,新しい記述の関連付け。
関連指定を,入力文書中で特にマーク付けされていない特定のテキスト文字列に,特別なフォーマ
ット情報を関連付けるために用いてよい。一例として,文字列 “ISO” をISOのロゴに置き換えるな
どの処理がある。
DSSSLは,フォーマット情報を前述の任意の組合せに基づいて関連付けできる。SGML文書の構造及び
内容の両方を変更できる。
変換言語は,前述の例で示すとおりフォーマット処理を容易にするために用いることができ,時間の経
過に伴って変更されたDTDに基づいて作成された文書を拡張又は変更するために用いることができる。
公開されたDTDを用いた文書を,独自又は社内のDTDに基づく文書へ変換するためにも用いてもよい。
変換言語の重要性及びその使用の妥当性は,SGML応用,DSSSL応用,フォーマタの能力及び実装に依
存して変化する。多くのフォーマティング応用は,変換処理を全く必要としない。
6.3.1.1
変換処理の構成要素
構成要素となる処理を次に示す。
a) グローブ構築処理系
この処理の入力は,SGML文書とする。SGML文書又は副文書は,構文解析の結果,グローブと呼
ぶノードの集合で表現される。グローブは,要素木に類似しているが,属性値の部分木などの他の部
分木を含んでよい。グローブ内での関係は,特性に基づいて表現する。グローブ及びSGML特性定義
に関する詳細は,9.を参照のこと。
b) 変換子
変換子に対する入力は,変換指定及びグローブ構築処理系の段階で作成した入力文書グローブから
成る。
変換指定は,関連指定の集合から成る。各関連指定は,入力文書内の類似したオブジェクトから,
結果グローブのオブジェクトへの変換を指定する。この変換の重要な点は,オブジェクトが出力イン
スタンスの明示的な位置だけに対応可能ではなく,他の入力オブジェクトの変換結果を参照点として
用いた位置にも対応できることにある。
変換子の出力は,結果グローブとなる。変換子は,複数のSGML文書を処理の入力として動作して
よく,同様に複数のSGML文書を結果としてよい。変換子の詳細は,11.を参照のこと。
c) SGML出力処理
SGML出力処理は,交換・検証・フォーマット処理系への入力を目的として,SGML文書に転換す
るグローブを生成する。SGML出力処理は,この目的で用いる。SGML出力処理の出力は,適正なSGML
文書とする。SGML出力処理の詳細は,11.4を参照のこと。
変換処理のモデルを,図2に示す。影付きの部分は,この規格が規定するDSSSL指定の構成要素を
示す。
11
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図2 変換処理
6.3.1.2
符号化文字,文字及びグリフ識別子のモデル
このモデルには,次の三つの構成要素が存在する。
a) SGML入力文書中の符号化文字
b) グローブ内の文字
c) 最終結果文書のグリフ識別子
SGML入力文書中の符号化文字は,通常,ISO 8859-1 (Latin-1) などの特定の文字符号化規格に基づいて
符号化される。SGML宣言は,記述形式で指定した文字集合又は一つ以上の標準化されているか若しくは
少なくとも登録されている符号化文字集合のコードポイントに関連して指定した文字集合を含む。しかし,
私用の符号化文字集合を参照することも,単に符号化文字に最小リテラルを用いて記述を与えることも許
容している。
文字符号化方式は,数多く存在する。文字符号化の幾つかは,送りのない文字を基底文字とともに用い
て,ダイアクリティカル記号付きの文字を表す。さらに,SGMLはキー入力できない文字を表すために,
実体参照を許容している。例えば,アキュートアクセントの付いた小文字のeは,同じ文書中で次の四つ
の形式を用いて表現してよい。
a) 単一の文字
b) 送りのないダイアクリティカルマーク及びe(2文字)
c) e及び組合せダイアクリティカルマーク(2文字)
d) 実体参照é ;
この多様性は,正規表現を用いた検索において問題を起こす。
DSSSLにおいては,入力文字を文字列に正規化し,それぞれが特定の意味を表す。この方式では,もと
もとの文字が,一つの文字,特定の文字集合内の複数の文字又は実体参照のどの符号化を使っているかに
依存しない。各DSSSL指定は,単一の文字のレパートリを定義する。文字レパートリは,DSSSL指定,
入力グローブ及び流し込みオブジェクト木で用いるすべての文字を含む。したがって,それらの文字だけ
を使用してよい。各文字の宣言は,語の区切りを示す文字などのフォーマット処理に意味のある特性の集
合も含む。
DSSSL指定は,入力文書とは異なる符号化文字集合を用いて符号化されてもよく,DSSSL木で用いた文
字と同じレパートリの文字の並びに翻訳される。要素名の合致などすべての比較は,もとのSGML文書の
12
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
符号化文字ではなく,この翻訳後の文字の比較で行う。
入力グローブの文字の並びは,文字から文字への対応の制御の下で,変換処理によって他の文字の並び
に変更される場合がある。この技法は,典型的には入力文書の一部が,字句変換したテキストを含む場合
に用いる。
フォーマタへの入力グローブ内の文字は,フォーマット処理の間にグリフ識別子に変換される。この変
換は文字からグリフへの対応及びリガチャからグリフへの対応によって制御され,一つ以上の文字を一つ
以上のグリフ識別子に対応する。使用する対応は文書に固定したものではなく,フォーマット特質として
表現でき,領域又は入力グローブの一部に対して指定してよい。リガチャは,一つ以上の文字を一つのグ
リフに対応させることによって指定する。
付加的な特性によって,使用するフォントを指定する。この情報は,グリフ識別子とともに用いて,可
視化に用いる実際の形状を選択する。ハイフネーション点は,文字に基づいて決定する。しかし,幅の計
算は,実際に可視化する形状のメトリク情報,つまりグリフに基づく。
6.3.2
スタイル言語
この規格において“フォーマット処理”という言葉は,次の四つ処理の任意の組合せを意味する。
a) 入力文書内容に表示スタイルを適用し,それらの表示媒体上における位置を決定する処理。
b) 入力文書の位置と関連して行う,結果文書内の内容の選択及び並べ変え。
c) 新しい素材の生成などの,入力文書には明示的には存在しない素材の取り込み。
d) 入力文書にある素材の出力文書からの除去。
DSSSLにおいては,フォーマット済み文書のスタイルを,フォーマット特質を用いて定義する。フォー
マット特質は,流し込みオブジェクト木と呼ぶ中間的な木構造に付加する。DSSSLは,スタイル指定に十
分な柔軟性を備えており,行分割・ページ分割・スペース配分アルゴリズムなど,特定のフォーマット処
理系で用いる組版又はフォーマティングアルゴリズムの集合には束縛されていない。これらのフォーマッ
ト処理の様々な部分は,各実装に固有である。この規格では,行分割規則及びページ分割規則は,制約及
び他のフォーマット処理系を支配するフォーマット処理特質との関連を用いて表現してよい。フォーマタ
の出力は,この規格では定義しない。それは,印刷又は可視化に適したフォーマット済み文書となる。
フォーマット処理は,スタイル指定を用いる。スタイル指定は,構築規則,ページモデル定義,段集合
モデル定義,他の一般の宣言及び定義並びに応用定義の宣言及び定義を含む。
6.3.2.1
フォーマット処理の構成要素
フォーマット処理は,概念的には次の四つの処理から構成される。
a) SGML文書からグローブを構築する。
b) 構築規則を入力グローブ内のオブジェクトに適用して,流し込みオブジェクト木を作成する。
c) ページ及び段の幾何構成を,ページモデル及び段集合モデルを参照しながら,ページ列流し込みオブ
ジェクト (page-sequence) 及び段集合流し込みオブジェクト (column-set) の特質によって定義する。
d) 流し込みオブジェクトクラスの意味及びその流し込みオブジェクトに関連する特質の値が指定する規
則に基づいて,組処理及びレイアウト処理を行う。各流し込みオブジェクトは,流し込みオブジェク
トクラスのインスタンスであって,フォーマットによって流し込みオブジェクト木の上における親が
位置付けを行い,明示的な大きさをもつ領域列を生成する。
6.3.2.2
グローブ構築処理
フォーマット処理は,変換処理と同じグローブ構築処理を用いる。グローブ構築処理は,入力SGML文
書をグローブに,つまり階層的に構造化したオブジェクトの集合に変換する。グローブの詳細は,9.を参
13
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
照のこと。
6.3.2.3
流し込みオブジェクト木
グローブは,構築規則を用いて更に処理され,適切なフォーマット処理特質及びページレイアウト特質
をもった流し込みオブジェクトから成る木を生成する。構築指定の形式的定義は,12.4.1を参照のこと。
原子流し込みオブジェクト以外の各流し込みオブジェクトは,一つ以上の流し込みオブジェクト列を子に
もつ。各子の流し込みオブジェクト列は,その流し込みオブジェクトのポートと呼ぶ点に附属する。ポー
トは,主要ポート又は名前付きポートのどちらかとなる。
流し込みオブジェクトクラスは,ある分類の流し込みオブジェクトに適用するフォーマット特質の集合
を定義する。各流し込みオブジェクトクラスは,ポート名集合も定義する。子流し込みオブジェクトのク
ラスは,附属する流し込みオブジェクトのクラス及び附属するポートの名前によって決定するクラスに適
合していなければならない。特定のポートに附属した流し込みオブジェクトは,順序付けられている。し
かし,同じ流し込みオブジェクトであっても,異なるポートに附属する流し込みオブジェクトの場合,そ
れらのオブジェクト間では,順序は定義されない。
流し込みオブジェクト木の生成処理は,次の二つから成る。
a) フォーマット特質を,各流し込みオブジェクトに関連付ける。
b) グローブ内のデータ文字を示すノードを,文字流し込みオブジェクトに変換する。各文字流し込みオ
ブジェクトは,グリフ選択と,フォントファミリ・フォント重みなどのスタイル指定とを制御する特
質をもっている。
流し込みオブジェクト木の構築の際,特定のフォーマット特質をもつSGML文書の一部及び同じ段又は
ページに流し込むために一緒に扱うことのできるSGML文書の一部の識別などのために,SDQLを用いて
よい。共に流し込む内容は,流し込み木内の親のもつ同一のポート内の流し込みオブジェクト列に配置す
る。
備考 例えば,文書が幾つかの標準的な段落及び脚注段落から成る場合に,脚注段落はまとめられて
脚注を表す親流し込みオブジェクトのポートの内容となり得る。同様に,普通の段落はまとめ
られ,段列を表す流し込みオブジェクトのポートの内容となり得る。
6.3.2.4
流し込みオブジェクトクラス
流し込みオブジェクトクラス及びそれに適用する特質は,文書内容のフォーマット上の外見及び振舞い
を定義する。
次の流し込みオブジェクトクラスを,この規格で定義する。
a) 列流し込みオブジェクトクラス (sequence)
b) 行外グループ流し込みオブジェクトクラス (display-group)
c) 単純ページ列流し込みオブジェクトクラス (simple-page-sequence)
d) ページ列流し込みオブジェクトクラス (page-sequence)
e) 段集合列流し込みオブジェクトクラス (column-set-sequence)
f)
段落流し込みオブジェクトクラス (paragraph)
g) 段落区切り流し込みオブジェクトクラス (paragraph-break)
h) 行フィールド流し込みオブジェクトクラス (line-field)
i)
側線流し込みオブジェクトクラス (sideline)
j)
びょう(錨)流し込みオブジェクトクラス (anchor)
k) 文字流し込みオブジェクトクラス (character)
14
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
l)
リーダけい(罫)流し込みオブジェクトクラス (leader)
m) 埋込みテキスト流し込みオブジェクトクラス (embedded-text)
n) けい線流し込みオブジェクトクラス (rule)
o) 外部グラフィック流し込みオブジェクトクラス (external-graphic)
p) 取り込みコンテナ流し込みオブジェクトクラス (included-container)
q) 傍線・抹消線流し込みオブジェクト流し込みオブジェクトクラス (score)
r) 囲みけい流し込みオブジェクトクラス (box)
s)
横並び流し込みオブジェクトクラス (side-by-side)
t)
グリフ注釈流し込みオブジェクトクラス (glyph-annotation)
u) そろ(揃)え点流し込みオブジェクトクラス (alignment-point)
v) そろえ段流し込みオブジェクトクラス (aligned-column)
w) 複数行行内注釈流し込みオブジェクトクラス (multi-line-inline-note)
x) 強調マーク流し込みオブジェクトクラス (emphasizing-mark)
y) 表用流し込みオブジェクトクラスグループ
1) 表流し込みオブジェクトクラス (table)
2) 表部分流し込みオブジェクトクラス (table-part)
3) 表列流し込みオブジェクトクラス (table-column)
4) 表行流し込みオブジェクトクラス (table-row)
5) 表セル流し込みオブジェクトクラス (table-cell)
6) 表けい線流し込みオブジェクトクラス (table-border)
z) オンライン表示用流し込みオブジェクトクラスグループ
1) スクロール流し込みオブジェクト (scroll)
2) 複数モード流し込みオブジェクトクラス (multi-mode)
3) リンク流し込みオブジェクト (link)
4) 余注流し込みオブジェクト (marginalia)
さらに,DSSSL応用は,独自の流し込みオブジェクトクラス集合を定義してよく,同様に応用独自の流
し込みオブジェクトクラス又はDSSSLが定義する流し込みオブジェクトクラスに適用する応用独自の特
質を定義してよい。
6.3.2.5
領域
流し込みオブジェクトのフォーマット結果は,領域列となる。領域は,四角形であって,固定の幅・高
さをもつ。領域には,行内,行外の二つの種別がある。行内領域は行の一部となり,行外領域は直接には
行の一部とならない。
どちらの種別の領域も,流し込みの処理によって位置決めされる。流し込み処理の正確な性質は,領域
の種別によって異なる。領域の流し込みについての詳細は,12.3を参照のこと。
行外領域は,領域コンテナに流し込むことによって位置決めする。領域コンテナの大きさは,流し込み
方向に成長してよいが,他の方向には固定されている。
6.3.2.6
ページ及び段幾何構成
DSSSLにおけるページレイアウトは,ページ列流し込みオブジェクト上のページモデルに関連する特質
及び段集合列流し込みオブジェクト上の段集合に関連する特質を用いて指定する。
ページ列流し込みオブジェクトは,フォーマットの結果として,ページ領域列を生成する。ページモデ
15
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ルは,ページ内の領域階層の可能な構造と位置決めを指定する。構造には,ページの幅及び高さ,並びに
ページ区画の指定を含んでいる。ページ区画は,固定の大きさをもつ領域コンテナであって,そこにフォ
ーマット済み内容を,ページ区画流し込み対応 (page region flow map) の指定どおりに配置する。ページ区
画流し込み対応は,ポート名とページ区画との結合を行う。各ページ区画は,ヘッダ指定及びフッタ指定
をもってよい。ページ列流し込みオブジェクト及び関連するページモデルの詳細は,12.6.4及び12.6.4.1
を参照のこと。
段集合列流し込みオブジェクトは,フォーマットの結果段集合領域列を生成する。段集合領域は,平行
な段の集合から成る。各段集合領域の構造及び位置決めは,その段集合が従う段集合モデルによって制御
する。段集合モデルは,各段集合について領域の可能な階層構造を指定する。段集合は,入れ子になって
よい。段集合領域は,流し込み方向に平行な方向に,幾何的に幾つかの段に分割される。各段集合と関連
して,流し込み方向において他の領域との相対位置を制約する区域が存在する場合がある。許容される区
域として,区域top-float,区域text,区域bottom-float及び区域footnoteがある。
段集合モデルは,段集合の可能な構造及び位置決めの指定を提供する。段集合モデルは,段部分集合,
流し込み方向指定,幅指定,高さ指定などから成る。段部分集合指定は,段部分集合流し込み対応を含む。
段部分集合流し込み対応は,指定した区域に内容を流し込むポートを指示する。段集合モデルは,段抜き
の概念にも対応している。段集合列流し込みオブジェクトの詳細は12.6.5を,段集合モデルの詳細は
12.6.5.1を参照のこと。
6.3.2.7
式言語
フォーマット処理は,8.6で定義する中核式言語を用いるか,又はオプション機能として8.に記載の完全
仕様の式言語を用いる。
図3に,フォーマット処理のモデルを示す。
図3 フォーマット処理
6.3.2.8
符号化文字,文字及びグリフ識別子のモデル
フォーマット処理は,符号化文字,文字及びグリフ識別子に関して,6.3.1.2に示すモデルを使用する。
7. DSSSL指定
DSSSL指定はSGML文書であって,DSSSLの文書体系に適合する。DSSSL文書体系は,JIS X 4155の
体系形式定義要求に適合する文書体系となっている。
SGML文書はDSSSL文書体系へ適合していることを,SGML宣言のAPPINFOパラメタにArcBaseトー
クンを含め,DTDに次の記述を入れることで宣言してよい。
16
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<?ArcBase DSSSL>
<!NOTATION DSSSL PUBLIC "ISO/IEC 10179: 1996//NOTATION
DSSSL Architecture Definition Document//EN"
--国際規格ISO/IEC 10744の体系形式定義要
求に適合する文書体系--
>
<!ATTLIST #NOTATION DSSSL
--すべての体系のための支援属性--
ArcFormA -- Attribute name: architectural form --
NAME #FIXED DSSSL
ArcNamrA -- Attribute name: attribute renamer --
NAME #FIXED DNames
ArcBridA -- Attribute name: bridge functions --
NAME #FIXED DBrid
ArcDocF -- Architectural form name: document element --
CDATA #FIXED dsssl-specification
ArcVer
-- Architecture version identifier --
CDATA #FIXED "ISO/IEC 10179:1996"
>
<!ENTITY DSSSL SYSTEM CDATA DSSSL>
参考 この規格の7.及び9.の記述には,SGML文書の一部が含まれている。理解を容易にするために,
HyTimeの注釈規約に基づいた解釈を行わない注釈部分を,日本語に訳してある。
7.1
DSSSL文書体系
DSSSL文書体系を,次のメタDTDで定義する。
<!--DSSSL文書体系-->
<!ENTITY % declarations
"features | baseset-encoding | literal-described-char | add-name-chars |
add-separator-chars | standard-chars | other-chars | combine-char |
map-sdata-entity | char-repertoire | sgml-grove-plan"
>
<!element dsssl-specification - O
((%declarations;)*,
(style-specification | transformation-specification |
external-specification)+)>
<!attlist dsssl-specification
dsssl NAME dsssl-specification
version CDATA #FIXED "ISO/IEC 10179:1996"
>
<!element transformation-specification ‒ O
((%declarations;)*, transformation-specification-body*)>
17
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<!attlist transformation-specification
dsssl NAME transformation-specification
id ID #IMPLIED
desc CDATA #IMPLIED
--指定の可読な記述--
partial (partial | complete) complete
--完全な指定か,他の指定で利用する指定の部分かを表す。--
use
-- reftype (transformation-specification | external-specification)
--
IDREFS #IMPLIED ‒- Default: none --
entities
--結果文書を検証するためのDTDとして指定可能な実体グループ--
ENTITIES #IMPLIED ‒ Default: none --
>
<!element style-specification ‒ O
((%declarations;)*, style-specification-body*)>
<!attlist style-specification
dsssl NAME style-specification
id ID #IMPLIED
desc CDATA #IMPLIED
--指定の可読な記述--
partial (partial | complete) complete
--完全な指定か,他の指定で利用する指定の部分かを表す。--
use -- reftype (style-specification | external-specification) --
IDREFS #IMPLIED ‒ Default: none --
>
<!--他の文書内の指定に局所的な識別子を割り当てる。-->
<!element external-specification - O EMPTY>
<!attlist external-specification
dsssl NAME external-specification
id ID #REQUIRED
document--指定を含む文書--
ENTITY #REQUIRED
specid--文書内における指定の識別子--
NAME #IMPLIED ‒- Default: first spec in document --
>
<!--指定が利用する機能を宣言する。-->
<!element features - O (#PCDATA)
--lextype(featurename*)-->
18
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<!attlist features
dsssl NAME features
>
<!--基本文字集合内の文字番号を文字名に対応させる。処理系が文字集合を知っており,文字集合
内のすべての文字が国際符号をもつ場合には不要となる。-->
<!element baseset-encoding - O (#PCDATA)
--lextype ((number,charname)*) -->
<!attlist baseset-encoding
dsssl NAME baseset-encoding
name CDATA #REQUIRED -- public identifier of baseset --
>
<!--SGML宣言内で最小リテラルを用いて記述した文字を文字名に対応させる-->
<!element literal-described-char ‒ O (#PCDATA)
-- lextype (charname) -->
<!attlist literal-described-char
dsssl NAME literal-described-char
desc CDATA #REQUIRED--リテラル記述--
>
<!-DSSSL記法内で許容される追加の文字を宣言する。-->
<!element add-name-chars - O (#PCDATA)
--lextype (charname*)-->
<!attlist add-name-chars
dsssl NAME add-name-chars
>
<!-DSSSL記法内で分離子として許容される追加の文字を宣言する。-->
<!element add-separator-chars - O (#PCDATA)
-- lextype (charname*) -->
<!attlist add-separator-chars
dsssl NAME add-separator-chars
>
<!--名前と国際符号とに関連のある文字を定義する。-->
<!element standard-chars - O (#PCDATA)
-- lextype ((charname, number))*) -->
<!attlist standard-chars
dsssl NAME standard-chars
>
<!--国際符号と関連しない文字を定義する。-->
<!element other-chars - O (#PCDATA)
-- lextype (charname*) -->
<!attlist other-chars
19
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
dsssl NAME other-chars
>
<!--SDATA実体を文字に対応する。-->
<!element map-sdata-entity - O (#PCDATA)
-- lextype (charname) -->
<!attlist map-sdata-entity
dsssl NAME map-sdata-entity
name CDATA #IMPLIED--Default: mapping uses replacement text only--
text CDATA #IMPLIED--Default: mapping uses name only-->
>
<--文字組みを宣言する。-->
<!element combine-char - O (#PCDATA)
-- lextype (charname, charname, charname+) -->
<!attlist combine-char
dsssl NAME combine-char
>
<!--文字レパートリを宣言する。-->
<!element char-repertoire ‒ O EMPTY>
<!attlist char-repertoire
dsssl NAME char-repertoire
name -- レパートリの公開識別子--
CDATA #REQUIRED
>
<!--SGML特性集合のためのグローブ設計を宣言する。-->
<!element sgml-grove-plan - O EMPTY>
<!attlist sgml-grove-plan
dsssl NAME sgml-grove-plan
modadd -- 無指定時のグローブ設計に追加するモジュール名--
NAMES #IMPLIED ‒- Default: none added --
>
<!element style-specification-body - - CDATA
--内容はDSSSLスタイル言語を記法として用いる。-->
<!attlist style-specification-body
dsssl NAME style-specification-body
content ENTITY #CONREF ‒- Default: syntactic content --
>
<!element transformation-specification-body - - CDATA
--内容はDSSSL変換言語を記法として用いる。-->
<!attlist transformation-specification-body
dsssl NAME transformation-specification-body
20
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
content ENTITY #CONREF ‒- Default: syntactic content --
>
要素型形式dsssl-specificationは,一つ以上の処理指定要素型形式を含む。要素dsssl-specification内の宣
言要素は,DSSSL指定要素内のすべての処理指定要素に適用する。
処理指定要素型形式には,二つの種別がある。要素型形式transformation-specificationは,変換処理の指
定を行う。要素型形式style-specificationは,フォーマット処理の指定を行う。これらの要素型形式のイン
スタンスを処理指定と呼ぶ。各処理指定要素はそれ自体だけで指定を構成してよく,同じ型の別の処理指
定要素を使用してもよい。処理指定要素は,SGML一意識別子を用いて識別する。あるSGML文書中の処
理指定要素は,要素型形式external-specificationを用いて局所的な一意識別子を割り当てることによって,
他のSGML文書中の処理指定要素を使用できる。処理指定要素と,それが使用する処理指定要素とを併せ
て,処理指定と呼ぶ。
利用者は,SGML文書の処理を処理指定要素を識別することによって指定する。これらの要素を識別す
る方法は,処理系依存とする。
備考 処理系は,文書をシステム識別子によって識別し,オプションの一意識別子によって文書内の
要素を識別して,処理指定要素を識別してよい。一意識別子が全く指定されていない場合は,
その文書内の最初の処理指定要素を用いる。
各処理指定要素は,本体要素と呼ぶ要素を含んでよい。本体要素は,処理に固有な記法に従う処理指定
を内容とする。要素型形式transformation-specificationの場合,この記法はDSSSL変換言語であって,要素
型形式style-specificationの場合,この記法はDSSSLスタイル言語とする。さらに各処理指定要素は,その
記法の構文解析に必要な情報をもつ宣言要素を含んでよい。
処理指定要素列で記述した処理指定を,指定部列とみなす。各指定部は,要素型形式で表現した複数の
宣言及び指定部の本体と呼ぶ処理固有記法を用いた一つの指定から成る。処理指定要素列を解析した結果
の指定部列は,指定要素の順にその内部の指定部を並べた指定部列となる。一つの処理指定要素を解析し
た指定部列は,処理指定要素の内容の指定部に続き,その処理指定要素が使用する処理指定要素列を解析
した指定部列から成る。最初の指定部の宣言は,処理指定要素内及びその指定要素を含む要素
dsssl-specification内に含まれる宣言から成る。最初の指定部の本体は,処理指定要素に含まれる本体要素
を結合したものとなる。
処理指定は,最初にすべての指定部の宣言を処理し,その後に本体を順に処理する。一つの指定部内で
は,競合する宣言があってはならない。二つの異なる指定部内の宣言が競合する場合,先行する指定部の
宣言を優先する。同様に,一つの指定部の本体内では,競合する指定が存在してはならない。しかし,異
なる指定部に属する二つの指定が競合する場合,先行する指定部の指定を優先する。
処理指定の宣言は,指定部の本体及びすべての入力SGML文書内に出現するすべてのビット組みが,ど
のように文字に変換されるかを指定する。宣言は,任意の順に出現してよい。特に,宣言前に文字名を使
用してよい。
宣言又は本体要素内で使用する各文字名は,要素型形式standard-chars,要素型形式other-chars又は要素
型形式char-repertoireのいずれかを用いて宣言しなければならない。
要素型形式char-repertoire,要素型形式features及び要素型形式sgml-grove-plan以外のすべての宣言要素
型形式は,機能charsetを必要とする。
21
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
7.1.1
機能
要素型形式featuresは,指定で用いる機能の宣言を行う。処理指定は,使用するすべての機能を宣言し
なければならない。
この要素の内容は,機能名のリストとする。
この宣言の効果は,累積する。
7.1.2
SGMLグローブ設計
要素型形式sgml-grove-planは,SGML特性集合のためにグローブ設計に取り込む追加のモジュール名を
列挙する。属性modaddは,追加するモジュールを指定する。処理系は,次の三つのモジュールを自動的
に取り込む。
a) baseabs(基本抽象モジュール)
b) prlgabs0(前書き抽象モジュール0)
c) instabs(インスタンス抽象モジュール)
変換言語では,更にモジュールprlgabs1(前書き抽象モジュール1)を自動的に取り込む。
この宣言の効果は,累積する。
7.1.3
文字レパートリ
要素型形式char-repertoireは,属性nameによって与えられる公開識別子をもつ文字レパートリを指定に
おいて使用すると宣言する。
要素char-repertoireは,要素型形式baseset-encoding,要素型形式literal-described-char,要素型形式
add-name-chars,要素型形式add-separator-chars,要素型形式standard-chars,要素型形式other-chars及び要
素型形式map-sdata-entityのインスタンス,並びに言語形式character-property-declaration及び言語形式
added-char-properties-declarationのインスタンスの列に等しい。
7.1.4
標準文字
要素型形式standard-charsは,ISO/IEC 10646-1又はISO/IEC 6429で定義する文字集合に対応する文字レ
パートリ内の文字の名前を宣言する。ISO/IEC 10646-1又はISO/IEC 6429内の文字は,それぞれの対応す
る文字集合内の符号で識別し,それを国際符号と呼ぶ。
要素の内容は,複数の文字名及び10進数で表した複数の数値から成る対のリストとする。その対のリス
トは,各文字の名前が,続く番号で指定した国際符号に対応することを宣言する。
処理指定は,ISO/IEC 10646-1内の,次の各文字番号に関する文字の名前を宣言しなければならない。
(1) 32(スペース)
(2) 34(引用符)
(3) 35(番号記号)
(4) 39(アポストロフィー)
(5) 40(左小かっこ)
(6) 41(右小かっこ)
(7) 42(アステリスク)
(8) 43(正符号)
(9) 45(ハイフン,負符号)
(10) 46(ピリオド)
(11) 47(斜線)
(12)-(22) 48-57(0から9の数字)
22
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(23) 58(コロン)
(24) 59(セミコロン)
(25) 60[不等号(より小)]
(26) 61(等号)
(27) 62[不等号(より大)]
(28) 63(疑問符)
(29)-(54) 65から90(AからZのアルファベット大文字)
(55) 92(逆斜線)
(56)-(90) 97から122(aからzのアルファベット小文字)
さらに,ISO/IEC 6429内の,次の各文字番号に関する文字の名前を宣言しなければならない。
(91) 10(改行)
(92) 13(復帰)
同一の指定部内の要素standard-charsにおいて,一つの文字名が2回以上出現する場合は,エラーとする。
要素型形式standard-chars内の,ある文字名に関する宣言は,以降の指定部で出現するその文字名の宣言よ
り優先する。
処理系は,ISO所有者識別子をもつ公開識別子によって識別する基本文字集合に関して,ビット組みを
国際符号に対応させる方法をあらかじめ知っていてよい。基本文字集合がISO所有者識別子を含む公式公
開識別子をもち,その基本文字集合から派生した文書文字集合が使用する各文字に関して,一意文字名が
要素型形式standard-charsを用いて宣言されている場合,その基本文字集合のための要素型形式
baseset-encodingは不要となる。
7.1.5
その他の文字
要素型形式other-charsは,ISO/IEC 10646-1又はISO/IEC 6429が定義する文字集合には対応しない文字
レパートリ内の文字の名前を宣言する。
要素の内容は,文字名のリストとする。
例1:
<other-chars>
logoSGML runic-f runic-u
</other-chars〉
これらの宣言は,累積する。
7.1.6
符号化基本集合
要素型形式baseset-encodingは,SGML宣言において基本文字集合内の文字番号の意味に対応すると宣言
された意味をもつSGML文書中のビット組みが,どのように文字に変換されるかを指定する。
要素baseset-encodingの内容は,対応する10進数で指定した文字番号及び文字名の対のリストとなる。
その対のリストは,文字名が,属性nameで指定した公開識別子をもつ文字集合内において,文字番号に
対応することを指定する。
要素baseset-encoding間での競合は,文字番号ごとに解決する。複数の要素baseset-encodingが同じ基本
文字集合のために存在してもよいが,同一の指定部内の同一の基本文字集合で,同じ文字番号に対して二
つの指定が存在する場合は誤りとする。
23
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
例2:
<baseset-encoding name=”Character set for the Viking age runic script”>
31 runic-f
32 runic-u
</baseset-encoding>
7.1.7
リテラル記述文字
要素型形式literal-described-charは,SGML宣言内において属性descの値と等しい最小リテラルを用いて
宣言された意味をもつSGML文書中のビット組みが,要素の内容において指定した名前をもつ文字に変換
されることを指定する。
例3:
<literal-described-char desc=”SGML Userʼs Group logo”>
logoSGML
</literal-described-char>
7.1.8
SDATA実体対応
要素型形式map-sdata-entityは,内部SDATA実体への参照がその要素内容において名前を与えられる文
字を示すことを宣言する。その実体参照名は,属性nameの値に等しく,その実体の代替テキストは属性
textの値に等しい。その要素内容は一つの文字名とする。
グローブ設計が特性entity-nameをノードクラスsdataに含む場合,SDATA実体の対応は最初にその名前
で探し,見つからない場合にそのテキストで探して行う。
例4:
<map-sdata-entity name="Alpha"text="[Alpha]">greekA</map-sdata-entity>
<map-sdata-entity name="V.Beta"text="[V.Beta]">greekB</map-sdata-entity>
7.1.9
分離文字
要素型形式add-separator-charsは,文字をDSSSLの変換言語及びスタイル言語中において空白類文字と
して許容される終端記号separator-charactersとして宣言する。
この宣言は累積する。
7.1.10 名前文字
要素型形式add-name-charsは,追加の文字を,DSSSLの変換言語及びスタイル言語中において識別子と
して許容される終端変数added-name-characterとして宣言する。
この宣言は累積する。
7.1.11 組合せ文字
要素型形式combine-charは,三つ以上の文字名を含むリストとする。要素型形式combine-charは,二つ
目以降の文字から成る文字列を,最初の文字で置換することを宣言する。この要素型形式の使用には,機
能combine-charを必要とする。
7.2
公開識別子
この規格では,公開識別子は,JIS X 4172が規定する公開識別子の正規文字列形式に適合しなければな
らない。
7.3
字句規約
7.3.1
大文字と小文字との区別
大文字と小文字とは,常に区別する。
24
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 伝統的なプログラム言語Lispの処理系は,大文字と小文字とを区別しない。
7.3.2
識別子
[1] identifier=initial ( subsequent* final ) ?| peculiar-identifier
[2] initial=letter | special-initial | added-name-character
[3] letter=a | b | c | ... | z | A | B | C | ... | Z
[4] special-initial=special | :
[5] special=! | $ | % | & | * | / | < | = | > | ? | 〜 | ̲ | ^
[6] subsequent=initial | digit | special-subsequent
[7] special-subsequent=. | + | −
[8] final=letter | special | added-name-character | digit | special-subsequent
[9] peculiar-identifier=+ | − | ...
他のプログラム言語が許容するほとんどの識別子は,DSSSLでも許容する。識別子は,アルファベット
及び数字に加えて,文字ドル記号 ($),文字パーセント (%),文字アンパサンド (&),文字アステリスク (*),
文字斜線 (/),文字コロン (:),文字不等号(より小) (<),文字等号 (=),文字不等号(より大) (>),
文字疑問符 (?),文字チルド (〜),文字アンダライン (̲),文字アクサンシルコンフレックス (^),文字正
符号 (+),文字負符号 (−),文字ピリオド (.) 及び要素型形式add-name-chars又は要素型形式char-repertoire
で宣言した終端変数added-name-characterを含んでよい。識別子は,数を開始する文字で始まってはなら
ない。しかし,文字正符号 (+) ,文字 (−) 及び三つの文字ピリオド (...) は識別子とする。識別子は,
文字コロン (:) だけから成る場合は,例外として,文字コロン (:) で終わってはならない。
備考 “...”は,文字ピリオドが三つであって,省略記号 (HORIZONTAL ELLIPSIS) ではない。
7.3.3
トークン,空白類文字及び注釈
[10] token=identifier | keyword | boolean | number | character | string | named-constant | glyph-identifier | ( | ) | ' | . |
' | , | , @
[11] delimiter=whitespace | ( | ) | " | ;
[12] whitespace=space | record-start | record-end | tab | form-feed | separator-character
[13] comment=; any-character-except-record-end*
[14] atmosphere=whitespace | comment
[15] intertoken-space=atmosphere*
空白類文字には,スペース,レコード開始,レコード終了及び終端変数separator-charactersがある。空
白類文字は,可読性を改善するために用い,識別子,数値などの空白類文字なしでは字句単位に分割でき
ない,トークン間を区切るために用いる。しかし,トークン間の区切りとして以外の空白類文字は重要で
はない。空白類文字は二つのトークンの間に出現してよいが,一つのトークン内では出現してはならない。
空白類文字は文字列の中で出現してもよい。この場合には重要となる。
文字セミコロン (;) は,注釈の開始を示す。注釈は,セミコロンの出現したレコードの終わりまで続く。
処理系は注釈を検知しないが,レコード終了は空白類文字として検知する。このため注釈を識別子又は数
値の中に置いてはならない。
文字クラスintertoken-spaceの示す文字は,トークンの前後どちら側にも出現してよいが,トークン内で
出現してはならない。
"暗黙の終了"を必要とするトークン,例えば,識別子,数字,文字,文字ピリオド (.) 及び定数文字列
#!は,どの文字クラスdelimiterの要素によっても終了するが,それ以外のどの文字によっても終了すると
25
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
は限らない。
8. 式言語
式言語は,IEEE Scheme規格及び“Schemeに関する報告改定4版 (R4RS)”が定義するプログラム言語
Schemeに基づく。次の規定は,その定義に基づく。
式言語とプログラム言語Schemeとの相違点を,次に示す。
a) 式言語は,プログラム言語Schemeの関数的で副作用のない部分集合だけを用いている。副作用がな
ければ意味がない機能(例えばbegin)は,排除した。
b) データ型vectorは用いない。
c) 文字オブジェクトは,文字符号ではなく,名前によって一意に識別する。
d) プログラム言語SchemeのASCII文字集合への依存性を排除した。
e) データ型numberは,数値に次元の概念を加えたもっと一般的なデータ型quantityの下位型とする。
f)
継続を用いない。
g) R4RSの幾つかのオプション機能は用いない。
h) 手続きgcd(最大公約数)及び手続き1cm(最小公倍数)は用いない。
i)
キーワード引数を提供する。
さらにDSSSLは,プログラム言語Schemeの定義が実装依存としている選択肢のうち,特定のものを要
求する。
中核式言語と呼ぶ式言語の部分集合を,8.6で定義する。
8.1
式言語の概要
プログラム言語Algolと同様に,式言語は静的適用範囲をもつ。どの変数の使用も,字句上で明らかな
変数の束縛に関連する。
式言語は,明示的な型と対照を成す暗黙の型をもつ。型は,変数ではなく,オブジェクトとも呼ぶ値に
関連する。暗黙の型をもつ言語を,弱い型付け言語又は動的型付け言語と呼ぶことがある。暗黙の型をも
つ他の言語には,プログラム言語APL,プログラム言語Snobol及びプログラム言語Lispの他の方言があ
る。明示的な型をもつ言語を,強い型付け言語又は静的型付け言語と呼ぶことがある。明示的な型をもつ
言語には,プログラム言語Algol 60,プログラム言語Pascal及びプログラム言語Cがある。
手続きを含む計算の過程で生成するすべてのオブジェクトは,無限の有効期間をもつ。式言語のオブジ
ェクトが破壊されることはない。実装が記憶容量不足になることもない。その理由は,オブジェクトが後
の計算に全く必要でないことが明らかである場合には,そのオブジェクトの占める記憶を再要求できるこ
とにある。ほとんどのオブジェクトが無限の有効期間をもつ他の言語には,プログラム言語APL及び他の
プログラム言語Lispの方言がある。
実装は,正しく末尾再帰を扱えなければならない。これによって,反復計算が構文上再帰的な手続きを
用いて記述されている場合にも,一定空間での反復計算として実行が可能になる。したがって,末尾再帰
的な実装においては,反復は通常の手続き呼び出しを用いて表現でき,その結果,特別な反復構成子は構
文糖としての意味をもつにすぎない。
手続きは,それ自体でオブジェクトになる。手続きは動的に生成され,データ構造の中に記憶され,手
続きの結果として返される。この特徴をもつ他の言語に,プログラム言語Common Lisp及びプログラム言
語MLがある。
手続きに対する引数は,常に値で渡される。これは,手続きが評価結果を必要とするか否かにかかわら
26
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ず,手続きが制御を得る前に実際の引数式が評価されることを意味する。常に引数を値で渡す他の言語に,
プログラム言語ML,プログラム言語C及びプログラム言語APLの三つがある。これは,プログラム言語
Haskellの遅延評価の意味又はプログラム言語Algol 60の名前呼び出しの意味とは異なる。それらにおいて
は,手続きが値を必要としなければ,引数式は評価されない。
多くのプログラム言語Lispの方言と同様に,式言語は,式及び他のデータのすべてをかっこでくくった
前置記法を用いる。つまり,式言語の構文は,データ用の副言語を生成する。
8.2
基本概念
8.2.1
変数及び領域
構文で予約されていない識別子は,すべて変数として使ってよい。変数は,値に名前を付ける。値に名
前を付けた変数は,値に束縛されたという。ある点で有効なすべての束縛の集合は,その点で有効な環境
と呼ぶ。変数に束縛された値を,変数の値と呼ぶ。
ある種の式は,変数を新しい値に束縛するために用いる。束縛構成子の最も基本的なものは,lambda式
となる。他のすべての束縛構成子は,lambda式によって説明できる。その他の束縛構成子には,let式,let*
式及びletrec式がある。
プログラム言語Algol及びプログラム言語Pascalに類似し,プログラム言語Common Lisp以外の他の多
くのLisp方言と異なり,式言語は,ブロック構造をもつ静的スコープの言語である。変数が式に束縛され
るそれぞれの場所に,束縛が有効である式テキストの領域が対応する。この領域は,束縛を確立する特定
の束縛構成子によって決定される。例えば,束縛がlambda式によって確立される場合,その領域はlambda
式全体となる。変数のすべての参照は,その使用を含む領域の最も内側で確立した変数の束縛を参照する。
変数の使用を含む領域にその変数の束縛が無い場合には,その使用は,最上位環境があればそこでの変数
の束縛を参照する。識別子に束縛が無い場合,その識別子を未束縛の識別子と呼ぶ。
8.2.2
真及び偽
どの式言語値も,条件判定のための型booleanのオブジェクトとして利用できる。#f以外のどの値も,
その判定において真と解釈する。この規格は,ʻ真ʼという語を使って真と解釈するすべての値を指し,
ʻ偽ʼという語を使って#fを指す。
8.2.3
外部表現
式言語及びプログラム言語Lispにおいての重要な概念に,オブジェクトの外部表現を文字列で表すこと
がある。例えば,整数28の外部表現は,リテラル ʻ28ʼ となり,整数8及び13から成るリストの外部表
現は,リテラル ʻ(8 13)ʼ となる。
あるオブジェクトの外部表現は,必ずしも一意である必要はない。前段落のリストは,リテラル ʻ(08 13)ʼ
及びリテラル ʻ(8 . (13 . ()))ʼ を用いて表現してもよい。
多くのオブジェクトは外部表現をもつが,手続きなどの幾つかのオブジェクトは外部表現をもたない。
外部表現は,対応するオブジェクトを得るために,式の中に書いてもよい。
外部表現は,この規格が規定するプロセスの間の通信に利用してもよい。
様々な種類のオブジェクトの外部表現の構文には,それらのオブジェクトを操作するための基本手続き
の記述を伴う。
8.2.4
型の独立性
次の判定を二つ以上同時に満たすオブジェクトは存在しない。
a) boolean?
b) symbol?
27
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
c) keyword?
d) char?
e) pair?
f)
quantity?
g) string?
h) procedure?
これらの判定手続きは,データ型boolean,データ型pair,データ型symbol,データ型keyword,データ
型quantity,データ型char(又はcharacter),データ型string及びデータ型procedureを定義する。
8.3
式
式は,変数参照,リテラル,手続き呼出し,条件判定などの値を返す構成子とする。
[16] expression=primitive-expression | derived-expression
式の型は,基本型又は派生型に分類できる。基本型は,変数及び手続き呼出しを含む。派生型は,基本
型ではなく,その意味を基本構成子によって説明できる。派生型は厳密な意味では冗長だが,共通の利用
類型をとらえており,便利な短縮形として提供される。
8.3.1
基本型の式
[17] primitive-expression=variable-reference | literal | procedure-call | lambda-expression | conditional
8.3.1.1
変数参照
[18] variable-reference=variable
変数から成る式を,変数参照とする。変数参照の値は,変数が束縛されている値とする。束縛のない変
数を参照することは,エラーとする。
例5:
(define x 28)
x ⇒ 28
[19] variable=identifier
[20] syntactic-keyword=expression-keyword | else | => | define
[21] expression-keyword=quote | lambda | if | cond | and | or | case | let | let* | letrec | quasiquote | unquote |
unquote-splicing
識別子クラスsyntactic-keywordに属さない識別子は,変数として利用できる。DSSSLの実装において,
前掲のものに加えて他の識別子を構文予約語として確保してよい。
8.3.1.2
リテラル
[22] literal=quotation | self-evaluating
[23] quotation='datum | ( quote datum)
(quote datum) は,評価の結果datumとなる。
[24] datum=simple-datum | list
[25] simple-datum=boolean | number | character | string | symbol | keyword | named-constant | glyph- identifier
節datumには,式言語オブジェクトのすべての外部表現を記述してよい。この記法は,式中のリテラル
定数を取り込むために用いる。グリフ識別子は,構文style-language-body内だけで記述可とする。
例6:
(quote a)
⇒ a
(quote (+ 1 2))
⇒ (+ 1 2)
28
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(quote datum)は短縮して'datumとしてよい。すべての点でこの二つの記法は,等価とする。
例7:
'a
⇒ A
'()
⇒ ()
'(+ 1 2)
⇒ (+ 1 2)
'(quote a)
⇒ (quote a)
''a
⇒ (quote a)
[26] self-evaluating=boolean | number | character | string | keyword | named-constant | glyph-identifier
型booleanのオブジェクト定数,数値定数,文字定数,文字列定数,キーワード,名前付き定数及びグ
リフ識別子は,評価の結果それ自体になり,quotation式を使用する必要はない。
例8:
'"abc"
⇒ "abc"'
"abc"
⇒ "abc"'
'145932
⇒ 145932
145932
⇒ 145932
'#t
⇒ #t
#t
⇒ #t
Abc:
⇒ Abc:
'abc:
⇒ abc:
8.3.1.3
手続き呼出し
[27] procedure-call= (operator operand*)
[28] operator=expression
[29] operand=expression
手続き呼出しは,呼出し対象の手続き式及びその手続きに渡す引数を単純にかっこで囲むことで表記す
る。式operator及び式operandは評価され,結果の手続きに結果の引数が渡される。
例9:
(+ 3 4)
⇒ 7
((if #f + *) 3 4)
⇒ 12
式operator又は式operandの複数がエラーを通知する場合,どちらのエラーを利用者に報告するかは,
処理系依存とする。
多くの手続きは,初期環境の変数値として利用できる。例えば,前述の式の中の加算手続き及び乗算手
続きは,変数+及び変数*の値となる。新しい手続きはlambda式を評価して作成する。
手続きは,組合せとも呼ばれる。
備考 他のLisp方言とは対照的に,式operator及び式operandは,常に同一評価規則によって評価さ
れる。
8.3.1.4
lambda式
[30] lambda-expression= (lambda (formal-argument-list) body)
lambda式は,評価の結果手続きとなる。lambda式を評価した時点で有効な環境は,手続きの一部として
記憶される。手続きが,後で実際の引数を伴って呼ばれた場合,lambda式を評価した時点の環境は,形式
的引数リスト内の変数の対応する実際の値への束縛によって拡張し,その拡張された環境内でlambda式の
29
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
本体が評価される。lambda式の本体の評価結果は,手続き呼出しの結果として返される。
例10:
(lambda (x)(+ x x))
⇒ a procedure
((lambda (x)(+ x x)) 4 )
⇒ 8
(define reverse-subtract
(lambda (x y) (− y x)))
(reverse-subtract 7 10 )
⇒ 3
(define add4
(let ((x 4))
(lambda (y)(+ x y))))
(add4 6)
⇒ 10
[31] formal-argument-list=required-formal-argument* (#! optional optional-formal-argument*) ?
(#! rest rest-formal-argument) ? (#! key keyword-formal-argument*) ?
[32] required-formal-argument=variable
[33] optional-formal-argument=variable | ((variable initializer))
[34] rest-formal-argument=variable
[35] keyword-formal-argument=variable | ((variable initializer))
[36] initializer=expression
実引数リストに対して手続きを適用したとき,形式的引数及び実引数は,左から右へ次のとおりに処理
する。
a) 節required-formal-argument内の変数は,最初の実引数から始めて連続する実引数に束縛される。必す
(須)の引数より実引数が少ない場合,エラーとなる。
b) 次に,節optional-formal-argument内の変数は,残っている実引数に束縛する。オプションの引数より
少ない実引数が残っており,節initializerが指定されている場合にはその評価結果を,その他の場合に
は#fを,変数に束縛する。節initializerは,それ以前の引数すべてを束縛した環境において評価する。
c) 節rest-formal-argumentがある場合,残ったすべての実引数のリストに束縛する。これら残りの実引数
は,節keyword-formal-argumentに束縛される資格をもつ。節rest-formal-argumentがなく,節
keyword-formal-argumentもない場合,実引数の残りがあればエラーとする。
d) 定数#!keyを節formal-argument-listの中で指定した場合,偶数個の実引数が残っていなければならない。
これらは一連の対として解釈される。そこでは,各対の最初のメンバがキーワードであって,引数名
を指定する。第二のメンバはそれに対応する値となる。対の最初の要素がキーワードでない場合,エ
ラーとなる。引数名が節keyword-formal-argumentの変数名と同じでなく,しかも節rest-formal-argument
が存在しなければ,エラーとなる。同一引数名が実引数のリストの中で1回より多く出現した場合,
最初の値を使用する。特定の節keyword-formal-argumentのための実引数がなく,節initializerが指定さ
れている場合には,変数はその初期化子を評価した結果に束縛され,その他の場合には,変数は#fに
束縛される。節initializerは,それ以前のすべての形式的引数が束縛されている環境において評価する。
備考 変換言語又はスタイル言語の節formal-argument-listでの定数#!keyの利用は,機能keywordを
必要とする。
変数が,節formal-argument-listの中で1回より多く現れる場合,エラーとする。
30
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
例11:
((lambda (#!rest x)x) 3 4 5 6) ⇒ (3 4 5 6)
((lambda (x y #!rest z)z)
3 4 5 6)
⇒ (5 6)
((lambda (x y #!optional z #!rest r *!key i (j 1)) (list x y z i: i j: j))
3 4 5 i: 6 i: 7)
⇒ (3 4 5 i: 6 j: 1)
8.3.1.5
条件式
[37] conditional= (if test consequent alternate)
[38] test=expression
[39] consequent=expression
[40] alternate=expression
式conditionalは,次のとおりに評価する。まず式testを評価する。それが真であれば,式consequentを
評価し,その値を返す。その他の場合は,式alternativeを評価し,その値を返す。
例12:
(if
(> 3 2) 'yes 'no)
⇒
yes
(if
(> 2 3) 'yes 'no)
⇒
no
(if
(> 3 2)
(− 3 2)
(+ 3 2))
⇒
1
8.3.2
派生式の型
[41] derived-expression=cond-expression | case-expression | and-expression | or-expression | binding-expression |
named-let | quasiquotation
8.3.2.1
cond式
[42] cond-expression= (cond cond-clause+) | (cond cond-clause* (else expression))
[43] cond-clause= (test expression) | (test) | (test=> recipient)
[44] recipient=expression
cond式は,連続する節cond-clauseのそれぞれが含む式testを,その式の一つが真となるまで順に評価す
る。式testの一つが真になると,節cond-clauseにおける式の評価結果は,cond式全体の結果として返され
る。選択した節cond-clauseが式testだけを含む場合,式testの値が結果として返される。節cond-clause
が式receipientを含む場合は,式receipientを評価される。その値は,一つの引数をもつ手続きでなければ
ならない。この手続きは,式testの値に対して呼び出される。すべての式testが偽となり,節elseがない
場合には,エラーが通知される。節elseがあれば,その式を評価した結果を返す。
例13:
(cond ((> 3 2) 'greater)
((< 3 2) 'less))
⇒
Greater
(cond ((> 3 3) 'greater)
((< 3 3) 'less)
(else 'equal))
⇒
Equal
31
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.3.2.2
case式
[45] case-expression= (case key case-clause+) | (case key case-clause* (else expression))
[46] key=expression
[47] case-clause= ((datum*) expression)
節case-clauseに記述するすべてのdatumは別個のデータでなければならない。case式は次のとおりに評
価する。式keyを評価し,その結果を各datumと比較する。式keyを評価した結果が(equal?の意味で)datum
に等しい場合には,対応する節case-clauseの式を評価した結果が,case式の結果として返される。式key
を評価した結果が各datumと異なり,節elseがある場合には,その式を評価した結果を,case式の結果と
し,その他の場合にはエラーが通知される。
例14:
(case (* 2 3)
((2 3 5 7) 'prime)
((1 4 6 8 9) 'composite))
⇒ Composite
(case (car '(c d))
((a e i o u) 'vowel)
((w y) 'semivowel)
(else 'consonant))
⇒ consonant
8.3.2.3
And式
[48] and-expression : (and test*)
式testの列は左から右に評価する。式testの列に偽となる式がある場合,偽を返す。その場合,残りの
式は評価されない。すべての式が真となる場合,最後の式の値が返される。式testがなければ,#tを返す。
例15:
(and (= 2 2) (> 2 1))
⇒ #t
(and (= 2 2) (< 2 1))
⇒ #f
(and 1 2 'c '(f g))
⇒ (f g)
(and)
⇒ #t
8.3.2.4
Or式
[49] or-expression= (or test*)
式testの列は左から右に評価する。真となる最初の式の値が返される。その場合,残りの式はどれも評
価されない。すべての式が偽となる場合,偽を返す。式がない場合には,#fを返す。
例16:
(or (= 2 2) (> 2 1))
⇒ #t
(or (= 2 2) (< 2 1))
⇒ #t
(or #f #f #f)
⇒ #f
8.3.2.5
束縛構成子式
[50] binding-expression=let-expression | let*-expression | letrec-expression
三つの束縛構成子 let,let* 及びletrecは,プログラム言語Algol 60に類似するブロック構造を式言語に
与える。三つの構成子の構文は同一であるが,構成子がその変数束縛のために設定する領域が異なる。let
式においては,すべての変数が束縛される前に初期値が計算される。let*式においては,束縛及び評価は連
続して実行される。letrec式においては,初期値を計算している間にもすべての束縛は有効であり,したが
32
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
って相互に再帰的な定義をすることができる。
[51] let-expression= (let bindings body)
[52] bindings= (binding-spec*)
[53] binding-spec= (variable init)
[54] init=expression
変数が,節bindingの中で複数回出現することはエラーとする。let式の評価は,次のとおりに行う。節
initを現環境において評価し,変数variableをその結果に束縛する。その結果の拡張環境で式bodyを評価
した結果を返す。変数variableの各束縛の領域は,式bodyとなる。
例17:
(let ((x 2) (y 3))
(* x y))
⇒ 6
(let ((x 2) (y 3))
(let ((x 7)
(z (+ x y)))
(* z x)))
⇒ 35
名前付きlet式も参照のこと。
[55] let*-expression= (let* bindings body)
let*式は,式letと同様だが,束縛を左から右に順に行い,節binding-specが示す束縛の領域は,let*式の
その部分から節binding-spec(注:式bodyの誤りだと思われる。)の終わりまでを含む。したがって,第二
の束縛は最初の束縛が見える状態で行われ,以降同様となる。
例18:
(let*((x 2) (y 3))
(let*((x 7)
(z (+ x y)))
(* z x)))
⇒ 70
[56] letrec-expression= (letrec bindings body)
節binding-specにおける各変数variableは,対応する式initを評価した結果に束縛され,拡張環境で式
bodyを評価した結果が返される。式initは,拡張環境で評価される。節binding-specにおける変数variable
の各束縛は,letrec式の全体をその領域とし,相互に再帰的な手続きを定義することを可能にする。式init
の評価がどの変数variableの値を参照しても,エラーとする。最も一般的なletrec式の利用形態において
は,すべての式initはlambda式であり,この制約は自動的に満たされる。
例19:
(letrec ((even?
(lambda (n)
(if (zero? n)
#t
(odd? (− n 1)))))
(odd?
(lambda (n)
(if (zero? n)
33
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
#f
(even? (− n 1))))))
(even? 88))
⇒ #t
8.3.2.6
名前付きlet
[57] named-let= (let variable (binding-spec*) body)
名前付きlet式は,通常のlet式と同じ構文及びセマンティクスをもつが,式body内において,形式的引
数が名前付きlet式の束縛する変数となり,その式bodyが式named-letの式bodyとなる手続きに,変数
variableを束縛する。したがって,式bodyの実行を変数variableによって命名された手続きを呼び出すこ
とによって繰り返してよい。
例20:
(let loop-((numbers '(3 −2 1 6 −5))
(nonneg '())
(neg '()))
(cond ((null? Numbers) (list nonneg neg))
((>= (car numbers) 0)
(loop (cdr numbers)
(cons (car numbers) nonneg)
neg))
((< (car numbers) 0)
(loop (cdr numbers)
nonneg
(cons (car numbers) neg)))))
⇒ ((6 1 3) (−5 −2))
8.3.2.7
クアジクォート
次に示すクアジクォートの構文は文脈依存になっている。これは無限個の生成規則の構成方法を示して
いる。次の規則において,D=1,2,3,...と入れ子の深さに追随して複製を作ると想定する。
[58] quasiquotation=quasiquotation̲1
[59] template̲0=expression
[60] quasiquotation̲D='template̲D | (quasiquote template̲D)
[61] template̲D=simple-datum | list-template̲D | unquotation̲D
[62] list-template̲D= (template-or-splice̲D*) | (template-or-splice̲D+ . template̲D) | 'template̲D |
quasiquotation̲D + 1
[63] unquotation̲D=, template̲D−1 | ( unquote template̲D−1)
[64] template-or-splice̲D=template̲D | splicing- unquotation̲D
[65] splicing-unquotation̲D=, @ template̲D−1 | ( unquote-splicing template̲D−1)
節quasiquotationにおいては,節list-template̲Dが,節unquotation̲D又は節splicing- unquotation̲Dのい
ずれかと混同されることがある。節unquotation̲D又は節splicing-unquotation̲Dとしての解釈を優先する。
quasiquote式を使うと,必要な構造のすべてではないがほとんどが既知である場合に,リスト構造の構
成が便利になる。式templateの中にカンマがなければ,̀templateの評価結果は´templateの評価結果と等価
34
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
となる。しかしtemplateの中にカンマがあれば,カンマに続く式は評価され(アンクォートされ),その結
果が構造の中にカンマ及び式に代わって入る。カンマの直後にat記号 (@) がある場合には,続く式は評
価の結果リストとなる。リストの開きかっこ及び閉じかっこは除去され,リストの要素が,カンマat記号
式列の位置に挿入される。
例21:
'(list , (+ 1 2) 4) ⇒
(list 3 4)
(let ((name 'a)) '(list ,name ',name))
⇒ (list a (quote a))
'(a , (+ 1 2) ,@(map abs '(4 −5 6)) b)
⇒ (a 3 4 5 6 b)
'((foo , (− 10 3)) ,@(cdr '(c)) . , (car '(cons)))
⇒ ((foo 7) . cons)
quasiquote式は,入れ子にしてもよい。置換えは,最も外側の逆引用符と同じ入れ子レベルに出現する
アンクォートの構成要素でだけ行われる。入れ子レベルは,連続する各quasiquotationの内側で1だけ増加
し,各unquotationの内側で1だけ減少する。
例22:
'(a '(b , (+ 1 2) , (foo , (+ 1 3) d) e) f)
⇒ (a '(b , (+ 1 2) , (foo 4 d) e) f)
(let ((name1 'x
(name2 'y))
'(a '(b ,,name1 ,',name2 d) e))
⇒ (a ' (b ,x , 'y d) e)
式template̲D及び式 (quasiquote template̲D) の記法は,すべての点で同一とする。式expressionは式
(unquote expression) と同一であり,式,@expressionは式 (unquote-splicing expression) と同一とする。
例23:
(quasiquote (list (unquote (+ 1 2)) 4)) ⇒ (list 3 4)
'(quasiquote (list (unquote (+ 1 2)) 4))
⇒ '(list , (+ 1 2) 4) i.e., (quasiquote (list (unquote (+ 1 2)) 4))
シンボルquasiquote,シンボルunquote又はシンボルunquote-splicingのどれかが,式templateの中の前述
とは異なる位置に現れると,予測できない振舞いが起きるかもしれない。
8.4
定義
[66] definition=variable-definition | procedure-definition
定義は,二つの形式をとることができる。
[67] variable-definition= (define variable expression)
この構文を基本型の式とする。
[68] procedure-definition= (define (variable formal-argument-list) body)
この形式は,次の定義と等価とする。
(define variable (lambda (variable formal-argument-list) body))
式の中に現れない定義を,最上位定義と呼ぶ。次の最上位定義は,最上位環境において式expressionを
35
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
評価し,最上位環境内において変数を評価結果に束縛する。
(define variable expression)
例24:
(define add3
(lambda (x) (+ x 3)))
(add3 3)
⇒
6
(define first car)
(first '(1 2))
⇒
1
任意の処理指定部分内において,複数個の最上位定義を用いて同一の変数を定義してはならない。処理
指定部分内の変数の最上位定義は,以前の処理指定部分において最上位定義されている場合に無視する。
7.1を参照のこと。
最上位定義内の式expressionは,式expressionを評価することによって参照される可能性のあるすべての
最上位変数が定義されるまで,評価してはならない。
備考 lambda式の評価は,その中で自由変数を参照しないので,この制約が相互再帰的手続きの定義
を妨げることはない。
最上位定義内に出現するすべての式が,この制約を保ったまま評価できない場合にはエラーとする。
実装組込みの変数の定義は,最上位定義によって置換してよい。代わりとなる定義はその変数への参照
すべてにおいて使用される。参照が,最初の最上位定義を含む処理指定部に先行する部分で起こる場合に
でも使用する。
備考 この規則は実装にとって簡単ではない。しかし,適合DSSSL指定の意味を変えずに,規格に組
込み手続きを将来の版の追加可能となる。
[69] body=definition* expression
定義は,式bodyの先頭でも出現してよい。これらを内部定義と呼ぶ。内部定義で定義した変数は,その
式bodyに固有のものとなる。その生存期間は式body全体となる。例を次に挙げる。
(let ((x 5))
(define foo (lambda (y) (bar x y)))
(define bar (lambda (a b) (+ (* a b) a)))
(foo (+ x 3))) ⇒ 45
内部定義を含む式bodyは,常に同等のletrec式に書き換えることができる。例えば,前例に示したlet
式は次の式に等しい。
(let ((x 5))
(letrec ((foo (lambda (y) (bar x y)))
(bar (lambda (a b) (+ (* a b) a))))
(foo (+ x 3))))
同等のletrec式だけについていえば,定義中の変数の値を参照することなく,式body内の各内部定義の
式は評価可能でなければならない。
8.5
標準手続き
式言語の組込み手続きを,8.5に記述する。初期(又は'最上位')環境は,便利な値に束縛された多くの変
数で始まる。その多くは,データを操作する基本手続きとする。例えば,変数absは,数値の絶対値を計
算する引数が一つの手続きに束縛され,変数+は,合計を計算する手続きに束縛される。
36
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
手続きに,扱うことを規定されていない型の引数が渡されることはエラーとする。
8.5.1
論理型
[70] boolean= #t | #f
真及び偽を示す標準の論理オブジェクトは,#t及び#fと記す。しかし,実際に重要なのは,条件式 (if,
cond,and,or) がどのオブジェクトを真又は偽として扱うかにある。ʻ真の値ʼ(又は単にʻ真ʼともいう。)
という句は,条件式によって真として扱われる任意のオブジェクトを意味し,ʻ偽の値ʼ(又はʻ偽ʼ)とい
う句は,条件式によって偽として扱われる任意のオブジェクトを意味する。
すべての標準値の中で#fだけを,条件式中で偽として解釈する。#fを除くすべての標準値(#t,対,空
リスト,シンボル,文字列及び手続きから成る)は,真と解釈する。
備考 他のLisp方言に慣れたプログラマは,式言語が#f及び空リストのいずれもが,シンボルnilと
は区別されていることに注意する必要がある。
論理定数は評価の結果それ自体になり,式の中でクォートする必要はない。
例25:
#t
⇒
#t
#f
⇒
#f
'#f
⇒
#f
8.5.1.1
否定
(not obj)
手続きnotは,引数objが偽であれば#tを返し,その他の場合には#fを返す。
例26:
(not #t)
⇒
#f
(not 3)
⇒
#f
(not (list 3))
⇒
#f
(not #f)
⇒
#t
(not '())
⇒
#f
(not (list))
⇒
#f
(not 'nil)
⇒
#f
8.5.1.2
論理型判定
(boolean? obj)
手続きboolean?は,引数objが#t又は#fのどちらかであれば#tを返し,その他の場合には#fを返す。
例27:
(boolean? #f)
⇒
#t
(boolean? 0)
⇒
#f
(boolean? '())
⇒
#f
8.5.2
等価
(equal? obj1 obj2)
手続きequal?は,オブジェクトの等価関係を定義する。引数obj1及び引数obj2を同一オブジェクトとみ
なす場合に#tを返し,その他の場合には#fを返す。外部表現をもつオブジェクトについては,その外部表
現が同一であるとき,二つのオブジェクトを同一とする。引数obj1及び引数obj2のそれぞれが,型boolean,
型symbol,型char,型pair,型quantity又は型stringであれば,手続きequal?は次の場合に#tを返す。
37
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
a) 引数obj1及び引数obj2が,共に#tであるか共に#fである場合。
b) 引数obj1及び引数obj2が,共にシンボルであって次を満たす場合。
(string=?
(symbol->string obj1)
(symbol->string obj2))
⇒ #t
c) 引数obj1及び引数obj2が,共に数であり,手続き=の意味で等しい数値とみなされ,どちらも正確値
であるか又はどちらも不正確値の場合。
d) 引数obj1及び引数obj2が,共に文字列であり,手続きstring=?によって同一文字列とみなされる場合。
e) 引数obj1及び引数obj2が,共に文字であり,手続きchar=?によって同一文字とみなされる場合。
f)
引数obj1及び引数obj2が,共に空リストの場合。
g) 引数obj1及び引数obj2が,共に対であって,しかも引数obj1のcar部と引数obj2のcar部が手続きequal?
によって等価とみなされ,さらに引数obj1のcdr部と引数obj2のcdr部が手続きequal?によって等価と
みなされる場合。
引数obj1及び引数obj2の一方が手続きであって,他方がそうでない場合には,equal?は#fを返す。引数
obj1及び引数obj2の両方が手続きである場合には,obj1及び引数obj2がある引数に関して異なる値を返す
場合にequal?は#fを返し,そうでない場合#t又は#fのどちらかを返す。
備考 換言すると,手続きの等価性は十分には定義されない。
8.5.3
対及びリスト
対(点対ともいう。)は,歴史的な理由でcar部又はcdr部と呼ぶ二つの部分をもつ記憶構造とする。対
は,手続きconsによって生成される。car部及びcdr部は,手続きcar及び手続きcdrによって参照される。
対は,主としてリストを表すために用いる。リストは,空リスト又はcdr部がリストの対として再帰的に
定義してもよい。さらに厳密にいうと,リストの集合は,次の条件を満たす最小の集合Xとして定義され
る。
a) 空リストは集合Xに含まれる。
b) listがXに含まれるとき,listをcdr部に含むすべての対もまたXに含まれる。
リストの要素列とは,リストを構成する連続する対のcar部のオブジェクト列とする。例えば,2要素リ
ストは,対のcar部が第一要素であり,対のcdr部が対であって,その対のcar部が第二要素であって,そ
の対のcdr部が空リストとなる。リストの長さは,要素の個数とし,要素の個数は対の個数と同じになる。
空リストは,対ではなく,特殊なオブジェクトであってそれ自体の型をもつ。それは要素をもたず,そ
の長さは0である。
備考 この定義は,すべてのリストは有限の長さをもち,空リストによって終結することを示す。
[71] list= (datum*) | (datum+ . datum) | abbreviation
対の最も一般的な記法(外部表現)はʻ点ʼ記法であって,リテラル (c1 . c2) の場合にはc1をcar部の値,
c2をcdr部の値とする対を示す。また,リテラル (4 . 5) は,car部が4でcdr部が5である対を示す。リテ
ラル (4 . 5) は,対の外部表現であり,評価の結果対になる式ではないことに注意。
リストに関しては,もっと合理的な記法を使ってもよい。つまりリストの要素を単にかっこで囲み,ス
ペースで分離して書き表せる。空リストは、 ( ) と書く。例えば
(a b c d e)
及び
(a . (b . (c . (d . (e . ())))))
38
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
は,シンボルのリストであって等価な記法となる。
空リストで終わっていない対の連鎖は,不適リストと呼ぶ。不適リストはリストでないことに注意され
たい。不適リストを表現するために,リスト及び点付き記法を組み合わせてもよい。
(a b c . d)
は,次と等価とする。
(a . (b . (c .d)))
与えられた対がリストかどうかは,cdr部に何が記録されているかに依存する。
[72] abbreviation=abbrev-prefix datum
[73] abbrev-prefix= ´ | ̀ | , | ,@
リテラル式内で,式´datum,式̀datum,式 ,datum及び式 ,@datumは,二つの要素をもつリストを意味
し,第一の要素がそれぞれシンボルquote,シンボルquasiquote,シンボルunquote及びシンボル
unquote-splicingを示す。第2の要素は,どの場合もdatumとなる。この規約は任意の式及び指定の一部を
リストとして表現可能とするためにサポートする。つまり,式言語の構文に従う場合,すべての式expression
は又datumでもあり,要素体系transformation-language-bodyはdatumの列となる。
8.5.3.1
対型判定
(pair? obj)
引数objが対であれば#tを返し,その他の場合は#fを返す。
例28:
(pair? '(a . b))
⇒ #t
(pair? '(a b c))
⇒ #t
(pair? '())
⇒ #f
8.5.3.2
対構成手続き
(cons obj1 obj2)
car部が引数obj1であり,cdr部が引数obj2である対を返す。
例29:
(cons 'a '())
⇒ (a)
(cons '(a) '(b c d)) ⇒ ((a) b c d)
(cons "a" '(b c))
⇒ ("a" b c)
(cons 'a 3)
⇒ (a . 3)
(cons '(a b) 'c)
⇒ ((a b) . c)
8.5.3.3
手続きcar
(car pair)
引数pairのcar部の内容を返す。空リストのcarをとることはエラーとなることに注意されたい。
例30:
(car '(a b c))
⇒ A
(car '((a) b c d))
⇒ (a)
(car '(1 . 2))
⇒ 1
(car '())
⇒ error
8.5.3.4
手続きcdr
(cdr pair)
39
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数pairのcdr部の内容を返す。空リストのcdrをとることはエラーとなることに注意されたい。
例31:
(cdr '((a)b c d))
⇒ (b c d)
(cdr '(1 . 2))
⇒ 2
(cdr '())
⇒ error
8.5.3.5
c...r手続き
(caar pair)
(cadr pair)
(cdar pair)
(cddr pair)
(caaar pair)
(caadr pair)
(cadar pair)
(caddr pair)
(cdaar pair)
(cdadr pair)
(cddar pair)
(cdddr pair)
(caaaar pair)
(caaadr pair)
(caadar pair)
(caaddr pair)
(cadaar pair)
(cadadr pair)
(caddar pair)
(cadddr pair)
(cdaaar pair)
(cdaadr pair)
(cdadar pair)
(cdaddr pair)
(cddaar pair)
(cddadr pair)
(cdddar pair)
(cddddr pair)
これらの手続きは,car及びcdrの複合とする。ここで,例えばcaddrは,次の式によって定義できる。
(define caddr (lambda (x) (car (cdr (cdr x)))))
四つの深さまでの任意の複合が用意されている。これらの手続きは,全部で28個ある。
8.5.3.6
空リスト型判定
(null? obj)
引数objが空リストであれば#tを返し,その他の場合には#fを返す。
40
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.5.3.7
リスト型判定
(list? obj)
引数objがリストであれば#tを返し,その他の場合には#fを返す。定義に従うと,すべてのリストは,
有限の長さをもち,空リストによって終結する。
例32:
(list? '(a b c))
⇒ #t
(list? '())
⇒ #t
(list? '(a . b))
⇒ #f
8.5.3.8
リスト構成
(list obj...)
引数を要素とするリストを返す。
例33:
(list 'a (+ 3 4) 'c) ⇒ (a 7 c)
(list)
⇒ ()
8.5.3.9
リスト長
(length list)
リストの長さを返す。
例34:
(length '(a b c))
⇒ 3
(length '(a (b) (c d e))) ⇒ 3
(length '())
⇒ 0
8.5.3.10 リスト連結
(append list ...)
最初の引数listの要素に続き,他の引数listの要素を指定した順に含むリストを返す。
例35:
(append '(x) '(y))
⇒ (x y)
(append '(a) '(b c d)) ⇒ (a b c d)
(append '(a (b)) '((c))) ⇒ (a (b) (c))
最後の引数は実際にはオブジェクトであってよい。最後の引数が適切なリストでないと,不適リストと
なる。
例36:
(append '(a b) '(c . d)) ⇒ (a b c . d)
(append '() 'a)
⇒ a
8.5.3.11 リスト反転
(reverse list)
引数listの要素を逆順に構成したリストを返す。
例37:
(reverse '(a b c))
⇒ (c b a)
(reverse '(a (b c) d (e (f)))) ⇒ ((e (f)) d (b c) a)
8.5.3.12 部分リスト抽出
41
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(list-tail list k)
最初のk個の要素を無視して得られた引数listの部分リストを返す。手続きList-tailは,次の式によって
定義できる。
(define list-tail
(lambda (x k)
(if (zero? k)
X
(list-tail (cdr x) (- k 1)))))
8.5.3.13 リスト参照
(list-ref list k)
引数list のk番目の要素を返す。この手続きは,式 (list-ref list k)が返すリストのcar部と同じ結果を返
す。
例38:
(list-ref
'(a b c d) 2)
⇒
c
(list-ref
'(a b c d)
(inexact->exact (round 1.8)))
⇒
c
8.5.3.14 リスト要素
(member obj list)
car部が引数objに等しくなる最初の部分リストを返す。ここで,部分リストとは引数kをリストの長さ
未満とした場合に,式 (list-tail list k) が返す空でないリストとする。引数objが引数list内で出現しない場
合には,(空リストではなく)#fを返す。
例39:
(member 'a '(a b c)) ⇒ (a b c)
(member 'b '(a b c)) ⇒ (b c)
(member 'a '(b c d)) ⇒ #f
8.5.3.15 関連リスト
(assoc obj alist)
引数alist(ʻassociation listʼを意味する)は,対のリストとする。この手続きは,引数alist内の対であ
って,その対のcar部が引数objと手続きequal?の意味において等しい場合に,その対を返す。引数alist
内の対すべてにおいて,そのcar部が引数objと等しくない場合に,(空リストではなく)#fを返す。
例40:
(define e '((a 1) (b 2) (c 3)))
(assoc 'a e)
⇒ (a 1)
(assoc 'b e)
⇒ (b 2)
(assoc 'd e)
⇒ #f
備考 通常,これらを判定として使用するが,手続きmember手続きassocはその名前に疑問符をもた
ない。これは,これらの手続きが単に#t,#fではなく有用な値を返すことによる。
8.5.4
シンボル
シンボルは,二つのシンボルが手続きequal?によって同一と判定されるのは,名前が同じように綴られ
た場合だけに限られる点で有用なオブジェクトである。これは識別子を示すのに必要十分な特徴で,多く
42
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
のlisp方言ではシンボルをその目的のために内部的に使用する。シンボルはその他多くの適用例でも有用
である。例えば,pascalでの列挙型の値を示すのにも用いられ得る。通常,二つのシンボルの同値性はそ
れらの長さにかかわらず一定時間で求めることができる。
[74] symbol=identifier
シンボルを書く際の規則は,識別子を書く際の規則と完全に同一とする。
8.5.4.1
シンボル型判定
(symbol? obj)
引数objがシンボルである場合に#tを返し,そうでなければ,#fを返す。
例41:
(symbol? 'foo)
⇒ #t
(symbol? (car '(a b)))
⇒ #t
(symbol? "bar")
⇒ #f
(symbol? 'nil)
⇒ #t
(symbol? '())
⇒ #f
(symbol? #f)
⇒ #f
8.5.4.2
シンボルから文字列への変換
(symbol->string symbol)
引数symbolの名前を文字列で返す。
例42:
(symbol->string 'flying-fish)
⇒
"flying-fish"
(symbol->string
(string->symbol "Malvina"))
⇒
"Malvina"
8.5.4.3
文字列からシンボルヘの変換
(string->symbol string)
引数stringをその名前とするシンボルを返す。この手続きは,特殊文字を含む名前のシンボルを生成で
きる。しかし,特殊文字を含む名前のシンボルは外部表現形式をもたないので,それらのシンボルの作成
は通常の使用には適さない。手続きsymbol->stringの説明を参照のこと。
例43:
(equal?
'mISSISSIppi 'mississippi)
⇒ #f
(equal?
'bitBlt (string->symbol "bitBlt"))
⇒ #t
(equal?
'JollyWog
(string->symbol
(symbol->string 'JollyWog)))
⇒ #t
(string=? "K. Harper, M.D."
(symbol->string
(string->symbol "K. Harper, M.D."))
⇒ #t
8.5.5
キーワード
キーワードは,シンボルに類似している。主な相違点は,キーワードは自己評価的 (self-evaluating) な
ので式内でクォートする必要がないことである。キーワードは,主にキーワード引数を指定するのに用い
る。
43
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
[75] keyword=identifier:
キーワードは単一のトークンで,識別子と文字コロン (:) の間に空白類文字を入れてはならない。文字
コロン (:) は,キーワード名の一部とはみなさない。
8.5.5.1
キーワード型判定
(keyword? obj)
引数objがキーワードの場合に#tを返し,その他の場合に#fを返す。
8.5.5.2
キーワードから文字列への変換
(keyword->string keyword)
引数keywordの名前を返す。
例44:
(keyword->string Argentina:)⇒"Argentina"
8.5.5.3
文字列からキーワードへの変換
(string->keyword string)
引数stringを名前とするキーワードを返す。
例45:
(string->keyword “foobar”)⇒foobar:
8.5.6
名前付き定数
[76] named-constant= #!optional | #!rest | #!key
名前付き定数named-constantは,節formal-argument-list内で用いる。名前付き定数は,自己評価的とす
る。名前付き定数のオブジェクトは,他のすべてのオブジェクトの型とは異なる,それ自体の一意な(名
前のない)型をもつ。
8.5.7
数量及び数値
8.5.7.1
数型
式言語は,長さ及び長さから派生する面積,体積などの数量を示す数量データ型を提供する。数量の表
現は,SIメートルを基礎とする。SIメートルを示す単位をmとする。数量は数値と整数べき乗した単位
との組合せで表現する。数量の次元は,数量を示す際にその基本単位をべき乗した数に等しい。次元が0
の数量を無次元と呼ぶ。
数量を基本単位によって表現するだけでなく,他の派生単位によっても表現できるとつごうがよい。
[77] unit-declaration= (define-unit unit-name expression)
この宣言中の式は,数量に評価されなければならない。単位宣言は,派生数量の単位名が派生元の数量
と等価であることを宣言する。この文脈では,単位名は独立したトークンとする。
派生単位として,センチメートル,ミリメートル,インチ,パイカ,ポイントは次の定義と対応し,あ
らかじめ定義されている。
(define-unit cm 0.01m)
(define-unit mm 0.001m)
(define-unit in 0.0254m)
(define-unit pt 0.0003527778m)
(define-unit pica 0.004233333m)
数値データ型は,無次元の数量を示す数量の下位型とする。式言語は,実数及び整数の二つの数値デー
タ型をもつ。実数は数値の下位型で,整数は実数の下位型とする。例えば,整数3は実数ともみなせるし,
44
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
さらに無次元の数量ともみなせる。数量型,数値型,実数型及び整数型は,それぞれ手続きquantity?,手
続きnumber?,手続きreal?及び手続きinteger?によって定義する。
角度(厳密には,平面角度)は,無次元数量つまり二つの長さの比とする。整数1は,1ラジアンと等
価とする。radを無次元数量1と等しい派生単位名として宣言することを推奨する。
8.5.7.2
正確性
正確に表現されている数量と,正確ではないかもしれない数量とを区別することが必要となる。例えば,
データ構造への指標は正確に分からなければならない。正確な数量が要求されている箇所での不正確な数
量の使用を見つけるために,式言語は,正確な数量と不正確な数量とを明示的に区別する。この区別は,
型の次元と直交する。
数量は,正確か不正確かのどちらかとなる。数量は,正確な定数として書かれた場合,又は正確な数量
から正確演算だけによって導かれた場合に,正確となる。数量は,不正確な定数として書かれていた場合,
不正確な成分を用いて導かれた場合,又は不正確な演算によって導かれた場合に,不正確となる。不正確
さは,数量がもつ伝搬しやすい特質である。
二つの実装が,不正確な中間結果を含まなかった計算に関して正確な結果を生成する場合,二つの最終
的な結果は,数学的に等価となる。浮動小数演算などの近似法が用いられるため,不正確な数量を含む計
算では,これは一般的には正しくない。しかし実装は,数学的な理想結果に,できるだけ近い結果を生成
しなければならない。
手続き+などの有理数演算は,正確な変数を与えられた場合には,常に正確な結果を生成しなければな
らない。その演算が正確な結果を生成できなければ,実装制限の違反を報告してもよく,報告せずにその
結果を強制的に不正確な値にしてもよい。
手続きinexact->exactは例外であるが,一般的に8.5.7.2に示す演算は,不正確な変数を与えられた場合
には,不正確な結果を返さなければならない。しかし演算は,結果の値が変数の不正確さに影響されない
ことを証明できれば,正確な結果を返してよい。例えば,任意の数量と正確な0との乗算は,他の変数が
不正確であっても,正確な0を出力してよい。
8.5.7.3
実装の制限
実装は,8.5.7.3の要求に従う限り任意の型において限定した範囲だけを保証してよい。正確値の保証範
囲は,同じ型の不正確値の保証範囲と異なってよい。例えば,すべての不正確値実数を浮動小数を用いて
実現した実装が,不正確実数の範囲及び不正確整数の範囲を浮動小数の表現範囲に制限しながら,実用上
は制限のない正確値整数を実現してよい。すべての実装は,−2147483647から2147483647までの範囲の
正確値整数を保証しなければならない。
実装はリスト及び文字列の指標として用いる数値の範囲,並びにリスト及び文字列の長さとして返却さ
れる数値の範囲内のすべての正確値整数を保証しなければならない。手続きlength及び手続きstring-length
は正確値整数を返却しなければならない。正確値整数以外を指標として用いることは誤りとする。さらに
指標の範囲内にある任意の整定数は,この範囲外でどのような実装の制限が適用されるかにかかわらず,
正確値整数の形式で表される限り正確値整数として解釈しなければならない。
+
−
*
quotient
remainder
modulo
max
min
abs
floor
ceiling
truncate
round
expt
45
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
前述の手続きが,正確値を引数として与えられたが正確値整数を返却できない場合,実装の制限に違反
したことを報告してもよいし,報告せずに結果を強制的に不正確値にしてもよい。これらの変換は,後に
誤りを生じるかもしれない。
実装は,不正確数を表現するのに浮動小数点及びその他の概略表現手法を用いてよい。この規格は,浮
動小数表現を用いる実装はIEEEの32ビット及び64ビット浮動小数点規格を用いること,及び浮動小数
以外の表現形式を用いる実装は浮動小数点規格を用いることで得られる以上の精度を提供することを推奨
するが,必す(須)とはしない。
特に,実装が浮動小数表現を用いる実装は,次の規則を守らなければならない。浮動小数演算の結果は,
少なくともその演算に対する任意の不正確値引数の表現に用いられる精度以上の精度で表現しなければな
らない。手続きsqrtなどの潜在的に不正確な演算であっても,正確値の引数を適用した場合には,可能で
あれば正確値の結果を返すのが望ましい。例えば,正確値4の二乗根は正確値2になるのが望ましい。し
かし,これも必す(須)ではない。しかし,sqrtのように正確値数量が不正確な結果を出す演算が行われ
て,結果が浮動小数点数で表される場合,最も精度の高い浮動小数形式を用いなければならない。しかし,
結果が浮動小数以外の形式で表される場合,実装で利用可能な最も精度の高い浮動小数形式の精度以上の
精度をもたなければならない。
実装が,正確値数量で表現できない正確値定数を読み取った場合,実装の制限に違反したことを報告し
てもよいし,報告せずに結果を強制的に不正確値にしてもよい。
8.5.7.4
数値定数構文
[78] number=num-2 | num-8 | num-10 | num-16
[79] num-2=#b sign? digit-2+
[80] num-8=#o sign? digit-8+
[81] num-16=#x sign? digit-16+
[82] num-10=#d? sign? decimal exponent? unit?
[83] decimal=digit-10+ | . digit-10+ | digit-10+ . digit-10*
[84] exponent=exponent-marker sign? digit+
[85] exponent-marker=e
[86] unit=unit- name (sign? digit-10+)?
[87] unit-name=letter+
[88] sign=+ | −
[89] digit-2= 0 | 1
[90] digit-8= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
[91] digit-10=digit
[92] digit-16=digit-10 | a | b | c | d | e | f
[93] digit= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
数量は,2進数,8進数,10進数,16進数で表記でき,基数前置子で識別する。基数前置子は,#b(2
進数),#o(8進数),#d(10進数),及び#x(16進数)である。基数前置子なしでは,数量は10進数で表
記されているとする。数値定数は,小数点又は単位を含む場合に不正確値となる。それ以外は,正確値で
ある。
46
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 8.5.7.4で用いている例では,正確値記法を用いている定数は実際に正確値数量として実現され
ていると仮定している。幾つかの例ではまた,不正確値記法を用いている定数が正確さを失わ
ない場合もあることを示している。不正確値定数は,不正確値数量の実現に浮動小数を用いて
いた実装で,不正確値となりそうなものを選んでいる。
数値定数は,単位後置子をもってよい。各単位名は,基本単位の名前であるか,単位宣言によって宣言
されなければならない。単位名は終端記号expornet-markerであってはならない。単位名に数値が続かない
場合,定数を,単位に関連する数量と乗算する。単位名に符号なし又は+符号付きの数値が続く場合,単
位名に関連する数値をその数値をべき数としてべき乗し,その結果と定数とを乗算する。単位名に−符号
付きの数値が続く場合,単位名に関連する数値をその数値をべき数としてべき乗し,その結果によって定
数を除算する。
8.5.7.5
数値型判定
(quantity? obj)
(number? obj)
(real? obj)
(integer? obj)
これらの手続きは,数量以外の型を含むすべての型の引数に対して適用できる。オブジェクトが特定の
型である場合に#tを返し,そうでなければ#fを返す。一般に,ある型判定が真である場合,それより上位
の型もその数量に関して真を返す。したがって,ある型判定がその数量に対して偽である場合,それより
下位の型も同様にその数量に偽を返す。例えば,xが不正確値実数である場合に,式 (integer? x) は,式 (=
x (round x)) が成り立つ場合だけ真となる。
例46:
(real? 3)
⇒ #t
(integer? 3.0)
⇒ #t
備考 前述の判定関数の不正確値に対する振舞いは,不正確さが結果に影響する可能性がある。
8.5.7.6
正確性判定
(exact? q)
(inexact? q)
数量の正確性を判定する。すべての数量において,一方の判定は必ず真となる。
8.5.7.7
大小判定
(= q1 q2 q3 …)
(< q1 q2 q3 …)
(> q1 q2 q3 …)
(<= q1 q2 q3 …)
(>= q1 q2 q3 …)
引数がそれぞれ,等しい,単調増加,単調減少,単調非減少,単調非増加である場合に,#tを返す。こ
れらの判定は,推移的でなければならない。これらの引数の次元は,すべて同一でなければならない。
備考 不正確数量にこれらの判定を用いることは誤りではないが,不正確さが結果に影響するかもし
れず信頼できない。このような現象は特に手続き=及び手続きzero?で顕著となる。
47
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.5.7.8
数値特性判定
(zero? q)
(positive? q)
(negative? q)
(odd? n)
(even? n)
数量の特性を検査し,#t又は#fを返却する。8.5.7.7の備考を参照のこと。
8.5.7.9
最大・最小関数
(max q1 q2 …)
(min q1 q2 …)
引数中の最大又は最小の数を返す。すべての引数の次元は,同一でなければならない。結果の次元は,
引数の次元と同一となる。
例47:
(max 3 4)
⇒
4
; exact
(max 3.9 4)
⇒
4.0
; inexact
備考 どの引数が不正確の場合でも,結果は不正確となる。例外として,手続きがその不正確さ
が結果に影響を与えるほど大きくないと判断した場合には,不正確とならない場合もある。
しかし,それらの判定は,複雑な実装だけで可能である。min又はmaxが,正確値・不正
確値の混在する数量を比較するのに用いられ,結果が正確さを失わずに不正確値で示すこ
とができない場合,手続きは実装の制限違反を報告してもよい。
8.5.7.10 加算
(+ q1 …)
引数の合計を返却する。すべての引数は,同一の次元でなければならない。結果は,引数と同一の次元
となる。
例48:
(+ 3 4)
⇒ 7
(+ 3)
⇒ 3
(+)
⇒ 0
8.5.7.11 乗算
(* q1 …)
引数の積を返す。結果の次元は,引数の次元の合計となる。
例49:
(* 4)
⇒ 4
(*)
⇒ 1
8.5.7.12 減算
(− q1 q2)
(− q)
(− q1 q2 …)
二つ以上の引数では,左から評価した引数の差を返却する。一つの場合,引数の負数を返す。すべての
引数は,同一の次元でなければならない。結果の次元は,引数の次元と同一となる。
48
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
例50:
(− 3 4)
⇒ −1
(− 3 4 5)
⇒ −6
(− 3)
⇒ −3
8.5.7.13 除算
(/ q1 q2)
(/ q)
(/ q1 q2 …)
二つ以上の引数では,左から引数を評価して商を返却する。一つの場合,1を引数で割ったものを返す。
結果の次元は,各引数の次元の差となる。
例51:
(/ 3 4 5)
⇒
3/20
(/ 3)
⇒
1/3
8.5.7.14 絶対値
(abs q)
引数の絶対値を返す。
例52:
(abs −7)
⇒ 7
8.5.7.15 整数除算
(quotient n1 n2)
(remainder n1 n2)
(modulo n1 n2)
これらの手続きは,数論的(整数)除算を実装している。正の整数n1及びn2に関して,n3及びn4が,
n1=n2 n3+n4及び0≦n4<n2となる整数である場合,次の式が成立する。
(quotient n1 n2)
⇒ n3
(remainder n1 n2)
⇒ n4
(modulo n1 n2)
⇒ n4
整数n1及びn2に関して,n2が0でない場合,次の式が成立する。
(= n1 (+ (* n2 (quotient n1 n2))
(remainder n1 n2)))
⇒
#t
ただし,この計算に関係するすべての数値は,正確値とする。手続きquotientが返す値は,その引数の
生成するものの符号をもつ。手続きremainder及び手続きmoduloは,負の引数において異なる。つまり,
手続きremainderは常に0又は商の符号をもつが,手続きmoduloは常に除数の符号をもつ。
例53:
(modulo 13 4)
⇒
1
(remainder 13 4)
⇒
1
(modulo −13 4)
⇒
3
(remainder −13 4)
⇒
−1
(modulo 13 −4)
⇒
−3
49
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(remainder 13 −4)
⇒
1
(modulo −13 −4)
⇒
−1
(remainder −13 −4)
⇒
−1
(remainder −13 −4.0) ⇒
−1.0 ; inexact
8.5.7.16 実数から整数への変換
(floor x)
(ceiling x)
(truncate x)
(round x)
これらの手続きは整数を返す。
手続きfloorは,引数xより大きくない最大の整数を返す。手続きceilingは,引数xより小さくない最
小の整数を返す。手続きtruncateは,引数xの絶対値より絶対値が大きくない最も近い整数を返す。手続
きroundは,引数xに最も近い整数を返す。ただし,引数xが二つの整数のちょうど中間の場合には偶数
に丸める。
備考1. 手続きroundは,IEEEの浮動小数規格で定められている無指定時丸めモードに従って,偶数
に丸めている。
2. これらの手続きの引数の一部が不正確数であった場合,結果も不正確数となる。正確値が必
要な場合には,結果を手続きinexact->exactで処理する必要がある。
例54:
(floor −4.3)
⇒
−5.0
(ceiling −4.3)
⇒
−4.0
(truncate −4.3)
⇒
−4.0
(round −4.3)
⇒
−4.0
(floor 3.5)
⇒
3.0
(ceiling 3.5)
⇒
4.0
(truncate 3.5)
⇒
3.0
(round 3.5)
⇒
4.0 ; inexact
(round 7)
⇒
7
8.5.7.17 en及び自然対数
(exp x)
(log x)
手続きexpは,自然対数の底eを引数xによってべき乗した結果を返す。手続きlogは,引数xの自然
対数を返す。10を底とする対数ではない。引数xが0又は負である場合には,エラーを発生する。
8.5.7.18 三角関数
(sin x)
(cos x)
(tan x)
手続きsin,手続きcos及び手続きtanはそれぞれ,引数xの正弦,余弦及び正接を返す。
8.5.7.19 逆三角関数
(asin x)
50
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(acos x)
(atan x)
(atan q1 q2)
手続きasin手続きacos及び手続きatanはそれぞれ,引数の逆正弦,逆余弦及び逆正接を返す。その結
果は数でなければならない。二つの引数をもつ手続きatanの変形は,実数部に引数q2をもち,虚数部に引
数q1をもつ複素数を返す。引数q1及び引数q2の次元は等しくなければならない。
手続きasinは,−π/2からπ/2の範囲の値を返す。手続きacosは,0 からπの範囲の値を返す。手続きatan
は,−π/2からπ/2の範囲の値を返す。
8.5.7.20 平方根関数
(sqrt q)
引数qの平方根を返す。引数qの次元は,偶数でなければならない。結果の次元は,引数qの次元の半
分となる。引数qが負の場合,誤りを発生する。
8.5.7.21 指数関数
(expt x1 x2)
この関数は,引数x1の引数x2乗を返す。(expt x1 0)は,1と等しいと定義する。
8.5.7.22 正確値変換
(exact->inexact q)
(inexact->exact q)
手続きexact->inexact は,引数qの不正確値表現を返す。返す値は,数値的に引数に最も近い不正確数
量となる。正確値が適度に近い対応する不正確値をもたない場合,実装の制限違反を報告してもよい。
手続きinexact->exactは,引数qの正確値表現を返す。返す値は,数値的に引数に最も近い正確値数量と
なる。不正確値が適度に近い対応する正確値をもたない場合,実装の制限違反を報告してもよい。
これらの手続きは,実装依存の範囲内で正確値と不正確値との自然な一対一対応を実現する。
8.5.7.23 数量から数値への変換
(quantity->number q)
引数qが示す数量の数値を返す。
8.5.7.24 数値から文字列への変換
(number->string number)
(number->string number radix)
引数Radixは,正確値整数の2,8,10及び16のいずれかでなければならない。引数radixが省略された
場合10と解釈する。手続きnumbe->stringは,数値及び基数を引数にとり,任意の基数をもつ任意の数値
の外部表現形式の文字列として返す。その場合次の式の評価結果が真となる。
(let ((number number)
(radix radix))
(equal? number
(string->number (number->string number
radix)
radix)))
この式を評価した結果が真とならない場合は誤りとする。
引数numberが不正確値で,基数が10及び上述の式が小数点を含む結果で真であるためには,結果は小
51
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
数点を含み,指数と続く0を除いて最小の数の数字を用いて表現されている必要がある。それ以外の形式
では,結果は不定となる。
手続きnumber->stringが返す結果は,基数を表す前置子をもつことはない。
備考 引数numberが不正確数であって浮動小数を用いて表現されており,その基数が10の場合に,
前述の式は通常小数点を含む結果によって満足する。無限の場合,NaNsの場合及び浮動小数表
現でない場合には,不定となる。
(format-number n string)
引数nの文字列表現を返す。引数stringは使用する形式を示し,次のいずれかを用いて指定する。
a) 1の場合,0,1,2,...を用いる。
b) 01の場合,00,01,02,...を用い,任意の先行する0について同様に振る舞う。
c) aの場合,0,a,b,c,...z,aa,ab,...を用いる。
d) Aの場合,0,A,B,C,...Z,AA,AB,...を用いる。
e) iの場合,0,i,ii,iii,iv,v,vi,vii,viii,ix,x,...を用いる。
f)
Iの場合,0,I,II,III,IV,V,VI,VII,VIII,IX,X,...を用いる。
(format-number-list list obj1 obj2)
引数listは整数のリストとする。引数listの文字列表現を返す。引数obj1は各数に使用する形式を指定す
る。それはすべての数に適用する引数format-numberと同形式の一つの文字列又はそれぞれが引数
format-numberと同形式であって,引数list内の要素数と同数の文字列から成る文字列のリストとする。引
数obj2は,一つの文字列又は文字列のリストであって,各数を表す文字列の分離子として用いる。それは
一つの文字列又は引数listの要素数より要素数が1だけ少ない文字列のリストとする。
8.5.7.25 文字列から数値への変換
(string->number string)
(string->number string radix)
引数stringが表現する最大の正確さをもつ数値を返す。引数radixは,正確値整数で,2,8,10及び16
のいずれかでなければならない。引数radixが指定された場合でも,例えば,"#o177"のように引数string
で指定した明示的な接頭辞が優先する。引数radixが省略された場合は,10と解釈する。引数stringが構
文上数値として有効でない場合,手続きstring->numberは,#fを返す。
例55:
(string->number "100")
⇒
100
(string->number "100" 16)
⇒
256
(string->number "1e2")
⇒
100.0
8.5.8
文字
文字オブジェクトは,文字を現す。
[94] character=#\any-character | #\character-name
[95] character-name=letter ( letter | digit | − | . ) +
文字は,#¥文字又は#¥文字名の形式を用いて表記する。その例を次に示す。
a) #\a: 小文字の'a'
b) #\A: 大文字の'A'
c) #\ (: 左丸かっこ
d) #\ : 空白類文字
52
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
e) #\space: スペースの望ましい表記
#\文字名の形式で文字がアルファベットの場合,文字名に続く文字はスペース,かっこなどの区切り文
字でなければならない。この規則は,例えば文字列#\spaceが,空白文字の表現とも#\sにpaceが続く表
現とも解釈できるあいまいさを解決する。
文字名は,文字レパートリ宣言で宣言した文字の名前でなければならない。
#\記法で記述された文字は自己評価的とする。つまり,式の中でクォートする必要はない。
8.5.8.1
文字特性
すべての文字は名前付きの特性をもつ。各特性は無指定時値をもつ。
[96] character-property-declaration= ( declare-char-property identifier expression)
この構文は識別子identifierが文字特性であって,無指定時値がexpressionの値に等しいことを宣言する。
[97] added-char-properties-declaration= ( add-char-properties keyword-argument-list character+)
[98] keyword-argument-list= (keyword expression)*
構文added-char-properties-declarationは,節characterで指定した各文字に特性を追加する。節
keyword-argument-listは追加する特性を指定する。節keywordは特性名を指定し,式expressionは特性値を
指定する。各特性は,この規格で事前に定義した特性又は構文character-property-declarationで明示的に指
定した特性のいずれかとする。
次の文字特性を事前定義とする。
a) numeric-equiv : は,等価な数を示す整数又は#fを値とする。無指定時値は,#fとする。
追加特性は,スタイル言語で事前に定義されている。
8.5.8.2
言語依存操作
文字に関する特定の操作,例えば文字の大小変換又は照合は,その文字が用いられている自然言語に依
存する。言語データ型は,言語依存の操作がどのように行われるかを記述する。式はその時点で有効な言
語を考慮して評価できる。有効言語が存在しない場合に,有効言語を要する手続きを呼び出すのは誤りと
する。
文字を操作する幾つかの手続きは文字の大小を無視する。文字の大小を無視する手続きは,-ci(大小無
効の意味)がその名前に埋め込まれている。これらの手続きは,常にその引数が大文字に変換されている
かのように振る舞う。これらの手続きはすべて有効言語を使用する。
(language? obj)
手続きlanguage?は,引数objが言語型の場合に#tを返し,そうでなければ#fを返す。
(current-language)
計算の任意の場所で有効言語が存在してよい。手続きcurrent-languageは,有効言語が存在すれば有効言
語を,そうでなければ#fを返却する。
[99] default-language-declaration= (declare-default-language expression)
構文default-language-declarationは,式の評価において初期値として用いられる有効言語を宣言する。式
は,言語オブジェクトに評価されなければならない。
参考 構文default-language-declarationは,中核式言語の一部ではない。
(with-language language proc)
手続きwith-languageは,引数なしの手続きを言語を有効言語として呼び出す。
53
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.5.8.2.1
言語定義
[100] language-definition=
(define-language variable [[collation-specification? | toupper-specification? | tolower-specification?]])
構文language-definitionは,変数を言語型のオブジェクトとして定義する。
参考 構文language-definitionは,中核式言語の一部ではない。
8.5.8.2.1.1
照合
[101] collation-specification=
(collate [[multi-collating-element-specification* | collating-symbol-specification* ]]order-specification)
構文collation-specificationは,文字列の相対順序を決定する。
備考 この照合指定の構文は,ISO 9945-2 : 1993に基づく。規格には読者の助けとなる例を含む。
[102] multi-collating-element-specification= (element multi-collating-element string)
[103] multi-collating-element=identifier
二つの文字列を比較する場合,各文字列は照合要素 (collating-element) にまで分割される。各照合要素
は単一の文字か,一つの単位として扱われる一連の文字である。構文multi-collating-element-specificationは,
文字列中で単一の照合要素として扱う一連の文字を宣言する。構文order-specificationでは,この照合要素
は複数照合要素識別子 (multi-collating-element) によって識別できる。複数照合要素識別子として宣言され
た識別子は,重み識別子 (weight-identifier) として用いられているものとは異なっていなければならない。
[104] collating-symbol-specification= (symbol weight-identifier)
[105] weight-identifier=identifier
構文collating-symbol-specificationは,重み識別子が構文order-specification内で用いることのできる識別
子だと宣言する。
[106] order-specification= (order sort-rules collation- entry*)
[107] sort-rules= (level-sort-rules+)
各構文order-specificationは,複数の異なる比較水準を定義する。二つの文字列が最初の水準で等しい場
合,2番目の水準で比較が行われる。2番目の水準で等しい場合,3番目の水準で比較が行われる。この手
順はすべての水準で比較を行うか,文字列が等しくなくなるまで繰り返す。順序指定の水準の数は,構文
level-sort-ruleの数で決定される。
[108] level-sort-rules=sort-keyword | ((sort-keyword+))
[109] sort-keyword=forward | backward | position
構文level-sort-ruleは,各水準で文字列をどのように比較するかを定義する。
任意の水準で,比較する文字列中の各照合要素に0以上の重みがつけられる。結果として各文字列の順
序付きリストの重みになる。
"backward" 及び "forward" の整列見出しは,その水準での比較方向を決定する。 "backward" の整列見
出しを指定した場合,比較は最後の重みをもったものから最初の重みをもったものへ進む。そうでなけれ
ば,最初から最後に進む。 "position" の整列見出しを指定した場合,比較の際に各重みに対応する整列要
素の位置を考慮する。異なる位置の二つの重みを比較する場合,比較方向で先行する場所を先に整列する。
同一の整列水準規則では, "forward" 及び "backward" の両者を含んではならない。
[110] collation-entry= ((collating-element level-weight*)) | weight-identifier | collating-element
各構文collation-entryは,構文order-specification内の位置で決定される重みと関連する。最初の整列項
(collation-entry) が最も低い重みをもち,2番目が次に低い重みをもち,以降同様に続く。
54
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
整列項が重み識別子の場合,その整列項の効果は重み識別子をその整列に関連する重みを重み識別子と
関連することとする。
整列要素を含む整列項は,次の二つの用途に用いる。
a) 各水準の重み整列要素に割り当てる。
b) 整列要素が重み内で用いられる場合に,整列項と関連する重みを示させる。
水準重みがある水準で指定されなかった場合,整列項と関連する単一の重みが割り当てられる。例えば,
#\aの整列項が (#\a#\a) の整列項と同等の場合など。
[111] collating-element=character | multi-collating-element | #t
整列要素として#tを使用する場合,整列項を用いて明示的に重みが割り当てられない整列要素すべてに
指定した値を割り当てる。
[112] level-weight=weight | weight-list
[113] weight-list= (weight*)
水準重みは,特定の水準に割り当てる重みを指定する。
[114] weight=weight-identifier | multi-collating-element | character | string
文字列の指定は,その文字列が含む文字の並びを指定するのと同じとする。
8.5.8.2.1.2
文字の大小変換
[115] toupper-specification= (toupper case-conversion-list)
[116] tolower-specification= (tolower case-conversion-list)
[117] case-conversion-list= ((character character))*
構文case-conversion-listでは,構文toupper-specification又は構文tolower-specificationの文脈に従って,
第一の文字の変換結果として,第二の文字として指定する。
8.5.8.3
文字型判定
(char? obj)
引数objが文字の場合に#tを返し,その他の場合に#fを返す。
8.5.8.4
文字比較判定
(char=? char1 char2)
(char<? char1 char2)
(char>? char1 char2)
(char<=? char1 char2)
(char>=? char1 char2)
これらの手続きは文字の集合に対して完全順序を規定する。手続きchar=?以外の手続きは有効言語を使
用する。
8.5.8.5
大小無視の文字判定
(char-ci=? char1 char2)
(char-ci<? char1 char2)
(char-ci>? char1 char2)
(char-ci<=? char1 char2)
(char-ci>=? char1 char2)
これらの手続きは,手続きchar=?などと似ているが,大文字と小文字とを同じにみなす。これらすべて
の手続きは有効言語を使用する。例えば, (char-ci=? #\A #\a) は#tを返す。
55
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.5.8.6
文字の大小変換
(char-upcase char)
(char-downcase char)
これらの手続きが返却する,引数charに対して対応する大文字又は小文字は,有効言語で定義するもの
と同じとする。引数charが対応する大文字又は小文字をもたない場合,文字を返す。
8.5.8.7
文字特性
(char-property symbol char)
(char-property symbol char obj)
手続きchar-propertyは,引数symbolが示す文字特性の値を返す。シンボルが文字特性でない場合,エラ
ーが発生する。文字が引数symbolの特性をもたない場合,引数objを返す。引数objが指定されなかった
ときは,特性の無指定時値を返す。
8.5.9
文字列
文字列は,一連の文字である。
[118] string="string-element*"
[119] string-element=any-character-other-than-"-or-\|\"|\\|\character-name ; ?
文字列は,二重引用符 (") で囲まれた一連の文字で表す。文字列中に表記する二重引用符は,逆スラッ
シュ (\) で抑制することによって次のように表記できる。
"The word \"recursion\" has many meanings."
逆スラッシュは,文字列中で他の逆スラッシュによって抑制することによって表記できる。文字列中の
任意の文字は,逆スラッシュに続けてその名前を表記することによって示すことができる。名前はその文
字列中で続く文字がないか又は続く文字が文字クラスsubsequentでない場合以外は,セミコロンで区切ら
なければならない。個々で用いる名前は,文字の#\構文で用いるものと同じとする。
文字列定数は一つのレコードから次のレコードに続いてよく,その場合実体中に二つのレコードを分割
する文字を含むこととなる。
文字列の長さは,その文字列が含む文字の個数である。この個数は文字列が生成されたときに確定する
非負整数である。文字列の有効な指標は,非負の正確値整数で,文字列の長さ未満のものである。文字列
の最初の文字は指標0で,2番目は1で,以降同様の指標で参照する。
指標startで始まり,指標endで終わる文字列の文字などの句では,指標startは含まれ,指標endは含
まれないとする。したがって,start及びendが同じ指標を示す場合,長さ0の部分文字列が参照されてい
る。startが0でendが文字列の長さの場合,文字列全体が参照されている。
文字列を操作する幾つかの手続きは,操作前に文字列を大文字に変換することによって文字の大小の違
いを無視する。文字の大小を無視する場合の手続きは,その名前に'-ci'(大小を区別しないの意味)を埋め
込まれている。
8.5.9.1
文字列型判定
(string? obj)
引数objが文字列の場合#tを返し,その他の場合に#fを返す。
8.5.9.2
文字列生成
(string char ...)
一連の引数から成る文字列を返す。
56
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
8.5.9.3
文字列長
(string-length string)
引数stringの文字数を返す。
8.5.9.4
文字列アクセス
(string-ref string k)
引数kは,引数stringの有効な指標でなければならない。手続きstring-refは,0を起点とする引数kを
指標として用い,引数stringの文字を返す。
8.5.9.5
文字列等価性
(string=? string1 string2)
(string-ci=? string1 string2)
二つの文字列が同じ長さで,同じ文字を同じ位置にもつ場合に#tを返し,その他の場合に#fを返す。手
続きstring-ci=? は,文字の大小を無視するが,手続きstring=? は文字の大小を区別する。手続きstring-ci
=? は,有効言語を使用する。
(string-equiv? string1 string2 k)
二つの文字列が,現言語の照合指定において,最初から引数kが示す数の比較水準において同一の場合
に#tを返し,その他の場合に#fを返す。ここで引数kは正でなければならない。
8.5.9.6
文字列比較
(string<? string1 string2)
(string>? <string1 string2)
(string<=? string1 string2)
(string>=? string1 string2)
(string-ci<? string1 string2)
(string-ci>? string1 string2)
(string-ci<=? string1 string2)
(string-ci>=? string1 string2)
これらの手続きは,文字の順序付けに対応する辞書順の文字列への拡張である。例えば,手続きstring<?
は,手続きchar<?の文字に対する順序付けによって,文字列を辞書順を順序付ける。二つの文字列の長さ
が異なり,短い方の長さまでの文字が同じであった場合,短い方の文字列が長い方より辞書順で小さいと
みなす。これらの手続きは現言語を使用する。
8.5.9.7
部分文字列抽出
(substring string start end)
引数string内の引数start(その指標位置含む。)で始まり,引数end(その指標位置含まない。)で終わ
る文字から成る文字列を返す。
8.5.9.8
文字列の付加
(string-append string ...)
与えられた文字列を連結した文字列を生成して返す。
8.5.9.9
文字列とリストとの間の変換
(string->list string)
(list->string chars)
手続きstring->listは,文字列を構成する文字から成るリストを返却する。手続きlist->stringは,引数chars
57
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
が示す文字のリスト中の文字から成る文字列を返却する。手続きstring->list及び手続きlist->stringは,手
続きequal?の観点において逆変換となる。
8.5.10 手続き
8.5.10.1 手続き型判定
(procedure? obj)
引数objが手続きの場合に#tを,その他の場合に#fを返す。
例56:
(procedure? car)
⇒
#t
(procedure? 'car)
⇒
#f
(procedure? (lambda (x) (* x x)))
⇒
#t
(procedure? ' (lambda (x) (* x x)))
⇒
#f
8.5.10.2 手続き適用
(apply proc args)
(apply proc arg1 ... args)
引数procは手続きであって,引数argsはリストでなければならない。最初の(基本の)形式は,実際
の引数として引数argsの要素をもつ手続きprocを呼び出す。2番目の形式は,最初のものを一般化したも
ので,式 (append (list arg1 ...)args) が返すリストの要素を実際の引数として引数procを呼び出す。
例57:
(apply + (list 3 4))
⇒
7
(define compose
(lambda (f g)
(lambda args
(f (apply g args)))))
((compose sqrt *) 12 75)
⇒
30
8.5.10.3 リスト間対応手続き
(map proc list1 list2 ...)
引数listsはリスト,引数procはlistと同じ数の引数を取る手続きでなければならない。一つ以上の引数
listsが与えられた場合,それらはすべて同じ長さでなければならない。手続きmapは,引数procを引数lists
の要素一つずつに適用し,右から左に連結した結果のリストを返す。
例58:
(map cadr '((a b) (d e) (g h)))
⇒
(b e h)
(map (lambda (n) (expt n n))
'(1 2 3 4 5))
⇒
(1 4 27 256 3125)
(map + '(1 2 3) '(4 5 6))
⇒
(5 7 9)
8.5.10.4 外部手続き
(external-procedure string)
手続きexternal-procedureは,引数stringを公開識別子とする外部手続きの手続きオブジェクトを返す。
処理系が外部手続きを見いだせない場合,#fを返却する。手続きオブジェクトに渡された引数は,外部手
58
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
続きに引き渡たされる。引数の数又は型が,外部手続きの期待するものと異なる場合には,エラーを発生
してよい。手続きオブジェクトを呼び出すことで外部手続きの実行結果が得られる。外部手続きは,副作
用無しの方が望ましい。実装はそのように仮定してよい。それらの手続きは,処理系から情報を得るため
に用い,処理系の状態を変えるために使うことを推奨しない。
8.5.11 日付及び時間
(time)
(time->string k)
(time->string k boolean)
手続きtimeは,1970年1月1日午前0時0分0秒 (GMT) から経過した秒数を整数として返す。手続き
time->stringは,手続きtimeが返す日付及び時間の整数表現をISO 8601の形式の文字列に変換する。
引数booleanが存在し,それが真の場合,文字列表現はGMTに基づくものとなり,その他の場合に現地
時間を示す。
(time<? string1 string2)
(time>? string1 string2)
(time<=? string1 string2)
(time>=? string1 string2)
これらの手続きは,ISO 8601形式で日付及び時間を表現する文字列の集合に全順序を与える。引数がISO
8601形式の日付又は時間を表現しなければ,エラーとする。
8.5.12 誤り発生
(error string)
手続きerrorは,エラーを発生する。引数stringはエラーを詳述する。エラーが発生した場合の処理系の
挙動は,処理系定義とする。特に,エラーを利用者に報告する様式は処理系定義とする。しかし,引数string
はエラー報告に使用し,エラーが発生した文脈を説明するのが望ましい。手続きerrorは,値を返さない。
8.6
中核式言語
中核式言語と呼ぶ,式言語の部分集合を8.6において規定する。中核式言語においては,8.6の規則に従
う式及び定義だけが利用でき,8.6の原型をもつ手続きだけが利用可能となる。中核式言語において有効で
あるすべての式又は定義は,完全仕様式言語におけるその意味と同じ意味をもつ。
8.6.1
構文
[120] expression=primitive-expression | derived- expression
[121] primitive-expression=variable-reference | literal | procedure-call | conditional
[122] variable-reference=variable
[123] variable=identifier
[124] literal=quotation | self-evaluating
[125] quotation= 'datum | (quote datum)
[126] datum=simple-datum | list
[127] simple-datum=boolean | number | character | string | symbol | keyword | glyph-identifier
[128] list= (datum*) | 'datum
[129] self-evaluating=boolean | number | character | string | keyword | glyph-identifier
[130] procedure-call= (operator operand*)
[131] operator=expression
59
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
[132] operand=expression
[133] conditional= (if test consequent alternate)
[134] test=expression
[135] consequent=expression
[136] alternate=expression
[137] derived-expression=cond-expression | case-expression | and-expression | or-expression
[138] cond-expression= (cond cond-clause+) | (cond cond-clause* (else expression))
[139] cond-clause= (test expression)
[140] case-expression= (case keycase-clause+) | (case keycase-clause* ( else expression))
[141] key=expression
[142] case-clause= ((datum*) expression)
[143] and-expression= (and test*)
[144] or-expression= (or test*)
[145] definition= (define variable expression)
8.6.2
手続き
(not obj)
(boolean? obj)
(equal? obj1 obj2)
(null? obj)
(list? obj)
(list obj ...)
(length list)
(append list ...)
(reverse list)
(list-tail list k)
(list-ref list k)
(member obj list)
(symbol? obj)
(keyword? obj)
(quantity? obj)
(number? obj)
(real? obj)
(integer? obj)
(= q1 q2 q3 ...)
(< q1 q2 q3 ...)
(> q1 q2 q3 ...)
(<= q1 q2 q3 ...)
(>= q1 q2 q3 ...)
(max q1 q2 ...)
(min q1 q2 ...)
60
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(+ q1 ...)
(* q1 ...)
(− q1 q2)
(− q)
(/ q1 q2)
(/ q)
(abs q)
(quotient n1 n2)
(remainder n1 n2)
(modulo n1 n2)
(floor x)
(ceiling x)
(truncate x)
(round x)
(sqrt q)
(number->string number)
(number->string number radix)
(string->number string)
(string->number string radix)
(char? obj)
(char=? char1 char2)
(char-property symbol char)
(char-property symbol char obj)
(string? obj)
(string char ...)
(string-length string)
(string-ref string k)
(string=? string1 string2)
(substring string start end)
(string-append string ...)
(procedure? obj)
(apply proc args)
(external-procedure string)
(time)
(time->string k)
(time->string k boolean)
(error string)
9. グローブ
グローブは,ノードの集合であって,グローブ設計に従って構築する。グローブ内の各ノードは,グロ
61
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ーブ設計内の名前付きクラスに属する。ノードは,特性割当ての集合であって,各特性割当ては特性名及
び特性値から成る。
グローブ設計は,クラスの集合を定義し,各クラスに関して特性の順序集合を定義する。
ノードの各特性割当てに対して,ノードのクラスに対応した特性が一つだけ存在し,その特性の名前は
特性割当ての名前部分と同じになる。これを,特性割当ての特性と呼ぶ。その特性割当ての値部分は,特
性割当の特性の値と呼ぶ。ノードに特性割当てが存在し,その特性がpであって,その値部分がvである
場合に,ノードはその特性pに関して値vを開示するという。ノードが値を開示する特性をそのノードの
特性と呼ぶ。
クラスの特性の順序は,そのクラスのノードに関して,対応する特性割当ての順序を決定する。
すべての特性値は,データ型をもつ。特性の定義は,特性の値に対して可能になる特定の特性のデータ
型を宣言する。このデータ型を,その特性の宣言データ型と呼ぶ。
論理型,文字列型などの単純な抽象データ型に加え,ノード型 (nodal) と総称する三つの特別なデータ
型が存在する。それらの値は,複数のノード又は複数のノードリストとなる。これらは,9.3.3において規
定する。
特性の定義は,特定の状況においては,宣言データ型の値ではなく,ヌル値を特性がもつことを許容す
る。このヌル値は,データ型nullの一意オブジェクトとする。データ型nullは,宣言データ型としては使
用できない。
9.1
ノード型 (nodal) 特性
クラスの特性は,下位ノード (subnode) 特性であってよい。下位ノード特性の宣言データ型はノード型
でなければならない。ノードが下位ノード特性の値を開示している場合,その特性値のすべてのノードは,
その値を開示しているノードと同じグローブに存在する。グローブ中のノードの下位ノード特性の値は,
グローブのすべてのノードをラベル付きの枝によって1本の木に接続しているとみることができる。詳細
を次に示す。
a) どのグローブにおいても,グローブ根と呼ぶ一意ノードがあり,それはノードの下位ノード特性の値
には出現しない。
b) グローブ根以外のすべてのノードnに対して,一意ノードoがあり,次の両方を満たす一意な特性p
が存在する。
1) 特性pが,下位ノード特性と宣言されている。
2) ノードoが,特性pに関してノードnそのもの,又はノードnを含む値を開示している。
ここでノードoをノードnの起点と呼び,特性pをノードnの起点下位ノード関係と呼ぶ。
c) 根以外のすべてのノードnに関して,m1をグローブ根とし,mkをノードnとした場合に,1<i<k-1の
範囲のすべてのiに関してmiがmi+1の起点となる,ノード列m1,m2,...mkが存在する。
この木を,下位ノード木と呼ぶ。ノードのすべての子どもが,そのノードの単一の特性の値の一部とし
て出現する下位ノード木の部分木を,応用が扱うことは有用となる場合が多い。この目的で,クラスの特
性の一つを,そのクラスの子ども特性として区別する。これは,特性をそのクラスの内容特性とすること
によって,間接的に実現されている。内容特性のデータ型がノード型の場合,子ども特性となる。その他
の場合には,そのデータ型の基本データ型は文字型又は文字列型でなければならず,そのノードのデータ
特性となる。ノードに関連して使用した場合,子どもという用語は,子ども特性の値として出現するノー
ドを指す。子ども特性をもつノードのデータは,ノードの各子のデータを,特性data-separatorで区切った
ものとなる。あるノードの起点が子ども特性をもち,その値の中にそのノードが含まれている場合,その
62
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ノードは親をもつ。ノードが親をもつ場合,それは,ノードの起点と同一となる。修飾なしの木という用
語は,この親子関係で形成される木を示す。ノードの祖先は,そのノードの親とその祖先とで構成される。
ノードxの木根は,ノードxが祖先をもたない場合はそのものであり,その他の場合には,ノードxの祖
先であって,それ自体は祖先をもたないノードとなる。ノードの兄弟は,グローブ根に関しては空集合と
する。それ以外の場合は,そのノードの起点の起点下位ノード関係特性の値のノード集合からそのノード
自体を除いたものとする。
備考 起点下位ノード関係特性はその起点の子ども特性である必要はないので,ノードは親がなくて
も兄弟をもつことがある。
ノードの部分木は,そのノードとその子どもの部分木とから成る。ノードの子孫は,そのノードの子ど
もの部分木とする。すべてノードの部分木内のノード集合に関して,木の順序と呼ぶ全順序を定義する。
この順序は,ノードをその子どもより先に訪れる木の行き掛け順に対応する。
ノード型を宣言データ型にもち,下位ノード特性ではない特性には次の二つの場合がある。
a) その特性が内部参照ノード (irefnode) の場合。この特性に関しては,その値の中のノードは,その値
を開示するノードと同じグローブに存在しなければならない。下位ノード特性及び内部参照ノード特
性は,グローブ中のすべてのノードを結び,単一の有向グラフとする。その特性の名前は,そのグラ
フの弧をラベル付けするとみなしてよい。
b) その特性が無制限参照ノード (urefnode) である場合。この特性に関しては,その値の中のノードは,
その値を開示するノードとは別のグローブに存在してもよい。したがって,下位ノード特性,内部参
照ノード特性及び無制限参照ノード特性は,複数のグローブのノードを結んで,一つのグラフとする。
結ばれたグローブの集合をハイパグローブと呼ぶ。
9.2
グローブ設計
グローブ設計は,特性集合からのクラスの選択及び特性の選択を指定する。特性集合は,9.3に示すとお
りに,SGMLで表現した特性集合定義を用いて定義する。
グローブへの任意の入力に関して,特性集合は完全グローブを決定する。完全グローブは,特性集合か
らすべてのクラス及び特性を選択したグローブ設計を使用して作成される。
備考 完全グローブは,構文解析系がグローブの入力に関して入手可能にできるすべての情報を含む。
どの特定応用に関しても,この情報の多くは重要ではない。グローブ設計は,応用が必要な情
報だけを含むグローブを得る手段を提供する。
グローブ設計から構築されるグローブは,完全グローブを次の方法で修正することによって得られるグ
ローブと同じでなければならない。
a) ノードの部分グローブに印を付ける。最初にそのノード自体に印を付ける。次に,各下位ノード特性
に関して,グローブ設計にその下位ノード特性が含まれる場合,その値の各ノードのうち,そのクラ
スがグローブ設計に含まれているノードの部分グローブに印をつける。グローブに含めるノードは,
グローブ根の部分グローブに印を付けることで決定できる。この方法で印を付けたノードだけを,構
築したグローブに含める。
b) 構築したグローブの中のノードは,そのグローブに含めると指定した特性の値だけを開示する。
c) 完全グローブの中のノードが,内在特性の値を開示し,その値の意味が,そのノードの開示する非内
在特性の名前であって,その非内在特性がグローブ設計に含まれない場合,構築したグローブのノー
ドは,その内在特性の値に関してヌル値を開示しなければならない。
d) 完全グローブの中のノードが,内在特性の値を開示し,その内在特性の値の意味が,そのノードが開
63
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
示する非内在特性の名前リストであって,その非内在特性がグローブ設計に含まれない場合,構築し
たグローブのノードは,完全グローブの値からグローブ設計に含まれないすべての非内在特性の名前
を除外して得られた内在特性の値を開示しなければならない。
e) 完全グローブのノードが,宣言データ型がノード型の内部参照ノード特性の値を開示するが,その特
性の値に構築するグローブへの取込みのために印を付けられていない場合,構築したグローブ内のそ
のノードは,その特性に対してヌル値を開示しなければならない。
f)
完全グローブのノードが,宣言値が抽象データ型nodelist又は抽象データ型nmndlistをもつ内部参照
ノード特性に関して値を開示する場合,構築したグローブに含めると印を付けられていない,すべて
のノードを完全グローブから除外することによって,構築したグローブにおける値が得られる。
9.3
特性集合定義
特性集合定義は,JIS X 4155の特性集合定義に対する要求事項の中で完全に記述している。9.3は,この
規格の理解に必要な詳細だけ説明した簡易版を提供する。
最上位レベルの要素を要素propsetとする。属性psn及び属性fullnmは,短いSGML名及び長い記述名
を指定する。特性集合の様々な場所で,次の要素が出現可能である。
a) 要素descは,それが出現する要素が定義するオブジェクトの説明を含む。
b) 要素noteは,定義するオブジェクトに関する注釈を含む。
9.3.1
共通属性
9.3.1.1
構成要素名
クラス名,特性名,列挙値名は単一の文字列ではなく,三つ組みの文字列とする。その中の各文字列は,
それぞれ異なる文脈において適切な名前となっている。
a) 参照具象構文名(RCS名)は,SGML参照具象構文において有効な名前が必要な文脈での使用にふさ
わしい。
b) 応用名は,プログラム言語又はスクリプト言語における識別子としての使用にふさわしい名前を指定
する。応用名は空白類文字で分割される複数の語を含んでよい。複数の語から成る識別子について,
言語ごとの通常の規則に従って,その名前は,それを使う言語の有効な識別子に変換されなければな
らない。例えば, “processing instruction” という応用名は,プログラム言語に対応させた場合,その
言語に応じて “ProcessingInsruction” , “processing-instruction” 又は “PROCESSING̲INSTRUCTI0N”
となる。
c) 完全名は,支援文書における使用にふさわしい省略無しの名前とする。
三つの部分から成るこれらの名前を構成要素名と呼ぶ。
これらの三つの名前は次の属性によって指定する。
a) 属性rcsnmは,特性のRCS名を指定する。
b) 属性appnmは,特性の応用名を指定する。この無指定時値はRCS名とする
c) 属性fullnmは,特性の完全名を指定する。この無指定時値は応用名とする。
9.3.1.2
規格文書
特性集合内で出現する様々な要素は,規格文書の中の構成要素を参照することによって定義を行う。こ
れらの要素は,次の共通属性を使用する。
a) 属性sdは,規格文書を指定する。この無指定時値はSGMLとする。公式には,その値は記法名とす
る。他の指定可能な値には,JIS X 4155の一般機能を表すGenFac及びDSSSLがある。
b) 属性clauseは,規格文書における適用可能な節を指定する。SGMLの場合には,これはISO/IEC 13673
64
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の記法を使用する。
9.3.2
モジュール
特性集合定義は,要素psmodule が記述する名前付きモジュールに分割できる。その属性は次の意味を
もつ。
a) 属性rcsnmは,モジュールのRCS名を与える。
b) 属性fullnmは完全名を与える。
c) 属性dependonは,このモジュールが依存しているモジュールの名前をリストする。
d) 属性requiredは,モジュールが必す(須)かどうか,つまり,すべてのグローブ設計に含まれるべき
かどうかを指定する。属性値required は,それが必す(須)であること,属性値nrequire は必す(須)
ではないことを意味する。無指定時値は属性値nrequire とする。
グローブ設計にあるモジュールを含めることは,グローブ設計に次のa),b)を含めることと等価となる。
a) モジュール内で定義したすべてのクラス及び特性。
b) モジュールが依存しているすべてのモジュール及び再帰的にそれらが依存しているすべてのモジュー
ル。
特性集合において定義されているモジュールに加え,この規格で定義されている内在モジュールが数多
くあり,これらは自動的にすべての特性集合の一部となる。内在モジュールで定義されている特性は,内
在特性と呼ぶ。内在モジュールは,すべての非内在モジュールより前に出現するものとして扱う。
9.3.3
データ型定義
すべてのデータ型は,要素datadefで定義する。属性は次の意味をもつ。
a) 属性rcsnmは,データ型のRCS名を与える。
備考 特性集合を,あるプログラム言語又はスクリプト言語で使用する場合,各抽象データ型は,そ
の言語によって提供されるデータ型の一つに明示的に結びつけられなければならないので,デ
ータ型に対する応用名はない。
b) 属性fullnmは,データ型の完全名を与える。
c) 属性nodalは,データ型がノード型か否かを指定する。指定可能な値には属性値nodal又は属性値
nonnodalとし,無指定時値を属性値nonnodalとする。
d) 属性listofは,データ型は他のデータ型の順序リスト又は配列であって,他のデータ型を属性の値と
して指定する場合に,データ型の意味の公式な指定を可能とする。
e) 属性superは,定義済みのデータ型の間において,型階層の指定を可能とする。属性値は,上位の型
の名前のリストとする。
データ型の基本データ型は,上位の型が無い場合,そのデータ型そのものであり,その他の場合,上位
の型の基本データ型とする。
幾つかのデータ型を次の内在モジュールにおいて定義する。
<psmodule rcsnm=intrdt fullnm= "intrinsic data types" required>
<datadef rcsnm=node nodal>
<desc>
単一ノード
<datadef rcsnm=nodelist listof=node nodal>
<desc>
0個以上のノードの順序付きリスト
65
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<datadef rcsnm=nmndlist fullnm= "named node list" super=nodelist nodal>
<desc>
ノードが,その特性の一つの値である名前によってそのノードリスト内で一意に識別できるノードリス
トとする。名前付きのノードリストは,その中のノードの各クラスに対して,文字列をそのデータ型とし,
その値がその名前付きノードリスト内でのそのクラスに属するノードの名前として働く特性を識別する。
加えて,名前付きノードリストは,その中のノードの各クラスに対して,名前空間所在番地付けの過程で
そのクラスのノードの名前と文字列を比較する前に,その文字列に適用する正規化規則をも識別する。
<datadef rcsnm=enum fullnm=enumeration>
<desc>
列挙値と呼ぶ,値の列挙集合の一つを表現するデータ型に使用する。使用できる列挙値はデータ型enum
が使用される文脈において定義する。
<datadef rcsnm=char fullnm=character>
<datadef rcsnm=string listof=char>
<datadef rcsnm=integer>
<datadef rcsnm=intlist fullnm= "integer list" listof=integer>
<datadef rcsnm=strlist fullnm= "string list" listof=string>
<datadef rcsnm=compname fullnm= "component name">
<desc>
構成要素名。つまり,三つの変数をもつ名前,RCS名,応用名及び完全名。
<datadef rcsnm=cnmlist fullnm= "component name list" listof=compname>
</psmodule>
9.3.4
クラス定義
クラスは,要素classdef によって定義する。構成要素名属性及び指定文書属性に加え,次の属性が指定
可能とする。
a) 属性conpropは,もしあればクラスの内容特性を識別する。
b) 属性dseppropは,クラスのデータ分離子特性を識別する。クラスは子ども特性(つまり,ノード内容
特性)をもつ場合だけデータ分離子識別子をもてる。
c) 属性mayadd は,変換言語における検証対応の定義に使用されるクラスの区分を識別する。11.4.1を
参照のこと。この属性では,属性値mayaddだけを指定可能とする。この属性の属性名は省略可能と
する。
9.3.5
特性定義
特性は,要素propdefを用いて定義する。構成要素名属性及び指定文書属性に加え,次の属性を指定可
能とする。
a) 属性cnは,この特性が属するクラスを指定する。要素propdefが要素classdef の中に出現する場合,
特性はそのクラスに属する。それ以外の場合,属性cnを用いてクラス名を指定しなければならない。
属性値#allは,それがノードのすべてのクラスに属することを意味し,属性値#groveは,グローブ根
ノードに属することを意味する。
b) 属性datatypeは,要素datadefの定義どおり,データ型のRCS名を指定する。
c) 属性acは,特性の値に出現可能なクラスを指定する。これは,データ型がノード型である場合だけに
適用する。無指定時値では,任意のクラスが値に出現可能とする。
66
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
d) 属性acnmpropは,データ型が型nmndlistの場合に適用でき,特性値内において出現可能な各クラスに
対して,名前付きノードリストにおいてそのクラスのノードの名前として働く特性名を指定する。属
性ac内の各クラスに,一つずつ特性名がなければならない。
e) 属性strnormは,値に適用する文字列正規化規則を指定する。文字列正規化規則は,データ型が文字
列,文字列のリスト又は上位型に文字列をもつ場合に適用する。各文字列正規化規則は要素normdef
を用いて定義する。
備考 参照具象構文を使用する場合に,SGMLが行う共通名の大文字への代替は,文字列正規化の例
である。
f)
属性noderelは,その特性が下位ノード特性,内部参照ノード特性又は無制限参照ノード特性のいずれ
であるかを示し,属性値subnode,属性値irefnode,属性値urefnodeでそれぞれ指定する。この属性は,
データ型がノード型である場合にだけ適用する。この属性の属性名は,通常省略する。
g) 属性vrfytype は,変換言語の検証対応を定義のために,特性を派生,オプション,その他に区分し,
それぞれ属性値derived,属性値optional,属性値otherで表現する。11.4.1を参照のこと。無指定時値
は,属性値otherとする。特性集合では,完全グローブの中のノードが,宣言データ型としてnodelist
又はnmndlistをもち,属性vrfytypeが属性値optionalをもつ特性に関して,空の値を許容してはなら
ない。
備考 ノードがそのような特性に対してnull値を開示する可能性はある。
h) 属性strlexは,字句解析型を指定する。値は要素lexdefで定義した字句解析型となる。特性の字句解
析型は,この規格では使用しない。字句解析型の意味は,JIS X 4155において定義する。
要素propdefは,要素desc及び要素noteに加え,次の型の下位要素をもてる。
a) 要素whenは,そのノードが値を開示する条件及び宣言データ型を指定する。この条件が満たされな
い場合,ノードはこの特性に対してnull値を開示しなければならない。
b) 要素enumdefは,データ型enumの場合に可能な列挙値を定義する。構成要素名属性だけをもつ。
9.3.6
正規化規則定義
文字列正規化規則は,要素normdefによって定義する。要素normdefは,属性rcsnm及び規格文書属性
をもつ。
9.4
内在特性
次のモジュールは,すべてのノードに適用する内在特性を定義する。
<psmodule rcsnm=intrbase fullnm= "intrinsic base" required>
<propdef cn= "#all" rcsnm=classnm appnm= "class name" datatype=compname>
<desc>
ノードのクラス名。
<propdef cn= "#all" rcsnm=grovroot appnm= "grove root" datatype=node
irefnode>
<propdef cn= "#all" rcsnm=subpns appnm= "subnode property names"
datatype=cnmlist>
<desc>
ノードが開示する,属性noderelが属性値subnodeの特性すべての名前。
<propdef cn= " #all " rcsnm=allpns appnm= "all property names" datatype=
cnmlist>
67
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
ノード開示するすべての特性の名前。
<propdef cn= "#all" rcsnm=childpn appnm= "children property name"
datatype=compname>
<desc>
子を表す特性の名前。
<when>
クラスが子を表す特性をもつ場合。
<propdef cn= "#all" rcsnm=datapn appnm= "data property name" datatype=
compname>
<when>
クラスがデータ特性をもつ場合。
<propdef cn= "#all" rcsnm=dseppn appnm= "data sep property name"
fullnm= "data separator property name" datatype=compname>
<when>
クラスがデータ分離特性をもつ場合。
<propdef cn= "#all" rcsnm=parent datatype=node irefnode>
<when>
ノードが親をもつ場合。
<propdef cn= "#all" rcsnm=treeroot appnm= "tree root" datatype=node irefnode>
<note>
ノードのこの特性は,そのノードが親をもたない場合には,ノード自体とする。
</note>
<propdef cn= "#all" rcsnm=origin datatype=node irefnode>
<when>
ノードがグローブ根ではない場合。
<propdef cn= "#all" rcsnm=otsrelpn appnm= "origin-to-subnode rel property
name"
fullnm= "origin-to-subnode relationship property name" datatype=compname>
<when>
ノードがグローブ根ではない場合。
</psmodule>
<psmodule rcsnm=intrhy fullnm= "intrinsic hytime">
<datadef rcsnm=grovepos appnm= "grove position" strlex=GROVEPOS>
<desc>
各要素が,次のいずれかとなるリスト。
a) 整数。
b) 構成要素名及び文字列から成る対。
c) 構成要素名及び整数から成る対。
d) 構成要素名。
68
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<propdef cn= "#all" rcsnm=grovepos appnm= "grove position" sd=GenFac
datatype=grovepos>
<desc>
グローブ内のノードの位置。
<propdef cn= "#all" rcsnm=treepos appnm= "tree position" sd=GenFac
datatype=intlist
strlex= "marker+">
<desc>
木の中におけるノードの位置を体系形式treelocで表したもの。
<propdef cn= "#all" rcsnm=pathpos appnm= "path position" sd=GenFac
datatype=intlist
strlex= "(marker,marker) +">
<desc>
その木の中におけるノードの位置を体系形式pathlocで表したもの。
</psmodule>
<propdet cn= "#grove" rcsnm=ptreert appnm= "principal tree root" sd=GenFac
datatype=node
irefnode>
9.5
補助グローブ
応用依存の方法で,ノードをグループ化すると便利な場合がある。これは,グローブ内のノードを入力
として用いて更に解析を行う,補助解析によって実現する。補助解析で生成されたグローブは,補助グロ
ーブと呼ぶ。補助グローブの生成に使用したグローブは,補助グローブの入力グローブと呼ぶ。補助グロ
ーブの各ノードは,属性noderelの値が属性値urefnodeとなる内在特性sourceをもち,その特性は入力グ
ローブにおいて派生元となったノードを指す。
<propdef cn= "#all' rcsnm=source datatype=nodelist urefnode sd=DSSSL>
9.6
SGML特性集合
SGMLの特性集合は次のとおりとする。
<!-- SGML Property Set -->
<!doctype propset public "ISO/IEC 10744:1993/DTD Property Set//EN"
"sgmlprop. dtd">
<propset psn= "sgmlprop" fullnm= "SGML Property Set">
<desc>
SGML文書を解析して,グローブ構築のために使用するクラス及び特性を定義する。
クラス及び特性を次のとおりに分類する。
a) 抽象又はSGML文書文字列 (SDS)
b) SGML宣言,文書prolog又は文書インスタンス
c) データタグ,ランク,短縮参照,連結,副文書,公式公開識別子のサポートだけに必要なもの
ESISは,baseabs(基本抽象モジュール),prlgabs0(前書き抽象モジュール0)及びinstabs(インスタン
ス抽象モジュール)の組合せにほぼ対応する。
</desc>
69
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<!--Note:
項番は,ISO/IEC 13673の6.3に規定の規則に適合する。その規則は,ISO 8879の構成要素を適合性検証
試験において,どのように識別するかを定義する。第一の数又は文字は,節を表す。この文書では,文字
は16進数を示す。第二の数又は文字は,副節を表す。第三の数又は文字は副々節を表す。第四の数又は文
字は副々々節を表す。最後の数又は文字は,段落番号を表す。この場合に,生成規則,注,リスト項目は
すべて独立した段落と数える。ただし,図を参照する場合には,節,副節,副々節を,FIGに置き換え,
副々々節は,図番号で置き換える。
ISO/IEC 13673の拡張として,第4節の副節は,4xxxyの形式で参照する。この場合,xxxは十進の副節
番号とし,yは通常どおり段落番号とする。
-->
<--基本抽象クラス及び特性-->
<psmodule rcsnm=baseabs fullnm= "base abstract">
<classdef rcsnm=sgmldoc appnm= "sgml document" clause= "62001">
<desc>
解析済みSGML文書又は副文書であって,グローブの根となる。
<propdef subnode rcsnm=sgmlcsts appnm= "sgml constants" datatype=node
ac=sgmlcsts clause= "41170 41180">
<propdef rcsnm=appinfo appnm= "application info"
fullnm= "application information" datatype=string strlex=mindata
clause= "d6001">
<desc>
SGML宣言が提供する応用情報
<when>
文書/副文書に適用するSGML文書のAPPINFOパラメタの値として,リテラルが指定された場合。
<propdef subnode rcsnm=prolog datatype=nodelist
ac= "doctpdcl lktpdcl comdcl pi ssep" cn=sgmldoc clause= "71001">
<propdef subnode rcsnm=epilog datatype=nodelist ac= "comdcl pi ssep"
cn=sgmldoc clausu "71002">
<desc>
文書インスタンスに続く他の前書き。
<classdef rcsnm=sgmlcsts appnm= "sgml constants" clause= "b6004 c2101">
<desc>
すべてのSGML文書に内在し,選択されたノードを保持しておく器。他の場所で内部参照ノード
(irefnode) として必要な可能性がある。
<note>
モジュールsrabs(短縮参照抽象モジュール)又はモジュールlinkabs(連結抽象モジュール)を使用し
ない場合,特性をもたない。
<classdef rcsnm=attasgn appnm= "attribute assignment"
conprop=value dsepprop=tokensep clause= "79002">
<desc>
70
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
属性の割当てであって,指定された場合及びデフォルトの場合の両方で存在する。
<note>
データ属性なので基本モジュールに含まれる。
<propdef subnode rcsnm=value datatype=nodelist
ac= "attvaltk datachar sdata intignch entstart entend" clause= "79401">
<note>
属性値がトークン化されている場合,子はノードattvaltkとなる。それ以外の場合は,他の許容できる
型のノードとなる。
<when>
属性指定が無く,暗黙の値指定がなされた属性ではない場合。
<propdef rcsnm=name datatype=string strlex=name strnorm=general
clause= "93001">
<propdef rcsnm=implied datatype=boolean clause= "b3407">
<desc>
属性指定が無く,暗黙の値指定がなされた属性の場合だけ真となる。
<propdef rcsnm=tokensep appnm= "token sep" fullnm= "token separator"
datatype=char clause= "79400">
<desc>
値のトークンの間の分離子。具象構文では常に文字SPACEに等しい。
<when>
ノードが,二つ以上のattvaltkクラスを子にもつ場合。
<classdef rcsnm=attvaltk appnm= "attribute value token" conprop=token
clausu= "79305">
<propdef rcsnm=token datatype=string strlex=nmtoken clause= "93003">
<classdef rcsnm=datachar appnm= "data char" fullnm= "data character"
conprop=char clause= "92002">
<propdef rcsnm=char fullnm=character datatype=char clause= "92003">
<desc>
解析系によって応用に渡される文字。
<classdef rcsnm=sdata
fullnm= "internal specific character data entity reference result"
conprop=char clause= "92101">
<propdef rcsnm=sysdata appnm= "system data" datatype=string clause= "43041">
<note>
特定の文字データ実体の置換テキストは,参照されている場合にはSDATAとして扱う。
<propdef rcsnm=char fullnm=character datatype=char sd=DSSSL>
<desc>
体系形式map-sdata-entityによってSDATA実体に関連付けられた文字。
<when>
文字が体系形式map-sdata-entityによってSDATA実体に関連付けられている場合。
71
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<classdef rcsnm=pi fullnm= "processing instruction" clause= "80000">
<desc>
処理命令
<propdef rcsnm=sysdata appnm= "system data" datatype=string clause=
"80002">
</psmodule>
<!--前書き関連の抽象クラス及び特性,level 0-->
<psmodule rcsnm=prlgabs0 fullnm= "prolog abstract level 0" dependon=baseabs>
<propdef irefnode rcsnm=govdt appnm= "governing doctype" datatype=node
ac=doctype
cn=sgmldoc clause= "71004">
<desc>
解析を支配する文書型。複数の“活性”文書が指定されている場合,各活性文書型によって別々の解
析が行われ,個別のsgmldocグローブを生成する。
<propdef subnode rcsnm=dtlts appnm= "doctypes and linktypes"
fullnm= "document types and link types"
datatype=nmndlist ac= "doctype linktype" acnmprop= "name name" cn=sgmldoc
clause= "71001">
<desc>
前書きで宣言した文書型及び連結型を宣言順に並べたノード。
<classdef rcsnm=doctype appnm= "document type" clause= "b1000">
<desc>
文書型を抽象化したノード。
<note>
このノードには,その宣言内の実体,そのDTDを入力DTDとする連結型内で出現したためにそこで
宣言されているのと同じに扱われている実体及びこの文書が活性状態の場合に参照される可能性のあ
る基本宣言内の実体を含む。
<propdef rcsnm=name datatype=string strlex=name strnorm=general clause=
"b1002">
<desc>
文書型宣言によってDTDと関連付けられた名前。一番外側の要素の型の名前も同様に必要となる。
<propdef rcsnm=govrning appnm=governing datatype=boolean clause= "71005">
<desc>
この文書型が活性状態か又は活性状態の文書型がなく,この文書型が基本文書型であった場合に真と
なる。
<note>
“支配的”文書型が解析系を支配する。複数の文書型が“活性状態”と指定されている場合,各活性
文書型において,それぞれ別の解析が行われる。そこでは各活性文書型が支配的文書型となり,それ
ぞれ別個のグローブを生成する。
<propdef subnode rcsnm=genents appnm= "general entities" datatype=nmndlist
72
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ac=entity acnmprop=name clause= "b1004">
<desc>
DTDで宣言されている,文書,副文書の一般実体及び文書型定義で参照する無指定時実体。
<note>
このクラスの記述で説明したとおり,明示的には宣言されていない実体も含む。
<note>
DTDが宣言されていない一般実体名に対する無指定時の宣言を提供している場合,この宣言に対する
リストに項目が無い。それらの宣言の無い名前に対する項目は無い。しかし,その実体は,クラス
sgmldocの実体特性には存在する。後述のノードdfltentの記述を参照のこと。
<propdef subnode rcsnm=nots appnm=notations datatype=nmndlist ac=notation
acnmprop=name clause= "b1005">
<classdef rcsnm=entity clause= "60000">
<propdef rcsnm=name datatype=string strlex=name strnorm=entity clause=
"93001">
<propdef rcsnm=enttype appnm= "entity type" datatype=enum clause= "a5502">
<enumdef rcsnm=text fullnm= "SGML text">
<enumdef rcsnm=cdata>
<enumdef rcsnm=sdata>
<enumdef rcsnm=ndata>
<enumdef rcsnm=subdoc appnm=subdocument>
<enumdef rcsnm=pi>
<propdef rcsnm=text fullnm= "replacement text" datatype=string clause=
"92101">
<when>
実体が,内部実体の場合。
<propdef subnode rcsnm=extid appnm= "external id" fullnm= "external
identifier"
datatype=node ac=extid clause= "a1601">
<when>
実体が,外部実体の場合。
<propdef subnode rcsnm=atts appnm=attributes
datatype=nmndlist ac=attasgn acnmprop=name clause= "b4120">
<desc>
データ属性割当てのリスト。属性定義リスト宣言内の宣言順で,実体に宣言した属性ごとに存在する。
<when>
実体が,外部実体の場合。
<propdef rcsnm=notname appnm= "notation name" datatype=string strlex=name
strnorm=general clause= "79408">
<when>
実体が,外部実体の場合。
73
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<propdef irefnode rcsnm=notation datatype=node ac=notation clause= "b4001">
<when>
実体が,外部実体の場合。
<classdef rcsnm=notation fullnm= "data content notation" clause= "b4000">
<propdef rcsnm=name datatype=string strlex=name strnorm=general clause=
"79441">
<propdef subnode rcsnm=extid appnm= "external id" fullnm= "external
identifier"
datatype=node ac=extid clause= "a1601">
<classdef rcsnm=extid appnm= "external id" fullnm= "external identifier"
clause= "a1600">
<propdef rcsnm=pubid appnm= "public id" fullnm= "public identifier"
datatype=string strlex=mindata clause= "a1602">
<when>
明示的な公開識別子を含んだ外部識別子。
<propdef rcsnm=sysid appnm= "system id" fullnm= "system identifier"
datatype=string clause= "a1603">
<when>
明示的なシステム公開識別子を含んだ外部識別子。
<propdef optional rcsnm=gensysid appnm= "generated system id"
fullnm= "generated system identifier"
datatype=string>
<desc>
外部識別子及び処理系が利用できる,その他の情報から生成されたシステム識別子。
<when>
外部識別子が,無指定時実体の外部識別子ではない場合。
</psmodule>
<!--文書インスタンスに関連した抽象クラス及び特性-->
<psmodule rcsnm=instabs fullnm= "instance abstract" dependon=baseabs>
<propdef subnode rcsnm=docelem appnm= "document element" datatype=node
ac=element cn=sgmldoc clause= "72003">
<desc>
支配的文書型の文書要素。
<propdef irefnode rcsnm=elements datatype=nmndlist ac=element acnmprop=id
cn=sgmldoc clause= "73001">
<desc>
文書内において,一意識別子をもつすべての要素。その順序は解析系が認知した順となる。つまり,
親が子に先行し,兄弟は左から右の順に出現する。
<propdef irefnode rcsnm=entities datatype=nmndlist ac=entity acnmprop=name
cn=sgmldoc clause= "94410">
74
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
支配的文書型において明示的に宣言された一般実体。その後に無指定時実体を参照する実体が続く。
<note>
これには,内部実体及び外部実体を含むが,名前無し実体は含まれない。
<propdef subnode rcsnm=dfltents appnm= "defaulted entities" datatype=
nmndlist
ac=entity acnmprop=name cn=sgmldoc clause= "94412">
<desc>
支配的文書型内において無指定時実体を参照している,文書内の各実体名に対応する実体。
<!--属性値トークン-->
<propdef irefnode rcsnm=entity datatype=node ac=entity cn=attvaltk
clause= "79401">
<when>
属性の宣言値が,ENTITY又はENTITIESの場合。
<propdef irefnode rcsnm=notation datatype=node ac=notation cn=attvaltk
clause= "79408">
<when>
属性の宣言値が,NOTATIONの場合。
<propdef irefnode rcsnm=referent datatype=node ac=element cn=attvaltk
clause= "79403">
<when>
属性の宣言値が,IDREF又はIDREFSの場合。
<classdef rcsnm=element conprop=content clause= "73000">
<propdef rcsnm=gi fullnm= "generic identifier" datatype=string strlex=name
strnorm=general clause= "78001">
<desc>
要素の共通識別子(要素型名)。
<propdef derived rcsnm=id fullnm= "unique identifier" datatype=string
strlex=name strnorm=general clause= "79403">
<when>
固有識別子が,その要素に対して指定された場合。
<propdef subnode rcsnm=atts appnm=attributes
datatype=nmndlist ac=attasgn acnmprop=name clause= "79301">
<desc>
データ属性割当てのリスト。属性定義リスト宣言内の宣言順で,要素に関して宣言した属性ごとに存
在する。
<propdef subnode rcsnm=content datatype=nodelist
ac= "datachar sdata element extdata subdoc pi msignch ignrs ignre repos
usemap uselink entstart entend ssep comdcl msstart msend ignmrkup"
clause= "76001">
75
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<classdef rcsnm=extdata appnm= "external data"
fullnm= "reference to external data" clause= "a5500">
<desc>
外部データ実体を参照した結果。
<propdef rcsnm=entname appnm= "entity name" datatype=string strlex=name
strnorm=entity clause= "a5101">
<propdef irefnode rcsnm=entity datatype=node ac=entity clause= "94410">
</psmodule>
<!--基本SGML文書文字列 (SDS) のためのクラス及び特性-->
<psmodule rcsnm=basesds 0 fullnm= "base SGML document string level 0"
dependon=baseabs>
<!--Sdata-->
<propdef optional rcsnm=entname appnm= "entity name" datatype=string
strlex=name strnorm=entity cn=sdata clause= "a5101">
<propdef irefnode rcsnm=entity datatype=node ac=entity cn=sdata
clause= "94410">
<!--処理命令-->
<propdef rcsnm=entname appnm= "entity name" datatype=string strlex=name
strnorm=entity cn=pi clause= "a5101">
<when>
処理命令が,PI実体を参照した結果の場合。
<propdef irefnode rcsnm=entity datatype=node ac=entity cn=pi
clause= "94410">
<when>
処理命令が,PI実体を参照した結果の場合。
<!--実体-->
<propdef rcsnm=dflted appnm=defaulted datatype=boolean cn=entity
clause= "94412">
<desc>
無指定時の実体を参照して生成された場合,真となる。
</psmodule>
<psmodule rcsnm=basesds 1 fullnm= "base SGML document string level 1"
dependon=basesds 0>
<propdef subnode optional rcsnm=entref appnm= "entity ref"
fullnm= "entity reference" datatype=nodelist
ac= "gendelm name ssep entstart entend refendre shortref" cn=pi
clause= "94401">
<desc>
実体参照のマーク付け。
<note>
76
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照の名前グループだけにおいて出
現可能とする。
<when>
処理命令が,名前付き実体参照又は短縮参照を伴うPI実体を参照した結果の場合。
<propdef subnode optional rcsnm=open appnm= "open delim"
fullnm= "open delimiter" datatype=node ac=gendelm cn=pi clause= "80001">
<when>
処理命令が,PI実体を参照した結果ではない場合。
<propdef subnode optional rcsnm=close appnm= "close delim"
fullnm= "close delimiter" datatype=node ac=gendelm cn=pi clause= "80001">
<when>
処理命令が,PI実体を参照した結果ではない場合。
<!--属性-->
<propdef irefnode rcsnm=attspec appnm= "attribute spec" fullnm= "attribute
specification"
datatype=nodelist ac= "name ssep gendelm literal attvalue" cn=attasgn
clause= "79002">
<when>
属性が,無指定時指定又は暗黙指定以外ではなく,明示的に指定されている場合。
<propdef irefnode rcsnm=attvalsp appnm= "attribute value spec"
fullnm= "attribute value specification" datatype=node
ac= "attvalue literal" cn=attasgn clause= "79301">
<when>
属性が,暗黙指定ではない場合。
<!--データ文字-->
<propdef rcsnm=intrplch appnm= "interp replaced char"
fullnm= "interpretation replaced character" datatype=char cn=datachar
clause= "a1704">
<desc>
置換された文字。
<note>
最小リテラルにおける文字RE又は文字SPACEの列が単一の文字SPACEで置換される場合,最初の
文字はおそらく特性intrplchをもつクラスdatacharのノードによって表現され,他の文字はクラス
intignchのノードによって表現される。
<when>
リテラルを解釈した時に置き換えられたデータ文字の場合。つまり,属性値リテラル内の文字RE又
は文字SEPCHAR又は最小リテラル内のREを置き換えた結果の文字SPACEの場合。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" cn=datachar clause= "95001">
77
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<when>
データ文字が,名前付き文字参照の置換えの場合。
<propdef subnode optional rcsnm=numcref appnm= "numeric char ref'
fullnm= "numeric character reference" datatype=nodelist
ac= "gendelm name crefcnum refendre" cn=datachar clause= "95001">
<when>
データ文字が,数値文字参照の置換えの場合。
<!--特定の文字データ-->
<propdef subnode optional rcsnm=markup datatype=nodelist
ac= "gendelm name ssep entstart entend refendre shortref" cn=sdata
clause= "94401">
<note>
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照の名前グループの場合だけ出現
可能とする。
<classdef rcsnm=ssep appnm= "s sep" fullnm= "s separator" mayadd
clause= "62100">
<propdef rcsnm=char fullnm=character datatype=char clause= "92003">
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<when>
データ文字が,名前付き文字参照の置換えの場合。
<classdef rcsnm=comment clause= "a3002">
<propdef subnode optional rcsnm=open appnm=open delim"
fullnm= "open delimiter" datatype=node ac=gendelm clause= "a3002">
<propdef rcsnm=chars fullnm=characters datatype=string clause= "92101">
<desc>
注釈内の文字(区切り子comを除く)。
<propdef subnode optional rcsnm=close appnm= "close delim"
fullnm= "close delimiter" datatype=node ac=gendelm clause= "a3002">
<classdef rcsnm=comdcl appnm= "comment decl" fullnm= "comment declaration"
conprop=markup mayadd clause= "a3001">
<propdef subnode rcsnm=markup datatype=nodelist ac= "comment ssep"
clause= "a3001">
<classdef rcsnm=ignmrkup appnm= "ignored markup" conprop=markup
clause= "77002 94405 c3007">
<desc>
無視したマーク付け。次の条件のいずれかを満たしているために無視したもの。
a) 活性文書型の名前を含まない名前グループを文書型指定をもつ,開始タグ又は終了タグ。
b) 活性文書型又は連結型の名前を含まない名前グループを文書型指定をもつ,一般実体又はパラメタ実
78
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
体。
c) 連結型名が活性連結型でない連結集合使用宣言。
d) 無視した開始タグ内において,属性値内で使用している一般実体参照。
e) 既に宣言されている実体。
<propdef subnode rcsnm=markup datatype=nodelist
ac= "gendelm name ssep attvalue literal entstart entend refendre"
clause= "74001 75001 94401 c300l">
<classdef rcsnm=entstart appnm= "entity start" conprop=markup>
<desc>
実体の置換テキストの開始。
<note>
終了は,クラスentendのノードで印を付ける。解析系は,実体参照の結果として置き換える。
<propdef subnode optional rcsnm=markup datatype=nodelist
ac= "gendelm name ssep entstart entend refendre shortref">
<desc>
実体参照のマーク付け。
<propdef optional rcsnm=entname appnm= "entity name" datatype=string
strlex=name strnorm=entity>
<propdef irefnode rcsnm=entity datatype=node ac=entity clause= "a5201">
<classdef rcsnm=entend appnm= "entity end" clause= "94500">
<desc>
解析系が置き換えた実体参照の終了。
<classdef rcsnm=msignch appnm= "marked section ignored char"
fullnm= "marked section ignored character" clause= "a4204">
<desc>
マーク付きセクション内で無視した文字。
<propdef rcsnm=char fullnm=character datatype=char clause= "92101">
<classdef rcsnm=intignch appnm= "interp ignored char"
fullnm= "interpretation ignored char" clause= "79303 a1704">
<desc>
リテラルを解釈したときに無視したリテラル内の文字。これは,次のいずれかとなる。
a) 属性値リテラル又は最小リテラル内の文字RS。
b) 最小リテラル内において,直後に別の文字RE又は文字SPACEが続く,文字RE又は文字SPACE。
c) 最小リテラルの最初又は最後に存在する,文字RE又は文字SPACE。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<when>
文字が,名前付き文字参照の置換えの場合。
<propdef rcsnm=char fullnm=character datatype=char clause= "92101">
79
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<classdef rcsnm=gendelm appnm= "general delim" fullnm= "general delimiter"
clause= "FIG30">
<desc>
一般区切り子。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<note>
親の最初の子である区切り子又は終了区切り子特性の値だけに対して起こり得る。
<when>
区切り子の最初の文字が名前付き文字参照を使って入力された場合。
<propdef rcsnm=role datatype=string strnorm=rcsgener clause= "96001 FIG30">
<desc>
区切り子の役割の名前。
<propdef optional rcsnm=origdelm appnm= "original delim"
fullnm= "original delimiter" datatype=string clause= "92102 FIG22">
<desc>
大文字変換以前の,入力と同じ区切り子。
<classdef rcsnm=name clause= "93001">
<desc>
マーク付け内での名前。
<note>
属性値の名前は,名前ではなくクラスattvaltk のノードによって表す。
<propdef rcsnm=origname appnm= "original name" datatype=string clause=
"93005">
<desc>
大文字変換前の,入力と同じ名前文字列。
<classdef rcsnm=rname appnm= "reserved name" clause= "d4701">
<desc>
予約名として認識する,マーク付け内のトークン。
<propdef rcsnm=refname appnm= "ref name" fullnm= "reference name"
datatype=string strnorm=rcsgener clause= "d4704">
<desc>
参照予約名。
<propdef optional rcsnm=origname appnm= "original name" datatype=string
clause= "93005">
<desc>
大文字変換前の,入力と同じ予約名。
<classdef rcsnm=literal conprop=value clause= "a1201 79302 a1701 a1603">
<desc>
80
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
パラメタリテラル,属性値リテラル,最小リテラル又はシステム識別子。
<propdef subnode optional rcsnm=open appnm= "open delim"
fullnm= "open delimiter" datatype=node ac=gendelm clause= "96100 FIG30">
<propdef subnode rcsnm=value datatype=nodelist
ac= "entstart entend datachar sdata intignch"
clause= "a1202 91001 a1702 80002">
<desc>
リテラルを解析した値。
<note>
リテラルがトークン化されている値の属性値リテラルである場合,そのリテラルの値はトークン化の
前ではあるが,しかし解析の後の属性値を表現する。
<propdef subnode optional rcsnm=close appnm= "close delim"
fullnm= "close delimiter" datatype=node ac=gendelm clause= "96100 FIG30">
<classdef rcsnm=number clause= "93002">
<desc>
マーク付け内の数であって,文字参照の文字番号ではないもの。
<note>
属性値の中の数字は,数字ではなく,クラスattvaltkのノードによって表現する。
<propdef rcsnm=digits datatype=string strlex=number clause= "93002">
<classdef rcsnm=crefcnum appnm= "char ref char number"
fullnm= "character reference character number" clause= "95001">
<desc>
文字参照内に出現する文字番号。
<note>
番号の数値は,クラスdatacharノードの特性charが決定する。
<propdef optional rcsnm=ndigits appnm= "n digits" fullnm= "number of digits"
datatype=integer clause= "95003 93002">
<desc>
値を指定するための10進数。
<classdef rcsnm=refendre appnm= "ref end re" fullnm= "reference end RE"
clause= "94502">
<desc>
参照終了として使用するマーク付けの文字RE。
<classdef rcsnm=attvalue appnm= "attribute value" clause= "79400">
<desc>
属性値指定であって,値として属性値リテラルではなく属性値をとるもの。
<note>
これとクラスattasgnとを混同しないこと。
<propdef rcsnm=value datatype=string clause= '93005">
<desc>
81
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
大文字変換前の値。
<classdef rcsnm=nmtoken appnm= "name token" clause= "93003">
<desc>
マーク付けにおける名前トークン。
<note>
宣言した値の名前トークングループの名前トークンだけに対して使用する。属性値の名前トークンは,
クラスnmtokenではなくクラスattvaltkのノードによって表現する。
<propdef rcsnm=origname appnm= "original name token" datatype=string
clause= "93005">
<desc>
大文字変換前の,入力と同じ名前トークンの文字列。
<classdef rcsnm=msstart appnm= "marked section start"
fullnm= "marked section declaration start" conprop=markup clause= "a4002">
<desc>
マーク付きセクションの直前の,マーク付きセクション宣言部分。
<propdef subnode optional rcsnm=markup datatype=nodelist
ac= "gendelm rname ssep entstart entend comment ignmrkup" clause= "a4002">
<note>
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子dsoのため
のクラスgendelmのノードとなる。
<propdef rcsnm=status datatype=enum clause= "a4201">
<desc>
マーク付きセクションの有効な状態。
<enumdef rcsnm=ignore>
<enumdef rcsnm=cdata>
<enumdef rcsnm=rcdata>
<enumdef rcsnm=include>
<enumdef rcsnm=temp>
<classdef rcsnm=msend appnm= "marked section end" conprop=markup
clause= "a4003">
<propdef subnode optional rcsnm=markup datatype=nodelist ac=gendelm
clause= "FIG3e FIG3h">
<note>
区切り子msc及び区切り子mdcのためのクラスgendelmのノードとなる。
</psmodule>
<!--SGML宣言関係の抽象クラス及び特性-->
<psmodule rcsnm=sdclabs fullnm= "sgml declaration abstract" dependon=
baseabs>
<propdef rcsnm=sgmlver appnm= "sgml version" datatype=string strlex=mindata
cn=sgmldoc clause= "d0002">
82
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
文書又は副文書に適用するSGML宣言の最初のパラメタに指定された最小リテラル。
<propdef subnode rcsnm=docchset appnm= "document char set"
fullnm= "document character set" datatype=node ac=charset cn=sgmldoc
clause= "d1001">
<propdef subnode rcsnm=capset appnm= "capacity set" datatype=node
ac=capset cn=sgmldoc clause= "d2001">
<propdef rcsnm=synscope appnm= "syntax scope"
fullnm= "concrete syntax scope" datatype=enum cn=sgmldoc clause= "d3002">
<enumdef rcsnm=instance>
<enumdef rcsnm=document>
<propdef subnode rcsnm=dclsyn appnm= "decl syntax"
fullnm= "declared concrete syntax" datatype=node ac=syntax cn=sgmldoc
clause= "d4001">
<propdef subnode rcsnm=refsyn appnm= "ref syntax"
fullnm= "reference concrete syntax" datatype=node ac=syntax cn=sgmldoc
clause= "d4002 e0001 FIG70">
<desc>
SGML宣言で使用する参照具象構文及び具象構文の適用範囲がINSTANCEの場合には前書きも含む。
<note>
文書文字集合に依存しているので,クラスsgmlcstsの特性ではない。
<propdef irefnode rcsnm=prosyn appnm= prolog syntax"
fullnm= "prolog concrete syntax" datatype=node ac=syntax cn=sgmldoc
clause= "d4001">
<desc>
前書きのための具象構文。
<propdef subnode rcsnm=features fullnm= "feature use" datatype=node
ac=features cn=sgmldoc clause= "d5001">
<classdef rcsnm=charset appnm= "char set" fullnm= "character set"
conprop=chdescs clause= "d1000">
<propdef subnode rcsnm=chdescs appnm= "char descs"
fullnm= "character descriptions" datatype=nodelist ac=chardesc
clause= "d1101">
<classdef rcsnm=chardesc appnm= "char desc" fullnm= "character description"
clause= "d1122">
<propdef rcsnm=descnum appnm= "desc set number"
fullnm= "described set character number" datatype=integer clause= "d1123">
<propdef rcsnm=nchars appnm= "n chars" fullnm= "number of characters"
datatype=integer clause= "d1125">
<propdef rcsnm=basenum appnm= "base set number"
83
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
fullnm= "base set character number" datatype=integer clause= "d1124">
<when>
文字記述が基本集合文字番号を含んでいる場合。
<propdef rcsnm=baseset appnm= "base char set" fullnm= "base character set"
datatype=string strlex=mindata clause= "d1111">
<desc>
基本文字集合の公開識別子。
<when>
文字記述が基本集合文字番号を含む場合。
<propdef rcsnm=desclit appnm= "desc literal"
fullnm= "description literal" datatype=string strlex=mindata
clause= "a1701">
<when>
基本集合番号として入力されない文字記述。
<classdef rcsnm=syntax fullnm= "concrete syntax" clause= "d4000">
<note>
この文書の文書文字集合の具象構文を表現する。文字は,構文参照文字集合ではなく,文書文字集合
の文字となる。
<propdef rcsnm=shunctrl appnm= "shunchar controls" datatype=boolean
clause= "d4204">
<desc>
文字クラスSHUNCHARが文字クラスCONTROLSを含めば真。
<propdef rcsnm=shunchar fullnm= "shunned character numbers"
datatype=intlist clause= "d4201">
<propdef subnode rcsnm=synchset appnm= "syntax ref char set"
fullnm= "syntax-reference character set" datatype=node ac=charset
clause= "d4301">
<propdef rcsnm=re fullnm= "record end" datatype=char clause= "4401">
<propdef rcsnm=rs fullnm= "record start" datatype=char clause= "d4401">
<propdef rcsnm=space datatype=char clause= "d4401">
<propdef subnode rcsnm=addfuns appnm= "added function chars"
fullnm= "added function characters" datatype=nmndlist ac=addfun
acnmprop=name clause= "d4401">
<propdef rcsnm=lcnmstrt datatype=string clause= "d4503">
<propdef rcsnm=ucnmstrt datatype=string clause= "d4504">
<propdef rcsnm=lcnmchar datatype=string clause= "d4505">
<propdef rcsnm=ucnmchar datatype=string clause= "d4506">
<propdef rcsnm=substgen appnm= "subst general names"
fullnm= "substitute general names" datatype=boolean clause= "d4507">
<desc>
84
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
機構使用項目NAMECASEにおいて,GENERAL YESが指定された場合に真となる。
<propdef rcsnm=substent appnm= "subst entity names"
fullnm= "substitute entity names" datatype=boolean clause= "d4507">
<desc>
機構使用項目NAMECASEにおいて,ENTITY YESが指定された場合に真となる。
<propdef subnode rcsnm=gdasns appnm= "general delim assocs"
fullnm= "general delimiter role associations"
datatype=nmndlist ac=dlmrlas acnmprop=role clause= "d4611">
<desc>
参照具象構文が行う指定の変更とは関係なく,一般区切り子の役割ごとに項目がある。項目はその(抽
象構文の)役割名のアルファベット順で出現する。
<propdef rcsnm=srdelms appnm= "shortref delims"
fullnm= "short reference delimiters" datatype=strlist clause= "d4621">
<propdef subnode rcsnm=slitasns appnm= "syntax literal assocs"
fullnm= "syntax literal associations" datatype=nmndlist ac=synlitas
acnmprop=refname clause= "d4701">
<desc>
具象構文が指定する構文リテラル/予約名の関係。参照具象構文が行う指定の変更とは関係なく,一
般区切り子の役割ごとに一つの項目がある。項目はその(抽象構文の)役割の名前のアルファベット
順で出現する。
<propdef rcsnm=attcnt datatype=integer clause= "FIG41">
<propdef rcsnm=attsplen datatype=integer clause= "FIG42">
<propdef rcsnm=bseqlen datatype=integer clause= "FIG43">
<propdef rcsnm=dtaglen datatype=integer clause= "FIG44">
<propdef rcsnm=dtemplen datatype=integer clause= "FIG45">
<propdef rcsnm=entlvl datatype=integer clause= "FIG46">
<propdef rcsnm=grpcnt datatype=integer clause= "FIG47">
<propdef rcsnm=grpgtcnt datatype=integer clause= "FIG48">
<propdef rcsnm=grplvl datatype=integer clause= "FIG49">
<propdef rcsnm=litlen datatype=integer clause= "FIG4a">
<propdef rcsnm=namelen datatype=integer clause= "FIG4b">
<propdef rcsnm=normsep datatype=integer clause= "FIG4c">
<propdef rcsnm=pilen datatype=integer clause= "FIG4d">
<propdef rcsnm=taglen datatype=integer clause= "FIG4e">
<propdef rcsnm=taglvl datatype=integer clause= "FIG4f">
<classdef rcsnm=addfun appnm= "added function char"
fullnm= "added function character" clause= "d4400">
<propdef rcsnm=name datatype=string strlex=name strnorm=general clause=
"d4402">
<propdef rcsnm=class fullnm= "function class" datatype=enum clause= "d4403">
85
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<enumdef rcsnm=funchar>
<enumdef rcsnm=msichar>
<enumdef rcsnm=msochar>
<enumdef rcsnm=msschar>
<enumdef rcsnm=sepchar>
<propdef rcsnm=char fullnm=character datatype=char clause= "95003">
<desc>
機能に割り当てられた文字。
<classdef rcsnm=dlmrlas appnm= "delim role assoc"
fullnm= "delimiter role association" clause= "d4610">
<desc>
具象構文が指定した,文字列と抽象構文の区切り子の役割との関係。
<propdef rcsnm=role datatype=string strnorm=rcsgener clause= "d4612">
<desc>
役割名。
<propdef rcsnm=delm appnm=delim fullnm=delimiter datatype=string
strnorm=general clause= "d4611">
<desc>
文書で使用する文字列。
<classdef rcsnm=synlitas appnm= "syntactic literal assoc"
fullnm= "syntactic literal association" clause= "d4700">
<desc>
具象構文が指定する,予約名と抽象構文の構文リテラルとの関連。
<propdef rcsnm=synlit appnm= "syntactic literal"
datatype=string strnorm=rcsgener clause= "d4702">
<desc>
構文リテラル(より正確には,二重引用符でくく(括)った場合に,構文リテラルとなる名前。)。
<propdef rcsnm=resname appnm= "reserved name" datatype=string strlex=name
strnorm=general clause= "d4702">
<desc>
文書内で使用される予約名。
<note>
参照具象構文において,構文リテラルは予約名と同一となる。
<classdef rcsnm=capset appnm= "capacity set" clause= "d2000">
<propdef rcsnm=totalcap datatype=integer clause= "FIG51">
<propdef rcsnm=entcap datatype=integer clause= "FIG52">
<propdef rcsnm=entchcap datatype=integer clause= "FIG53">
<propdef rcsnm=elemcap datatype=integer clause= "FIG54">
<propdef rcsnm=grpcap datatype=integer clause= "FIG55">
<propdef rcsnm=exgrpcap datatype=integer clause= "FIG56">
86
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<propdef rcsnm=exnmcap datatype=integer clause= "FIG57">
<propdef rcsnm=attcap datatype=integer clause= "FIG58">
<propdet rcsnm=attchcap datatype=integer clause= "FIG59">
<propdef rcsnm=avgrpcap datatype=iriteger clause= "FIG5a">
<propdef rcsnm=notcap datatype=integer clause= "FIG5b">
<propdef rcsnm=notchcap datatype=integer clause= "FIG5c">
<propdef rcsnm=idcap datatype=integer clause= "FIG5d">
<propdef rcsnm=idrefcap datatype=integer clause= "FIG5e">
<propdef rcsnm=mapcap datatype=integer clause= "FIG5f">
<propdef rcsnm=lksetcap datatype=integer clause= "FIG5g">
<propdef rcsnm=lknmcap datatype=integer clause= "FIG5h">
<classdef rcsnm=features fullnm= "feature use" clause= "d5000">
<propdef rcsnm=datatag datatype=boolean clause= "d5101">
<desc>
機構使用項目DATATAGが,YESの場合に真となる。
<propdef rcsnm=omittag datatype=boolean clause= "d5101">
<desc>
機構使用項目OMITTAGが,YESの場合に真となる。
<propdef rcsnm=rank datatype=boolean clause= "d5101">
<desc>
機構使用項目RANKが,YESの場合に真となる。
<propdef rcsnm=shorttag datatype=boolean clause= "d5101">
<desc>
機構使用項目SHORTTAGが,YESの場合に真となる。
<propdef rcsnm=simple datatype=integer clause= "d5201">
<desc>
機構使用項目SIMPLEが,NOの場合には0となる。
<propdef rcsnm=implicit datatype=boolean clause= "d5201">
<desc>
機構使用項目IMPLICITが,YESの場合に真となる。
<propdef rcsnm=explicit datatype=integer clause= "d5201">
<desc>
機構使用項目EXPLICITが,NOの場合には0となる。
<propdef rcsnm=concur datatype=integer clause= "d5301">
<desc>
機構使用項目CONCURが,NOの場合には0となる。
<propdef rcsnm=subdoc datatype=integer clause= "d5301">
<desc>
機構使用項目SUBDOCが,NOだった場合0。
<propdef rcsnm=formal datatype=boolean clause= "d5301">
87
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
機構使用項目FORMALが,YESの場合に真となる。
</psmodule>
<!--SGML宣言関係のSGML文書文字列クラス及び特性-->
<psmodule rcsnm=sdclsds fullnm= "SGML declaration SGML document string"
dependon=basesds 1>
<propdef subnode optional rcsnm=sgmldcl appnm= "sgml decl"
fullnm=SGML declaration" datatype=node ac=sgmldcl cn=sgmldoc
clause= "d0001">
<when>
SGML宣言を,明示的に指定した場合。
<propdef rcsnm=sdcltype appnm= "sgml decl type"
fullnm= "SGML declaration type" datatype=enum cn=sgmldoc clause= "62300">
<enumdef rcsnm=explicit>
<desc>
SGML宣言を,明示的に指定した場合。
<enumdef rcsnm=implied>
<desc>
SGML宣言が,暗黙指定されていた場合。
<enumdef rcsnm=inherit>
<desc>
SGML宣言が,この文書を副文書としてもつSGML文書から得られる場合。
<classdef rcsnm=sgmldcl appnm= "sgml decl" fullnm= "SGML declaration"
conprop=markup clause= "d0000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "ssep comment name number rname literal gendelm" clause= "d0001">
<note>
SGML宣言の前の分離子sも含む。最後の子は区切り子mdcのためのクラスgendelmのノードとなる。
</psmodule>
<!--前書き関係の抽象クラス及び特性,level 1-->
<psmodule rcsnm=prlgabsl fullnm= "prolog abstract level 1"
dependon=prlgabs 0>
<propdef subnode rcsnm=attdefs appnm= "attribute defs"
fullnm= "attribute definitions" datatype=nmndlist ac=attdef acnmprop=name
cn=notation clause= "b3002">
<propdef irefnode rcsnm=attdef appnm= "attribute def"
fullnm= "attribute definition" datatype=node ac=attdef cn=attasgn
clause= "b3003">
<propdef irefnode rcsnm=elemtype appnm= "element type" datatype=node ac=
elemtype
88
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
cn=element clause= "b2101">
<propdef subnode rcsnm=dfltent appnm= "default entity" datatype=node ac=
dfltent
clause= "a5105" cn=doctype>
<when>
DTDが,宣言されていない実体名に対して無指定時値を指定した場合(それらの宣言されていない各
名前は,このノードを一つのパターンとして実体に関連付けられる。しかし,処理系が各名前に対し
て同じ実体を選択しない場合もある。)。
<propdef subnode rcsnm=elemtps appnm= "element types" datatype=nmndlist
ac= "elemtype rankstem" acnmprop=gi rankstem" cn=doctype clause= "b2101">
<desc>
要素に名前をつけるのに使用した共通識別子又はランク核。
<propdef subnode rcsnm=parments appnm= parameter entities"
datatype=nmndlist ac=entity acnmprop=name cn=doctype
clause= "b1004">
<note>
このクラスの説明で述べたとおり,明示的に指定されていない実体を含む。
<classdef rcsnm=elemtype appnm= "element type"
fullnm= "element type definition" clause= "b2000">
<propdef rcsnm=gi fullnm= "generic identifier" datatype=string
strlex=name strnorm=general clause= "78002">
<propdef rcsnm=omitstrt appnm= "omit start tag" datatype=boolean
clause= "b2202">
<desc>
開始タグ最小化指定が"O"の場合に真となる。
<when>
要素型宣言が省略タグ最小化指定をもつ場合。
<propdef rcsnm=omitend appnm= "omit end tag" datatype=boolean
clause= "b2203">
<desc>
終了タグ最小化指定が "O" の場合に真となる。
<when>
要素型宣言が省略タグ最小化指定をもつ場合。
<propdef rcsnm=contype appnm= "content type" datatype=enum clause= "b2300">
<enumdef rcsnm=cdata>
<desc>
内容が,CDATAと宣言されている場合。
<enumdef rcsnm=rcdata>
<desc>
内容が,RCDATAと宣言されている場合。
89
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<enumdef rcsnm=empty>
<desc>
内容が,EMPTYと宣言されている場合。
<enumdef rcsnm=any>
<desc>
内容が,ANYと宣言されている場合。
<enumdef rcsnm=modelgrp appnm= "model group">
<desc>
内容モデルがモデル群の場合。
<propdef subnode rcsnm=modelgrp appnm= "model group" datatype=node
ac=modelgrp clause= "b2402">
<when>
要素型宣言が,モデル郡をもつ内容モデルを含む場合。
<propdef rcsnm=excls appnm=exclusions datatype=strlist clause= "b2521">
<when>
内容型が,列挙値any又は列挙値modelgrpの場合。
<propdef rcsnm=incls appnm=inclusions datatype=strlist clause= "b2511">
<when>
内容型が,列挙値any又は列挙値modelgrpの場合。
<propdef subnode rcsnm=attdefs appnm= "attribute defs"
fullnm= "attribute definitions" datatype=nmndlist ac=attdef acnmprop=name
clause= "b3003">
<classdef rcsnm=modelgrp appnm= "model group" conprop=tokens
clause= "b2402">
<desc>
モデル群又はデータタググループ。
<note>
データグループは,結合子seqを用いて結合したモデル群のノードによって表現し,最初のトークン
がクラスelemtk及び二番目のトークンがクラスpcdatatkとなる。
<propdef rcsnm=connect appnm=connector datatype=enum clause= "b2410">
<desc>
モデル群内で使用した結合子。
<enumdef rcsnm=and>
<enumdef rcsnm=or>
<enumdef rcsnm=seq>
<propdef rcsnm=occur appnm= "occur indicator" fullnm= "occurrence indicator"
datatype=enum clause= "b2420">
<when>
モデル群が出現指示子をもつ場合。
<enumdef rcsnm=opt>
90
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<enumdef rcsnm=plus>
<enumdef rcsnm=rep>
<propdef subnode rcsnm=tokens appnm= "content tokens" datatype=nodelist
ac= "modelgrp pcdatatk elemtk" clause= "b2403">
<classdef rcsnm=pcdatatk appnm= "pcdata token" clause= "b2404">
<classdef rcsnm=elemtk appnin= "element token" clause= "b2405">
<propdef rcsnm=gi fullnm= "generic identifier" datatype=string
strlex=name strnorm=general clause= "b2405">
<propdef rcsnm=occur appnm= "occur indicator" fullnm= "occurrence indicator"
datatype=enum clause= "b2405">
<when>
要素トークンが出現指示子をもつ場合。
<enumdef rcsnm=opt>
<enumdef rcsnm=plus>
<enumdef rcsnm=rep>
<classdef rcsnm=attdef appnm= "attribute def" fullnm= "attribute definition"
conprop=dfltval clause= "b3 003">
<propdef rcsnm=name datatype=string strlex=name strnorm=general
clause= "b3201">
<propdef rcsnm=dcltype appnm= "decl value type"
fullnm= "declared value prescription type" datatype=enum clause= "b3301">
<enumdef rcsnm=cdata>
<enumdef rcsnm=entity>
<enumdef rcsrm=entities>
<enumdef rcsnm=id>
<enumdef rcsnm=idref>
<enumdef rcsnm=idrefs>
<enumdef rcsnm=name>
<enumdef rcsnm=names>
<enumdef rcsnm=nmtoken>
<enumdef rcsnm=nmtokens>
<enumdef rcsnm=number>
<enumdef rcsnm=numbers>
<enumdef rcsnm=nutoken>
<enumdef rcsnm=nutokens>
<enumdef rcsnm=notation>
<enumdef rcsnm=nmtkgrp appnm= "name token group">
<desc>
宣言値が,名前トークングループの場合。
<propdef rcsnm=tokens datatype=strlist clause= "b3301">
91
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
使用可能なトークンを指定する文字列のリスト。
<when>
宣言値が,名前トークングループ又は記法の場合。
<propdef rcsnm=dflttype appnm= "default value type" datatype=enum
clause= "b3401">
<enumdef rcsnm=value>
<desc>
無指定時値が,#FIXEDをもたない属性値指定の場合。
<enumdef rcsnm=fixed>
<enumdef rcsnm=required>
<enumdef rcsnm=current>
<enumdef rcsnm=conref>
<enumdef rcsnm=implied>
<propdef subnode rcsnm=dfltval appnm= "default value" datatype=nodelist
ac= "attvaltk datachar sdata intignch entstart entend" clause= "b3409">
<when>
無指定時値が,属性値指定を含む場合。
<propdef irefnode rcsnm=curgrp appnm= "current group" datatype=nodelist
ac=attdef clause= "b3001">
<desc>
同一の属性定義を表し,同一の現在値を共有するクラスattdefのノードすべて。
<note>
この属性定義を宣言する,属性定義リスト宣言内で関連付けた要素型と同じ数だけ存在する。
<when>
無指定時値の型がCURRENTの場合。
<propdef rcsnm=curattix appnm= "current attribute index" datatype=integer
clause= "b3001">
<desc>
無指定時型CURRENTをもち,文書型宣言において先行する属性定義に数。
<note>
クラスattdefのノードの特性curgrpの値内のすべてのattdefノードは,特性curattixに関して同じ値を
開示する。二つのクラスattdefのノードは,それらが特性curattixに関して同じ値を開示する場合だけ
同じ現在値を共有する。
<when>
無指定時値の型が,CURRENTの場合。
<classdef rcsnm=dfltent appnm= "default entity">
<propdef rcsnm=enttype appnm= 'entity type" datatype=enum clause= "a5502">
<enumdef rcsnm=text fullnm= "SGML text">
<enumdef rcsnm=cdata>
92
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<enumdef rcsnm=sdata>
<enumdef rcsnm=ndata>
<enumdef rcsnm=subdoc appnm=subdocument>
<enumdef rcsnm=pi>
<propdef rcsnm=text datatype=string fullnm= "replacement text"
clause= "92101">
<when>
無指定時実体宣言が,内部実体を宣言している場合。
<propdef subnode rcsnm=extid appnm= "external id"
fullnm= "external identifier" datatype=node ac=extid clause= "a1601">
<when>
無指定時実体宣言が,外部実体を宣言している場合。
<propdef subnode rcsnm=atts appnm=attributes
datatype=nmndlist ac=attasgn acnmprop=name clause= "b4120">
<desc>
データ属性割当てのリスト。属性定義リスト宣言で宣言された順序で,実体の各宣言済み属性に一つ
ずつ存在する。
<when>
無指定時実体宣言が,外部実体を宣言している場合。
<propdef rcsnm=notname appnm= "notation name" datatype=string strlex=name
strnorm=general clause= "79408">
<when>
無指定時実体宣言が,外部実体を宣言している場合。
<propdef irefnode rcsnm=notation datatype=node ac=notation clause= "b4001">
<when>
無指定時実体宣言が,外部実体を宣言している場合。
</psmodule>
<!--前書き関係のSGML文書文字列 (SDS) 特性-->
<psmodule rcsnm=prlgsds fullnm= "prolog SGML document string"
dependon=basesds1>
<propdef irefnode rcsnm=entdcl appnm= "entity decl"
fullnm= "entity declaration" datatype=node ac=entdcl cn=dfltent
clause= "a5001">
<propdef irefnode rcsnm=notdcl appnm= "notation decl"
fullnm= "notation declaration" datatype=node ac=notdcl cn=notation
clause= "b4001">
<propdef irefnode rcsnm=attdldcl appnm= "attribute def list decl"
fullnm= "attribute definition list declaration" datatype=node ac=attdldcl
cn=notation clause= "b4111">
<when>
93
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
記法が,関連してATTLISTをもつ場合。
<propdef irefnode rcsnm=eltpdcl appnm= "element type decl"
fullnm= "element type declaration" datatype=node ac=eltpdcl cn=elemtype
clause= "b200l">
<propdef irefnode rcsnm=attdldcl appnm= "attribute def list decl"
fullnm= "attribute definition list declaration"
datatype=node ac=attdldcl cn=elemtype clause= "b3001">
<when>
要素型が,関連してATTLISTをもつ場合。
<propdef irefnode rcsnm=doctpdcl fullnm= "document type declaration"
datatype=node ac=doctpdcl cn=doctype clause= "b1001">
<propdef irefnode rcsnm=attvalsp appnm= "attribute value spec"
fullnm= "attribute value specification"
datatype=node ac= "attvalue literal" cn=attdef clause= "79002">
<when>
無指定時値が,属性値指定を含む場合。
<classdef rcsnm=doctpdcl fullnm= "document type declaration" mayadd
clause= "b1000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "ssep comment name rname literal msstart msend msignch entstart entend
comdcl pi eltpdcl entdcl notdcl attdldcl usemap srmapdcl"
clause= "b1001">
<note>
最初の子は区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのためのク
ラスgendelmのノードとなる。外部実体がある場合,そのクラスentendのノードは,区切り子dscが存
在する場合,区切り子dscのためのクラスgendelmのノードの直前に現れ,存在しなければ区切り子mdc
のためのクラスgendelmのノードの前に現れる。
<propdef irefnode rcsnm=doctype appnm= "document type" datatype=node
ac=doctype clause= "b1008">
<propdef subnode rcsnm=entity datatype=node ac=entity clause= "b1008">
<when>
文書型定義が,外部識別子を含む場合。
<classdef rcsnm=attdldcl appnm= "attribute def list decl"
fullnm= "attribute definition list declaration" mayadd clause= "b3000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "ssep comment entstart entend gendelm name nmtoken attvalue literal"
clause= "b3001">
<propdef irefnode rcsnm=asseltps appnm= "assoc element types"
fullnm= "associated element types" datatype=nodelist ac=elemtype
clause= "b3001">
94
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>
属性定義リストが適用可能な要素型であって,その名前が属性定義リスト宣言に現れる順序で並べた
もの。これには未定義の要素型は含まれない。
<propdef irefnode rcsnm=assnots appnm= "assoc notations"
fullnm= "associated notations" datatype=nodelist ac=notation clause=
"b3001">
<classdef rcsnm=eltpdcl appnm= "element type decl"
fullnm= "element type declaration" mayadd clause= "b2000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "ssep comment entstart entend gendelm name number" clause= "b2001">
<propdef irefnode rcsnm=elemtype appnm= "element type"
fullnm= "element type" datatype=node ac=elemtype clause= "b2101">
<classdef rcsnm=entdcl appnm= "entity decl" fullnm= "entity declaration"
mayadd clause= "a5000">
<desc>
無視されなかった実体宣言。
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname literal attvalue"
clause= "a5001">
<propdef subnode rcsnm=entity datatype=node ac=entity clause= "a5201">
<desc>
実体宣言で宣言済みの実体。
<when>
実体が無指定時実体と宣言されている場合には,ヌル値をとる。
<classdef rcsnm=notdcl appnm= "notation decl"
fullnm= "notation declaration" mayadd clause= "b4000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment literal name rname" clause= "b4001">
<propdef irefnode rcsnm=notation datatype=node ac=notation clause= "b4001">
<desc>
宣言済みの記法。
</psmodule〉
<!--文書インスタンス関係のSGML文書文字列(SDS)クラス及び特性-->
<psmodule rcsnm=instsds0 fullnm= "instance SGML document string level 0">
<propdef derived rcsnm=included datatype=boolean cn=element>
<desc>
要素が取り込み済み下位要素の場合にだけ真となる。
<propdef derived rcsnm=momitend appnm= "must omit end tag" datatype=boolean
cn=element clause= "b2209">
<desc>
95
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
要素が宣言内容としてEMPTYをもつ場合又は明示的に内容参照をもつ場合であって,要素の終了タ
グを省略した場合だけ真となる。
</psmodule>
<psmodule rcsnm=instsds1 fullnm= "instance SGML document string level 1"
dependon= "instsds0 basesds1">
<!--要素-->
<propdef subnode optional rcsnm=starttag appnm= " start tag" datatype=nodelist
ac= "gendelm name ssep entstart entend literal attvalue" cn=element
clause= "74001">
<note>
最初の子が区切り子stagoのためのクラスgendelmのノードとなる。クラスentstart,クラスentendの
ノードは,文書型指定だけにおいて出現する。
<when>
開始タグをその要素に指定した場合。
<propdef subnode optional rcsnm=endtag appnm= "end tag" datatype=nodelist
ac= "gendelm name ssep entstart entend ignmrkup" cn=element clause= "75001">
<note>
最初の子が区切り子etago又は区切り子netのためのクラスgendelmのノードとなる。クラスentstart,
クラスentend及びクラスignmrkupのノードは,文書型指定だけにおいて出現する。
<when>
データタグではなく,終了タグをその要素に対して指定した場合。
<!--データ文字-->
<propdef rcsnm=movedre appnm= "moved re" datatype=boolean cn=datachar
clause= "7610a">
<desc>
文字が文字REであって,実際に生じた位置以外の場所で出現しなければならない場合だけ真となる。
<note>
クラスreposのノードは,実際に文字REが出現した場所を示す。
<propdef irefnode rcsnm=repos appnm= "re position" datatype=node cn=datachar
ac=repos clause= "7610a">
<desc>
文字REが,実際に生じた場所。
<when>
文字が文字REであって,実際に生じた位置以外の場所で出現しなければならない場合。
<propdef subnode optional rcsnm=markup datatype=nodelist
ac= "gendelm name ssep entstart entend refendre shortref" cn=extdata
clause= "94401 94402">
<desc>
実体参照のマーク付け。
<note>
96
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照内の名前グループだけにおいて
出現する。
<classdef rcsnm=ignrs appnm= "ignored rs" clause= "76101">
<desc>
ISO 8879の7.6.1の規則に従って,無視された文字RS。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<when>
文字が,名前付き文字参照の置換の場合。
<classdef rcsnm=ignre appnm= "ignored re" clause= "76100">
<desc>
ISO 8879の7.6.1の規則に従って,無視された内容の中の文字RE。
<note>
文字REが無視された場所ではなく,元々生じた場所で出現する。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<when>
文字は,名前付きの文字参照の置換の場合。
<classdef rcsnm=repos appnm= "re position" clause= "7610a">
<desc>
ISO 8879の7.6.1の規則によって,本来の出現位置とは異なる位置で出現した文字REの本来の出現位
置。
<note>
クラスreposの各ノードに関して,特性movedreが真のクラスcharacterのノードが一つある。
<propdef irefnode rcsnm=re appnm= "record end" datatype=node ac=datachar
clause= "7610a">
<desc>
クラスreposのための文字。
</psmodule>
<!--データタグ関係の抽象クラス及び特性-->
<psmodule rcsnm=dtgabs fullnm= "datatag abstract" dependon=baseabs>
<propdef derived rcsnm=datatag datatype=boolean cn=element clause= "73201"
<desc>
データタグがその要素の終了タグとして働く場合にだけ真となる。
<note>
データタグを構成するデータ文字は,それを含む要素の内容中で要素に続く。
<propdef rcsnm=dtgtemps appnm= "data tag templates" datatype=strlist
cn=elemtype clause= "b2444">
97
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<when>
モデル群が,データタグ群の場合。
<propdef rcsnm=dtgptemp appnm= "data tag padding template" datatype=string
cn=elemtype clause= "b2445">
<when>
モデル群が,データタグ群であって,そのデータタグ形式が,データタグ詰めテンプレートを含む場
合。
</psmodule>
<!--ランク関係の抽象クラス及び特性-->
<psmodule rcsnm=rankabs fullnm= "rank abstract" dependon=prlgabsl>
<propdef derived rcsnm=ranksuff appnm= "rank suffix" datatype=string
cn=elemtype clause= "b2114">
<when>
要素型宣言の要素型が,ランク添字を含んでいる場合。
<propdef rcsnm=rankstem appnm= "rank stem" datatype=string cn=elemtype
clause= "b2113">
<when>
要素型宣言の要素型が,ランク要素又はランク群を使用する場合。
<propdef rcsnm=rankgrp appnm= "rank group" datatype=strlist cn=elemtype
clause= "b2112">
<desc>
ランク群内のランク核。
<when>
要素型宣言が,ランク群を含む場合。
<classdef rcsnm=rankstem appnm= "rank stem "clause= "b2113">
<propdef rcsnm=stem datatype=string strlex=name strnorm=general
clause= "b2113">
<desc>
ランク核の名前。
<propdef irefnode rcsnm=elemtps appnm= "element types"
datatype=nodelist ac=elemtype clause= "b2112">
<desc>
ランク核となる要素型。
</psmodule>
<!--短縮参照関係の抽象クラス及び特性-->
<psmodule rcsnm=srabs fullnm= "shortref abstract" dependon=prlgabs0>
<propdef subnode rcsnm=emptymap appnm= "empty short ref map"
fullnm= "empty short reference map" datatype=node ac=srmap cn=sgmlcsts
clause= "b6004">
<desc>
98
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
空の短縮参照対応。
<propdef subnode rcsnm=srmaps appnm= "short ref maps"
fullnm= "short reference maps" datatype=nmndlist ac=srmap acnmprop=name
cn=doctype clause= "b1006">
<note>
宣言値#EMPTYをもつ短縮参照対応は含まない。
<propdef rcsnm=srmapnm appnm= "short ref map name"
fullnm= "short reference map name" datatype=string strlex=rniname
strnorm=general cn=elemtype clause= "b6004">
<when>
要素型に関連付けして,短縮参照対応が存在する場合。
<propdef irefnode rcsnm=srmap appnm= "short ref map"
fullnm= "short reference map" datatype=node ac=srmap cn=elemtype
clause= "b6101">
<when>
要素型に関連付けして,短縮参照対応が存在する場合。
<classdef rcsnm=srmap appnm= "short ref map" fullnm= "short reference map"
clause= "b5000">
<propdef rcsnm=name datatype=string strlex=name strnorm=general clause=
"b5002">
<when>
対応が,暗黙のうちに宣言値#EMPTYと宣言されていない場合。
<propdef subnode rcsnm=map datatype=nmndlist ac=srassoc acnmprop=shortref
clause= "b5004">
<classdef rcsnm=srassoc appnm= "short ref assoc"
fullnm= "short reference association" clause= "b5004">
<propdef rcsnm=shortref appnm= "short ref"
fullnm= "short reference delimiter" datatype=string strnorm=general
clause= "b5004">
<propdef rcsnm=entname appnm= "entity name" datatype=string strlex=name
strnorm=entity clause= "b5004">
<propdef irefnode rcsnm=entity datatype=node ac=entity clause= "b5001">
</psmodule>
<!--短縮参照関係のSGML文書文字列 (SDS) クラス及び特性-->
<psmodule rcsnm=srsds fullnm= "shortref SGML document string
dependon=basesdsl>
<classdef rcsnm=usemap appnm= "short ref use decl"
fullnm= "short reference use declaration" conprop=markup clause= "b6000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname ignmrkup"
99
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
clause= "b6001">
<note>
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのため
のクラスgendelmのノードとなる。
<propdef irefnode rcsnm=asseltps appnm= "assoc element types"
fullnm= "associated element types" datatype=nodelist ac=elemtype
clause= "a1501">
<note>
SGMLでは,既に短縮参照対応と関連付けた要素型を含まないと規定している。
<when>
短縮参照使用宣言が,関連付けられた要素型を含む場合。
<propdef irefnode rcsnm=srmap datatype=node ac=srmap clause= "b6002">
<classdef rcsnm=shortref appnm= "short ref"
fullnm= "short reference delimiter" clause= "e4620">
<propdef rcsnm=origdelm appnm= "original delim"
fullnm= "original delimiter" datatype=string clause= "96601">
<desc>
入力と同じ短縮参照区切り子。
<propdef subnode optional rcsnm=namecref appnm= "named char ref"
fullnm= "named character reference" datatype=nodelist
ac= "gendelm name refendre" clause= "95001">
<when>
区切り子の最初の文字を,名前付き文字参照で入力した場合。
<classdef rcsnm=srmapdcl appnm= "short ref map decl"
fullnm= "short reference mapping declaration" mayadd clause= "b5000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname literal"
clause= "b5001">
<note>
最初の子は区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのための
クラスgendelmのノードとなる。
<propdef irefnode rcsnm=map datatype=node ac=srmap clause= "b5001">
</psmodule>
<!--連結関係の抽象クラス及び特性-->
<psmodule rcsnm=linkabs fullnm= "link abstract" dependon=prlgabs0>
<propdef subnode rcsnm=emptylks appnm= "empty link set" datatype=node ac=
linkset
cn=sgmlcsts clause= "c3004">
<desc>
現在の連結集合を,無効にするために使用した空の連結集合。
100
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<propdef subnode optional rcsnm=simplelk appnm= "simple link info"
fullnm= "simple link information" datatype=nmndlist ac=simplelk
acnmprop=linktype cn=element clause= "c1431">
<when>
要素は文書要素で,活性単純連結処理がある。
<propdef irefnode rcsnm=linkatts appnm= "link attributes"
datatype=nmndlist ac=attasgn acnmprop=name cn=element clause= "c1402">
<desc>
属性割当てのリスト。その要素に関して宣言した各連結属性の各々に対して一つずつ存在する。
<note>
連結属性の起点は,連結規則となる。
<propdef derived rcsnm=rsltgi appnm= "result gi"
fullnm= "result element generic identifier" datatype=string strlex=name
strnorm=general cn=element clause= "c2202">
<when>
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
<propdef irefnode rcsnm=rsltelem appnm= "result element type"
datatype=node ac=elemtype cn=element clause= "c2202">
<when>
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
<propdef irefnode rcsnm=rsltatts appnm= "result attributes"
datatype=nmndlist ac=attasgn acnmprop=name cn=element clause= "c2203">
<note>
属性の起点は,連結規則となる。
<when>
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
<propdef irefnode rcsnm=lksetinf appnm= "link set info"
fullnm= "link set information" datatype=nodelist ac=linkrule cn=element
clause= "c2205">
<desc>
ソース要素型が,暗黙指定である現在連結集合内の連結規則。
<when>
活性状態の明示的な連結処理が存在する場合。
<propdef irefnode rcsnm=lksetinf appnm= "link set info"
fullnm= "link set information" datatype=nodelist ac=linkrule cn=datachar>
<desc>
ソース要素型が暗黙指定である現在連結集合内の連結規則。
<when>
活性状態の明示的な連結処理及び内容中の文字出現がある場合。
<classdef rcsnm=simplelk appnm= "simple link info"
101
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
fullnm= "simple link information" clause= "c1430">
<propdef rcsnm=linktype appnm= "link type" datatype=string strlex=name
strnorm=general clause= "c1001">
<desc>
単純連結処理の連結型名。
<propdef subnode rcsnm=atts appnm=attributes
datatype=nmndlist ac=attasgn acnmprop=name clause= "c1402">
<classdef rcsnm=linktype appnm= "link type">
<propdef rcsnm=name datatype=string strlex=name strnorm=general
clause= "c1002">
<propdef rcsnm=active datatype=boolean>
<desc>
連結型が,活性状態の場合だけ真となる。
<propdef rcsnm=ltkind appnm= "link type kind"
fullnm= "kind of link type" datatype=enum clause= "c1001">
<enumdef rcsnm=simple>
<enumdet rcsnm=implicit>
<enumdef rcsnm=explicit>
<propdef rcsnm=srcname appnm= "source document type name" datatype=string
strlex=name strnorm=general clause= "c1302">
<propdef irefnode rcsnm=source appnm= "source document type" datatype=node
ac=doctype clause= "c1305 c1306">
<note>
単純連結型に対して,常に基本文書型となる。
<propdef rcsnm=rsltname appnm= "result document type name" datatype=string
strlex=name strnorm=general clause= "c1303">
<propdef irefnode rcsnm=result appnm= "result document type" datatype=node
ac=doctype clause= "c1306">
<when>
連結型が,明示的な連結型の場合。
<propdef subnode rcsnm=inilkset appnm= "initial link set" datatype=node
ac=linkset clause= "c2004">
<when>
連結型が,単純型ではない場合。
<propdef subnode rcsnm=idlkset appnm= "id link set" datatype=node ac=linkset
clause= "c2300">
<when>
連結型宣言部分集合が,ID連結集合宣言を含む場合。
<propdef subnode rcsnm=linksets appnm= "link sets" datatype=nmndlist
ac=linkset acnmprop=name clause= "c1401">
102
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<note>
宣言値#INITIAL,宣言値#EMPTY又はID連結集合は含まない。
<classdef rcsnm=linkset appnm= "link set" conprop=lkrules clause= "c2000">
<propdef rcsnm=name datatype=string strlex=name strnorm=general
clause= "c2003">
<when>
連結集合が,宣言値#INITIAL,宣言値#EMPTY又はID連結集合のいずれでもない場合。
<propdef subnode rcsnm=lkrules appnm= "link rules" datatype=nodelist
ac=linkrule clause= "c2002">
<classdef rcsnm=linkrule appnm= "link rule" clause= "c2002">
<propdef rcsnm=assgis appnm= "assoc gis"
fullnm= "associated generic identifiers" datatype=strlist strlex=name
clause= "c2101">
<desc>
関連する要素型の名前。
<when>
連結規則が,ソース要素型が暗黙指定の明示的な連結規則ではない場合。
<propdef irefnode rcsnm=asseltps appnm= "assoc element types"
fullnm= "associated element types" datatype=nodelist ac=elemtype
clause= "c2101">
<when>
連結規則が,ID連結集合宣言に出現する場合。
<propdef rcsnm=id fullnm= "unique identifier" datatype=string strlex=name
strnorm=general clause= "c2301 ">
<when>
連結規則が,ID連結集合宣言に出現する場合。
<propdef irefnode rcsnm=uselink datatype=node ac=linkset clause= "c2104">
<when>
連結型が,USELINKパラメタを含む場合。
<propdef rcsnm=uselknm appnm= "uselink name" datatype=string strlex=rniname
strnorm=general clause= "c2104">
<desc>
USELINKパラメタによって名前付けられた連結集合。
<when>
連結規則がUSELINKパラメタを含む場合。
<propdef derived rcsnm=postlkrs appnm= "postlink restore" datatype=boolean
clause= "c2101">
<desc>
連結規則が,POSTLINKパラメタとして宣言値#RESTOREを含む場合に真となる。
<propdef irefnode rcsnm=postlkst appnm= "postlink set" datatype=node
103
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ac=linkset clause= "c2101">
<when>
連結集合指定が,宣言値#RESTOREを指定しない場合。
<propdef rcsnm=postlknm datatype=string strlex=rniname strnorm=general
clause= "c2101">
<desc>
POSTLINKに続いて,連結集合指定に指定したトークン。
<when>
連結規則がPOSTLINKパラメタを含む場合。
<propdef subnode rcsnm=linkatts appnm= "link attributes"
datatype=nmndlist ac=attasgn acnmprop=name clause= "c2102">
<when>
連結規則が,ソース要素型に暗黙指定をもつ明示連結規則ではない場合。
<propdef rcsnm=rsltgi appnm= "result gi"
fullnm= "result element generic identifier" datatype=string strlex=name
strnorm=general clause= "c2202">
<when>
連結規則が,結果要素型に暗黙指定をもたない明示連結規則の場合。
<propdef irefnode rcsnm=rsltelem appnm= "result element type" datatype=node
ac=elemtype clause= "c2202">
<when>
連結規則が,結果要素型に暗黙指定をもたない明示連結規則の場合。
<propdef subnode rcsnm=rsltatts appnm= "result attributes"
datatype=nmndlist ac=attasgn acnmprop=name clause= "c2203">
<when>
連結規則が,結果要素型に暗黙指定をもたない明示連結規則の場合。
</psmodule>
<!--連結関係のSGML文書文字列 (SDS) クラス及び特性-->
<psmodule rcsnm=linksds fullnm= "link SGML document string"
dependon=basesdsl>
<propdef irefnode rcsnm=lksetdcl appnm= "link set decl"
fullnm= "link set declaration" datatype=node ac= "lksetdcl idlkdcl"
cn=linkset clause= "c2001">
<when>
連結集合が宣言値#EMPTYではない場合。
<propdef irefnode rcsnm=lktpdcl appnm= "link type decl"
fullnm= "link type declaration" datatype=node ac=lktpdcl cn=linktype
clause= "c1001">
<classdef rcsnm=lktpdcl appnm= "link type decl" fullnm= "link type
declaration"
104
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
mayadd clause= "c1000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "ssep comment name rname literal msstart msignch msend
entstart entend pi comdcl entdcl attdldcl lksetdcl idlkdcl"
clause= "c1001">
<propdef irefnode rcsnm=linktype appnm= "link type" datatype=node
ac=linktype>
<propdef subnode rcsnm=entity datatype=node ac=entity clause= "c1004">
<when>
連結型定義が,外部識別子を含む場合。
<classdef rcsnm=lksetdcl appnm= "link set decl" fullnm= "link set declaration"
mayadd clause= "c2000">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname literal attvalue"
clause= "c2001">
<propdef irefnode rcsnm=linkset appnm= "link set" datatype=node
ac=linkset clause= "c2001">
<classdef rcsnm=idlkdcl appnm= "id link set decl"
fullnm= "ID link set declaration" mayadd clause= "c2300">
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname literal attvalue"
clause= "c2301">
<propdef irefnode rcsnm=linkset appnm= "link set" datatype=node ac=linkset
clause= "c2301">
<classdef rcsnm=uselink appnm= "link set use decl"
fullnm= "link set use declaration" conprop=markup clause= "c3000">
<desc>
無視しなかった連結集合指定宣言。
<propdef subnode rcsnm=markup datatype=nodelist
ac= "entstart entend ssep comment gendelm name rname ignmrkup"
clause= "c3001">
<note>
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのため
のクラスgendelmのノードとなる。
<propdef derived rcsnm=restore datatype=boolean clause= "c3002">
<desc>
連結集合指定に,宣言値#RESTOREを指定した場合に真となる。
<propdef irefnode rcsnm=linkset datatype=node ac=linkset clause= "c3002">
<when>
連結集合指定に,宣言値#RESTOREを指定しなかった場合に真となる。
105
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<propdef rcsnm=lksetnm datatype=string strlex=rniname strnorm=general clause
= "c3002">
<desc>
連結集合指定に指定したトークン。
<propdef rcsnm=linktpnm appnm= "link type name" datatype=string
strlex=name strnorm=general clause= "c3001">
<propdef irefnode rcsnm=linktype appnm= "link type" datatype=node
ac=linktype clause= "c3001">
</psmodule>
<!--副文書関係の抽象クラス及び特性-->
<psmodule rcsnm=subdcabs fullnm= "subdoc abstract" dependon=baseabs>
<classdef rcsnm=subdoc appnm=subdocument fullnm= "reference to subdocument">
<desc>
副文書実体への参照の結果。
<propdef rcsnm=entname appnm= "entity name" datatype=string strlex=name
strnorm=entity clause= "a5101">
<propdef irefnode rcsnm=entity datatype=node ac=entity clause= "c5501">
</psmodule>
<!--副文書関係のSGML文書文字列 (SDS) クラス及び特性-->
<psmodule rcsnm=subdcsds fullnm= "subdoc SGML document string"
dependon= "basesds1 subdabs">
<propdef subnode optional rcsnm=markup datatype=nodelist
ac= "gendelm name ssep entstart entend refendre shortref" cn=subdoc
clause= "94401">
<desc>
実体参照のマーク付け。
<note>
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照内の名前グループだけにおいて
出現可能とする。
</psmodule>
<!--公式公開識別子関係の抽象クラス及び特性-->
<psmodule rcsnm=fpiabs fullnm= "formal public identifier abstract"
dependon=baseabs>
<propdef subnode optional rcsnm=fpi appnm= "formal public id"
fullnm= "formal public identifier" datatype=node ac=fpi cn=extid
clause= "a2001">
<when>
SGML宣言において,FORMAL YESを指定した場合。
<classdef rcsnm=fpi appnm= "formal public id" fullnm= "formal public
identifier
106
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
clause= "a2000">
<note>
このクラスが提供する文字列を値にもつ各特性の値文字列は,生成規則で指定された最小化データを
含む。これには"//","−//","+//"又は文字sを含まない。
<propdef rcsnm=ownertp appnm= "owner type" datatype=enum clause= "a2100">
<desc>
所有者識別子の型。
<enumdef rcsnm=iso>
<enumdef rcsnm=regist appnm=registered>
<enumdef rcsnm=unregist appnm=unregistered>
<propdef rcsnm=ownerid appnm= "owner id" fullnm= "owner identifier"
datatype=string strlex=mindata clause= "a2100">
<propdef rcsnm=textclas appnm= "text class" fullnm= "public text class"
datatype=enum clause= "a2210">
<enumdef rcsnm=capacity>
<enumdef rcsnm=charset>
<enumdef rcsnm=document>
<enumdef rcsnm=dtd>
<enumdef rcsnm=elements>
<enumdef rcsnm=entities>
<enumdef rcsnm=lpd>
<enumdef rcsnm=nonsgml>
<enumdef rcsnm=notation>
<enumdef rcsnm=shortref>
<enumdef rcsnm=subdoc>
<enumdef rcsnm=syntax>
<enumdef rcsnm=text>
<propdef rcsnm=unavail appnm=unavailable datatype=boolean clause= "a2202">
<desc>
利用不可テキスト指示子が指定された場合だけ真となる。
<propdef rcsnm=textdesc appnm= "text description"
fullnm= "public text description" datatype=string strlex=mindata clause=
"a2221">
<propdef rcsnm=textlang appnm= "text language"
fullnm= "public text language" datatype=string clause= "a2231">
<when>
テキスト識別子が,公開テキスト言語を含む場合。
<propdef rcsnm=textdseq appnm= "text designating sequence"
fullnm= "public text designating sequence" datatype=string clause= "a2241">
<when>
107
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
テキスト識別子が,公開テキスト指示順序を含む場合。
<propdef rcsnm=textdver appnm= "text display version"
fullnm= "public text display version" datatype=string clause= "a2251">
<when>
テキスト識別子が,公開テキスト表示版を含む場合。つまり,公開テキスト言語又は公開文指定列の
あとに//が存在する。
</psmodule>
<!--文字列正規化規則-->
<normdef rcsnm=general sd=SGML clause= "d4506">
<desc>
宣言した具象構文の一般大文字小文字置換。
<normdef rcsnm=entity sd=SGML clause= "d4506">
<desc>
宣言した具象構文の実体大文字小文字置換。
<normdef rcsnm=rcsgener sd=SGML clause= "d4506">
<desc>
参照具象構文の一般大文字小文字置換。
<datadef rcsnm=integer lextype=integer>
<datadef rcsnm=boolean lextype=boolean>
<datadef rcsnm=strlist fullnm= "string list" listof=string lextype=strlist>
<datadef rcsnm=intlist fullnm= "integer list" listof=int lextype=intlist>
<!--字句型-->
<!--データ型-->
<lexdef ltn=boolean norm model= "[01]">
<lexdef ltn=integer unorm model= "'0' | marker">
<lexdef ltn=intlist norm model= "integer+">
<lexdef ltn=literal spec sd=SGML clause= "96107">
<desc>
具象構文で宣言したとおりに区切ったリテラル。SGML文書と同じく,リテラル内で区切り子文字列
を入力するために文字参照を使用してよい。
<lexdef ltn=strlist norm model= "literal, (', ',literal)*">
<desc>
データベース及び表計算プログラムで支持している,いわゆる“カンマ区切りのASCII”形式の文字
列リスト。リテラルは,区切り子を除き,各文字列に適用可能な字句型に適合する。
<!--他の字句型-->
<lexdef ltn=mindata spec sd=SGML clause= "a1702">
<desc>最小化データ。
<lexdef ltn=NAME spec sd=SGML clause= "93001">
<desc>宣言した具象構文における名前。
<lexdef ltn=NMTOKEN spec sd=SGML clause= "93004">
108
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<desc>宣言した具象構文での名前トークン。
<lexdef ltn=number spec sd=SGML clause= "93002"〉
<desc>宣言した具象構文の数値。
<lexdef ltn=nmchar spec sd=SGML clause= "92103">
<desc>宣言した具象構文の名前文字。
<lexdef ltn=ATTNAME nmsp provider=element property=atts sd=SGML clause=
"b3201">
<desc>要素の属性の名前。
<lexdef ltn=attspecs spec sd=SGML clause= "79001">
<desc>属性指定リスト。
<lexdef ltn=ENTITY nmsp provider=sgmldoc property=entities sd=SGML
clause= "a5101">
<desc>一般実体名。
<lexdef ltn=IDREF nmsp provider=sgmldoc property=elements sd=SGML
clause= "79403">
<desc>(文書中で指定された)要素のID
<lexdef ltn=GI nmsp provider=doctype property=elemtps sd=SGML clause=
"78001">
<desc>(dtd : effecdveが真の場合)要素型名。
<lexdef ltn=rniname spec sd=SGML>
<desc>区切り子RNIに続く,オプションの名前。
9.7
DSSSL SGMLグローブ設計
DSSSLでは,DSSSL指定内の体系形式sgml-grove-planによって指定する単一のグローブ設計を規定す
る。7.1.2を参照のこと。
10. 標準文書照会言語 (SDQL)
標準文書照会言語 (SDQL) は,データ型node-list及びデータ型named-node-listの二つを式言語に追加す
る。SDQLは式に次の構文を追加する。SDQLでは,式expressionが出現可能なすべての文脈において,式
special-query-expressionが出現してよい。
核照会言語と呼ぶSDQLの部分集合を,10.2.4において定義する。
データ型node-listは,グローブ内の0個以上のノードの順序リストで表現する。
備考1. ノードを表す型はない。一つのノードは,一つの要素をもつnode-listで示す。
2. ノードリストは,典型的には遅延を用いて実装する。つまり,ノードリストの内部表現はノ
ードのリストではなく,そのノードリストを構成する指定の表現となる。例えば,応用が手
続きnode-list-countを使用した場合,ノードリストを構成するのは非効率的で,単純に幾つ
のノードがノードリストの指定に合致するかを数えたほうがよい。
単一の要素をもつノードリストを,単一要素ノードリストと呼ぶ。
データ型named-node-listは,データ型node-listの下位型であって,各要素がノードリスト内のそのノー
ドを一意に識別する文字列を値とする特性をもつ。
引数表記において,次の規約を用いる。
109
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
a) n1を,ノードリストの場合に用いる。
b) sn1を,単一要素ノードリストの場合に用いる。
c) nn1を,名前付きノードリストの場合に用いる。
10.1 基本手続き
この10.1内の手続きは,基本手続きとする。他のすべてのSDQL手続きは,これらの手続きに関連して
定義できる。しかし,10.1の手続きは,他の手続きに関連して定義できない。
10.1.1 応用束縛
(current-node)
単一要素ノードリストを返す。この手続きの意味は,その手続きが出現したSDQL式の文脈によって定
義する。
(current-root)
単一要素ノードリストを返す。この手続きの意味は,その手続きが出現したSDQL式の文脈によって定
義する。
10.1.2 ノードリスト
(node-list? obj)
引数objがノードリストの場合#tを,その他の場合に#fを返す。
(node-list-empty? nl)
引数nlが空ノードリストの場合に#tを,その他の場合に#fを返す。
(node-list-first nl)
引数nlが空でない場合に,その最初の要素を含むノードリストを,その他の場合に空ノードリストを返
す。
(node-list-rest n1)
引数nlが少なくとも一つの要素をもつ場合に,その最初の要素以外の要素を含むノードリストを返却し,
その他の場合に空ノードリストを返す。
(node-list nl1 nl2 ...)
引数nl1,引数nl2,...のノードリストを結合したノードリストを返す。引数がない場合には,空ノードリ
ストを返す。
(node-list=? nl1 nl2)
引数nl1及び引数nl2が,同じ要素を同じ順序で含むノードリストの場合に#tを,その他の場合に#fを返
す。
(node-list-no-order nl)
引数nlと同じ要素を含むノードリストを返すが,要素の順序は規定しない。
備考 実装は, (node-list-no-order q) をqより効率よく実装できる。
10.1.3 名前付きノードリスト
(named-node-list? obj)
引数objが名前付きノードリストの場合に#tを,その他の場合に#fを返す。
(named-node string nnl)
引数nnlにおいて,名前が引数stringに等しいノードがある場合,そのノードを含む単一要素ノードリ
ストを返す。存在しない場合,空ノードリストを返す。引数string,は,引数nnlの要素と比較する以前に,
引数nnlに関連する文字列正規化規則に基づいて正規化する。
110
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(named-node-list-normalize string nnl symbol)
引数symbolによって指定するクラスに適用可能な,引数nnlの正規化規則に基づいて,引数stringを正
規化して返す。
(named-node-list-names nnl)
引数nnlの各要素の名前のリストを,要素の配列順で返す。結果は引数nnlと同じ数の要素をもつ,文
字列のリストとなる。
10.1.4 エラー報告
(node-list-error string nl)
手続きerrorと類似の方法でエラーを発生する。この手続きによってエラーが発生した場合,処理系は引
数nlノードリストに関してエラーが発生したことを利用者に報告することが望ましい。報告の方法は,処
理系依存とする。
10.1.5 応用名変換
SDQLのあらゆる文脈において,応用名は次の通常変換の対象となる。
a) スペースをハイフンに置き換える。
b) 宣言したデータ型が型booleanのオブジェクトの特性の場合,その応用名に疑問符(?)を追加する。
10.1.6 特性値
(node-property propname snl #!key default: null: rcs?:)
引数snlで示すノードが,特性propnameに関して開示する特性の値を返す。ノードが特性propnameを
開示せず,引数default : が指定されている場合には,その値を返す。引数default : が指定されていない場
合,エラーを発生する。ノードがその特性についてヌル値を開示し,引数null : に値が指定されている場
合,その値を返す。引数null : に値が指定されず,default : に値が指定されている場合,default : で指定し
た値を返す。それ以外の場合エラーを発生する。
引数propnameは,シンボル又は文字列であって,応用名又は特性のRCS名のいずれかを示す。引数
propnameと特性名の比較は,文字の大小の区別なしで行う。
特性値は,その抽象データ型に基づいて式言語オブジェクトとして表現する。
a) 抽象文字型 (abstract character) は,型characterのオブジェクトで表現する。
b) 抽象文字列型 (abstract string) は,型stringのオブジェクトで表現する。
c) 抽象型booleanのオブジェクト (abstract boolean) は,型boolのオブジェクトで表現する。
d) 抽象整数型 (abstract integer) は,型integerのオブジェクトで表現する。
e) 抽象整数リスト (abstract integer list) は,整数のリストで表現する。
f)
抽象文字列リスト (abstract string list) は,文字列のリストで表現する。
g) 列挙型 (enumeration) は,列挙値の応用名を通常変換した名前のシンボルで表現する。
h) 構成要素名 (component name) は,シンボルで表現する。シンボルの名前は,10.1.5に規定する変換を
施した後の応用名とする。ただし,引数rcs?に真の値が指定されている場合,RCS名を用いる。
i)
抽象構成要素名リスト (abstract component name list) は,各構成要素の名前を表現するシンボルのリス
トで表現する。
j)
抽象ノード (abstract node) は,単一要素ノードリストで表現する。
k) 抽象ノードリスト (abstract nodelist) は,型node-listのオブジェクトで表現する。
l)
抽象名前付きノードリスト (abstract nmndlist) は,型named-node-listのオブジェクトで表現する。
m) ヌル値は,式言語表現をもたない。
111
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
10.1.7 SGMLグローブ構築
(sgml-parse string #!key active: parent:)
SGML文書又は副文書を解析し,SGML特性集合を用いて構成したグローブの根となるノードを含む単
一要素ノードリストを返す。引数stringは,SGML文書実体又はSGML副文書実体のシステム識別子とす
る。引数active : は,活性状態のDTD又はLPDの名前を指定する文字列とする。活性状態のDTDは,
高々一つでなければならない。引数parent : を指定した場合,実体はSGML副文書実体として解析する。
引数parent : の値は,単一要素ノードリストであって,副文書がグローブ内のその位置で宣言されたとし
て取り扱う。この手続きは,応用依存の方式で決定する無指定時グローブ設計を用いる。
10.2 派生手続き
幾つかの手続きに関して,式言語の形式的定義を提供する。それらは,簡素化のためエラーの処理を含
んでいない。正しい実装では,手続き原型及び手続き記述が示す型に,引数が適合することを最初に検証
する必要がある。
10.2.1 HyTime支援
HyTime支援の機能を,スタイル言語又は変換言語で用いるには,機能hytimeを必要とする。抽象デー
タ型groveposは,各要素が次のいずれかとなるリストで表現する。
a) 整数
b) シンボル
c) シンボル及び文字列から成るリスト
d) シンボル及び整数から成るリスト
(value-proploc propname snl #!key apropsrc?: default:)
引数snlの要素が,引数propnameで示す名前をもつ特性に関して開示する値を返す。引数propnameは,
シンボル又は文字列であって,その解釈は手続きnode-propertyと同じとする。引数snlの要素が,引数
propnameを名前にもつ特性に関して値を開示しない場合,又はヌル値を開示する場合に,引数default : が
指定してあればその値が返し,その他の場合エラーとする。引数apropsrc? : が真の場合,JIS X 4155の体
系形式proplocに関して,属性apropsrcに属性値apropsrcに指定するのと同じ効果をもつ。
(list-proploc propname nl #!key apropsrc?: ignore-missing?:)
引数nlの各要素に関して,引数propnameの名前をもつ特性が開示する値を取り出し,そのリストを返
す。引数propnameは,シンボル又は文字列であって,その解釈は手続きnode-propertyと同じとする。引
数nlの幾つかの要素が,引数propnameを名前にもつ特性に関して値を開示していない場合,又はヌル値
を開示している場合には,引数ignore-missing? : が真なら,結果のリストはその要素に対応するオブジェ
クトを含まない。引数ignore-missing? : が偽であればエラーを発生する。引数apropsrc? : の要素が真の場
合,JIS X 4155の体系形式proplocに関して,属性apropsrcに属性値apropsrcに指定するのと同じ効果をも
つ。
(node-list-proploc propname nl #!key apropsrc?: ignore-missing?:)
引数nlの要素であって,引数propnameの名前をもつ特性を開示する各要素の値を結合したノードリス
トを返す。引数propnameは,シンボル又は文字列であって,その解釈は手続きnode-propertyと同じとす
る。引数nlの各要素において,引数propnameが指定する特性は型nodalでなければならない。引数nlの
幾つかの要素が,引数propnameを名前にもつ特性に関して値を開示していない場合,又はヌル値を開示
している場合には,引数ignore-missing? : が真なら,結果のリストはその要素に対応するオブジェクトを
含まず,引数ignore-missing? : が偽であればエラーを発生する。引数apropsrc? : の要素が真の場合,JIS X
112
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
4155の体系形式proplocに関して,属性apropsrcに属性値apropsrc属性を指定するのと同じ効果をもつ。
(listloc dimlist nl #!key overrun:)
(listloc dimlist list #!key overrun:)
(listloc dimlist string #!key overrun:)
JIS X 4155で定義する,体系形式listlocと同一の方法で第二引数から要素を特定する。第二引数の型に
従って,ノードリスト,リスト又は文字列を返す。引数dimlistは,整数のリストとする。引数overrun : は,
シンボルerror,シンボルwrap,シンボルtruncate,シンボルignoreのいずれかを値とする。無指定時は,
シンボルerrorとする。
(nameloc nmlist nnl #!key ignore-missing?:)
引数nmlistの各要素に対して一つの要素を含むノードリストを返す。ここで引数nmlistは,文字列,シ
ンボル,シンボル又は文字列から成るリストのいずれかとする。引数nmlistの任意の要素が,引数nlのう
ちの幾つかの名前と一致しない場合,引数ignore-missing? : が真でなければエラーとなる。
(groveloc list nl #!key overrun:)
JIS X 4155が定義する,体系形式grovelocと同一の方法で探索し,結果のノードリストを返す。引数list
は,抽象データ型groveposの表現形式と同じ形式のリストとする。overrun : の解釈は,listlocと同様とす
る。
(treeloc marklist nl #!key overrun: treecom?:)
JIS X 4155が定義する,体系形式treelocと同一の方法で探索し,結果のノードのリストを返す。引数
marklistは,整数のリストとする。引数overrun : の解釈は,listlocと同一とする。引数treecom? : が真の
場合,属性値treecomをもつtreecom属性に対応する。
(pathloc dimlist nl #!key overrun: treecom?:)
JIS X 4155が定義する,体系形式pathlocと同一の方法で探索し,結果のノードリストを返す。引数dimlist
は,整数のリストとする。引数overrun : の解釈は,listlocと同一とする。引数treecom? : が真の場合,属
性値treecomをもつtreecom属性に対応する。
(relloc-anc dimlist nl #Ikey overrun:)
(relloc-esib dimlist nl #!key overrun:)
(relloc-ysib dimlist nl #!key overrun:)
(relloc-des dimlist nl #!key overrun:)
JIS X 4155が定義する,体系形式rellocと同一の方法で探索し,結果のノードリストを返す。手続き
relloc-anc,手続きrelloc-esib,手続きrelloc-ysib,及び手続きrelloc-desは,それぞれ属性relationに,属性
値anc,属性値esib,属性値ysib,及び属性値desを指定した場合に対応する。引数dimlistは,整数のリス
トとする。引数overrun : の解釈は,listlocと同一とする。
備考 親及び子の関係は,それぞれ手続きparent,手続きchildrenで扱う。
(datatok nl #!key filter: concat: catsrcsp: catressp: tokensep:
ascp: stop: min: max: nlword: stem?:)
JIS X 4155が定義する,体系形式datatokと同一の方法で探索し,結果のノードリストを返す。
a) 引数filter : は,属性filterに指定可能なシンボルのいずれかを値とする。
b) 引数concat : の解釈は,属性concatと同様とし,シンボルcatshi,シンボルcatslo,シンボルcattk,シ
ンボルcatshitk,シンボルcatslotk,シンボルcatrhitk,シンボルcatrlotk,シンボルnconcatのいずれか
を値とする。
113
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
c) 引数catsrcsp :,引数catressp :,引数tokensp :,引数ascp : の解釈は同名の属性と同様とし,文字列を
値とする。
d) 引数nlword : は,ISO 639で定義する言語符号を指定する文字列とする。
e) 引数stem? : が真の場合,属性nlwordに属性値#STEMを指定するのと同じ効果をもつ。
f)
引数stop : は文字列リストを値とし,停止リストを意味する。無指定時値は,空リストとする。
g) 引数min : は整数を値とし,切捨てを行わない最小トークン長を意味する。
h) 引数max : は整数を値とし,切捨てを行わない最大トークン長を意味する。
(make-grove string nl)
手続きmake-groveは新規のグローブを構築し,グローブ根を含むノードリストを返す。引数stringは,
グローブ設計の名前とする。引数nlは,入力テキストとする。
(literal-match string nl #!key level: boundary:
min-hits: max-hits:)
(hylex-match string nl #!key norm?: level: boundary:
min-hits: max-hits:)
引数nlの各要素のデータ内で見つかった,重複しない合致ごとに,データトークン化特性集合を用いて
構築した,一つのトークン化文字列ノードを含む新規のグローブを構築する。すべてのトークン化した文
字列ノードをノードリストとして返す。
a) 引数boundary : の解釈は,JIS X 4155が定義する要素HyLexの属性boundaryと同一とし,シンボル
sodeod,シンボルsodiec,シンボルisceod,及びシンボルisciecを値とする。
b) 引数level : は数値であって,文字列比較を行う際に,現言語の照合指定における比較レベルを表す。
引数level : が指定されない場合,単純に文字列を構成する文字によって比較する。
c) 引数min-hits : 及び引数max-hits : は正の整数を値とし,任意の合致対象の親ノードが指定した範囲の
数の合致を含まない場合には,返すノードリストからその合致対象を削除する。引数min-hits : の無
指定時値を1とする。引数max-hits : が指定されない場合,最大合致数の制限はない。
d) 引数norm? : は型booleanのオブジェクトであって,字句モデルが正規化されているかを指定する。
(compare proc list)
引数procは,二つの文字列を引数にもち,型booleanのオブジェクトを返す手続きとする。引数list中
の連続する二つずつの文字列に,引数手続きprocを適用し,そのすべてが#tを返す場合に#tを返す。この
手続きは,次のとおりに定義できる。
(define (compare proc l)
(if (null? l)
#t
(let loop ((prey (car l))
(rest (cdr l)))
(cond ((null? rest) #t)
((proc prev (car rest))
(loop (car rest) (cdr rest)))
(else #f)))))
(ordered-may-overlap? nl)
(ordered-no-overlap? nl)
114
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数nlの要素となる各ノードは,補助グローブ内のノードとし,すべての入力ノードは単一の木内とす
る。入力ノードがその属する木内で,順序付けられている場合に#tを返却し,その他の場合に#fを返す。
手続きordered-no-overlap?に関しては,各引数ノードについて,そのすべての入力ノードが,次の引数ノー
ドの入力ノードに先行する場合に,入力ノードが順序付けられているとみなす。手続き
ordered-may-overlap?に関しては,各引数ノードについて,その入力ノードの最初のノードが,次の引数ノ
ードの入力ノードの最初のノードに先行する場合に,入力ノードが順序付けられているとみなす。
(span nl symbol)
引数nlの各ノードは,補助グローブ内のノードとし,すべてのノードの入力ノードは単一の木内とする。
入力ノードの最初と最後の間の量子数を返す。引数symbolは量子を指定する。引数symbolには,手続き
datatokの引数filter : で指定できる値のいずれかを指定する。
10.2.2 リスト手続き
これらの手続きは,通常のリストに対する手続きに類似している。
(empty-node-list)
この手続きは,空ノードリストを返す。
(node-list-reduce nl proc obj)
引数nlが要素をもたない場合,引数objを返却し,その他の場合に手続きnode-list-reduceに,次のそれ
ぞれを引数として適用した結果を返す。
a) 引数nlから最初の要素を除いたすべてを含むノードリスト。
b) 引数proc
c) 引数procを,引数obj及び引数nlの最初の要素に適用した結果。
手続きnode-list-reduceは,次のとおり定義できる。
(define (node-list-reduce nl combine init)
(if (node-list-empty? nl)
init
(node-list-reduce (node-list-rest nl)
combine
(combine init (node-list-first nl)))))
(node-list-contains? nl snl)
引数nlが,引数snlの要素と等しいノードを含む場合に#tを返却し,その他の場合に#fを返す。この手
続きは,次のとおり定義できる。
(define (node-list-contains? nl snl)
(node-list-reduce nl
(lambda (result i)
(or result
(node-list=? snl i)))
#f))
(node-list-remove-duplicates nl)
先行する任意の要素に等しい要素を取り除くこと以外では,引数nlと同一のノードリストを返す。この
手続きは,次のとおり定義できる。
(define (node-list-remove-duplicates nl)
115
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(node-list-reduce nl
(lambda (result snl)
(if (node-list-contains? result snl)
result
(node-list result snl)))
(empty-node-list)))
(node-list-union #!rest args)
すべての引数ノードリストの和集合を返す。結果は,重複を含まない。引数がない場合,空ノードリス
トを返す。この手続きは,次のとおり定義できる。
(define (node-list-union #!rest args)
(reduce args
(lambda (nl1 nl2)
(node-list-reduce nl2
(lambda (result snl)
(if (node-list-contains? result
snl)
result
(node-list result snl)))
nl1))
(empty-node-list)))
ここで,手続きreduceは,次のとおり定義できる。
(define (reduce list combine init)
(let loop ((result init)
(list list))
(if (null? list)
result
(loop (combine result (car list))
(cdr list)))))
(node-list-intersection #!rest args)
この手続きは,引数ノードリストの積集合を含むノードリストを返す。結果は,重複を含まない。引数
がない場合,空ノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-intersection #!rest args)
(if (null? args)
(empty-node-list)
(reduce (cdr args)
(lambda (nl1 nl2)
(node-list-reduce nl1
(lambda (result snl)
(if (node-list-contains? n12 snl)
(node-list result snl)
116
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
result))
(empty-node-list)))
(node-list-remove-duplicates (car args)))))
(node-list-difference #!rest args)
この手続きは,引数ノードリストすべての差集合を含むノードリストを返す。集合の差は,最初の引数
ノードリストの要素であって,任意の他の引数ノードリストの要素とはならない要素から成る集合と定義
できる。結果は,重複を含まない。引数がない場合,空ノードリストを返す。この手続きは,次のとおり
定義できる。
(define (node-list-difference #!rest args)
(if (null? args)
(empty-node-list)
(reduce (cdr args)
(lambda (nl1 nl2)
(node-list-reduce nl1
(lambda (result snl)
(if (node-list-contains? nl2 snl)
result
(node-list result snl)))
(empty-node-list)))
(node-list-remove-duplicates (car args)))))
(node-list-symmetric-difference #!rest args)
この手続きは,すべての引数ノードリストの対称差集合を含むノードリストを返す。対称差集合は,引
数ノードリストグループの中で一度しか出現しないノードから成る集合と定義する。結果は,重複を含ま
ない。引数がない場合,空ノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-symmetric-difference #!rest args)
(if (null? args)
(empty-node-list)
(reduce (cdr args)
(lambda (nl1 nl2)
(node-list-difference (node-list-union nl1 nl2)
(node-list-intersection nl1 nl2)))
(node-list-remove-duplicates (car args)))))
(node-list-map proc nl)
引数nlの各要素について,その要素だけを含む単一要素ノードリストを作成し,引数procを適用した
結果をノードリストに付加した結果を返す。引数procが,引数nlの任意の要素に関してノードリストを
返却しない場合エラーとする。この手続きは,次のとおり定義できる。
(define (node-list-map proc nl)
(node-list-reduce nl
(lambda (result snl)
(node-list (proc snl)
117
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
result))
(empty-node-list)))
(node-list-union-map proc nl)
引数nlの各要素について,その要素だけを含む単一要素ノードリストを作成し,引数procを適用した
結果のノードリスト和集合を返す。引数procが,引数nlの任意の要素に関してノードリストを返却しな
い場合エラーとする。この手続きは,次のとおり定義できる。
(define (node-list-union-map proc nl)
(node-list-reduce nl
(lambda (result snl)
(node-list-union (proc snl)
result))
(empty-node-list)))
(node-list-some? proc nl)
引数nlの各要素について,その要素だけを含む単一要素ノードリストを作成し,そのノードリストを引
数procを適用した結果のうち,#fを返却するものがない場合に#tを返却し,その他の場合に#fを返す。引
数nlの幾つかに関して,引数手続きprocがエラーを発生した場合,この手続きの実装はエラーを発生し
てもよいが,必す(須)とはしない。この手続きは,次のとおり定義できる。
(define (node-list-some? proc nl)
(node-list-reduce nl
(lambda (result snl)
(if (or result (proc snl))
#t
#f))
#f))
(node-list-every? proc nl)
引数nlの各要素について,その要素だけを含む単一要素ノードリストに引数procを適用し,すべての
結果が#fを返さない場合に#tを返却し,その他の場合#fを返す。引数nlの幾つかについて,引数procが
エラーを発生した場合,この手続きの実装はエラーを発生してよい。この手続きは,次のとおり定義でき
る。
(define (node-list-every? proc nl)
(node-list-reduce nl
(lambda (result snl)
(if (and result (proc snl))
#t
#f))
#t))
(node-list-filter proc nl)
引数nlの各要素について,その要素だけを含む単一要素ノードリストに引数procを適用し,その結果
が#fにならない要素から成るノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-filter proc nl)
118
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(node-list-reduce nl
(lambda (result snl)
(if (proc snl)
(node-list snl result)
result))
(empty-node-list)))
(node-list->list nl)
引数nlの各要素についてその要素だけを含む単一要素ノードリストを作成し,そのリストを返す。この
手続きは,次のとおり定義できる。
(define (node-list->list nl)
(reverse (node-list-reduce nl
(lambda (result snl)
(cons snl result))
'())))
(node-list-length nl)
引数nlの要素数を返す。この手続きは,次のとおり定義できる。
(define (node-list-length nl)
(node-list-reduce nl
(lambda (result snl)
(+ result 1))
0))
(node-list-reverse nl)
引数nlの要素を逆順で含むノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-reverse nl)
(node-list-reduce nl
(lambda (result snl)
(node-list snl result))
(empty-node-list)))
(node-list-ref nl k)
引数nlの引数kの示す位置(0を基底とする)のノードを含むノードリストを返す。引数kに対応する
要素が存在しない場合,空ノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-ref nl i)
(cond ((< i 0)
(empty-node-list))
((zero? i)
(node-list-first nl))
(else
(node-list-ref (node-list-rest nl) (- i 1)))))
(node-list-tail nl k)
引数nlから最初の引数kの要素を除いたノードリストを返す。引数nlが引数kより少ない個数の要素を
119
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
もつ場合,空ノードリストを返す。この手続きは,次のとおり定義できる。
(define (node-list-tail nl i)
(cond ((< i 0) (empty-node-list))
((zero? i) nl)
(else
(node-list-tail (node-list-rest nl) (- i 1)))))
(node-list-head nl k)
引数nlの最初の引数k個の要素から成るノードリストを返す。引数nlが,引数kより少ない個数の要素
をもつ場合,引数nlを返す。この手続きは,次のとおり定義できる。
(define (node-list-head nl i)
(if (zero? i)
(empty-node-list)
(node-list (node-list-first nl)
(node-list-head nl (- i 1)))))
(node-list-sublist nl k1 k2)
引数nlの中で引数k1以上,引数k2未満の要素に先行される要素を含むノードリストを返す。0を基底と
した指標で引数k1以上,引数k2未満の要素を選択することに等しい。この手続きは,次のとおり定義でき
る。
(define (node-list-sublist nl i j)
(node-list-head (node-list-tail nl i)
(- j i)))
(node-list-count nl)
引数nl内の異なる要素の数を返す。この手続きは,次のとおり定義できる。
(define (node-list-count nl)
(node-list-length (node-list-remove-duplicates
nl)))
(node-list-last nl)
引数nlが空ノードリストでない場合に最後の要素を返却し,その他の場合に空ノードリストを返す。こ
の手続きは,次のとおり定義できる。
(define (node-list-last nl)
(node-list-ref nl
(- (node-list-length nl) 1)))
手続きnode-list-some?,手続きnode-list-every?,手続きnode-list-filter及び手続きnode-list-union-mapを使
用する場合,最初の引数はしばしば仮引数を伴うlambda式となる。この規格では,これらの式内で明示的
なlambda式を使用する必要性を避けるための構文を提供する。
[146] special-query-expression=there-exists?-expression
|for-all?-expression | select-each-expression | union-for-each-expression
[147] there-exists?-expression= (there-exists? variable expression expression)
次の二つの式は等価となる。
120
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(there-exists? var nl-expr expr)
(node-list-some? (lambda (var) expr) nl-expr)
これは,“変数varを用いた条件式exprを満たす,ノードリストnl-expr内のノードが存在するか?”と読
む。
[148] for-all?-expression= (for-all? variable expression expression)
次の二つの式は等価となる。
(for-all? var nl-expr expr)
(node-list-every? (lambda (var) expr) nl-expr)
これは,“変数varを用いた条件式exprを,ノードリストnl-expr内のノードすべてが満たすか?”と読む。
[149] select-each-expression= (select-each variable expression expression)
次の二つの式は等価となる。
(select-each var nl-expr expr)
(node-list-filter (lambda (var) expr) nl-expr)
これは,“変数varを用いた条件式exprを満たすノードを,ノードリストnl-exprから選択する”と読む。
[150] union-for-each-expression= (union-for-each variable expression expression)
次の二つの式は等価となる。
(union-for-each var nl-expr expr)
(node-list-union-map (lambda (var) expr) nl-expr)
これは,“変数varを用いた条件式exprを満たす,ノードリストnl-expr内の各要素の和集合”と読む。
10.2.3 共通特性操作
これらの手続きは,任意のグローブに対して機能するが,内在特性においてだけ使用できる。
次に示す手続きのうちの多くが,ノードに対する関数をノードリスト全体に写像した結果を返す。これ
は,ノードリストの各要素に機能を適用した結果を順に付加してできたノードリストとして定義できる。
(node-list-property propname nl)
ノードが,引数propnameの名前をもつ特質を開示をしている場合には,その値を返し,開示していな
い場合,又はヌル値を開示している場合には,空ノードリストを返す関数を,引数nl全体に対応させた結
果を返す。引数propnameは,node-property手続きで可能な任意の方法で指定できる。引数nlの任意のノ
ードが,ヌル値ではなく,型nodalでない値をpropameの名前で公開している場合エラーとする。この手
続きは,次のとおり定義できる。
(define (node-list-property prop nl)
(node-list-map (lambda (snl)
(node-property prop snl default: (empty-node-list)))
nl))
(origin ni)
この手続きは,次の定義に等しい。
(define (origin nl)
(node-list-property 'origin nl))
(origin-to-subnode-rel snl)
引数snlの要素が,特性origin-to-subnode-rel-property-nameを開示している場合にその値を,開示してい
ないか又はヌル値を開示している場合には,#fを返す。
121
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
この手続きは,次のとおり定義できる。
(define (origin-to-subnode-rel snl)
(node-property 'origin-to-subnode-rel-property-name snl default: #f))
(tree-root nl)
この手続きは,次の定義に等しい。
(define (tree-root nl)
(node-list-property 'tree-root nl))
(grove-root nl)
この手続きは,次の定義に等しい。
(define (grove-root nl)
(node-list-property 'grove-root nl))
(children nl)
ノードの子ども特性が存在すればその値を,その他の場合空ノードリストを返す関数を,引数nl全体に
写像した結果を返す。この手続きは,次のとおり定義できる。
(define (children nl)
(node-list-map (lambda (snl)
(let ( (childprop (node-property ' children-property-name
snl
default: #f)))
(if childprop
(node-property childprop
snl
default: (empty-node-list))
(empty-node-list))))
nl))
(data nl)
引数nlの各要素のデータを結合した内容の文字列を返す。ノードのデータは,次のとおりに定義する。
a) ノードがデータ特性をもつ場合,その特性値を必要に応じて文字列に変換した結果。
b) 子ノードが子ども特性をもつ場合,各子ノードのデータを特性data-separatorの特性値がヌル値でなけ
れば,その値で各データを区切って連結した結果。
c) その他の場合は,空文字列。
(parent nl)
この手続きは,次の定義に等しい。
(define (parent nl)
(node-list-property 'parent nl))
(source nl)
この手続きは,次の定義に等しい。
(define (source nl)
(node-list-property 'source nl))
(subtree nl)
122
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数nlの各要素を,ノードの部分木を返す関数で写像したものを返す。ただし,ノードの部分木は,そ
のノード及びそれに続いてそのノードの子の部分木をリストしたノードリストと定義する。
この手続きは,次のとおり定義できる。
(define (subtree nl)
(node-list-map (lambda (snl)
(node-list snl (subtree (children snl))))
nl))
(subgrove nl)
引数nlの各要素を,ノードの部分グローブを返す関数で写像したものを返す。ただし,ノードの部分グ
ローブは,そのノード及びそれに続いてそのノードの下位ノード (subnode) 特性の各値の要素の部分グロ
ーブをリストしたノードリストと定義する。
この手続きは,次のとおり定義できる。
(define (subgrove nl)
(node-list-map
(lambda (snl)
(node-list snl
(subgrove
(apply node-list
(map (lambda (name)
(node-property name snl))
(node-property 'subnode-property-names
snl))))))
nl))
(descendants nl)
引数nlの各要素を,ノードの子孫を返す関数で写像したものを返す。ただし,ノードの子孫は,そのノ
ードの子の部分木を追加したノードリストと定義する。
この手続きは,次のとおり定義できる。
(define (descendants nl)
(node-list-map (lambda (snl)
(subtree (children snl)))
nl))
(ancestors nl)
引数nlの各要素を,ノードの先祖を返す関数で写像したものを返す。ただし,ノードの先祖は,そのノ
ードが根の場合には空ノードリスト,そうでなければ,ノードの親の先祖にノードの親を付加した結果の
ノードリストと定義する。
(define (ancestors nl)
(node-list-map (lambda (snl)
(let loop ((cur (parent snl))
(result (empty-node-list)))
(if (node-list-empty? cur)
123
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
result
(loop (parent snl)
(node-list cur result)))))
nl))
(grove-root-path nl)
引数nlの各要素をグローブ根経路を返す関数で写像した結果を返す。ただし,グローブ根経路は,ノー
ドが根ノードであれば空ノードリスト,その他の場合には,ノードの起点のグローブ根経路にノードの起
点を付加した結果と定義する。この手続きは,次のとおり定義できる。
(define (grove-root-path nl)
(node-list-map (lambda (snl)
(let loop ((cur (origin snl))
(result (empty-node-list)))
(if (node-list-empty? cur)
result
(loop (origin nl)
(node-list cur result)))))
nl))
(rsiblings nl)
引数nlの各要素を,再帰兄弟関数で写像した結果を返す。ただし,ノードの再帰兄弟は,そのノードが
起点をもてばその起点の特性origin-to-subnodeとなり,起点をもたなければそのノード自体と定義する。
(define (rsiblings nl)
(node-list-map (lambda (snl)
(let ((rel (origin-to-subnode-rel snl)))
(if rel
(node-property rel
(origin snl)
default: (empty-node-list))
snl)))
nl))
(ipreced nl)
引数nlの各要素を,直前兄弟が存在する場合にそれを返す関数で写像した結果を返す。この手続きは,
次のとおり定義できる。
(define (ipreced nl)
(node-list-map (lambda (snl)
(let loop ((prey (empty-node-list))
(rest (rsiblings snl)))
(cond ((node-list-empty? rest)
(empty-node-list))
((node-list=? (node-list-first rest) snl)
Prev)
124
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(else
(loop (node-list-first rest)
(node-list-rest rest))))))
nl))
(follow nl)
引数nlの各要素を,直後兄弟が存在する場合にそれを返す関数で写像した結果を返す。この手続きは,
次のとおり定義できる。
(define (ifollow nl)
(node-list-map (lambda (snl)
(let loop ((rest (rsiblings snl)))
(cond ((node-list-empty? rest)
(empty-node-list))
((node-list=? (node-list-first rest) snl)
(node-list-first (node-list-rest rest)))
(else
(loop (node-list-rest rest))))))
nl))
(preced nl)
引数nlの各要素を,先行兄弟が存在する場合にそれを返す関数で写像した結果を返す。この手続きは,
次のとおり定義できる。
(define (preced nl)
(node-list-map (lambda (snl)
(let loop ((scanned (empty-node-list))
(rest (rsiblings snl)))
(cond ((node-list-empty? rest)
(empty-node-list))
((node-list=? (node-list-first rest) snl)
scanned)
(else
(loop (node-list scanned
(node-list-first rest))
(node-list-rest rest))))))
nl)
(follow nl)
引数nlの各要素を,後続兄弟が存在する場合にそれを返す関数で写像した結果を返す。この手続きは,
次のとおり定義できる。
(define (follow nl)
(node-list-map (lambda (snl)
(let loop ((rest (rsiblings snl)))
(cond ((node-list-empty? rest)
125
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(empty-node-list))
((node-list=? (node-list-first rest) snl)
(node-list-rest rest))
(else
(loop (node-list-rest rest))))))
nl))
(grove-before? snl1 snl2)
引数snl1が,グローブ順において引数snl2に先行する場合#tを返す。引数snl1と引数snl2とが同じグロ
ーブ内にない場合はエラーとする。この手続きは,次のとおり定義できる。
(define (grove-before? Snl1 snl2)
(let ((sorted
(node-list-intersection (subgrove (grove-root snl1))
(node-list snl1 snl2))))
(and (= (node-list-length sorted) 2)
(node-list=? (node-list-first sorted) snl1))))
(sort-in-tree-order nl)
引数nlの要素を,木順で整列したノードリストを返す。重複するノードは取り除く。引数nlの要素が,
すべて同じ木内でなければエラーとする。この手続きは,次のとおり定義できる。
(define (sort-in-tree-order nl)
(node-list-intersection (subtree (tree-root nl))
nl))
(tree-before? snl1 snl2)
引数snl1が,木順において引数snl2より先行する場合に#tを返す。引数snl1と引数snl2とが同じ木内で
なければエラーとする。この手続きは,次のとおり定義できる。
(define (tree-before? snl1 snl2)
(let ((sorted
(sort-in-tree-order (node-list snl1 snl2))))
(and (= (node-list-length sorted) 2)
(node-list=? (node-list-first sorted) snl1))))
(tree-before nl)
引数nlの各要素を,同じ木内において先行するノードを返す関数で写像した結果を返す。この手続きは,
次のとおり定義できる。
(define (tree-before nl)
(node-list-map (lambda (snl)
(node-list-filter (lambda (x)
(tree-before? x snl))
(subtree (tree-root snl))))
nl))
(property-lookup propname snl if-present if-not-present)
引数snlが引数propnameに関して非ヌル値を開示している場合,引数if-presentをその値に適用した結果
126
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
を,その他の場合には引数if-not-presentを引数なしで呼び出した結果を返す。引数propnameは,手続き
node-propertyに対して可能な任意の方法で指定できる。この手続きは,次のとおり定義できる。
(define (property-lookup name snl if-present if-not-present)
(let ((val (node-property name snl default: #f)))
(cond (val (if-present val))
((node-property name snl default: #t) (if-not-present))
(else (if-present val)))))
(select-by-class nl sym)
引数nlの要素のうち,ノードのクラスとして引数symをもつノードから成るノードリストを返す。引数
symは,10.1.5で規定のとおりに変換したクラスの応用名又はRCS名とする。
(select-by-property nl sym proc)
引数nlの要素であって,引数symの名前をもつ型nodalでない特性が非ヌル値を開示しており,その値
に引数procを適用した場合に真の値を返すノードから成るノードリストを返す。
(select-by-null-property nl sym〉
引数nlの要素であって,引数symが示す特性に関してヌル値を開示しているものから成るノードリスト
を返却する。
(select-by-missing-property nl sym〉
引数nlの要素であって,引数symが示す特性に関して値を開示していないものから成るノードリストを
返却する。
10.2.4 核照会言語
この項は,SDQLの部分集合を定義する。この部分集合では,10.2.4で定義する手続きに加え,手続き
current-node,手続きnode-list-empty?,手続きnode-list?,手続きparent及び手続きnode-list-errorを利用で
きる。この部分集合は,ノードリストが一つ以上のノードを決して含まず,ノードリストが含むすべての
ノードが型elementとなる設計がなされている。
次に示す各手続きでは,型node-listの引数を省略でき,その場合には (current-node) が指定されたと解
釈する。引数osnl (optional singleton node-list) は,ノードを0個又は1個含むノードリストを意味する。
10.2.4.1 探査
(ancestor string osnl〉
引数osnlの先祖であって,共通識別子として引数stringをもつ最も近いものを含むノードリストを返す。
そのようなノードリストが存在しない場合又はosnlが空ノードリストの場合には,空ノードリストを返却
する。
(gi osnl)
引数osnlに含まれるノードの特性giの値を返す。引数osnlが空の場合,引数osnlの要素が特性giをも
たない場合又は特性giにヌル値をもつ場合には,#fを返す。
(first-child-gi osnl)
引数osnlの要素の子であって,クラスがelementの最初のものの特性giの値を返す。引数osnlが空の場
合又はそのような子をもたない場合には#fを返す。
(id osnl)
引数osnlに含まれるノードの特性idの値を返す。引数osnlが空の場合,特性idをもたない場合又は特
性idがヌル値をもつ場合には,#fを返す。
127
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
10.2.4.2 計数
(child-number snl)
引数snlの子番号を返す。
要素の子番号は,現要素と同じ共通識別子をもち,現要素に先行する兄弟の数に1を加えたものとなる。
(ancestor-child-number string snl)
共通識別子が引数stringに等しい最も近い先祖の子番号を返す。それらの先祖が存在しない場合には#f
を返す。
(hierarchical-number list snl)
引数listの要素数と等しい数の非負整数からなるリストを返す。引数listは,文字列のリストとする。返
すリストの最後の要素は,引数snlの先祖であって,その共通識別子が引数listの最後の要素に等しい最も
近いものの子番号とする。返すリストの最後から2番目の要素は,引数snlの先祖であって,その共通識
別子が引数listの最後から2番目要素に等しい最も近いものの子番号とする。引数listの各要素について同
様とする。
(hierarchical-number-recursive string snl)
非負整数のリストを返却する。返すリストの最後の要素は,引数snlの要素の先祖であって,その共通
識別子が引数stringに等しいものの子番号となる。返すリストの最後から2番目の要素は,上述の要素の
先祖であって,その共通識別子が引数stringに等しいものの子番号となる。同様に現要素の先祖であって,
共通識別子が引数stringに等しい各要素に関して続ける。このリストの長さは,stringの入れ子のレベルに
等しいことに注意。
(element-number snl)
引数snlと同じ共通識別子をもち,引数snlと同じ又は先行する要素の数を返す。
(element-number-list list snl)
非負整数のリストを返す。引数listは,文字列のリストとする。引数listの各要素について,i番目の整
数は次の条件を満たす要素の数となる。
a) 引数snlに先行する又は等しい。
b) 共通識別子が,引数listのi番目の要素に等しい。
c) iがlより大きい場合,引数snlの要素に先行し,その共通識別子が引数listのi-l番目の要素に等しい
最後の要素に後続する。
備考1. 実効上各引数のためのカウンタは,直前の引数によって参照される要素の先頭でリセットさ
れる。
2. 要素はその親より後と考える。
3. この手続きは,リストの最後の数を用いることで脚注を章内で連続する番号を振るために利
用できる。これはコンテナ要素をもたないDTDでの見出しの番号付けにも利用できる。
10.2.4.3 属性値のアクセス
次の手続きでは,属性値はクラスattribute-assignmentのノードに手続きdataを適用して,文字列として
表現する。
(attribute-string string osnl)
引数stringに等しい名前をもつ,引数osnlの属性値の文字列表現を返す。引数osnlが指定した名前の属
性をもたない場合,属性が暗黙指定の場合,又は引数osnlが空の場合には,#fを返す。
(inherited-attribute-string string onsl)
128
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数stringに等しい名前をもち,引数osnlの属性値又は引数osnlの先祖であってその属性が暗黙指定で
ない,最も近いものの値の文字列表現を返す。それらの要素が存在しない場合,又は引数osnlが空の場合
には,#fを返す。この手続きに関しては,ノードはそれ自体の先祖とみなす。
(inherited-element-attribute-string string1 string2 onsl)
引数osnlの先祖であって,その共通識別子が引数string1に等しく,名前が引数string2に等しい明示的な
属性をもつ,最も近いものの属性値の文字列表現を返す。それらの要素がない場合,又は引数osnlが空の
場合,#fを返す。この手続きに関しては,ノードはそれ自体の先祖とみなす。
10.2.4.4 現所在の判定
(first-sibling? snl)
引数snlが,同じ共通識別子の先行する兄弟をもたない場合に#tを,その他の場合に#fを返す。
(absolute-first-sibling? snl)
引数snlが,先行する兄弟要素をもたない場合に#tを,その他の場合に#fを返す。
(last-sibling? snl)
引数snlが,同じ共通識別子の後続する兄弟をもたない場合に#tを,その他の場合に#fを返す。
(absolute-last-sibling? snl)
引数snlが,後続する兄弟要素をもたない場合に#tを,その他の場合に#fを返す。
(have-ancestor? obj snl)
引数objは,文字列又は文字列のリストとする。引数objが文字列の場合,have-ancestor?は引数snlが引
数objに一致する共通識別子の先祖をもつ場合に#tを,その他の場合に#fを返す。
10.2.4.5 実体及び記法
この10.2.4.5において,snlは実体を探す文書を特定する。
(entity-public-id string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性
external-idの値ノードのもつ特性public-idの値を返す。名前が引数stringとなる実体がない場合,実体が
特性external-idにヌル値をもつ場合,又は特性external-idの値が特性public-idにヌル値をもつ場合には,
#fを返す。
(entity-system-id string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性
external-idの値ノードのもつ特性system-idの値を返す。名前が引数stringとなる実体がない場合,実体が
特性external-idにヌル値をもつ場合,又は特性external-idの値が特性system-idにヌル値をもつ場合には,
#fを返す。
(entity-generated-system-id string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性
external-idの値ノードのもつ特性generated-system-idの値を返す。名前が引数stringとなる実体がない場合,
実体が特性external-idにヌル値をもつ場合,又は特性external-idの値が特性generated-system-idにヌル値を
もつ場合には,#fを返す。
(entity-text string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性text
の値を返す。名前が引数stringとなる実体がない場合,特性textにヌル値をもつ場合には,#fを返す。
(entity-notation string snl)
129
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性
notation-nameの値を返す。名前が引数stringとなる実体がない場合,特性notation-nameにヌル値をもつ場
合には,#fを返す。
(entity-attribute-string string1 string2 snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数string1となるノードの,引数
string2の名前をもつ属性の値の文字列表現を返す。名前が引数string1となる実体がない場合,又はその属
性が暗黙指定の場合には,#fを返す。
(entity-type string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前がstringとなるノードの特性entity-type
の値を返す。名前がstringとなる実体がない場合,特性entity-typeにヌル値をもつ場合には,#fを返す。
(notation-public-id string snl)
引数snlと同じグローブを律する文書型内の一般記法実体で,その名前が引数stringとなるノードの特性
external-idの値ノードのもつ特性public-idの値を返す。名前が引数stringとなる実体がない場合,実体が
特性external-idにヌル値をもつ場合,又は特性external-idの値が特性public-idにヌル値をもつ場合には,
#fを返す。
(notation-system-id string snl)
引数snlと同じグローブを律する文書型内の一般記法実体で,その名前がstringとなるノードの特性
external-idの値ノードのもつ特性system-idの値を返す。名前が引数stringとなる実体がない場合,実体が
特性external-idにヌル値をもつ場合,又は特性external-idの値が特性system-idにヌル値をもつ場合には,
#fを返す。
(notation-generated-system-id string snl)
引数snlと同じグローブを律する文書型内の一般実体で,その名前が引数stringとなるノードの特性
external-idの値ノードのもつ特性generated-system-idの値を返す。名前が引数stringとなる実体がない場合,
実体が特性external-idにヌル値をもつ場合,又は特性external-idの値が特性generated-system-idにヌル値を
もつ場合には,#fを返す。
0.2.4.6
名前正規化
(general-name-normalize string snl)
引数snlが出現するグローブのもつ,一般大小代替文字列正規化規則を用いて,引数stringを変換した結
果を返す。この手続きは,次のとおり定義できる。
(define (general-name-normalize string snl)
(named-node-list-normalize string
(node-property 'elements (grove-root snl))
'element))
(entity-name-normalize string snl)
引数snlが出現するグローブのもつ,実体大小代替文字列正規化規則を用いて,引数stringを変換した結
果を返す。この手続きは,次のとおり定義できる。
(define (entity-name-normalize string snl)
(named-node-list-normalize string
(node-property 'entities (grove-root snl))
'entity))
130
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
10.2.5 SGML特性操作
この10.2.5の手続きは,SGMLのための特性集合によって定義された特定の特性の取扱いを可能にする。
(attributes nl)
これは,次の定義に等しい。
(define (attributes nl)
(node-list-property 'attributes nl))
(attribute string nl)
名前が引数stringに等しい特性attributesの値の要素を返す関数をnlに適用した結果を返す。この手続き
は,次のとおり定義できる。
(define (attribute name nl)
(node-list-map (lambda (snl)
(named-node name (attributes snl)))
nl))
(element-with-id string snl)
引数snlと同じグローブ内にあって一意識別子が引数stringとなる要素を含む単一要素ノードリストを返
す。名前が引数stringとなる要素が存在しない場合には,空ノードリストを返す。引数snlが無指定の場合,
(current-node) と解釈する。
(referent nl)
これは,次の定義に等しい。
(define (referent nl)
(node-list-property 'referent nl))
(match-element? pattern snl)
引数snlが,引数patternに合致するクラスelementのノードの場合に#tを返す。引数patternは,リスト,
単一の文字列又は単一シンボルのいずれかとする。単一の文字列又は単一のシンボルは,その文字列又は
シンボルだけを含むリストと等しく解釈する。リストには,文字列又はシンボルを含むことができる。リ
ストの最後の文字列又はシンボルがその要素の特性giに合致し,それ以前が順次,その要素の親,祖父,
それ以前の複数の先祖に一致する場合に,その要素がリストに合致するとみなす。各文字列又はシンボル
は,オプションで偶数個の文字列又はシンボルから成るリストを後続させてよい。その場合,要素が合致
するためには,リストに先行する文字列又はシンボルが特性giに合致し,さらにリスト内のすべての属性
と値の対をもたなければならない。
例えば,この式は次の条件をすべて満たす場合に真を返す。
(match-element? ' (e1 (a1 v1 a2 v2) e2 (a3 v3) e3 e4) n)
a) 引数nのもつ特性giがe4である。
b) 引数nの親のもつ特性giがe3である。
c) 引数nの祖父のもつ特性giがe2である。
d) 引数nの祖父が,値がv3の属性a3をもつ。
e) 引数nの曾祖父のもつ特性giがe1である。
f)
引数nの曾祖父が値がv2の属性a2をもつ。
g) 引数nの曾祖父が値がv1の属性a1をもつ。
引数snlが無指定の場合,current-nodeと解釈する。
131
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
パターン内の文字列又はシンボルを特性値と比較し,特性値が大文字代替されていた場合,文字列比較
の前に比較対象の大文字代替を行う。
(select-elements nl pattern)
引数nl内の要素であって,手続きmatch-element?によって定義したとおりに,引数patternに合致するノ
ードから成るノードリストを返す。
(q-element pattern nl)
(q-element pattern)
引数nlの各要素を根とする部分グローブ内から,手続きmatch-element?によって定義したとおりに
patternに合致する要素を探索する。引数nlが無指定の場合, (current-node) と解釈する。
(q-class symbol nl)
(q-class symbol)
引数nlの各要素を根とする部分グローブ内から,クラスがsymbolである要素を探索する。引数nlが無
指定の場合, (current-node) と解釈する。
(q-sdata string nl)
(q-sdata string)
引数nlの各要素を根とする部分グローブ内から,クラスがsdataであってその特性sysdataがstringであ
る要素を検索する。引数nlが無指定の場合, (current-node) と解釈する。
10.3 補助解析
10.3.1 単語検索
この項の機能をスタイル言語又は変換言語で用いる場合,機能wordが必要となる。
(word-parse nl string)
(word-parse nl)
次に示すデータトークン化処理特性集合を用いて補助解析を行い,新規のグローブを構築する。引数
stringを指定した場合,その内容はISO 639の言語符号であって,何が単語を構成するか決定するために
仮定する言語を指定する。この規格では,使用するアルゴリズムを指定しない。
<propset psn=a fullnm= "Data Tokenizer Property Set">
<classdef rcsnm=tokroot appnm= "tokenized root" conprop=strings>
<propdef rcsnm=strings datatype=nodelist ac=tokenstr>
<classdef rcsnm=tokenstr appnm= "tokenized string" conprop=string>
<propdef rcsnm=string datatype=string>
引数nlの各要素に関して,その要素のデータ内の各単語ごとにトークン化文字列ノードが作成される。
補助グローブの根は,それらのトークン化文字列ノードを子としてもつ。すべてのトークン化文字列ノー
ドから成るノードリストを返す。引数nlの要素xが,他の要素,つまり引数nl内のyを子孫として含む場
合に,yのデータはxを単語に解析する前に,xのデータからは除かれる。
(select-tokens nl string)
引数nlの要素であって,特性stringが引数stringに等しいトークン化文字列ノードから成るノードリス
トを返す。
10.3.2 ノード正規式
この項の機能をスタイル言語又は変換言語で用いる場合,機能regexpが必要となる。
型regexpは,ノード正規式を表す。ノード正規式は,グローブの補助解析の実行に用いることのできる
132
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
オブジェクトとする。この補助解析は,もともとのグローブに対応するノードをまとめたノードを含むグ
ローブを作成する。ノード正規式の意味は,任意のノードリストs及びsの部分リストとなる任意のノー
ドリストtについて,tがsについてノード正規式に合致するかどうかを定義する。これは正規式を構築す
る各手続きについて帰納的に定義される。sは,検索リストとして参照する。
ノードリストs及びtの両方の要素すべてを含むノードリストxにおいて,ノードリストsは次のa),
b)又はc)の条件を満たす場合にtの直前となる。
a) sが空の場合
b) tが空の場合
c) sの要素でxの中で最後に出現するものが,tの要素出xの中で最初に出現するものより前に出現し,
次の1)及び2)を満たすxの中のノードが存在しない。
1) sの中で出現するxのすべての要素に後続する
2) tの中で出現するxのすべての要素に先行する
(regexp? obj)
引数objが正規表現の場合に#tを,その他の場合に#fを返す。
10.3.3 正規式構築子
この10.3.3の手続きで正規式を構築するものは,部分解析手続きで用いられる。
(regexp-node proc)
任意の検索リストに関して,ノードリストが一意ノードを含み,そのノードリストに引数procを適用し
た結果が真の値を返す場合に合致する正規式を返す。
(regexp-seq regexp1 regexp2 ... regexpn)
手続きregexp-seqは,検索リストxに関して,ノードリストが部分リストs1,s2,...,snに分割でき,検
索リストにおいて引数regexpiが,xが1≤i≤nの範囲でsiに合致し,さらにsiが1≤i≤n−1の範囲のxにつ
いて直前にある場合にノードリストと合致する正規式を返す。
(regexp-or regexp1 regexp2 ... regexpn)
手続きregexp-orは,1≤i≤nの範囲にあるiにおいて,検索リストxに関して引数regexpiに合致するノ
ードリストに合致する正規式を返す。
(regexp-and regexp1 regexp2 ... regexpn)
手続きregexp-andは,1≤i≤nの範囲にある各iに関して,引数regexpiに合致するノードリストに合致す
る正規式を返す。
(regexp-rep regexp)
手続きregexp-repは,ノードリストが空の場合,整数n≤1に関してノードリストが,部分リストs1,s2,...,
snに分割でき,siが1≤i≤nの範囲のiのそれぞれについて引数regexpに合致し,1≤i≤n−1の範囲の各i
について,si+1がxに関して直前にあるノードリストの場合に合致する正規式を返す。
(regexp-plus regexp)
手続きregexp-plusは,ノードリストがある整数n≥1について部分リストs1,s2,...,snに分割でき,1≤i≤n
の範囲のiのそれぞれについて引数regexpに合致し,1≤i≤n−1の範囲の各iに関してsiがsi+1の直前とな
るノードリストの場合に合致する正規式を返す。
(regexp-opt regexp)
手続きregexp-optは,ノードリストが空の場合又はノードリストが検索リストxについて引数regexpに
合致する場合に,合致する正規式を返す。
133
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(regexp-range regexp k1 k2)
手続きregexp-rangeは,ノードリストをs1,s2,...,snに分割できる,ある整数n,k1≤n≤k2が存在し,
1≤i≤nの範囲の各iについて,siが引数regexpに合致し,siが1≤i≤n−1の各iについてsiがsi+1の直前と
なるノードリストに合致する正規式を返す。k1が0の場合,返される正規式は空ノードリストに合致する。
(string->regexp string)
手続きstring->regexpは,引数stringが示す正規式を返す。引数stringが正しい正規式表現でない場合に
はエラーとする。引数stringがISO 9945-2で定義する拡張正規式とする。引数string内の通常の文字は,
値がその文字となる特性charをもつノードと合致する。
参考 これは,前述のプリミティブを用いて実装されるかもしれない。
10.3.4 正規式探索手続き
この10.3.4の手続きは,次に示す正規式特性集合を用いて新たに補助グローブを作成するために正規式
を用いる。
<propset psn=regexp fullnm= "Regular Expression Property Set">
<classdef rcsnm=root conprop=groups sd=DSSSL>
<desc>
グローブ根
<propdef rcsnm=groups datatype=nodelist ac=group sd=DSSSL>
<classdef rcsnm=group sd=DSSSL>
(regexp-search nl regexp)
正規式特性集合を用いて構築した新たな補助グローブを返す。グローブは,nlに関してregexpに合致す
るnlの部分リストごとに一つのグループノードを含む。各グループノードの入力特性は,合致する部分リ
スト内のノードを含む。
備考 入力特性は,補助グローブ内のすべてのノードの特性として内在する。
(regexp-search-disjoint nl regexp)
これは部分リストが連続でないことを除いてregexp-searchと同じとなる。二つの部分リストに重なりが
あり,nl内の要素で他方のリストのすべての要素に先行する要素が存在する場合,その要素を含むリスト
を優先して合致させる。一方の部分リストが他方の部分リストを包含する場合,包含する部分リストを優
先して合致させる。
11. 変換言語
この11.はDSSSLの変換言語を規定する。DSSSL変換言語は,データの内容記法となる。この記法を用
いる要素の内容は,構文transformation-language-bodyとして解析する。
[151] transformation-language-body=
[[unit-declaration*
|
added-char-properties-declaration*
|
character-property-declaration*
|
trans-literation-map-definition* | language-definition* | default-language-declaration? | definition* |
association*]]
変換言語は,8.で定義する式言語,及び10.で定義するSDQLを利用する。
変換処理は,単一のグローブを入力として要求し,構文associationの指定どおりに変換する。関連は他
のグローブも変換してよい。変換中のグローブは,現グローブとして参照する。
11.1 機能
134
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
次に挙げる機能は,変換言語でオプションとする。
a) 機能combine-charは,要素型形式character-combination-declarationを利用可能とする。
b) 機能keywordは,構文formal-argument-list内で#!keyを利用可能とする。
c) 機能multi-sourceは,手続きtransform-groveを利用可能とする。
d) 機能multi-resultは,複数の結果グローブを出力可能とする。
e) 機能regexpは,10.3.2で定義するノード正規式を利用可能にする。
f)
機能wordは,10.3.1で定義する語検索を利用可能にする。
g) 機能hytimeは,10.2.1で定義するHyTimeの所在番地付けを利用可能にする。
h) 機能charsetは,要素型形式char-repertoire,要素型形式combine-char,要素型形式features,及び要素
型形式sgml-grove-plan以外の宣言要素型形式を利用可能にする。
11.2 関連
変換処理は,関連の集合を用いて指定する。
[152] association= (=>query-expression transform-expression priority-expression?)
[153] query-expression=expression
[154] transform-expression=expression
[155] priority-expression=expression
各関連は,三つまでの構成要素をもつ。
a) ノードリストを返却する照会式。この照会式はノードリストを返却し,そのノードリスト内のノード
が,関連を適用する候補となる。
b) 関連を適用するノードのそれぞれについて評価する変換式。返却値は,結果グローブ内ノード(複数
も可能)に関する記述であって,それらは入力グローブで選択したノードに対応する。
c) オプションの優先順位式は,関連を適用する候補ノードの適用の判断に影響する。
式query-expressionは,評価の結果ノードリストとなる。式query-expressionが返却したノードリスト内
のすべてノードは,現グローブ又は現グローブに由来する補助グローブのノードとなる。補助グローブは,
9.5で定義する。式query-expression内の手続きcurrent-rootは,現グローブの根を含む単一要素ノードリス
トを返却する。
式priority-expressionは,評価の結果整数となる。数値は,関連の優先順位を定義する。関連において式
priority-expressionが省略された場合,その関連の優先順位を0とする。数値が大きい方が,より優先度が
高いことを示す。
関連を適用する可能性のある各ノードは,現グローブ内に構成要素集合をもつ。ノードが現グローブ内
にある場合,構成要素集合はそのノードだけを含む。ノードが補助グローブ内にある場合,構成要素集合
はその補助グローブ内のノードの入力特性の値として出現する現グローブ内のノードを含む。関連は,実
際には候補となった任意のノードnに適用できる。しかし,ノードnの構成要素集合内のノードを構成要
素集合としてもつノードがあり,そのノードにより高い優先順位の関連を適用する場合には,前述の関連
は適用可能ではない。
135
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
11.3 変換式
式transform-expression内において手続きcurrent-nodeは,変換中のノードを含む単一要素ノードリスト
を返す。各変換式は,型create-spec,型transform-grove-spec,型create-spec若しくは型transform-specから
成るリスト又は空リストを返す。型create-specの各オブジェクトは,結果グローブ内の指定した位置への
部分グローブの作成を記述する。部分グローブは,ノード又はノードを根とした複数のノードから成る。
部分グローブを生成する位置は,結果グローブの根又は結果グローブ内の他のノード相対で指定できる。
結果グローブ内で生成した各ノードについて,変換によって結果グローブにノードを生成した組成要素の
それぞれから,生成されたノードへの対応関係が生成される。これらの対応関係を矢と呼ぶ。矢は式言語
オブジェクトを用いてラベル付けする。矢の開始点は,終点の変換起点と呼ぶ。入力グローブ内のノード
の矢は,そのノードが変換の結果どこに行くかを示す。矢のラベルは一つのノードに適用された,複数の
異なる変換を区別可能にする。ノードの変換式は,作成した部分グローブの行き先として,結果グローブ
の根を指定するか,又は他のノードの変換結果の結果グローブ内のノードに相対での位置を指定する。
11.3.1 部分グローブ指定
作成する部分グローブは,型subgrove-specのオブジェクトを用いて記述する。
(subgrove-spec #!key node: subgrove: class: add: null: remove:
children: sub: label: sort-children:)
手続きsubgrove-specは,型subgrove-specのオブジェクトを返す。
引数node : は単一要素ノードリストとする。この引数は,作成する部分グローブの根ノードが,引数
node : の値と同じクラスのノードであって,引数node : の値と同じ非ノード型・非内在型の特性をもち,
引数node : の値と同じヌル値を値とする特性をもつと指定する。ただし,非ノード型・非内在型の特性は
引数add : 及び引数remove : によって変更を受け,ヌル値を値とする特性は引数null : 及び引数remove :
によって変更を受ける。
引数subgrove : は,単一要素ノードリストとする。この引数は,作成される部分グローブが引数ノード
を根とする部分グローブの複製となると指定する。
引数class : はシンボルであって,作成するノードのクラスを指定する。引数node ;,引数subgrove : 及
び引数class : の一つだけを指定しなければならない。
引数add : は,非ノード型・非内在型であってヌル値を値としない特性をノードへ追加することを指定
する。引数add : は二つの要素をもつリストのリストとし,その要素リストの第一要素は特性の名前とし,
第二要素は特性の値とする。特性はそのノードのクラスのもつ非ノード型・非内在型の特性とする。引数
add : で指定した特性値は,引数node : に指定されたノードのもつ任意の特性の値を置換する。
引数null : はシンボルのリストであって,そのノードに指定した名前へのヌル値をもつ非内在特性の追
加を指定する。この指定は引数node : で指定されたノードがもつ非ヌル値特性を置換する。
引数remove : は,引数node : で指定されたノード及び作成ざれるノードがもつ非内在特性のリストとし,
空リストを無指定時値とする。この引数はヌル値を値とする特性及びヌル値を値としない特性の両方の削
除に利用できる。
引数sub : は,手続きsubgrove-specが返す部分グローブの根ノードのための下位ノードを指定するリス
トとする。リストの要素は,最初の要素が部分ノード特性の名前を指定するシンボルであって,残りの要
素が特性の値として指定するノードのための,複数の型subgrove-specのオブジェクトとする。この引数は
空リストを無指定時値とする。
引数children : は型subgrove-specのオブジェクトのリストであって,手続きsubgrove-specの返す部分グ
136
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ローブの根ノードの子ども特性の値としてそれらのノードを指定する。
備考 これらは引数sub : を用いて指定することもできるが,引数children : を用いるほうが通常は簡
便である。
この引数は空リストを無指定時値とする。
引数label : は矢のためのラベルを指定し,その矢は入力グローブの変換したノードから,結果グローブ
内に作成中の部分グローブの根にあたるノードへ作成される。ラベルは任意の式言語オブジェクトでよい。
無指定時値は,#fとする。
引数sort-children : は根ノードの子の順序に影響する手続きとする。11.3.2を参照のこと。
クラス及び特性はSGML特性集合で定義するとおり,10.1.5に記述のある通常変換を伴う応用名によっ
て名付ける。
11.3.2 生成指定
(create-spec? obj)
手続きcreate-specは,引数objが型create-specの場合に#tを返し,その他の場合に#fを返す。
(create-root obj sg)
結果グローブの根の生成を指定する型create-specのオブジェクトを返す。引数sgは結果グローブの根を
指定する型subgrove-specのオブジェクトとする。引数objは結果グローブの識別子とする。
(create-sub snl sg #!key property: label: result-path: optional: unique:)
(create-preced snl sg #!key label: result-path: optional: unique:)
(create-follow snl sg #!key label: result-path: optional: unique:)
手続きcreate-sub,手続きcreate-preced及び手続きcreate-followは,引数snlを開始点とし引数label : で
ラベルされた矢ごとに,引数sgで指定した部分グローブの結果グローブにおける作成の指定を行う。手続
きcreate-sub,手続きcreate-preced又は手続きcreate-followの評価は,それ自体では結果グローブへのノー
ドの作成を引き起こさない。変換式以外が返却した型create-specのオブジェクトは無視する。
引数label : は任意の式言語オブジェクトであってよく,#fを無指定時値とする。
引数optional : の値が#fの場合,指定した矢が存在しない場合にはエラーとする。引数optional : は#fを
無指定時値とする。
引数result-path : は手続きであって,各矢においてその終点を一意要素とする結果ノードリストに適用
する。引数result-path : の手続きは,グローブの構築の際に様々な点で結果ノードリストに適用される。
グローブ構築のある時点で,手続きは要素を一つだけ含む結果ノードリストを返さなければならない。こ
れが生成起点となる。この手続きはどの時点でも,二つ以上の要素を含む結果ノードリストを返してはな
らない。引数result-path : が指定されない場合,同じ値を返す手続きを無指定時値とする。
手続きcreate-subにおいて,引数property : はシンボル又は文字列であって,特性名を指定する。この特
性は生成起点の部分ノード特性となり,部分グローブは生成起点のその特性の要素として作成される。引
数property : が省略された場合,生成起点の子ども特性を無指定時値とする。生成起点が子をもたない場
合には,省略してはならない。手続きcreate-precedでは,部分グローブは生成起点の先行する兄弟として
生成される。手続きcreate-followでは,部分グローブは生成起点の後続する兄弟として生成される。
二つの部分グローブにおいて,部分グローブの根がともに同じ生成起点,同じ生成手続きである場合に
だけ,二つの部分グローブは同じ生成法と呼ぶ。ただし,生成手続きが手続きcreate-subの場合には,同
じ特性propnameをもたなければならない。
引数unique : が値#fでない場合,この部分グローブは同じ生成法で生成される一意部分グローブでなけ
137
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ればならない。引数unique : は,値#fを無指定時値とする。
引数unique : が値#fをもたない場合,同じ生成法で生成される部分グローブの相対順序は,部分グロー
ブの生成順とは独立に決定する。あるノードを生成起点として手続きcreate-follow又は手続きcreate-preced
によって生成した兄弟を,ノードに直接依存する兄弟をと呼ぶ。あるノードに直接依存する兄弟及び直接
依存する兄弟に依存する兄弟をノードに依存する兄弟をと呼ぶ。同じ生成手続き及び同じ生成起点によっ
て生成されたノードを作成中の部分グローブの生成兄弟と呼ぶ。さらに,部分グローブが手続きcreate-sub
を用いて挿入された場合,挿入された部分グローブの兄弟となるノード及び起点ノードと同じ部分グロー
ブの一部として生成された任意のノードを生成兄弟として扱う。部分グローブを挿入する位置を,最初に
生成兄弟との相対で決定する。次に部分グローブが後続しなければならない生成兄弟の依存する兄弟すべ
てに後続し,部分グローブが先行しなければならない生成兄弟の依存する兄弟すべてに先行する位置に挿
入する。その結果,その部分グローブとその生成起点の間にノードは存在しない。ただし,その生成起点
は生成兄弟,生成兄弟の依存する兄弟のいずれかであってはならない。
部分グローブの根ノードが,部分グローブの起点ノードの子となる場合,その部分グローブの生成兄弟
内での位置は,起点ノードの順序判定に従う。順序判定は手続きであって,手続きsubgrove-specの引数
sort-children : に指定する。順序判定には,比較する変換起点,つまり二つの結果グローブ内のノードが渡
される。順序判定は,最初のノードが二番目のノードに先行する場合に真を返す。順序判定が指定されな
い場合,手続きtree-before?を順序判定として用いる。この場合,部分グローブの変換起点及びその生成兄
弟すべてが同じ木になければエラーとする。部分グローブの根ノードが起点ノードの子でない場合,部分
グローブのその生成兄弟内での位置は,順序判定として手続きgrove-before?を指定したこの場合と同じ方
法で決定する。
矢は他の矢の契機となる場合がある。それは第二の矢が,第一の矢の開始点を最初の引数に,第一の矢
のラベルを引数label : に指定している生成手続きによって生成された場合とする。複数の矢が連鎖して各
矢が次の矢の契機となり,最後の矢が最初の矢と同じ開始点及びラベルをもつ場合はエラーとなる。
備考 この要求は,無限ループの可能性を避けるためのものである。
11.3.3 結果ノードリスト
型result-node-listは,結果グローブ内のノードのリストを表す。型result-node-listのオブジェクトには,
型node-listに適用可能な演算の部分集合が適用できる。手続き原型では,引数名rnlが型result-node-listを
示す。
備考 適用可能な演算は,結果グローブ内ノードが結果グローブ構成のある時点で式を評価した結果
として得られる結果ノードリストに含まれる場合,結果グローブを構成するそれ以降の任意の
時点において,その式を評価した結果にはそのノードが含まれていることを保証する設計がな
されている。
(node-list-union rnl ...)
(node-list-intersection rnl ...)
(children rnl)
(attributes rnl)
(preced rnl)
(follow rnl)
(parent rnl)
(ancestors rnl)
138
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(descendants rnl)
(origin rnl)
(select-by-class rnl sym)
(select-by-property rnl sym proc)
(select-by-null-property rnl sym)
(select-by-missing-property rnl sym)
これらの手続きは,対応する型node-listに対する演算と同様に振舞うが,返す値は型node-listではなく
型result-node-listとなる。
(select-by-relation rnl i proc)
手続きselect-by-relationは,引数rnlに含まれるノードであって,そのノードだけを含む結果ノードリス
トに,引数の手続きprocを適用した結果が,引数i個以上の要素をもつ結果ノードリストを返すノードを
含む,結果ノードリストを返す。
例えば,次の式は,子ノードから共通識別子にparaをもつ要素を子孫にもつノードを選択する。
(lambda (x)
(select-by-relation (children x)
1
(lambda (y)
(select-elements (descendants y) "para"))))
(select-by-attribute-token rnl string1 stming2)
引数rnl内のノードであって,その属性がクラスattribute-value-tokenを子にもち,そのクラス
attribute-value-tokenの子として特性tokenをもち,その値及び引数string2に適用可能な文字列正規化を施し
た結果が等しいノードを含む結果ノードリストを返す。
11.3.4 変換グローブ指定
型transform-grove-specのオブジェクトは,現在のグローブに加えて変換されるグローブを示す。
(transform-grove-spec? obj)
引数objが型transform-grove-specの場合に#tを返し,それ以外の場合に#fを返す。
(transform-grove snl obj ...)
引数snlはグローブ根とする。手続きtransform-groveは,引数snlから新規のグローブを生成して,特性
transform-argsをグローブ根に追加し,その値となるリストにobj,...,を含め,新規のグローブの変換を指
定する型transform-grove-specのオブジェクトを返す。
(select-grove nl obj)
引数nlの要素であって,そのグローブ根が特性transform-argsをもち,その要素がobjに等しいものを選
択する。
11.3.5 SGML前書き解析
(sgml-parse-prolog string)
SGML文書の前書きを解析することによって構築されるグローブ根ノードだけを含むノードリストを返
す。引数stringは,SGML文書実体のシステム識別子とする。このグローブは無指定時のグローブ設計を
変更してモジュールinstabsを除外して構築する。
備考 この手続きは,典型的には入力と出力が異なるDTDを用いる場合に,手続きsubgrove-spec : の
引数subgrove : を指定するために用いる。
139
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
11.4 SGML出力処理
SGML出力処理は,結果グローブからSGML文書又はSGML副文書を生成する。SGML出力処理の動
作は,検証グローブとの関連で指定する。検証グローブは,結果グローブをSGML特性集合の,すべての
クラス及び特性を含んだグローブ設計を用いて生成したSGML文書又はSGML副文書を解析することに
よって構築される。
備考 実装は検証グローブを構成することを要求されない。
結果グローブは,その結果グローブから,11.4.1に記載の要求を満たす検証グローブへの検証対応が存
在し,適合SGML文書又は適合SGML副文書を生成できる場合に適正と呼ぶ。結果グローブが適正な場
合,実装はそのSGML文書又はSGML副文書を生成する。実装は結果グローブが不正であることは,結
果グローブが不正の場合だけ報告する。
11.4.1 検証対応
すべての結果グローブは,次の要求を満たす。
a) 結果グローブのノードは,下位ノード特性以外には,宣言データ型が型nodalの特性の値を開示しな
い。
b) 結果グローブ内のノードは,区分derivedに含まれる特性の値は開示しない。
検証対応Vは,結果グローブの各ノードを検証グローブのノードに対応させる。ノードV (n) は,検証
対応Vをノードnに適用した結果を意味する。特性値n [p] は,ノードnが特性pについて開示している
値を示す。検証グローブ内のノードn'は,ノードV (n) がノードn'となる結果グローブ内のノードnが存
在する場合だけ,基盤をもつと呼ぶ。
検証対応Vは,次の要求を満たさなければならない。
a) ノードnが結果グローブ根であった場合,ノードV (n) は検証グローブ根となる。
b) 結果グローブ内の相異なるノードm及びノードnにおいて,ノードV (m) とノードV (n) とが異なる。
c) 結果グローブの各ノードnにおいて,ノードV (n) はノードnと同じクラスをもつ。
d) 結果グローブ内の各ノードnと,ノードV (n) がヌル値を開示する非ノード型の宣言データ型をもつ
各非内在特性pとにおいて,ノードnは,特性pが区分derived又は区分optionalではない場合,特性
pに関してヌル値を開示する。
e) 結果グローブ内の各ノードnと,ノードV (n) がヌルでない非ノード型の値を開示する各非内在特性p
とにおいて,ノードnは,特性pが区分derived又は区分optionalではない場合,特性pに関して値を
開示する。
f)
検証グローブ内のノードは,そのクラスが属性値mayaddをもち,次のいずれかの場合に基盤をもつ。
1) 兄弟のいずれかが基盤をもつ。
2) ノードの起点が基盤をもち,起点の,起点から下位ノード関係特性が区分optionalでない。
g) 結果グローブの各ノードn及びnがヌル値を開示している非内在特性pにおいて,ノードV (n) は特
性pに関してヌル値を開示する。
h) 結果グローブ内の各ノードn及びノードnが非ヌル値を開示している各非ノード型特性pにおいて,
特性値n [p] の特性集合によってその特性に指定された,適用可能な文字列正規化を適用した後の値
は,特性値V (n)[p] に等しい。
i)
結果グローブの各ノードn及びnが非ヌル値を開示するノード型と宣言された各部分ノード特性pに
おいて,V (n)[p] はV (n)[p] に等しい。
j)
結果グローブの各ノードn,ノードnが非ヌル値を開示する,抽象データ型が型nodelist又は型nmndlist
140
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
と宣言された各下位ノード特性及び特性値n [p] 内の各ノードsにおいて,ノードV (s) は特性値V
(n)[p] に属する。
k) 結果グローブ内の各ノードn及びノードnが値を開示する,抽象データ型が型nodelistと宣言した下
位ノード特性及び特性値n [p] 内に存在する任意のノードr及びノードsにおいて,ノードrがノード
sに結果グローブ内で先行する場合,検証グローブ内でノードV (r) はノードV (s) に先行する。
特性transliteration(11.4.2に記載)は,検証対応では考慮しない。
これらの規則の例外として,検証グローブ内のクラスがクラスattribute-assignmentのノードは,SGML
宣言に適用するISO 8879の規則においてSHORTTAG YESの指定があり,属性値の指定が必要ではない場
合には,基盤をもつ必要はない。
11.41.2 文字変換
[156] transliteration-map-definition= (define-transliteration-map variable transliteration-entry)
[157] transliteration-entry= (character character-list)
[158] character-list= (character+)
構文transliteration-map-definitionは,変数variableを型transliteration-mapのオブジェクトに束縛する。型
transliteration-mapは,特定の文字列を一つ以上の文字列で表現する文字変換を指定する。各構文
transliteration-entryは,最初の文字が構文character-list内の文字列で表現することを指定する。
(transliteration-map? obj〉
引数objが型transliteration-mapの場合に#tを,その他の場合に#fを返す。
結果グローブ内の各ノードは,その値が型transliteration-mapのオブジェクトの非ノード型の特性
transliterationをもってよい。ノードに特性transliterationが指定されない場合,特性transliterationの値はノ
ードの起点の値となる。結果グローブの根ノードに特性transliterationが指定されない場合,その値は空の
文字変換対応となる。
同じ文字変換対応特性をもつ,結果グローブ内の一連のノードdata-charに関して,文字変換対応と関連
して結果グローブ内の文字列を表す文字列が,結果グローブ内の一連の文字の代わりに出力される。あい
まいな場合には,最も長い構文transliteration-entryを用いる。
12. スタイル言語
この12.においてスタイル言語を規定する。構文的には,スタイル言語は,ISO 8879が規定するデータ
内容記法にほかならない。この記法の要素内容は,構文style-language-bodyとして構文解析される。
[159] style-language-body=
[[unit-declaration*
|
definition*
|
construction-rule*
|
mode-construction-rule-group*
|
application-flow-object-class-declaration*
|
application-characteristic-declaration*
|
application-char-characteristic
+
property-declaration*
|
initial-value-declaration*
|
reference-value-type-declaration*
|
page-model-definition*
|
column-set-model-definition*
|
added-char-properties-declaration*
|
character-property-declaration*
|
language- definition*
|
default-language-declaration?]]
この規格が規定するスタイル言語は,8.6に示す中核式言語(又はオプションで,8.に示す完全仕様式言
語)を用い,10.2.4に示す中核照会言語(又はオプションで,10.に示す完全仕様照会言語)を用いる。
[160] style-language-expression=make-expression | style-expression | with-mode-expression
構文style-language-bodyの中では,式 (expression) として式style-language-expressionを用いてよい。
141
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 style-expressionは,継承された特質の値を指定するために用いる。
12.1 機能
スタイル言語においては,次の機能をオプションとする。
a) 機能expressionの指定によって,完全仕様式言語を利用可能にする。この機能を指定しない場合には,
中核式言語だけを用いなければならない。
b) 機能multi-processの指定によって,手続きprocess-children及び12.4.4に示す関連手続きを制限なしで
利用できる。
c) 機能queryの指定によって,10.に示す完全仕様の照会言語の利用及び関連機能の利用を可能にする。
この機能を指定しない場合には,中核照会言語だけを用いなければならない。これは,機能
multi-processを含む。
d) 機能regexpの指定によって,10.3.2に示すノード正規式の使用を可能にする。
e) 機能wordの指定によって,10.3.1に示す語探索のための機能の使用を可能にする。
f)
機能hytimeの指定によって,10.2.1に示すHyTime所在番地付けのための機能の利用を可能にする。
g) 機能combine-charの指定によって,要素型形式combine-charを可能にする。
h) 機能keywordの指定によって,構文formal-argument-listsにおいて,#!key形式でキーワード引数を利
用可能にする。
i)
機能side-by-sideの指定によって,流し込みオブジェクトクラスside-by-side,及び流し込みオブジェ
クトクラスside-by-side-itemを利用可能にする。
j)
機能sidelineの指定によって,流し込みオブジェクトクラスsidelineを利用可能にする。
k) 機能aligned-columnの指定によって,流し込みオブジェクトクラスaligned-columnを利用可能にする。
l)
機能bidiの指定によって,表記方向左向き (right-to-left) 及び流し込みオブジェクトクラス
embedded-textを利用可能にする。
m) 機能verticalの指定によって,表記方向下向き (top-to-bottom) を利用可能にする。
n) 機能mathの指定によって,12.6.26に示す数式に関する流し込みオブジェクトクラスを利用可能にす
る。
o) 機能tableの指定によって,12.6.27に示す表に関する流し込みオブジェクトクラスを利用可能にする。
p) 機能table-auto-widthの指定によって,表の列幅を自動計算を可能にする。これは,機能tableを含む。
q) 機能simple-pageの指定によって,12.6.3に示す簡単なページレイアウトに関する機能の使用を可能に
する。
r) 機能pageの指定によって,流し込みオブジェクトクラスpage-sequence,流し込みオブジェクトクラ
スcolumn-set-sequence及び関連機能利用可能にする。
s)
機能multi-columnの指定によって,複数段を含む段集合を利用可能にする。これは,機能pageを含む。
t)
機能nested-column-setの指定によって,流し込みオブジェクトcolumn-set-sequenceを先祖にもつ流し
込みオブジェクトクラスcolumn-set-sequenceを利用可能にする。これは,機能multi-column及び機能
pageを含む。
u) 機能general-indirectの指定によって,手続きgeneral-indirect-sosofoを利用可能にする。
v) 機能inline-noteの指定によって,流し込みオブジェクトクラスinline-noteを利用可能にする。
w) 機能glyph-annotationの指定によって,流し込みオブジェクトクラスglyph-annotationを利用可能にす
る。
x) 機能emphasizing-markの指定によって,流し込みオブジェクトクラスemphasizing-markを利用可能に
142
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
する。
y) 機能included-containerの指定によって,流し込みオブジェクトクラスincluded-containerを利用可能に
する。
z) 機能actual-characteristicの指定によって,各継承特性cに関する手続きactual-cを利用可能にする。
aa) 機能onlineの指定によって,12.6.28に示す機能を利用可能にする。
ab) 機能font-infoの指定によって,12.5.7に示す機能を利用可能にする。
ac) 機能cross-referenceの指定によって,手続きprocess-element-with-idを利用可能にする。
ad) 機能charsetの指定によって,要素型形式char-repertoire,要素型形式combine-char,要素型形式features
及び要素型形式sgml-grove-plan以外の宣言要素型形式を利用可能にする。
12.2 流し込みオブジェクト木
流し込みオブジェクト木は,フォーマット指定と入力文書とを併合したものを抽象的に表現する。流し
込みオブジェクト木のノードは,流し込みオブジェクトと呼ぶ。各流し込みオブジェクトは,流し込みオ
ブジェクトクラスと呼ぶ型をもち,流し込みオブジェクトは,そのクラスのインスタンスとなる。流し込
みオブジェクトは,特質の集合をもつ。流し込みオブジェクトに適用可能な特質は,流し込みオブジェク
トクラスに依存する。流し込みオブジェクトがもつクラス及び特質は,共に流し込みオブジェクトに関し
て必要となるフォーマティング動作の指定を構成する。
各流し込みオブジェクトは,ポート集合をもち,各ポートに対して流し込みオブジェクトの順序付きリ
ストを附属できる。ポート集合は,空でもよい。ポートをもつすべての流し込みオブジェクトにおいて,
一つのポートは主ポートとして区別してもよい。主ポートには,名前付けを行わない。その他のポートは
すべて名前をもち,その名前が流し込みオブジェクトの文脈の中でそのポートを一意に識別する。ポート
に附属した流し込みオブジェクトのリストを,ストリームと呼び,そのリストの要素を,ストリームの要
素と呼ぶ。流し込みオブジェクト木の中においてどのストリームの要素ともならない,流し込みオブジェ
クトが一つだけ存在する。この流し込みオブジェクトを流し込みオブジェクト木の根と呼ぶ。流し込みオ
ブジェクト木の中の他のすべての流し込みオブジェクトは,ただ一つのストリームの要素となる。このス
トリームを流し込みオブジェクトが属するストリームと呼ぶ。流し込みオブジェクトの属するストリーム
が附属している流し込みオブジェクトを,その流し込みオブジェクトの流し込み親と呼ぶ。流し込みオブ
ジェクトがもつポート集合は,そのクラスによって制御され,あるクラスに関してはその特質によっても
制御される。ポートをもたない流し込みオブジェクトを,原子流し込みオブジェクトと呼ぶ。インスタン
スが常に原子流し込みオブジェクトになる流し込みオブジェクトクラスを,原子流し込みオブジェクトク
ラスとする。異なるストリームにおける流し込みオブジェクトの相対的位置決めは,流し込みオブジェク
トを同期することによって制限できる。さらに,特質の値から流し込みオブジェクトを生成してよい。
12.3 領域
領域の概念は,流し込みオブジェクトに意味を与えるために用いる。根以外の流し込みオブジェクトを
フォーマットした結果は,領域の列となる。これらの領域の性質は,この規格では完全には規定しない。
領域は,四角形の箱であって,固定した幅及び高さをもつ。領域は,表示媒体上に可視化できるマーク集
合の指定でもある。領域は,他の領域を含んでもよい。特に領域は,グリフを含んでもよい。領域を生成
した流し込みオブジェクト及びその領域を用いる文脈に依存して,情報を領域に附属することもできる。
領域は,行外領域及び行内領域の二つの種別をもつ。行外領域及び行内領域の概念を,図4に示す。
143
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図4 行外配置の領域及び行内配置の領域
12.3.1 行外領域
行外領域は,直接的には行の部分とはならない領域とする。行外領域は,もともと絶対的な方向性をも
つ。
備考 非公式な言い方では,箱には“こちらが上”と示す矢印がある。
行外領域の位置決めは,領域コンテナによって指定する。領域コンテナは,左下角を原点とする独自の
座標系をもち,水平に右に伸びる正のx軸及び垂直に上に伸びる正のy軸をもつ。
領域コンテナは,それ自体の座標系によって指定する流し込み方向をもつ。流し込み方向は,互いに反
対の開始端及び終了端を与える。領域コンテナの大きさは,流し込み方向に直交する方向において常に固
定される。このことは,開始端及び終了端の長さが常に固定され,互いに等しいことを意味する。
流し込み方向の領域コンテナの大きさは固定でき,流し込まれる領域に合わせて,必要に応じて成長す
ると指定してもよい。領域コンテナに流し込まれる行外領域は,流し込み方向に直交する方向における大
きさを,その方向における領域コンテナの大きさと常に等しくして生成される。これを領域の行外サイズ
という。領域コンテナは,次のとおりに行外領域の列で流し込む。最初の行外領域は,領域コンテナの開
始端と,その領域の開始端を一致させて位置付ける。次の行外領域は,その前の領域の終了端と,その行
外領域の開始端を一致させて位置付ける。以降同様とする。これを図5に示す。
144
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図5 領域コンテナ及び行外領域
取り込みコンテナ領域流し込みオブジェクトを親とする領域コンテナは,回転を指定し,それに流し込
む行外領域のすべてに適用してよい。回転の角度は,90°の倍数に限定する。この回転は各行外領域に適
用するので,行外領域の開始端及び終了端をも変更する。
備考 異なる回転の領域を組み合わせるには,取込み領域コンテナの使用が必要となる。
行外領域の開始端から終了端にいたる方向を,行外領域の配置方向とする。行外領域は,その領域の配
置方向に対して垂直な表記方向をもつ。
145
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図6 右向き表記方向に関する配置方向
表記方向は,右向き (left-to-right) ,左向き (right-to-left) 又は下向き (top-to-bottom) のいずれかとする。
図7を参照のこと。
図7 いろいろな表記方法
12.3.2 行内領域
行内領域は,行の部分とする。行内領域は,その箱の辺にある位置決め点をもち,送り方向という方向
をもつ。その方向は,位置決め点のある箱の辺に垂直となる。位置決め点から送り方向にあり,その箱の
反対の辺の位置を,行内領域の送り位置とする。
備考 非公式な言い方では,箱の上には位置決め点から伸びる矢印があり,“現在行と並行にせよ”と
の指示を行っているともいえる。
行内領域は位置決めされて,次に示す方法で行を形成する。段落に関連する表記モードは,その段落の
行内進行方向を与える。行の構成処理と関連して,配置点がある。最初の行内領域は,その送り方向を段
落の行内進行方向と同じ方向に向け,その領域の送り位置を現配置点とする。次の領域は,その位置決め
点を現配置点に一致させて配置し,その送り方向を段落の行内進行方向と同じ方向に向け,送り位置を次
146
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の領域を置くための現配置点とする。これを図8に示す。
図8 行内領域の配置及び位置決め
カーニングの利用は,図9に示すとおり,位置決めを修正する。
図9 カーニングを伴う位置決め
段落の表記モードが決定する方向をもち,行内領域の位置決め点を含むパスを,配置パスという。右向
きの表記モードの場合を図10に,左向きの表記モードの場合を図11に示す。
147
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図10 右向き表記方向に関するグリフの位置決め
図11 左向き表記方向に関するグリフの位置決め
段落が複数の表記モードを使う場合,追加の処理段階が必要となる。例えば図12では,英語テキストに
関する右向きの行内進行方向に加えて,ヘブライ語テキストに関する左向きの行内進行方向を用いる。こ
の場合,行分割は更に複雑となる。
図12 ヘブライ語及び英語に関する混植表記方向
フォント資源の並びモード属性によって指定する並びモードも,グリフの位置決めに影響を与える。そ
の影響を図13に示す。行内流し込みオブジェクトには,この処理を修飾できる特質がある。
148
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図13 混植並びモードのスクリプト
行内領域は,行進行方向をもつ。行進行方向は,その段落の行内進行方向に直交する。行内領域の幾つ
かの特質は,行進行方向と関連して指定する。
12.3.3 行内及び行外の流し込みオブジェクト
フォーマットの結果,行内領域の列を生成する流し込みオブジェクトを,“行内である”という。フォー
マットの結果,行外領域の列を生成する流し込みオブジェクトを,“行外である”という。幾つかの流し込
みオブジェクトクラスのインスタンスは行内だけになり,幾つかの流し込みオブジェクトクラスのインス
タンスは行外だけになり,インスタンスが行内又は行外のどちらともなる流し込みオブジェクトクラスも
ある。どちらにもなる流し込みオブジェクトの場合,行内又は行外の指定は,流し込みオブジェクトの特
質によって行う。特質によって制御しない場合,そのポートに附属する流し込みオブジェクトが行内・行
外のどちらかに従って制御する。流し込みオブジェクトのクラスは,その流し込みオブジェクトの各ポー
トに関して,そのポートに関連する流し込みオブジェクトが,行内だけ,行外だけ又は行内若しくは行外
のどちらかだけになることを決定する。
備考 12.6.16に規定する取込みコンテナ領域流し込みオブジェクトは,行外だけになり得る流し込み
オブジェクトが,改行することなく行の中に間接的に現れることを可能にする。例えば,縦書
きの日本語を改行せずに英語テキストの行の中に混在させてもよい。
12.3.4 添付領域
行外領域は,添付領域と呼ぶ多くの関連する行内領域をもつことができる。それらを図14に示す。図
14は,行外領域の両側に添付した側線及び図形の利用を示す。
備考 添付領域は,側線,行番号及び傍注のために用いる。
149
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図14 添付領域
各添付領域は,添付点と呼ぶ行外領域の箱の上の点に対して,相対的に位置決めする。添付点は,行外
領域の各添付領域に関して異なってもよい。添付点は,配置方向に平行な行外領域の辺にある。
各添付領域に関して,添付対象の行外領域の辺を示す指定を行う。各添付領域は並び点をもち,それを
対応する添付点と同じ位置にし,配置方向を同じにして配置する。
各添付領域は,行外領域からの分離間隔を指定する。添付領域が,表記モードが決定する方向の開始点
である辺にある場合,その分離間隔は,添付領域の並び点から添付点までのその方向の間隔であり,添付
領域の並び点をその送り点とする。添付点が,表記モードが決定する方向の終了点である辺にある場合,
その分離間隔は,添付点から添付領域の並び点までのその方向の間隔であり,添付領域の並び点をその位
置決め点とする。
備考 分離間隔に対する負の値は,添付点が行外領域の内部にあることを示す。
12.4 流し込みオブジェクト木構成
12.4.1 構成規則
[161] construction-rule=query-construction-rule | id-construction-rule | element-construction-rule | root-
construction-rule | default-element-construction-rule
要素型形式style-specification内(7.1を参照のこと。)の構成規則は,入力グローブのノードをどのよう
に処理するかを指定する。各構文construction-ruleは,入力グローブ内のノードの幾つかの集合,ときには
空の集合に合致する。グローブ及びこの規格でのグローブ使用に関しては,9.を参照のこと。
構文construction-ruleは,式construct-expressionを含む。それは型sosofoのオブジェクトを返す式とする。
型sosofoは,流し込みオブジェクト木に追加する流し込みオブジェクトの列の指定 (Specification Of a
Sequence Of Flow Objects) を意味する。12.4.3を参照のこと。構文construction-ruleの規則をノードに適用
すると,式construct-expressionが評価される。その規則を適用するノードが,その式construct-expression
を評価するための現ノードとなる。
ノードに合致する構文construction-ruleの規則のうち,次に定義する最も適格な規則をそのノードに適用
する。
150
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 ノードの処理には副作用がなく,単に値を返すだけである。
ノードは現処理モードに応じて処理される。構文mode-construction-rule-groupによって指定する名前付
きの処理モードに加えて,名前なしの初期モードが存在する。どの構文mode-construction-rule-groupの規
則グループに属さないすべての構文construction-ruleの規則は,処理モードが初期処理モードの場合にも,
名前付きモードの場合にもノードに合致する。流し込みオブジェクト木は,入力グローブの根ノードを初
期処理モードで処理することによって,入力グローブから構成される。その結果のsosofoによって指定さ
れる流し込みオブジェクトは,流し込みオブジェクト木の根の子として追加される。この型sosofoによっ
て指定される流し込みオブジェクトは,すべてラベルなしとなり,そのすべてが流し込みオブジェクトク
ラスscroll,流し込みオブジェクトクラスpage-sequence,又は流し込みオブジェクトクラス
simple-page-sequenceのインスタンスとなる。
[162] mode-construction-rule-group= (mode mode-name construction-rule*)
[163] mode-name=identifier
構文mode-construction-rule-group内の構文construction-ruleの規則は,現処理モードが識別子mode-name
の場合にだけ,ノードに合致する。
構文construction-ruleの規則の相対的な適格性を,次のとおりに定義する。
a) 構文mode-construction-rule-group内の構文construction-ruleの規則は,構文mode-construction-rule-group
外の構文construction-ruleよりも適格性が高いとする。
b) 先行規則によって同じ適格性をもつ構成規則の中では,ある構文style-specification部の構文
construction-ruleの規則が,後続する部のすべて構文construction-ruleの規則よりも適格性が高い(7.1
を参照のこと。)。
c) 先行規則によって同じ適格性をもつ構成規則の中では,次に示す各項はそれぞれその次の項よりも適
格性が高い。
1) 構文query-construction-rule
2) 構文id-construction-rule
3) 構文element-construction-rule
4) 構文default-element-construction-rule
5) 構文root-construction-rule
d) 構文query-construction-ruleは,それより低い優先度をもつ他の構文query-construction-ruleの規則より
も適格性が高い。
e) 節qualified-giを使用した指定は,節qualified-giを使用しない規則より適格性が高い。節qualified-gi
を使用する規則の間では,より多くの節giをもつ規則の方が適格性が高い。
適格性が等しい複数の構成規則がノードに合致する場合は,エラーとする。
構文style-language-bodyで明示的に指定する構成規則に加えて,暗黙の無指定時構成規則がある。無指
定時構成規則は,入力グローブのどのノードにも合致するが,明示的に指定されたどの構文
construction-ruleの規則よりも適格性が低い。無指定時構成規則が返す結果は,次に示すとおりに,適用す
るノードの型に依存する。
a) クラスsgml-documentのノードに関しては, (process-children) を返す。
b) クラスelementのノードに関しては, (process-children) を返す。
c) クラスcharのノードに関しては, (make character) を返す。
d) クラスattribute-assignmentのノードに関しては, (process-children) を返す。
151
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
e) その他の任意のノードに関しては, (empty-sosofo) を返す。
[164] query-construction-rule= (query style-query-expression construct-expression priority-expression)
構文query-construction-ruleは,式style-query-expressionが返すノードリスト内のどのノードにも合致す
る。構文query-construction-ruleを使用するには,機能queryを利用可能にしなければならない。
[165] style-query-expression=expression
式style-query-expressionは,型node-listのオブジェクトを返す。式style-query-expression内では,手続き
current-root及び手続きcurrent-nodeは,共に現在処理中のグローブのグローブ根を返す。
[166] construct-expression=expression
式construct-expressionは,型sosofoのオブジェクトを返す。機能queryを利用可能とした場合,式
construct-expression内では手続きcurrent-nodeは現在処理中のノードを返す。
[167] priority-expression=expression
式priority-expressionは,構文query-construction-ruleの規則の優先度を指定する。その値は,評価の結果
数値となる。式priority-expressionが省略された場合,その優先度は0とする。より大きい数値が,より高
い優先度を示す。
[168] elementt-construction-rule= (element (gi | qualified-gi) construct-expression)
[169] gi=string | symbol
[170] qualified-gi= ((gi+))
構文elementt-construction-ruleの規則は,クラスelementに属し,節gi又は節qualified-giに合致する任意
のノードに合致する。ノードはその共通識別子が,型string又は型symbolと等価の場合に節giに合致する。
ノードは,節qualified-gi内の最後の節giがそのノードに合致し,そのノードの親が最後から2番目の節
giに合致し,同様に節qualified-gi内の各節giが対応するノードの先祖に合致する場合に,節qualified-gi
と合致する。
[171] default-element-construction-rule= (default construct-expression)
構文default-element-construction-ruleの規則は,そのクラスがクラスelementのノードに合致する。
[172] root-construction-rule= (root construct-expression)
構文root-construction-ruleは,そのクラスがクラスsgml-documentのノードに合致する。
[173] id-construction-rule= (id unique-id construct-expression)
[174] unique-id=symbol | string
構文id-construction-ruleは,クラスがクラスelementであって,節unique-idの指定に等しい一意識別子
をもつノードに合致する。
12.4.2 主要流し込みオブジェクト
流し込みオブジェクトは,現ノードから構成され,流し込みオブジェクト木の上にある(つまり参照値
又は特質値でない)場合に,入力グローブ内のノードと関連する。暗黙の無指定時構成規則を用いて作成
された流し込みオブジェクトは,明示的な構成規則を用いて作成された流し込みオブジェクトと同様に,
その規則を適用した入力グローブ内のノードと関連する。
あるノードに関連付けられた流し込みオブジェクトは,次の場合にそのノードに関連付けられた他の流
し込みオブジェクトより密接に関連する。
a) ある流し込みオブジェクトが,現処理モードが初期処理モードで作成されており,他の流し込みオブ
ジェクトが初期処理モード以外で作成されている場合。
b) あるオブジェクトが他のオブジェクトを,直接又は間接的に含んでいる場合。
152
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
あるノードに他の任意の流し込みオブジェクトより密接に関連している流し込みオブジェクトが存在す
る場合,その流し込みオブジェクトをそのノードの主要流し込みオブジェクトと呼ぶ。
12.4.3 Sosofo
型sosofoのオブジェクトは,流し込みオブジェクト木に追加する流し込みオブジェクト列の指定とする。
備考1. 式言語が流し込みオブジェクトを直接操作することは決してなく,データ型sosofoを用いて
それらの指定だけを操作する。
2. 実装は,入力グローブのノードに適用された構文construction-rule内の式construct-expression
が型sosofoのオブジェクトを返した時点で,そのオブジェクト内の情報を流し込みオブジェ
クト木の一部を構成するために用いる。
型sosofoのオブジェクトによって指定される各流し込みオブジェクトは,シンボルでラベル付けしてよ
い。指定する対象のすべてがラベルなしの型sosofoのオブジェクトを,ラベルなしsosofoと呼ぶ。
備考 流し込みオブジェクトは,式make-expressionで引数label : を指定してラベル付けする。
(sosofo? obj)
引数objが型sosofoの場合に#tを,その他の場合に#fを返す。
[175] make-expression= (make flow-object-class-name keyword-argument-list content-expression*)
[176] content-expression=expression
式make-expressionを評価した結果は,型sosofoのオブジェクト(結果sosofo)であって,その最初の要
素は,引数flow-object-class-nameで指定した名前のクラスの流し込みオブジェクトとなる。この流し込み
オブジェクトは,構成された流し込みオブジェクトと呼ぶ。それぞれの式content-expressionは,型sosofo
のオブジェクトを返す。式content-expressionが返す型sosofoのオブジェクトは,連結されて内容を構成す
る型sosofoのオブジェクトを形成する。引数flow-object-class-nameが原子流し込みオブジェクトクラスの
名前の場合,式content-expressionを指定してはならない。引数flow-object-class-nameが原子流し込みオブ
ジェクトの名前でなく,式make-expressionに式content-expressionを含まない場合, (process-children) の効
果をもつ構文content-expressionを用いる。
それぞれの式make-expressionは,内容対応をもつ。内容対応はラベルをポートに対応させる。内容sosofo
に指定した各流し込みオブジェクトは,順次考慮する。流し込みオブジェクトがラベル付きでない場合,
構成する流し込みオブジェクトが主ポートをもてば,その主ポートに附属されたストリームに追加する。
主ポートをもたない場合エラーとする。流し込みオブジェクトがラベル付きであって,内容対応によって
対応付けるラベルをもつ場合,その流し込みオブジェクトはラベルが対応付けたポートに附属するストリ
ームに追加される。それら以外の場合,流し込みオブジェクトは結果の型sosofoのオブジェクトに追加さ
れる。つまり,これらの流し込みオブジェクトは結果の型sosofoのオブジェクト内の構成された流し込み
オブジェクトに後続する。
キーワードは,式content-expressionとしてではなく節keyword-argument-listの一部として扱う。節
keyword-argument-list内で2回以上同じキーワードが出現した場合,エラーとはしないが,最初に出現した
もの以外はすべて無視する。節keyword-argument-list内では,次のキーワードが出現してよい。
a) 特質の名前を示すキーワードは,12.4.6に記述するとおり,その流し込みオブジェクトにおけるその
名前の特質の値を指定する。ただし,継承可能特質の場合には,その値を上書きされる。特質が継承
可能特質でない場合,その流し込みオブジェクトに適用可能な特質でなければならない。
b) 文字列cが継承可能特質の名のキーワードforce!c : 。その特質の値を指定するとともに,12.4.6で記
述した値の上書きを抑制する。
153
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
c) 参照値型の名前を示すキーワード。構成する流し込みオブジェクトがその型の参照値を,指定した値
でもつことを指定する。
d) キーワードuse : 。12.4.6で記述するとおり,構成する流し込みオブジェクトで用いるスタイルを指定
する。その値はスタイルオブジェクト又はスタイルを適用しないことを示す#fとする。
e) キーワードcontent-map : 。そのmake-expressionにおける内容対応を指定する。その値は,二つのオブ
ジェクトから成るリストのリストであって,最初のオブジェクトはラベルを指定するシンボルで,2
番目のオブジェクトはポート名を示すシンボル又は主ポートを示す#fのいずれかとする。内容対応で
は,ラベルは2回以上出現してはならない。
キーワードcontent-map : が指定されない場合,その流し込みオブジェクトの主ポートでないポート
のそれぞれについて,そのポート名に等しい二つのシンボルから成るリストを内容対応として用いる。
f)
キーワードlabel : 。結果の型sosofoのオブジェクト内に構成した流し込みに対するラベルを指定する。
その値はシンボルとする。
[177] flow-object-class=identifier
構文flow-object-class-nameには,流し込みオブジェクトクラスの名前となる任意の識別子を指定できる。
[178] application-flow-object-class-declaration= (declare-flow-object-class identifier steing)
識別子identifierが,節flow-object-class-nameで指定する名前であって,文字列stringで指定した公開識
別子をもつと宣言する。
[179] with-mode-expression= (with-mode mode-specification expression)
[180] mode-specification=mode-name | #f
式with-mode-expressionは,式expressionを引数mode-specificationで指定した処理モードで評価する。引
数mode-specificationの値#fは,無名の初期モードを示す。引数mode-specification内の識別子mode-name
は,構文mode-construction-rule-group内で指定済みでなければならない。
(empty-sosofo)
空の型sosofoのオブジェクトを返す。
(literal string ...)
引数string列内の各文字ごとに,クラスcharacterの流し込みオブジェクト一つを同じ順序で含む型sosofo
のオブジェクトを返す。各文字流し込みオブジェクトは,クラスcharacterを構文flow-object-class-nameと
し,キーワードchar : に文字を指定した式make-expressionを評価して構成された場合と同じに構成される。
(process-children)
現ノードの子を順に処理した結果の型sosofoのオブジェクトを追加した結果の型sosofoのオブジェクト
を返す。現ノードがクラスsgml-documentの場合,特性document-elementをノードの子として扱う。
(process-children-trim)
現ノードの子から,先頭及び末尾にあり,特性input-white-spaceが真となる値を特質charにもつノード
列を除いた後,順に処理した結果の型sosofoのオブジェクトを追加した結果の型sosofoのオブジェクトを
返す。
(process-matching-children pattern ...)
現ノードの子で引数pattern列のいずれかに合致するノードを順に処理した結果の型sosofoのオブジェク
トを連結した結果の型sosofoのオブジェクトを返す。引数patternは,手続きmatch-element?の第二引数と
して可能なオブジェクトとし,手続きmatch-element?と同じに解釈する。
(process-first-descendant pattern ...)
154
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
現ノードの子孫であって,引数pattern列のいずれかに合致する,木順序で最初のノードを処理した型
sosofoのオブジェクトを返す。引数patternは,手続きmatch-element?の第二引数として可能なオブジェク
トとし,手続きmatch-element?と同じに解釈する。
(process-element-with-id string)
現ノードと同じグローブにあり,その一意識別子が引数stringとなる要素が存在する場合,その要素を
処理した結果の型sosofoオブジェクトを返し,存在しない場合,空の型sosofoのオブジェクトを返す。こ
の手続きは,機能cross-referenceを必要とする。
(process-node-list ndlist)
手続きprocess-node-listは,引数ndlistを順に処理した結果のsosofoを連結してできるsosofoを返す。こ
の手続きは,機能queryを必要とする。
(map-constructor procedure node-list)
引数node-listの各ノードについて,そのノードを現ノードとして引数手続きprocedureを評価する。こ
の引数手続きprocedureは,引数をとらず,型sosofoのオブジェクトを返す。手続きmap-constructorは,
手続きを評価した結果を連結してできる型sosofoのオブジェクトを返す。この手続きは,機能queryを必
要とする。
(sosofo-append sosofo ...)
引数sosofo列を連結した結果の型sosofoのオブジェクトを返す。
(sosofo-label sosofo symjbol)
引数sosofoの要素であって,現在ラベル付きでない流し込みオブジェクトに引数symbolのラベルをつけ
た型sosofoのオブジェクトを返す。新規の型sosofoのオブジェクトが作成されるのであって,引数sosofo
もその要素も変更しない。
(sosofo-discard-labeled sosofo symbol)
引数sosofoから,引数symbolでラベル付けされたすべてのオブジェクトを除いた型sosofoのオブジェク
トを返す。新規の型sosofoのオブジェクトが作成されるのであって,引数sosofoを変更しない。
(next-match)
(next-match style)
手続きnext-matchは,現ノードに合致する,次に適格な構成規則を適用した結果の型sosofoのオブジェ
クトを返す。引数styleが指定された場合,そのスタイルはその構成規則を評価する際の現上書きスタイル
となる。
12.4.4 並行処理機能
手続きprocess-children,手続きprocess-children-trim,手続きprocess-matching-children,手続き
process-first-descendantの呼出しは,次の場合下降再帰呼出しとなる。
a) 手続きprocess-node-list又は手続きprocess-element-with-idの呼出しの評価中ではない場合。
b) 参照値の値を評価中ではない場合。
機能multi-processが可能になっていない場合,同じノードを現ノードとし,同じ処理モードを現モード
とした,二つの下降再帰呼出しをエラーとする。
12.4.5 型style
型styleオブジェクトは,継承可能特質の値を指定する式の集合を含む。
[181] style-expression= (style keyword-argument-list)
式style-expressionは,評価の結果として型styleのオブジェクトを返す。節keyword-argument-listでは,
155
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
次のキーワードを指定可能とする。
a) 継承可能特質の名前をもつキーワード。12.4.6の規定どおりに,その特質の値を指定する。上書きさ
れない限り,その値は有効となる。
b) シンボルcを継承可能特質名とした場合のキーワードforce!c : 。その特質の値を指定するとともに,
12.4.6で記述した値の上書きを抑制する。
c) キーワードuse : 。12.4.6の規定どおり,構成する流し込みオブジェクトで用いるスタイルを指定する。
備考 式style-expressionは,継承可能特質だけをもつ原子流し込みオブジェクトクラスの式
make-expressionと同様に解釈する。
(style? ojb)
引数objが型styleであれば#tを,その他の場合に#fを返す。
(merge-style style ...)
引数style列を結合してできるスタイルを返す。返されるスタイルオブジェクト内の特質に関する式は,
その特質に関する式を含む最初の引数スタイルオブジェクト内の式となる。
12.4.6 特質指定
明示的にこの規格で規定されていない限り,すべての特質は継承可能とする。この規格では,継承可能
特質ごとに,その特質の初期値を指定する式が存在する。すべての非継承可能特質は,無指定時値をもつ。
式construct-expressionの評価中は,現上書きスタイルが有効となる。ノードの処理が始まった時点では,
現上書きスタイルは空とする。手続きnext-matchは,式construct-expressionの評価中に現上書きスタイル
を変更できる。その式construct-expressionは,さらに手続きnext-matchを呼ぶことによって,現上書きス
タイルを変更してよく,それ以降も同様に上書きスタイルを変更してよい。
ある流し込みオブジェクトに関して継承可能特質cを指定する式は,式make-expressionを次の規則のう
ち適用可能な最初の規則を用いて評価した時点で決定される。
a) キーワードforce!c : が指定されている場合,対応する式を用いる。
b) 現上書きスタイルが特質cに関する式を含む場合,その式を用いる。
c) キーワードc : が指定されている場合,対応する式を用いる。
d) 流し込みオブジェクトにおいてキーワードuse : が指定されており,対応するスタイルオブジェクト
が特質cに対する式を含む場合,その式を用いる。
e) 前述以外の場合, (inherited-c) を用いる。
スタイルオブジェクトに関する特質の集合及び対応する式は,式style-expressionを評価の際に同じ方法
で決定する。各継承可能特質cに関して,スタイルオブジェクトがもつcに対する式は,次の規則の適用
可能な最初の規則を用いて決定する。
a) キーワードforce!c : が指定されている場合,対応する式を用いる。
b) 現上書きスタイルが特質cに関する式を含む場合,その式を用いる。
c) キーワードc : が指定されている場合,対応する式を用いる。
d) 流し込みオブジェクトにおいてキーワードuse : が指定されており,対応するスタイルオブジェクト
が特質cに対する式を含む場合,その式を用いる。
前述のどの規則も適用できない場合,そのスタイルオブジェクトは特質cに関する式をもたない。
ある流し込みオブジェクトに適用可能な各非継承可能特質cに関して,その流し込みオブジェクトのた
めの式make-expressionが,キーワードc : を指定している場合,対応する式を評価して用いる。指定して
いない場合,その特質に対する無指定時値はその特質及び流し込みオブジェクトに関して規定されている
156
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
とおりに決定する。
式make-expression又は式style-expressionにおける特質の値を指定する式は,即時には評価しない。式は
生成する流し込みオブジェクト又はスタイルオブジェクトの特質に関連付けられる。lambda式と同様に式
中の自由変数の値は記憶され,式を評価する時点で用いる。現ノードも同様に記憶され,式の評価のため
に回復される。
流し込みオブジェクト木が,流し込みオブジェクトの木内での位置を決定するために必要なだけ構成さ
れた時点で,その流し込みオブジェクトに適用可能な特質の値を指定する式を評価する。
特質の値を指定する式は,二つの流し込みオブジェクトと関連して評価される。それらの流し込みオブ
ジェクトは,値流し込みオブジェクト及び指定流し込みオブジェクトと呼ぶ。流し込みオブジェクトに関
する特質の値は,値流し込みオブジェクト及び指定流し込みオブジェクトをともにその流し込みオブジェ
クトに等しくして評価を行い決定する。
(inherited-c)
任意の継承可能特質cについて,手続きinherited-cが存在する。この手続きは特質の値を指定する式の
評価の中でだけ使用する。指定流し込みオブジェクトの流し込み親に関して特質cを指定する式を評価し
た結果を返す。この式は値流し込みオブジェクトを変えずに,指定流し込みオブジェクトを現指定流し込
みオブジェクトの流し込み親に等しくして評価される。現指定流し込みオブジェクトが,流し込みオブジ
ェクトの特質値として存在しているために流し込み親をもたない場合,特質値評価のためにはその特質を
もつ流し込みオブジェクトを流し込み親として扱う。現指定流し込みオブジェクトが,構文
generate-specification又は構文decoration-specificationで用いられているために流し込み親をもたない場合,
それらの構文が出現するページモデル又は段集合モデルを利用している流し込みオブジェクト
page-sequence又は流し込みオブジェクトcolumn-set-sequenceを,特質値評価のための流し込み親とみなす。
それら以外の場合で現指定流し込みオブジェクトが流し込み親をもたない場合,手続きinherited-cは,特
質cの初期値を評価した結果を返す。この指定の評価の際には,指定流し込みオブジェクトが存在せず,
継承可能特質cに関して手続きinherited-cを呼び出した場合はエラーとする。
手続きinherited-cは,次の条件を満たす場合には動作が異なる。
a) 指定流し込みオブジェクトの流し込み親が,クラスtable又はクラスtable-partに属す。
b) 値流し込みオブジェクトが,流し込みオブジェクトtable又は流し込みオブジェクトtable-partの配下
の流し込みオブジェクトtable-cellであるか,さらにその流し込みオブジェクトtable-cellの内部にある。
c) 流し込みオブジェクトtable又は流し込みオブジェクトtable-partが,特質cを指定された流し込みオ
ブジェクトtable-columnを含み,流し込みオブジェクトtable-cellと同じ段番号をもつ。
この場合,手続きinherited-cは,流し込みオブジェクトtable-column内の特質cの指定を評価した結果
を返す。この式は,値流し込みオブジェクトを変えず,指定流し込みオブジェクトを表流し込みオブジェ
クトとして評価する。
(actual-c)
各継承可能特質cに関して,手続きactual-cは値流し込みオブジェクトに関する特質cの値を返す。こ
の手続きは,特質の値を指定する式の評価内だけで使用する。流し込みオブジェクトfに対する特質cの
値を決定する過程で,流し込みオブジェクトfを値流し込みオブジェクトとして手続きactual-cを呼び出す
とエラーとなる。この手続きの使用は,機能actual-characteristicを必要とする。
(char-script-case string1 obj1 ... stringn-1 ojbn-1 objn)
継承可能特質の値を指定する式の評価内だけで使用する。引数の個数は,奇数でなければならない。最
157
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
後以外の引数は,最初の要素が公開識別子を表す文字列で,第二の要素が任意のオブジェクトの対の列と
して解釈する。値流し込みオブジェクトがクラスcharacterでないか,値が#f以外のスクリプト特質をもつ
クラスcharacterの場合,手続きchar-script-caseは最後の引数を返す。それ以外の場合,スクリプト特質の
値を,各引数対の最初の要素と比較する。比較の結果合致すれば,引数対の第二の要素を返す。引数ペア
のどれとも合致しなかった場合,最後の引数を返す。
備考 例えば,日本語テキストをフォーマットする場合,通常はスクリプトが,スクリプトクラス
Katakana,スクリプトクラスHan,及びスクリプトクラスLatinの部分でフォントを変える。
[182] application-characteristic-declaration=
(declare-characteristic identifier string expression)
節identifierを追加の継承可能特質として宣言する。同時に手続きinherited-identifier及び手続き
actual-identifierを宣言する効果ももつ。引数stringは,その特質の意味を規定する公開識別子とする。実装
が指定された公開識別子を認識しない場合,その特質の使用を無視しなければならない。式expressionは,
特質の初期値の指定となる。
[183] application-char-characteristic+property-declaration=
(declare-characteristic identifier string expression)
節identifierを,クラスcharacterの流し込みオブジェクトに追加の非継承可能特質として宣言し,同時に
節identifierが追加の文字特性だと宣言する。引数stringは,特質の意味を規定する公開識別子とする。そ
の特質の無指定時値は,流し込みオブジェクトの特質char : の値の文字の特性identifierの値となる。その
特性の無指定時値は,式expressionとなる。この式は通常どおり評価する。特質の値が評価されるような
特殊な方法で評価せず,現ノードに関して評価もしない。
[184] initial-value-declaration= (declare-initial-value identifier expression)
継承可能特質identifierの初期値に式expressionの値を宣言する。これは,構文
application-characteristic-declarationで宣言した特質に対して使用してはならない。
12.4.7 流し込みオブジェクトの同期
この12.4.7で記述する機能は,機能pageを必要とする。
異なるストリームに属す流し込みオブジェクトの相対位置を制約する必要な場合がある。例えば,脚注
は対応する参照と同じページに制約されることがあり,傍注は,その参照と同じ垂直位置に制約されるこ
とがある。この種の制約は,同期集合を生成することによって指定する。同期集合は,流し込みオブジェ
クトの集合であって,それらの相対的な位置決めを制約する。流し込みオブジェクトは,それが所属する
同期集合を記述する情報を含む。流し込みオブジェクトは,任意の数の同期集合に所属してよい。各同期
集合に関して,同期する流し込みオブジェクトと呼ぶ流し込みオブジェクトが存在しなければならない。
同期する流し込みオブジェクトは,同期集合内のすべての流し込み先祖でなければならない。さらに,同
期する流し込みオブジェクトの各ストリームには,多くとも一つの流し込みオブジェクトを,直接又はそ
の子孫として同期集合内に含んでよい。
(sync sosofo1 sosofo2 #!key type: min: max:)
手続きsyncは,その要素として引数sosofo1及び引数sosofo2の両者の最初の要素をもつ同期集合を生成
する。
手続きsyncは,次の条件を満たすsosofoを返す。
a) 引数sosofo1の最初の流し込みオブジェクトの複製に同期情報を加えた流し込みオブジェクト。
b) 引数sosofo1の残りの流し込みオブジェクトのすべて。
158
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
c) 引数sosofo2の最初の流し込みオブジェクトの複製に同期情報を加えた流し込みオブジェクト。
d) 引数sosofo2の残りの流し込みオブジェクトのすべて。
引数type : は,同期した流し込みオブジェクトをフォーマットして生成される領域の制約の型を指定す
るシンボルとする。引数min ;,引数max : は,その制約の型をさらに詳細に指定する整数とする。引数
max : の値は,引数min : の値以上でなければならない。引数min : 及び引数max : の無指定時値は0とす
る。引数type : として許容する値は次のとおり。
a) 値pageは,次の二つの領域を分離するページの数を指定する。
1) 最初の同期した流し込みオブジェクトから作成された最初の領域。
2) 二番目の同期した流し込みオブジェクトから作成された最初の領域。
そのページの数は,引数min : 以上,引数max : 以下でなければならない。同期する流し込みオブ
ジェクトは,ページ列流し込みオブジェクト又はページ列流し込みオブジェクトを先祖にもつ段集合
列流し込みオブジェクトでなければならない。ある領域からもう一つの領域へのページ数は,ページ
列オブジェクトを含むすべてのページ間で,第二の領域のあるページの指標から,第一の領域のある
ページの指標を引いた結果の数と定義する。
備考 引数min : が−1であって,引数max : が2の場合に,第二の同期した流し込みオブジェクト
から生成された最初の領域が,最初の同期した流し込みオブジェクトから生成された領域の最
初のページ,その直前のページ,最初のページの次のページ,さらにその次のページのいずれ
かにあるとの制約を受ける。
b) シンボルspreadは,最初の同期した流し込みオブジェクトから生成された最初の領域から,第二の同
期した流し込みオブジェクトから生成された最初の領域への見開きの数であって,引数min : 以上,
引数max : 以下でなければならない。同期する流し込みオブジェクトは,クラスpage-sequence又はク
ラスpage-sequenceに属する流し込みオブジェクトを先祖にもつ,クラスcolumn-set-sequenceのオブジ
ェクトでなければならない。
c) シンボルcolumnは,最初の同期した流し込みオブジェクトから生成された最初の領域と,二番目の流
し込みオブジェクトから生成された最初の領域が,同じ段副集合内にあり,その二つの領域の間にあ
る段の数が引数min : 以上,引数max : 以下でなければならないと指定する。同期する流し込みオブ
ジェクトは,クラスcolumn-set-sequenceに属さなければならない。
引数type : の無指定時は,シンボルpageとする。
(side-sync list)
引数listは,二つ以上の型sosofoのオブジェクトから成るリストとする。手続きside-syncは,リスト内
の各要素の最初の要素を含む同期集合を生成する。この手続きは,各型sosofoのオブジェクトの最初の要
素が,同期情報を加えた複製で置き換えられること以外は同じリスト内の要素を連結した結果を返す。同
期集合の各要素が生成する最初の領域は同じ段集合に配置され,必要であればそろえモードによる差を調
整して,流し込み方向に対して配置パス上で同じ位置に制約される。
12.5 共通データ型及び共通手続き
12.5.1 レイアウト主導の生成テキスト
この12.5.1において,流し込みオブジェクト木内のある点に生成されるテキストの値が,何らかのフォ
ーマット処理が済むまでは分からない場合に用いる生成テキストの機能を述べる。この機能は,機能page
を必要とする。
備考 例えば,ページ番号付け,ページごとの脚注番号付け及び辞書のヘッダに用いる。
159
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
生成テキストのその部分はそれぞれ,間接流し込みオブジェクトで表現する。間接流し込みオブジェク
トは,流し込みオブジェクトのリストに対する指定を含む。間接流し込みオブジェクトをフォーマットし
た結果は,間接流し込みオブジェクトが指定する流し込みオブジェクトをフォーマットした結果となる。
間接流し込みオブジェクトは,12.5.1.1の手続きだけを用いて作成され,通常の流し込みオブジェクト生成
の機構を用いて作成されるわけではない。間接流し込みオブジェクトの内容は,それが指定する流し込み
オブジェクトのリストと定義する。継承の目的に関しては,間接流し込みオブジェクトの内容はその間接
流し込みオブジェクトを流し込み親とする。
データ型generated-objectは,式言語オブジェクトの指定とする。生成オブジェクトの核は,生成オブジ
ェクトが指定するオブジェクトと定義する。生成オブジェクトの核は直接には利用できず,12.5.1.1内の手
続きを用いることだけで利用できる。
(generated-object? obj)
手続きgenerated-object?は,引数objが型generated-objectの場合に#tを返し,その他の場合に#fを返す。
12.5.1.1 間接sosofoの構成
(general-indirect-sosofo procedure generated-object ...)
手続きgeneral-indirect-sosofoは,一つの間接流し込みオブジェクトを含む型sosofoのオブジェクトを返
す。その間接流し込みオブジェクトの内容は,引数generated-objectの核のリストに引数procedureを適用
した結果の名前無しの型sosofoのオブジェクトとなる。手続きgeneral-indirect-sosofoは,機能general-indirect
を必要とする。
(asis-indirect-sosofo generated-object)
手続きasis-indirect-sosofoは,引数generated-objectの核を内容とした一つの間接流し込みオブジェクト
を含む型sosofoのオブジェクトを返す。引数generated-objectの核は型sosofoのオブジェクトとする。
備考 典型的には,生成オブジェクトは12.5.1.3の手続きの一つで作成される。
(number-indirect-sosofo generated-object #!key format: add: multiple: )
手続きnumber-indirect-sosofoは,その内容が引数generated-objectとなる一つの間接流し込みオブジェク
トを含む型sosofoのオブジェクトを返す。その核は型integerでなければならず,文字列に変換した後,さ
らに型sosofoのオブジェクトに変換する。キーワード引数は,整数から文字列への変換を次のとおりに制
御する。
a) キーワード引数format : は,手続きformat-numberと同じ方法で数値の変換に用いる形式を指定する。
無指定時値は1とする。
b) キーワード引数add : は,変換前に引数generated-objectの核に加える整数とする。無指定時値は0と
する。
c) キーワード引数multiple : は型integerとする。この整数の倍数でない整数は,空文字列に変換する。
キーワード引数add : に指定する整数は,それが倍数になっているかを検査する前に引数
generated-objectの核に加える。無指定時値は1とする。
12.5.1.2 レイアウト番号付け
次に示す手続きは,すべて型generated-objectのオブジェクトを返し,その核は数値であってフォーマッ
トの結果に依存してよい。引数first-area-of-node : 及び引数last-area-of-node : を許容する場合,数値は参照
領域に相対で指定する。引数first-area-of-node : 及び引数last-area-of-node : は,その一方だけを指定できる。
引数first-area-of-node : が指定されている場合,その値はノードであって,参照領域はそのノードの主流し
込みオブジェクトから結果として生成される最初の領域となる。引数last-area-of-node : が指定された場合,
160
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
その値はノードでなければならず,参照領域はそのノードの主流し込みオブジェクトから結果として生成
される最後の領域となる。引数first-area-of-node : 及び引数last-area-of-node : は,次の条件に適合しない限
り一方だけを指定する。
a) 手続きが評価された時点で現ノードが存在している場合。その場合,参照領域は現ノードの主流し込
みオブジェクトから結果として生成される最初の領域となる。
b) 手続きが構文generate-specification内で使用された場合。その場合,参照領域は生成された領域となる。
c) 手続きが修飾領域の作成に用いられた場合。その場合,参照領域は修飾領域となる。
段は領域ではないが,12.5.1.2では領域として取り扱う。領域は,ある段が属する段集合内にあって,そ
の領域が段抜きしている最初の段である場合に,その段内にあるとする。
主流し込みオブジェクトをもたない流し込みオブジェクトに対して,12.5.1.2で定義する手続きを主流し
込みオブジェクトを必要とする形式で使用することはエラーとする。
(page-number #!key first-area-of-node: last-area-of-node:)
参照領域と同じか前にあるページの数を核とする型generated-objectのオブジェクトを返す。
(category-page-number #!key first-area-of-node: last-area-of-node:)
参照領域と同じか前にあって,参照領域を含むページ又は参照領域のページと同じ分類となるページの
数を核とする型generated-objectのオブジェクトを返す。
(page-number-in-node nd)
次の条件を満たすページ数を核とする型generated-objectのオブジェクトを返す。
a) 型generated-objectのオブジェクトが用いられている間接sosofoによって生成された最初の領域を含む
又はそれ以前にあるページ。
b) 引数ndに対応する流し込みオブジェクトから生成された領域を含むページ
備考 この手続きは,表のヘッダ又は表のフッタ内で使用できる。
(total-node-page-numbers nd)
引数ndに関連する主流し込みオブジェクトから生成された領域を含むページの総数を核とする型
generated-objectのオブジェクトを返す。
(column-number #!key first-area-of-node: last-area-of-node:)
参照領域と同じ段集合内であって,参照領域と同じ又は以前にある段の数を核とする型generated-object
のオブジェクトを返す。
(footnote-number symbol #!key first-area-of-node: last-area-of-node:)
参照領域と同じ又は以前にある脚注領域であって,引数symbolで指定した型をもつ参照領域に最も近い
先祖の子孫となる脚注領域の数を核とする型generated-objectのオブジェクトを返す。ここで,型はシンボ
ルpage,シンボルpage-region,シンボルcolumnのいずれかとする。この目的に関して脚注領域は,流し
込みオブジェクトcolumn-set-sequenceの脚注域に向けられたストリームの流し込みオブジェクトから作成
された領域列内の最初の領域とする。
(line-number symbol #!key first-area-of-node: last-area-of-node:)
参照領域と同じ又は以前にある行領域であって,引数symbolで指定した型をもつ参照領域に最も近い先
祖の子孫となる行領域の数を核とする型generated-objectのオブジェクトを返す。引数symbolは,シンボル
page,シンボルpage-region,シンボルcolumn又はシンボルparagraphでなければならない。特質
numbered-lines? : が#fの流し込みオブジェクトparagraphから生成された行領域は,その数に含めない。
161
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
12.5.1.3 参照値
流し込みオブジェクトは,それと関連して参照値と呼ぶ多くの名前付きオブジェクトをもつことがある。
[185] reference-value-type-declaration= (declare-reference-value-type identifier)
構文reference-value-type-declarationは,識別子identifierが参照値型の名前と宣言する。識別子identifier
は,特質名又は式make-expressionで指定可能なその他のキーワード引数であってはならない。
(first-area-reference-value symbol #!key default: inherit:)
(last-area-reference-value symbol #!key default: inherit:)
(last-preceding-area-reference-value symbol #!key default:)
(all-area-reference-values symbol #!key unique: inherit:)
これらの各手続きは,構文generate-specification内又は修飾領域の構成の場合に使用してよい。これらの
手続きを使用する文脈は,関連領域リストと呼ぶ,それらの手続きが操作する領域のリストを決定する。
修飾領域の構成に手続きを使用する場合,関連領域リストはその修飾領域だけを含む。手続きが,構文
column-specification
内の構文
header-specification,構文
footer-specification
又は構文
footnote-separator-specificationにおける,構文generate-specificationで使用される場合,関連領域リストは,
同じ段集合領域コンテナに配置された領域,本文区域text内の領域及び段に重なる領域を含む。手続きが
構文header-specification,構文footer-specification又は構文page-regeion-specification内の構文
generate-specificationで使用した場合,関連領域リストは生成領域と同じページ区画領域コンテナにある領
域を含む。
流し込みオブジェクトは,次のいずれかの場合に条件を満たす。
a) 流し込みオブジェクトが参照値symbolをもつ。
b) 流し込みオブジェクトの先祖が参照値symbolをもち,その先祖に特質inherit : が指定されており,そ
の値が#fでない場合。
条件を満たす流し込みオブジェクトに関して有効な参照値は,その流し込みオブジェクトが参照値
symbolをもつ場合には,参照値symbolとし,それ以外の場合,その流し込みオブジェクトの先祖であって
参照値symbolをもつ最も近い流し込みオブジェクトの参照値とする。
手続きfirst-area-reference-valueは,次のいずれかの条件を満たす領域を生成する最初の有効な流し込み
オブジェクトを探索するために,行きがけ探索を行う。
a) 領域が関連領域リスト内の領域である場合。
b) 領域が関連領域リスト内の領域に含まれる場合。
そして,その流し込みオブジェクトの有効な参照値を核とする生成オブジェクトを返す。流し込みオブ
ジェクトが一つ以上のストリームをもつ場合,各ストリームを個別に探索する。探索の結果複数のストリ
ームで流し込みオブジェクトが見つかった場合,レイアウト順で領域がより先にくる流し込みオブジェク
トを返す。探索の結果,条件に合う流し込みオブジェクトが見つからなかった場合,引数default : の値を
返す。その値は生成オブジェクトでなければならない。
手続きlast-area-reference-valueは,手続きfirst-area-reference-valueと同様に振る舞うが,その探索順序が
反対になっている。
手続きlast-preceding-area-reference-valueは,流し込みオブジェクトであって,そのすべての領域が関連
領域リスト内のすべての領域に先行する最後のものを探索するために,流し込みオブジェクト木を行きが
け探索する。その流し込みオブジェクトの有効な参照値を核とする生成オブジェクトを返す。探索の結果,
条件に合う流し込みオブジェクトが見つからなかった場合,引数default : の値を返す。その値は生成オブ
162
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ジェクトでなければならない。
備考 この手続きは,手続きfirst-area-reference-valueの引数default : として使用されるかもしれない。
手続きall-area-reference-valuesは,条件を満たすすべての流し込みオブジェクトであって,関連領域リス
ト内の領域であるか,又は関連領域リスト内の領域に含まれる領域を生成するものを探索するために,流
し込みオブジェクト木を行きがけ探索する。各条件を満たす流し込みオブジェクトの有効な参照値を見つ
かった順に含むリストを核とする生成オブジェクトを返す。引数unique : が#fでない場合,手続きequal?
の意味において同じ値は除かれる。
12.5.2 長さ指定
型length-specのオブジェクトは,現時点では不明の他の長さとの線形の組合せとして長さを指定する。
型length-specの値が必要な場合,長さ,つまり次元が1の数量を常に用いてよい。
(+ length-spec ...)
(− length-spec ...)
(* length-spec x)
(* x length-spec)
(/ length-spec x)
(/ x length-spec)
これらの手続きは,数量における対応する手続きと同様に振舞う。しかし,これらは引数のどれかが単
なる長さでなく,型length-specであった場合,型length-specを返す。
(display-size)
この手続きは,特質値を指定する式の評価中だけで使用する。値流し込みオブジェクトは,行外流し込
みオブジェクトでなければならない。この手続きは,値流し込みオブジェクトの行外サイズを指定する長
さ指定を返す。
12.5.3 修飾領域
この12.5.3の機能は,機能pageを必要とする。
領域コンテナは,修飾領域と呼ぶ一つ以上の他の領域で修飾されることがある。修飾領域は,被修飾領
域に対する親領域の扱いに影響しない。特に被修飾領域の幅又は高さを変えることはない。
(decoration-area sosofo #!key placement-point-x:
placement-point-y: placement-direction:)
型decoration-areaのオブジェクトを返す。引数sosofoは,行内として用いることのできる任意のクラス
の流し込みオブジェクト一つを指定できる。引数sosofoをフォーマットした結果は,修飾領域として用い
る。修飾領域は,他の引数によって指定する配置点及び配置方向をもつ。引数sosofoによって生成された
行内領域は,配置の結果その位置決め点が修飾領域の配置点にあり,その送り方向が修飾領域の配置方向
と等しくなる。
引数placement-point-x : は,被修飾領域の左下角と修飾領域の配置点との間の被修飾領域のx方向に基
づく距離を指定する型length-specのオブジェクトとする。引数placement-point-y : は,被修飾領域の左下
角と修飾領域の配置点との間の被修飾領域のy方向に基づく距離を指定する型length-specのオブジェクト
とする。引数placement-direction : は,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottom
のいずれかを値とし,被修飾領域の方向に相対で修飾領域の配置方向を与える。この場合,修飾領域の行
進行方向は被修飾領域の配置方向となる。
(decorated-area-width)
163
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(decorated-area-height)
手続きdecorated-area-width及び手続きdecorated-area-heightは,それぞれ修飾される領域の幅及び高さを
指定する型length-specのオブジェクトを返す。それらは,修飾領域の引数placement-point-x : 及び引数
placement-point-y : の指定に用いてよい。
12.5.4 空き
12.5.4.1 行外空き
型display-spaceのオブジェクトは,行外領域間の望ましい空きを記述するために用いる。
(display-space? obj)
引数objが型display-spaceの場合に#tを返し,その他の場合に#fを返す。
(display-space length-spec #!key min: max: conditional?: priority:)
型display-spaceのオブジェクトを返す。引数length-specは,空きの公称サイズを指定する。引数min : 及
び引数max : は長さ指定であって,空きの最小サイズ及び最大サイズを指定する。これらは共に公称サイ
ズを無指定時値とする。引数priority : は,整数又はシンボルforceのいずれかとする。無指定時値は0と
する。大きい整数が高い優先度を示す。二つの行外空きが隣接する場合,片方がもう一方より高い優先度
をもてば,優先度の高い空きの最小,公称及び最大のサイズの値を使用し,低い優先度の空きは無視する。
優先度は同じだが,片方がより大きい公称サイズをもてば,大きい公称サイズをもつ空きの最小,公称及
び最大のサイズを使用し,他方の空きを無視する。それ以外の場合,つまり,優先度と公称サイズとが等
しい場合,公称サイズ,最大サイズの小さい方,及び最小のサイズの大きい方を使用する。優先度のforce
は,他の任意の値の優先度より大きいと解釈する。しかし,どちらもforceであった場合,公称値,最小
値,最大値はそれぞれ加え合わせられる。引数conditional? : は,型booleanのオブジェクトとする。真の
場合,空きは領域の先頭では除かれる。無指定時値は#tとする。
備考 これは改ページ又は改段の位置にきた空きを消すことを可能にする。
12.5.4.2 行内空き
型inline-spaceのオブジェクトは,行内領域間の望ましい空きを記述するために使用する。
(inline-space? obj)
引数objが型inline-spaceの場合に#tを返し,その他の場合に#fを返す。
(inline-space length-spec #!key min: max:)
型inline-spaceのオブジェクトを返す。引数length-specは,空きの基本サイズを指定する。引数min : 及
び引数max : は,長さ指定であって空きの最小サイズ及び最大サイズを指定する。どちらも基本サイズを
無指定時値とする。
12.5.5 グリフ識別子
グリフ識別子は,型glyph-idのオブジェクトで表す。
(glyph-id? obj)
引数objが,型glyph-idの場合に#tを返し,その他の場合に#fを返す。
(glyph-id string)
手続きglyph-idは,公開識別子stringのグリフ識別子を返す。
[186] glyph-identifier=afii-glyph-identifier
[187] afii-glyph-identifier= #A digit-10+
構文afii-glyph-identifierは単一のトークンで,したがって#Aと数字との間に空白文字は許されない。構
文afii-glyph-identifierは,次の式が返すグリフ識別子を表す。
164
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
(glyph-id "ISO/IEC 10036/RA//Glyphs::n")
ここでnは,構文afii-glyph-identifierに出現するものと同じ数字列であって,先行する0を除いたものと
する。数字の示す値は,1〜 (232−1) でなければならない。
12.5.6 グリフ代替表
型glyph-subst-tableのオブジェクトは,グリフ識別子列からグリフ識別子列への一対一対応を示す。
(glyph-subst-table? obj)
引数objが,型glyph-subst-tableの場合に#tを返し,その他の場合#fを返す。
(glyph-subst-table list)
型glyph-subst-tableのオブジェクトを返す。引数listは,グリフ識別子列の対のリストを含む。結果のグ
リフ代替表においては,各対の最初の要素の代替が第二の要素となることを示す。対の最初の要素として
出現しなかった任意のグリフ識別子の代替は,それ自体となる。グリフ識別子が一つ以上の対の最初の要
素として出現した場合,そのグリフ識別子を最初の要素とする対の最初に現われた対の二番目の要素をそ
の代替とする。
(glyph-subst glyph-subst-table glyph-id)
引数glyph-subst-table内の引数glyph-idに対応する代替のグリフ識別子を返す。
12.5.7 フォント情報
この12.5.7の機能は,機能font-infoを必要とする。
(font-property string list
#!key size: name: family-name: weight: posture: structure:
proportionate-width: writing-mode:)
フォントリソース内の属性値を返す。引数name ;,引数family-name ;,引数weight ;,引数posture ;,引
数structure : 又は引数proportionate-width : は,流し込みオブジェクトcharacterのfont-を前につけた対応す
る特性と同様にフォントを選択する。引数size : はフォントの大きさを指定する長さであって,特性値の
ISO/IEC 9541-1データ型がREL-RATI0NALの場合に必要となる。引数stringは,属性名を指定する公開識
別子を表す文字列とする。引数listはリストであって,その要素が次のいずれかであるとする。
a) 文字列。
b) 三つの文字列及びオブジェクトから成るリスト。
返す属性値は,次の方法で決定する。最初に,有効な属性リストをフォントリソース属性リストとする。
次に,各引数listの要素ごとに有効属性リストを,その中の入れ子になった属性リストに設定する。
a) 引数listの要素が文字列であれば,有効属性リスト内のその文字列を名前にもつ属性の値の属性リス
トを有効属性リストに設定する。
b) それ以外の場合,有効属性リストから引数リストの第一の文字列と等しい名前をもつ属性を探索する。
その属性値は,属性リストでなければならない。次に有効属性リストを,そのリスト内の属性の値に
設定する。その属性は,名前が引数リストの第二の文字列に等しく,その値が属性リストであって引
数リストの第三の文字列に等しい名前の属性を含み,その属性の値が,引数リストの第四の要素に等
しい。
最後に,有効属性リスト内の名前が引数stringと等しい属性の値が返される。
オプションの引数writing-mode : は,シンボルleft-to-right,シンボルright-to-left及びシンボルtop-to-bottom
のいずれかを値とする。シンボルleft-to-rightの値は,引数listの前に次のリストを置くのと同等である。
("ISO/IEC 9541-1//WRMODES"
165
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
"ISO/IEC 9541-1//WRMODE"
"ISO/IEC 9541-1//WRMODENAME"
"ISO/IEC 9541-1//LEFT-TO-RIGHT" )
他の可能な値についても同様とする。
返すオブジェクトの型は,JIS X 4161で定義する属性値のデータ型によって決定する。
a) データ型BOOLEANの特性については,型booleanのオブジェクトを返す。
b) データ型STRUCTURED-NAMEについては,JIS X 4172の正規表現型を含む文字列を返す。
c) データ型MATCH-STRING又はデータ型MESSAGEについては,文字列を返す。
d) データ型OCTET,データ型INTEGER,データ型CARDINAL又はデータ型CODEについては,数値
を返す。
e) データ型REL-RATIONALについては,フォントサイズを用いて変倍して得られる長さを返す。
f)
データ型ANGLEについては,対応する角度を度数 (degree) で返す。
g) データ型OCTET-STRINGについては,整数リストを返す。
h) 値リスト又は整列値リストについては,それらの要素を変換した結果を含むリストを返す。
その他の値の型は,エラーを発生する。
12.5.8 番地
番地オブジェクトは,ハイパテキストリンクのリンク先として用いる。番地オブジェクトは,一つ以上
のオブジェクトの番地を示す。
(address? obj)
引数objが型addressの場合に#fを返し,その他の場合に#fを返す。
(address-local? address)
引数addressが現文書内に固有のものであれば#tを,その他の場合に#fを返す。
(address-visited? address)
引数addressが訪問済みであれば#tを,その他の場合に#fを返す。
(hytime-linkend)
型addressのオブジェクトを返す。現ノードは,JIS X 4155で定義する体系形式clinkに適合する要素で
なければならない。この番地は,現ノードのリンク端を識別する。
(idref-address string)
引数stringは,一つ以上の空白文字で分離したトークンに分割され,そのトークンの一つを一意識別子
とする要素を表すアドレスを返す。
(current-node-address)
現ノードを示す番地オブジェクトを返す。
(entity-address string)
引数stringは一つ以上の空白文字で分離したトークンに分割され,それらのトークンを名前とする複数
の実体を示す型addressのオブジェクトを返す。
(sgml-document-address string1 string2)
引数string1 はSGML文書のシステム識別子とし,引数string2はSGML文書内の一意識別子とする。
(node-list-address node-list)
引数node-list内のノードを示す番地オブジェクトを返す。この手続きは機能queryを必要とする。
備考 他の番地付け機構を可能にするために,外部手続きを用いてもよい。
166
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
12.5.9 カラー
カラーは,常にカラー空間に基づいて指定しなければならない。
(color-space string arg ...)
型color-spaceのオブジェクトを返す。引数stringは,カラー空間ファミリを識別する公開識別子を指定
する。残りの引数はカラー空間ファミリへのパラメタを指定する。残りの引数の型及び数は,カラー空間
ファミリに依存する。
(color-space? obj)
引数objがカラー空間の場合に#tを返し,その他の場合に#fを返す。
(color color-space arg ...)
手続きcolorは,型colorのオブジェクトを返す。引数color-spaceは,指定するカラーに関連するカラー
空間とする。残りの引数の型及び数は,引数color-spaceが属するカラー空間ファミリに依存する。引数
color-space以外の引数が指定されない場合,引数color-space内の無指定時カラーを返す。
備考 通常は黒となる。
(color? obj)
引数objがカラーの場合に#tを返し,その他の場合に#fを返す。
この規格では,次のカラー空間ファミリを定義する。
a) ISO/IEC 10179 : 1996//Color−Space Family :: Device Gray
b) ISO/IEC 10179 : 1996//Color−Space Family :: Device RGB
c) ISO/IEC 10179 : 1996//Color−Space Family :: Device CMYK
d) ISO/IEC 10179 : 1996//Color−Space Family :: Device KX
e) ISO/IEC 10179 : 1996//Color−Space Family :: CIE LAB
f)
ISO/IEC 10179 : 1996//Color−Space Family :: CIE LUV
g) ISO/IEC 10179 : 1996//Color−Space Family :: CIE Based ABC
h) ISO/IEC 10179 : 1996//Color−Space Family :: CIE Based A
これらの各カラー空間の意味は,JIS X 4154の対応するカラー空間と同じとする。これらのカラー空間
ファミリの一つを最初の引数として指定した場合に,手続きcolor-spaceが必要とする追加の引数は,対応
するJIS X 4154のカラー空間オブジェクトのパラメタによって決定される。JIS X 4154のカラー空間オブ
ジェクトがパラメタをもたない場合,手続きcolor-spaceは追加の引数をとらない。JIS X 4154のカラー空
間オブジェクトが型Dictionaryのパラメタを一つもつ場合,手続きcolor-spaceはその辞書で出現可能な各
キーに対応してキーワード引数を受け付ける。各キーワードの名前は辞書キーの名前から派生し,名前の
先頭以外にあって小文字が後続する各大文字の前にハイフンを挿入し,全体を小文字に対応させることで
得られる。各キーワード引数の型は,対応する辞書値の型によって決定する。
a) ISO/IEC 10180型が数値の場合,引数型は数値となる。
b) ISO/IEC 10180型が手続きの場合,引数型は手続きとなる。
c) ISO/IEC 10180型が数値ベクタへの参照の場合,引数型は同じ長さをもつ数値リストとなる。
d) ISO/IEC 10180型が手続きベクタへの参照の場合,引数型は同じ長さをもつ手続きリストとなる。
第一引数がJIS X 4154で定義するカラー空間ファミリに属するカラー空間の場合,手続きcolorが必要
とする追加の引数の数及び型は,オペレータSetColorがJIS X 4154のカラー空間に対応するカラーを指定
するために必要とする引数の数及び型によって決定される。これらの追加の引数は,すべてキーワード引
数ではなく必す(須)引数とする。これらの型は,ISO/IEC 10180型から手続きcolor-spaceの引数と同じ
167
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
方法で決定される。各カラー空間の無指定時カラーは,対応するJIS X 4154のカラー空間についてオペレ
ータSetColorSpaceの実行直後にもっと定義された値によって決定される。
備考 カラー空間内の手続き引数を伴って指定されたカラーは,手続き引数をもたないカラー空間に
指定されたカラーにデバイス依存した方法で変換してもよい。したがって,JIS X 4154のデバ
イスへの出力を伴うスタイル言語を実装するに当たって,任意の式をJIS X 4154で定義する言
語に翻訳する必要はない。
12.6 流し込みオブジェクトクラス
12.6.1 列流し込みオブジェクトクラス (Sequence)
流し込みオブジェクトクラスsequenceはフォーマットの結果,子が生成する領域を結合したものを生成
する。列流し込みオブジェクトクラスは,単一の主ポートをもつ。その子は,行内又は行外となってよい。
備考 流し込みオブジェクトクラスsequenceは,継承可能特質を指定するのに役立つ。例えば,特質
font-posture : の指定をもつ列流し込みオブジェクトクラスは,段落内の強調句要素のために構
築される場合もある。
流し込みオブジェクトクラスのポートは,ある列流し込みオブジェクトの中のすべての流し込みオブジ
ェクトクラスを受け付ける場合に限って,その列流し込みオブジェクトを受け付ける。
12.6.2 行外グループ流し込みオブジェクトクラス (Display-group)
流し込みオブジェクトクラスdisplay-groupはフォーマットの結果,そのそれぞれの子が生成する領域を
結合したものを生成する。流し込みオブジェクトクラスdisplay-groupは,単一の主ポートをもつ。その子
は,すべて行外でなければならず,それ自体も行外となる。
備考 したがって,段落においてクラスdisplay-groupは,内容がなくても改行を引き起こす。
次の特質を適用可能とする。
a) 特質coalesce-id : は,流し込みオブジェクトの重複を制御する文字列又は#fを指定する。この特質は,
継承されない。無指定時値は,#fとする。同一の特質coalesce-idをもつ複数の流し込みオブジェクト
の領域が,段集合領域の同一の区域top-float,区域bottom-float又は区域footnoteに流し込まれる場合,
二番目以降の流し込みオブジェクトによる領域は捨てられる。#f以外の値は,段集合の区域top-float,
区域bottom-float又は区域footnoteに流し込まれる場合に限り許される。
b) 特質position-preference : は,#f,シンボルtop又はシンボルbottomを値とする。この特質は流し込み
オブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の区域
top-float及び区域bottom-floatの両方に流し込まれるポートに向けられる場合に,この流し込みオブジ
ェクトからの領域を,指定した区域だけに流し込むか,そのような制限を行わないかを指定する。こ
の特質は継承しない。無指定時値は,#fとする。
c) 特質space-before : は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって
生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,
空きを挿入しない。
d) 特質space-after : は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって
生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,
空きを挿入しない。
e) 特質keep-with-previous? : は,型booleanであって,流し込みオブジェクトの直前の流し込みオブジェ
クトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。
f)
特質keep-with-next? : は,型booleanであって,流し込みオブジェクトの直後の流し込みオブジェクト
168
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
と同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。
g) 特質break-before : は,#fシンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
h) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
i)
特質keep : には,次のいずれかを指定する。
1) 値#tは,この流し込みオブジェクトから生成する領域を,可能な最も小さい領域内で一緒に保持す
ることを意味する。
2) シンボルpageは,流し込みオブジェクトから生成する領域を,同じページ内に配置することを示す。
この場合,流し込みオブジェクトは,流し込みオブジェクトpage-sequenceの先祖をもたなければな
らない。
3) シンボルcolumn-setは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置すること
を示す。この場合,流し込みオブジェクトは,流し込みオブジェクトcolumn-set-sequenceの先祖を
もたなければならない。
4) シンボルcolumnは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置し,それぞれ
の領域が抜く最初の段を同じにすることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
j)
特質 may-violate-keep-before? : は,型booleanとする。値が真の場合,先祖の流し込みオブジェクト
の特質keep : によってなされた,この流し込みオブジェクト及び直前の流し込みオブジェクトの相対
位置決めに関する制約を考慮してはならないことを指定する。この特質は継承しない。無指定時値は
#fとする。
k) 特質may-violate-keep-after? : は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの
特質keep : によってなされた,この流し込みオブジェクト及び直後の流し込みオブジェクトの相対位
置決めに関する制約を考慮してはならないことを指定する。この特質は継承しない。無指定時値は#f
とする。
12.6.3 単純ページ流し込みオブジェクトクラス (simple-page-sequenoe)
この12.6.3の機能は,機能simple-pageを必要とする。
流し込みオブジェクトクラスslmple-page-sequenceは,フォーマットの結果としてページ領域列を生成す
る。クラスsimple-page-sequenceの流し込みオブジェクトの主ポートは,すべての行外流し込みオブジェク
トを受け付ける。
備考 流し込みオブジェクトsimple-page-sequenceは,非常に単純なページレイアウト機能を提供した
い処理系のために用意されている。より複雑なページレイアウトは,流し込みオブジェクト
page-sequence及び流し込みオブジェクトcolumn-set-sequenceによって利用できる。
流し込みオブジェクトsimple-page-sequenceは,他のすべての流し込みオブジェクトクラスの内容として
現れてはならない。流し込みオブジェクトsimple-page-sequenceは,ページ番号を除き固定のテキストを含
む1行だけのヘッダ及びフッタをもってよい。
備考 文書は,複数の流し込みオブジェクトsimple-page-sequencesを含むことができる。例えば,文
169
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
書の各章が別の流し込みオブジェクトsimple-page-sequencesにしてよい。この方法を用いるこ
とによって,ヘッダ行又はフッタ行に章のタイトルを置くことができる。
ページは,上から下に流し込む。流し込みオブジェクトsimple-page-sequenceの内容の特質display-size
は,特質page-width : の値から特質left-margin : の値及び特質right-margin : の値を引いたものとなる。
流し込みオブジェクトsimple-page-sequenceは,次の特質をもつ。
a) 特質page-width : は,型lengthであってページの全体の幅を指定する。初期値は処理系依存とする。
b) 特質page-height : は,型lengthであってページの全体の高さを指定する。初期値は処理系依存とする。
c) 特質left-margin : は,型lengthであって左余白を指定する。初期値は0ptとする。
d) 特質right-margin : は,型lengthであって右余白を指定する長さとする。初期値は0ptとする。
e) 特質top-margin : は,型lengthであってページの上からクラスsimple-page-sequenceの内容を流し込む
領域コンテナの上辺までの距離を指定する。初期値は0ptとする。
備考 ヘッダ行は,上余白内に置かれる。
f)
特質bottom-margin : は,型lengthであってページの下からクラスsimple-page-sequenceの内容を流し
込む領域コンテナの下辺までの距離を指定する。初期値は0ptとする。
備考 フッタ行は,下余白の中に置かれる。
g) 特質header-margin : は,型lengthであってページの上からヘッダ行のための配置パスまでの距離を指
定する。初期値は0ptとする。
h) 特質footer-margin : は,型lengthであってページの下からフッタ行のための配置パスまでの距離を指
定する。初期値は0ptとする。
i)
特質left-header : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトで
あって,ヘッダ行においてページの左余白に寄せられる。この特質は継承されない。無指定時値は,
空の型sosofoのオブジェクトとする。
j)
特質center-header : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクト
であって,ヘッダ行においてページの左マージンと右マージンの間の中央に置かれる。この特質は継
承されない。無指定時値は,空の型sosofoのオブジェクトとする。
k) 特質right-header : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトで
あって,ヘッダ行においてページの右余白に寄せられる。この特質は継承されない。無指定時値は,
空の型sosofoのオブジェクトとする。
l)
特質left-footer : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであ
って,フッタ行においてページの左余白に寄せられる。この特質は継承されない。無指定時値は,空
の型sosofoのオブジェクトとする。
m) 特質center-footer : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクト
であって,フッタ行においてページの左余白と右余白との間の中央に置かれる。この特質は継承され
ない。無指定時値は,空の型sosofoのオブジェクトとする。
n) 特質right-footer : は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトで
あって,フッタ行においてページの右余白に寄せられる。この特質は継承されない。無指定時値は,
空の型sosofoのオブジェクトとする。
o) 特質writing-mode : はシンボルであって,left-to-right又はright-to-leftのいずれかを値とする。これは,
ヘッダ行及びフッタ行の表記方向を決める。初期値はleft-to-rightとする。
(page-number-sosofo)
170
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
間接sosofoを返す。その内容は,流し込みオブジェクトcharacterの列であって,間接sosofoによって指
定された間接流し込みオブジェクトから生成された領域が出現するページのページ番号を示す流し込みオ
ブジェクトcharacterの列とする。
(current-node-page-number-sosofo)
間接sosofoを返す。その内容は,現ノードの主流し込みオブジェクトのページ番号を示す流し込みオブ
ジェクトcharacterの列とする。
備考 これは,手続きprocess-element-with-idと併せて使用して,相互参照を扱うために用意されてい
る。
12.6.4 ページ列流し込みオブジェクトクラス (page-sequence)
クラスpage-sequenceの流し込みオブジェクトはフォーマットの結果,ページ領域の列を生成する。ペー
ジ領域の構造及び配置は,ページモデルによって制御される。クラスpage-sequenceの流し込みオブジェク
トは,次の特質をもつ。
a) 特質inintial-page-models : は,初期ページのために使用するページモデルのリストとする。初期値は
空のリストとする。
b) 特質repeat-page-models : は,初期ページの後のページのために使用するページモデルのリストとする。
c) 特質force-last-page : は,#f,シンボルfront又はシンボルbackのいずれかを値とし,ページ列の最後
のページに要求される型を指定する。最後のページが要求された型でない場合,追加の空白ページが
生成される。#fの値は,最後のページがどちらの型でもかまわないことを示す。初期値は#fとする。
d) 特質force-first-page : は,#f,シンボルfront又はシンボルbackのいずれかを値とし,ページ列の最初
のページに要求される型を指定する。値が#fでない場合,親の流し込みオブジェクトは流し込みオブ
ジェクト木の根でなければならず,直前に流し込みオブジェクトがある場合,それはpaeg-sequence
型でなければならない。直前のページ列において特質force-last-page : の値が#fでない場合,この特質
の指定値と反対の型でなければならない。直前のpage-sequenceの最後のページがこの特質として指定
された値と反対の型でなければ,直前のpage-sequenceは追加の空白ページを生成しなければならない。
直前に流し込みオブジェクトがなく,値が#fではない場合,最初のページの指定された型が特質
first-page-type : によって判別される実際の型ではなければ,誤りとする。初期値は#fとする。
e) 特質first-page-type : は,シンボルfront,シンボルback又はシンボルparentのいずれかを値とする。
シンボルfront及びシンボルbackは,流し込みオブジェクトpage-sequenceの最初のページが,表ペー
ジか裏ページかを指定し,シンボルparentは,最初のページの型が親の流し込みオブジェクトによっ
て判定されることを示す。初期値はシンボルparentとする。シンボルparentの値は,親の流し込みオ
ブジェクトが根流し込みオブジェクトである場合にだけ許される。この場合,直前の流し込みオブジ
ェクトがあれば,それは流し込みオブジェクトpage-sequenceでなければならず,直前の流し込みオブ
ジェクトpage-sequenceの最後のページがbackページ(frontページ)であれば,最初のページはfront
ページ(backページ)となる。直前に流し込みオブジェクトがない場合,最初のページはfrontペー
ジでなければならない。この特質は追加ページの生成を引き起こさない。これは,単にこのページが
印刷され製本されるときに,特定の型となることを示すにすぎない。特質force-first-page : が#fでな
ければ,値はparentでなければならない。
備考 この情報は,ページのどのページ対が見開きとなるかを判別することを可能にする。
f)
特質blank-back-page-model : は,最後のページがbackページであって,特質force-last-page : 又は特質
force-first-page : が要求する場合にだけ,そのページに使用するページモデルとする。特質の値が#f
171
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の場合,通常のページモデルを最後のページにも使用する。初期値は#fとする。
g) 特質blank-front-page-model : は最後のページがfrontページで,特質force-last-page : 又は特質
force-first-page : が要求する場合にだけ,そのページに使用するページモデルとする。特質の値が#f
の場合,通常のページモデルを最後のページにも使用する。初期値は#fとする。
h) 特質justify-spread? : は,見開きの各ページの下辺の調整を指定する型booleanのオブジェクトとする。
i)
特質page-category : は,この流し込みオブジェクトpage-sequenceの結果となるページ領域のカテゴリ
を指定する。これは,手続きequal?が定義されている任意の式言語オブジェクトであってよい。領域
のカテゴリは,12.5.1.2に定義する手続きが使用する。
j)
特質binding-edge : は,シンボルleft,シンボルright,シンボルtop又はシンボルbottomの一つであっ
て,綴じられるfrontページの端を指定する。これは,ページの辺が内側(外側)になるか否かに影響
する。初期値はleftとする。
流し込みオブジェクトpage-sequenceによって生成されるすべてのページは,そのページに対応してペー
ジモデルをもつ。
流し込みオブジェクトpage-sequenceのポートは,ページモデルによって決まる。
12.6.4.1 ページモデル (page-model)
型page-modelは,領域の可能な階層の集合の指定とする。
(page-model? obj)
引数objが,型page-modelであれば#tを返し,その他の場合#fを返す。
[188] page-model-definition=
(define-page-model page-model-name
[[page-region-specification+ | width-specification | height-specification | filling- direction-specification? |
decoration-specification*]])
[189] page-model-name=variable
構文define-page-modelは,型page-modelのオブジェクトを構文page-model-nameで指定した識別子
page-model-nameに束縛する。
最上位の領域は,ページ領域とする。ページ領域は,ページ区画 (page-region) と呼ぶ複数の部分領域
を含む。ページ領域のレイアウトの順序は,構文page-model-definitionにおける指定順序に対応する。ペー
ジ区画は,重なりがあってもよい。
[190] page-region-specification=
(region
[[x-origin-specification
|
y-origin-specification
|
width-specification
|
height-specification
|
decoration-specification* | filling-direction-specification? | header-specification? | footer-specification? |
page-region-flow-map?]])
構文page-region-specificationは,固定の座標軸をもつ領域コンテナを指定する。領域コンテナは,流し
込みの結果ページ区画を生成する。各ページ区画は,単一の支配的流し込み方向をもつ。
備考 流し込みオブジェクトincluded-container-areaは,異なる流し込み方向を使用してよい。
図15に示すように,複数のpage-regionを使って,同じページで異なる配置方向で行外領域をもつこと
が可能となる。
172
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図15 単一ページにおける複数の流し込み方向
[191] page-region-flow-map= (flow port-specifier+)
構文page-region-flow-mapは,節port-specifiersで識別するポートに向けられた流し込みオブジェクトを
フォーマットすることによって得られる領域が,このページ区画に割り当てられる可能性のあることを指
定する。
構文page-region-flow-mapがない場合, (flow #f) を無指定時解釈とする。
識別子port-specifierが,構文page-model-definitionの中の構文page-region-specificationの中の複数の構文
page-region-flow-map内に現れる場合,構文page-region-specificationが構文page-model-definition中に現れる
順序でページ区画に流し込まれる。
[192] port-specifier=identifier | #f
節port-specifierは識別子であって,名前でポートを指定する。#fの値は,主ポートを指定する。
[193] header-specification= (header generated-area-clauses)
構文header-specificationは,ページ区画又は段の最初に生成される領域を指定する。
[194] footer-specification= (footer generated-area-clauses)
構文footer-specificationは,ページ区画又は段の最後に生成される領域を指定する。
[195] generated-area-clauses=
[[height-specification?
|
width-specification?
|
filling-direction-specification?
|
173
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
contents-alignment-specification? | generate-specification]]
構文generated-area-clausesは,間接sosofoによって生成する領域を指定する。
[196] generate-specification= (generate expression)
式expressionは評価の結果,名前無しの型sosofoのオブジェクトになり,行外流し込みオブジェクトだ
けを指定する。
[197] x-origin-specification= (x-origin expression)
式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの
起点のx座標を指定する。
[198] y-origin-specification= (y-origin expression)
式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの
起点のy座標を指定する。
[199] width-specification= (width expression)
式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの
幅(xの正方向の大きさ)を指定する。
[200] height-specification= (height expression)
式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの
高さ(yの正方向の大きさ)を指定する。
[201] decoration-specification=(decorate expression)
式expressionは評価の結果,オブジェクトdecoration-areaとなる。この指定をもつ領域は,12.5.3で規定
するとおりオブジェクトによって装飾される。
[202] filling-direction-specification= (filling-direction expression)
式expressionは評価の結果,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのい
ずれか一つになり,領域コンテナの流し込み方向を指定する。
流し込み方向が構文page-regionで指定されない場合,構文page-modelから継承される。構文page-region
及び構文page-modelの両方にその指定がない場合,エラーとする。
[203] contents-alignment-specification= (contents-alignment expression)
式expressionは評価の結果,シンボルstart,シンボルend,シンボルcenter又はシンボルjustifyのいずれ
か一つになり,領域コンテナ内の子領域のそろえを領域コンテナの流し込み方向で指定する。無指定時値
はシンボルstartとする。
12.6.5 段集合列流し込みオブジェクトクラス (column-set-sequence)
流し込みオブジェクトcolumn-set-sequenceはフォーマットの結果,領域column-setの列を生成する。領
域column-setは行外領域とする。領域column-setは,領域コンテナを生成し,そこに流し込むことによっ
て生成される。領域column-setは,平行な段の集合を含む。通常,領域column-setは,ページ区画に流し
込む,他の領域column-setに流し込んでもよい。それぞれの領域column-setの構造及び位置決めは,それ
が適合する型column-set-modelのモデルによって制御する。流し込みオブジェクトcolumn-set-sequenceは,
常に行外となる。
流し込みオブジェクトcolumn-set-sequenceは,次の特質をもつ。
a) 特質column-set-model-map : は,第一の要素に型page-modelのオブジェクトを,第二の要素に流し込
みオブジェクトcolumn-set-modelをもつリストのリストとする。この流し込みオブジェクト
column-set-sequenceの流し込まれた領域が,ページ区画を型とする最も近い先祖をもち,そのページ
174
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
区画が要素リストの第一の要素のページモデルを指定している場合に,要素リストの第二の要素を段
集合モデルとして用いることを指定する。初期値は空のlistとする。
b) 特質column-set-model : は,型column-set-modelのオブジェクト又は#fを値とする。段集合モデルの場
合,特質column-set-model-map : 内に指定された段集合モデルが適用できない場合に使用する無指定
時の段集合とする。#fの場合,無指定時モデルはないと解釈する。値として#fを指定した場合に,特
質column-set-model-map : の値に含まれないページモデルのページ区画への結果領域の配置はエラー
となる。初期値は#fとする。
c) 特質position-preference : は,シンボルtop,シンボルbottom,column-set-model : は,型column-set-model
のオブジェクト又又は#fを値とする。この特質は流し込みオブジェクトを,流し込みオブジェクト
column-set-sequenc特質column-set-model-map : 内に指定された段集合モデルが適e上において,段部
分集合の区域top-float及び区域bottom-floatの両方に流し込むポートに附属する場集合とする。#fの
場合,無指定時モデルはないと解釈する。合に,その流し込みオブジェクトが生成する領域を,指定
した区域だけに流し込むか,そのような制限n-set-model-map : の値に含まれないページモデルのペー
ジ区を行わないかを指定する。この特質は継承しない。無指定時値は,#fとする。初期値は#fとする。
d) 特質span : は,正の整数であって,この流し込みオブジェクトposition-preference : は,シンボルtop,
シンボルbottom,又はの生成する領域が行う段抜きの数を指定する。この特質は,流し込みオブジェ
クトが,抜くことのできる段部分集合の上部浮動区域,下部浮動区域又は本文区域に流れ込む,段集
合列のポートに向けられた場合だけ適用する。初期値は1とする。
e) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことのできる段部分集合の上部浮動区域,下部浮動区域又は本文域に流れ
込む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fと
する。
f)
特質space-before : は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって
生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,
空きを挿入しない。
g) 特質space-after : は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって
生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,
空きを挿入しない。
h) 特質keep-with-previous? : は,型booleanであって,流し込みオブジェクトの直前の流し込みオブジェ
クトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。
i)
特質keep-with-next? : は,型booleanであって,流し込みオブジェクトの直後の流し込みオブジェクト
と同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。
j)
特質break-before : は,シンボルpage,シンボルpage-region,シンボルcolumn,シンボルcolumn-set
又は#fのいずれかを値とする。値が#f以外の場合,流し込みオブジェクトがその種別の領域を開始す
ることを指定する。この特質は継承しない。無指定時は#fとする。
k) 特質break-after : は,シンボルpage,シンボルpage-region,シンボルcolumn,シンボルcolumn-set又
は#fのいずれかを値とする。値が#f以外の場合,流し込みオブジェクトがその種別の領域を終了する
かを指定する。この特質は継承しない。無指定時は#fとする。
l)
特質keep : は,次のいずれかを指定する。
175
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
1) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持され
ることを意味する。
2) シンボルpageは,流し込みオブジェクトから生成する領域を,同じページ内に配置することを示す。
この場合,流し込みオブジェクトは,流し込みオブジェクトpage-sequenceの先祖をもたなければな
らない。
3) シンボルcolumn-setは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置すること
を示す。この場合,流し込みオブジェクトは,流し込みオブジェクトcolumn-set-sequenceの先祖を
もたなければならない。
4) シンボルcolumnは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置し,それぞれ
の領域が抜く最初の段を同じにすることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
m) 特質may-violate-keep-before? : は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの
特質keep : によってなされた,この流し込みオブジェクト及び直前の流し込みオブジェクトの相対位
置決めに関する制約を考慮してはならないことを指定する。この特質は継承しない。無指定時値は#f
とする。
n) 特質may-violate-keep-after? : は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの
特質keep : によってなされた,この流し込みオブジェクト及び直後の流し込みオブジェクトの相対位
置決めに関する制約を考慮してはならないことを指定する。この特質は継承しない。無指定時値は#f
とする。
流し込みオブジェクトcolumn-set-sequenceは,その段集合モデルが含む構文column-subest-flow-map内に
列挙した各ポートをもつ。
12.6.5.1 段集合モデル (column-set-model)
段集合モデルは,それぞれの段集合に対して可能な階層を指定する。段集合及び段部分集合の可能な段
構成の例については,図16及び図17を参照のこと。
176
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図16 段部分集合の例
177
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図17 段部分集合の別の例
階層における最上位レベルの領域は,段集合領域とする。段集合領域は,流し込み方向をもたなければ
ならない。構文column-set-model-definitionが,構文filling-direction-specificationをもたない場合,親領域の
流し込み方向を使用する。段集合領域の大きさは,流し込み方向に対して直交する方向では固定となる。
構文width-specification又は構文height-specificationを用いて,大きさを固定できる。それは,その領域の
配置方向(親領域の流し込み方向)に対して直交する方向も固定となることによる。流し込み方向の段集
合領域の大きさは固定してもよく,その中に流し込まれる領域に応じて伸縮してもよい。
段集合を生成する領域コンテナは,通常の領域コンテナよりも複雑な方法で流し込みが行われる。領域
は,幾つもの異なる制約を満たす方法で段集合内に配置される。
最も基本的な制約は,領域は重なり合ってはならないとする。この制約は,修飾領域には適用されない。
段集合領域に配置された領域上で定義された部分的な順序がある。これをレイアウト順と呼ぶ。
備考 レイアウト順は,領域を読む順序に対応する。
領域コンテナの充てん(填)に関する基本的な制約は,段集合領域コンテナに配置される二つの領域が
同じストリームから出てくる場合,そのレイアウト順がストリームの順序と同じに配置されなければなら
ない。段集合領域は,流し込み方向と平行な方向に幾何学的に分割され,複数の段になる。
備考 領域がある方向に分割されるという場合,分割線がその方向に向いており,その分割線に沿っ
て分割を行うことを意味する。
178
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
段は,領域コンテナではない。各段は,流し込み方向に垂直な方向に対して固定された広がりをもつ。
各段は,正確に一つの段部分集合のメンバとする。段のレイアウト順は,構文column-subsetの構文
column-specificationの順序とする。異なる段集合中の段の間で定義されるレイアウト順はない。
備考 このため,レイアウト順は半順序となる。
図18 複数の段部分集合
段部分集合は,段部分集合における段が幾何学的に他の連続する二つの段の間になければ,段抜き可能
として定義される。例として,図19を参照のこと。
179
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図19 段抜き不可の段部分集合
段集合領域に配置されるそれぞれの領域は,単一の段部分集合に関連付けられている。段集合領域の流
し込み方向がシンボルtop-to-bottomの場合,段集合領域に配置されるそれぞれの領域は,段部分集合の中
の段の左端にその左端がそろえられ,同じ段部分集合の中の段の右端にその右端がそろえられる方法で配
置されなければならない。段集合領域の流し込み方向が,シンボルleft-to-right又はシンボルright-to-left
の場合,段部分集合の中の段の上端にその上端がそろえられ,同じ段部分集合の中の段の下端にその下端
がそろえられる方法で配置する。領域は,段部分集合が段抜き可能な場合だけ複数の段を抜いてよい。領
域が抜く段部分集合中の段の数は,その領域が出てきた流し込みオブジェクトの特質span : の値と等しく
なければならない。
段集合領域に配置される領域は,流し込み方向に垂直な方向における大きさが,要求された数の段を正
確に抜くだけの大きさになる方法で生成されなければならない。言い換えれば,領域の行外サイズは,段
抜きの対象となる最初の段の片方の端から最後の段の反対方向の端までの間隔と等しくなければならない。
備考 これは,領域コンテナに配置される領域は,その領域の配置方向に垂直な方向の大きさを,領
域コンテナの流し込み方向に垂直な方向の大きさと等しくして生成する一般原則に対する例外
とする。
段集合領域に配置されるそれぞれの領域は,区域でラベル付けが行われる。この区域は,他の領域に相
対的な配置を制約する。許可された区域は,上部浮動区域(区域top-float),本文テキスト区域(区域
body-text),下部浮動区域(区域bottom-float)及び脚注区域(区域footnote)とする。一つの区域でラベル
付けられた領域は,このリストの後に出てくる区域でラベル付けられた領域よりも,流し込み方向で先に
出現しなければならない。ただし,両方の領域で段抜きされる段がない場合は除く。例を図20に示す。
180
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
図20 段集合領域
区域footnoteとラベル付けられた領域は,正確に一つの段を抜かなければならない。
備考 複数段における(すべての段にまたがる)全体幅をもつ脚注は,入れ子の段集合
(nested-column-set) を使用して実現できる。
複数の段を抜く領域は,その領域が出てきた流し込みオブジェクトの特質span-weak? : の値に応じて弱
い段抜き又は強い段抜きを行う。強い段抜きを行う領域は,レイアウト順において次に示す領域の後にく
る。
a) その領域と同じ段部分集合にある領域。
b) 流し込み方向で幾何学的にその領域の前にくる領域。
c) その領域の段抜きに完全に含まれる段抜きをもつ領域。
d) その領域と同じ区域でラベル付けられた領域。
弱く複数の段を抜く領域は,レイアウト順において,それが段抜きする最初の段だけを占めた場合に前
にくることになる領域の後に続くと定義される。
二つ以上の段部分集合を結合することもある。結合した段部分集合は,同じ数の段をもっていなければ
ならない。領域が,複数の段部分集合を強く抜く場合に,その段部分集合と結合したそれぞれの段部分集
181
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
合のレイアウト順は,あたかも空の領域が生成され,段を抜く領域と流し込み方向において同じ位置,同
じ大きさで配置され,結合した段階集合の対応する段を抜くかのように修正されなければならない。この
領域は,段を抜く領域と重なることができる。
備考 傍注を含む段の列は,通常その傍注が参照するテキストを含む段の列と結合している。
段を抜く領域が,結合した段集合内の段抜きを行わない領域と手続きside-syncを使用して同期を取る場
合,次の条件を満たす結んだ段副集合の最初の段に配置されなければならない。
a) 他の段部分集合においてそれに対応する段は,その領域によって段抜きされている。
b) その領域は,段抜きを行う領域によって覆われていない。
[204] column-set-model-definition= (define-column-set-model variable
[[column-subset-specification*
|
fill-out-specification?
|
tied-column-subset-specification*
|
filling-direction-specification? | width-specification? | height-specification? | decoration-specification*]])
構文column-set-model-definitionは,変数variableを型column-set-modelのオブジェクトと定義する。
(column-set-model? obj)
引数objが,型column-set-modelであれば#tを,その他の場合に#fを返す。
[205] fill-out-specification= (fill-out expression)
式expressionは,評価の結果として型booleanのオブジェクトとなる。その値が,#tの場合,各段集合領
域は,配置する領域が許可する最大の大きさまで,流し込み方向において流し込みされる。
[206] column-subset-specification=
(column-subset
[[column-specification+
|
column-subset-flow-map
|
top-float-space-below-specification?
|
bottom-float-space-above-specification?
|
balance-specification?
|
justify-specification?
|
justify-limit-specification?
|
justify-last-limit-specification?
|
length-deviation-specification?
|
length-decrease-order-specification? | align-lines-specification?]])
構文column-set-modelの各構文column-subsetにおいて,指定column-subset-specificationが必要となる。
[207] column-subset-flow-map= (flow ((port-specifier zone-name+))+)
[208] zone-name=top-float | body-text | bottom-float | footnote
構文column-subset-flow-mapは,節port-specifierに流し込まれた流し込みオブジェクトからの結果領域が,
節zone-nameで指定した名前のいずれかを値とするラベルをもつことを指定する。一つの節port-specifier
に,複数の節zone-nameを指定できるのは,節zone-nameに指定する値がシンボルtop-float及びシンボル
bottom-floatの場合だけとする。
[209] top-float-space-below-specification= (top-float-space-below expression)
式expressionは,評価の結果として,追加する空きの大きさを指定する型display-spaceのオブジェクト
になる。区域top-floatの領域によって段抜きされる流し込みオブジェクトcolumn-setのそれぞれの段に対
して,指定された大きさの空きは,その段を抜き区域top-floatの中にあるすべての領域の直後に追加され
なければならない。
[210] bottom-float-space-above-specification= (botttom-float-space-above expression)
式expressionは,評価の結果として,追加する空きの大きさを指定する型display-spaceのオブジェクト
になる。区域bottom-floatの領域によって段抜きされる流し込みオブジェクトcolumn-setのそれぞれの段に
対して,指定された大きさの空きは,その段を抜き区域bottom-floatの中にあるすべての領域の直前に追加
182
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
されなければならない。
[211] balance-specification= (balance? expression)
式expressionは,評価の結果として,型booleanのオブジェクトとなる。値#tは,その段集合列が生成す
る最後の段集合内の段部分集合が釣り合うことを示す。値#fは,釣り合わないことを示す。段部分集合が
釣り合う場合,段部分集合内のすべての段に均等に空きが割り振られなければならない。段部分集合が平
衡終了しない場合,逆の順序で段に割り振られなければならない。段部分集合においての無指定時値は,
#fとする。
[212] justify-specification= (justify? expression)
式expressionは評価の結果として,段部分集合の両端そろえを指定する型booleanのオブジェクトとなる。
段部分集合を両端そろえしない場合,余った空きは,その行外領域内で指定された許容空きの最大最小値
に従い,段部分集合内の領域の前後に分配される。両端そろえする場合は,すべての余った空きは,それ
ぞれの段の最後に分配される。無指定時値は,#fとする。段部分集合は,構文fill-out-specificationにおい
て段集合への最大の大きさの流し込みを指定している場合だけ,両端そろえをしてよい。
[213] justify-limit-specification= (justify-limit expression)
式expressionは,評価の結果0から100までの間の数値となる。段における余った空きの量を段の総量
に対するパーセント値で表したものであって,ここで指定した値を超える場合,段は両端そろえされない。
無指定時値は100とする。
[214] justify-last-limit-specification= (justify-last-limit expression)
式expressionは,評価の結果0から100までの間の数値となる。段集合列内の最後の段集合内の段にお
ける余った空きの量を段の総量に対するパーセント値で表したものであって,この式が返す数値を超える
場合,段は両端そろえされない。無指定時値は0とする。
[215] length-deviation-specification= (length-deviation expression)
式expressionは,評価の結果正の型lengthのオブジェクトとなる。段部分集合が両端そろえされるか又
は釣り合う場合に,段の長さは,この量を上限として異なる場合がある。
[216] length-decrease-order-specification= (length-decrease-order expression)
式expressionは,評価の結果,次のいずれかの値をとる。
a) シンボルforward。複数の段を比較した場合に,順方向に進むにつれ,その長さが増加しないと指定す
る。
b) シンボルbackward。複数の段を比較した場合に,逆方向に進むにつれ,その長さが増加しないと指定
する。#fは,段の長さの相対関係に追加の制約はないことを意味する。
[217] align-lines-specification= (align-lines? expression)
式expressionは,型booleanのオブジェクトであって,真の場合,余った空きを分配の際に,複数の段の
行をそろえることを指定する。
[218] column-specification=
(column
[[width-specification? | height-specification? | x-origin-specification? | y-origin-specification? |
footnote-separator-specification? | header-specification? | footer-specification?]])
段集合の流し込み方向が,シンボルtop-to-bottomの場合,構文column-specificationは,構文
width-specification及び構文x-origin-specificationを含む必要がある。段集合の流し込み方向が,シンボル
right-to-left又はシンボルleft-to-rightの場合,構文column-specificationは,構文height-specification及び構文
183
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
y-origin-specificationを含む必要がある。これらの指定は段の幾何学的情報を提供する。
[219] footnote-separator-specification= (footnote-separator generated-area-clauses)
構文footnote-separator-specificationは,脚注区域が領域を含む場合に,脚注区域の領域の直前に生成され
る領域を指定する。
[220] tied-column-subset-specification= (tie column-subset-specification column-subset-specification+)
構文tied-column-subset-specificationは,結合する二つ以上の段部分集合を指定する。図18を参照。
備考 これは,例えば傍注とともに指定される場合がある。
12.6.6 段落流し込みオブジェクト (Paragraph)
流し込みオブジェクトparagraphは,段落を表現する。これは,単一の主要ポートをもつ。このポートの
内容は,行内又は行外のいずれであってもよい。行内流し込みオブジェクトは,フォーマットの結果行領
域を生成し,行外流し込みオブジェクトは暗黙のうちにページ分割を行い,その領域を結果領域の列に加
える。流し込みオブジェクトparagraphは,行外だけとする。
備考 普通,分割は新しい行が始まることを意味する。
次の特質を適用可能とする。
a) 特質lines : は,シンボルとする。シンボルは,段落の内容がどのように分割して行にするかを指定す
る。指定可能な値は次のとおり。
1) シンボルwrap。利用可能な空きに合わせて行を分割することを指定する。
2) シンボルasis。特質record-end? : が真の流し込みオブジェクトcharacterの後でだけ,行を分割する
ことを指定する。
3) シンボルasis-wrap。特質record-end? : が真の流し込みオブジェクトcharacterの後で行を分割し,さ
らに必要に応じて利用可能な空きに合わせて分割することを指定する。
4) シンボルasis-truncate。特質record-end? : が真の流し込みオブジェクトcharacterの後でだけ行を分割
し,利用可能な空きに合わない行は切り捨てることを指定する。
5) シンボルnone。行を全く分割しないことを指定する。
備考 機能table-auto-widthが利用可能で,段の幅がセルの内容が単一の行に合うのに十分なほど広く
される場合に,表の中で使えば便利である。
すべての場合において,特質break-before : 又は特質break-after : で明示的に指定された箇所
での行分割を許可する。初期値はシンボルwrapとする。
b) 特質asis-truncate-char : は,型charのオブジェクト又は#f。特質lines : の値がシンボルasis-truncateを
もち,行を切り捨てる場合に行末に挿入するグリフを指定する。初期値は,#fとする。
c) 特質asis-wrap-char : は,型charのオブジェクト又は#fとする。特質lines : がシンボルasis-wrapをも
ち,特質record-end? : が真をもち,流し込みオブジェクトcharacterの後以外で行が分割される場合に,
行末に挿入されるグリフを決める。初期値は,#fとする。
d) 特質asis-wrap-indent : は,型length-specのオブジェクトとする。特質lines : が値asis-wrapをもち,
特質record-end? : が真の流し込みオブジェクトcharacterの後以外で行を分割する場合に,次の行に対
してstart-indentに加えられるインデントを指定する。初期値は,0ptとする。
e) 特質first-line-align : は,#f,#t又はcharオブジェクトのいずれかとする。#fではない場合,段落の最
初の行においては,特質quadding : 及び特質last-line-quadding : を無視して,その行のそろえ点を使
用してそろえる。値がcharオブジェクトの場合,その行内に出現する流し込みオブジェクトcharacter
であって,特質char : の値がこの特質の値と同一のものが生成する最初の領域を位置決め点とする。
184
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
その他の場合,そろえ点は,その行の最初の流し込みオブジェクトのそろえ点位置とする。特質
alignment-point-offset : が#fではない場合,段落の最初の行は,行頭からそろえ点までの距離が,行長
(つまり,行外サイズから最初と最後の字下げを引いたもの)に対して百分率で特質
alignment-point-offset : の値と等しくなるようにそろえされなければならない。特質
alignment-point-offset : が#fの場合,その段落は外部的にそろえられた段落とし,流し込みオブジェク
トtable-cell又は流し込みオブジェクトaligned-columnの祖先をもたなければならない。さらに,この
段落からの領域が配置される領域コンテナは,祖先からの領域が配置される領域コンテナと同一でな
ければならない。この場合,段落はそろえ点が流し込みオブジェクトtable-column又は流し込みオブ
ジェクトaligned-column内の他の段落と一緒にそろえられるようそろえられなければならない。外部
的にそろえられた段落がtable-cell中に発生する場合,機能table-auto-widthが有効になっていなければ
ならない。初期値は#fとする。
f)
特質alignment-point-offset : は,型numberのオブジェクト又は#fとする。そろえ点の前の行長(つま
り,行外サイズから最初と最後の字下げを引いたもの)を百分率で指定する0〜100の間の数とする。
初期値は50とする。
g) 特質ignore-record-end? : は,型booleanのオブジェクトとする。文字REの無視を指定する。この特質
が真の場合,特性record-end?が真の文字を無視する。初期値は#fとする。
h) 特質expand-tabs? : は,0を含む正の整数又は#fとする。正の整数は,タブ間隔を指定する。タブ間隔
を指定した場合,特質input-tab? : が真の流し込みオブジェクトcharacterをタブ文字として扱う。タブ
文字は,直前の文字REの流し込みオブジェクトに続く文字数に加えてタブ間隔の正の整数倍になる
数の空白文字と同じに扱う。初期値は8とする。
i)
特質line-spacing : は,型length-specのオブジェクト。12.6.6.1に示すとおり,段落内の行の配置パス
間の通常の空きを指定する。初期値は,12ptとする。
j)
特質line-spacing-priority : は,整数又はシンボルforceとする。これらの値は,行の前の条件付き空き
の優先度を指定する。整数は,手続きdisplay-spaceの引数priority : と同じ方法で解釈する。初期値は,
0とする。
k) 特質min-pre-line-spacing : は,型length-specのオブジェクト又は#fとする。型length-specのオブジェ
クトは,12.6.6.1の記載とおり,流し込み方向とは反対方向への行の最小サイズを指定する。値#fは,
値が段落のフォントから判断することを指定する。初期値は#fとする。
l)
特質min-post-line-spacing : は,型length-specのオブジェクト又は#fとする。型length-specのオブジェ
クトは,12.6.6.1の記載とおり,流し込み方向への行の最小サイズを指定する。値#fは,値が段落の
フォントから判断することを指定する。初期値は#fとする。
m) 特質min-leading : は,型length-specのオブジェクト又は#fとする。型1ength-specのオブジェクトは,
12.6.6.1の記載とおり,流し込み方向における行領域の間の最小空きを指定する。値#fは,行間空き
を自動的に調整し,行の内容の大きさを考慮に入れないことを意味する。初期値は#fとする。
n) 特質first-line-start-indent : は,型length-specのオブジェクトとする。その値は,最初の行のstart-indent
に加えられるべきインデントを指定する。値は負になることもある。初期値は0ptとする。
o) 特質last-line-end-indent : は,型length-specのオブジェクトとする。その値は,最後の行のend-indent
に加えられるべきインデントを指定する。値は負になることもある。初期値は0ptとする。
p) 特質hyphenation-char : は,型charのオブジェクトとする。その値は,ハイフネーションが行った場合
に挿入するグリフの決定に使用する。ハイフネーション点の前の流し込みオブジェクトcharacterの特
185
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
質は,グリフのフォント資源及びフォント大きさとともに,文字からグリフへの対応を決定しなけれ
ばならない。初期値は,#\−(ハイフン文字)とする。
q) 特質hyphenation-ladder-count : は,0を含む正の整数又は#fとする。これは,特質hyphenation-char : の
値によって決定されたグリフと同じグリフで終了する連続する行の最大数を指定する。#fは無制限を
意味する。初期値は,#fとする。
r) 特質hyphenation-remain-char-count : は,正の整数とする。これは,ハイフネーションする単語のハイ
フネーション文字の前にくる最小文字数を指定する。これは,単語を分割して,ハイフネーション文
字で終わる行に残る文字の最小数とする。初期値は2とする。
s)
特質hyphenation-push-char-count : は,正の整数とする。これは,ハイフネーションする単語のハイフ
ネーション文字の後にくる最小文字数を指定する。これは,単語を分割して,ハイフネーション文字
で終わる行の次の行に押しやられた文字の最小数とする。初期値は2とする。
t)
特質hyphenation-keep : は,#f又は次のシンボルの一つとする。
1) シンボルspreadは,ハイフネーションした単語の両方の部分が見開きの範囲に収まることを意味す
る。
2) シンボルpageは,ハイフネーションした単語の両方の部分が同じページの範囲に収まることを意味
する。
3) シンボルcolumnは,ハイフネーションした単語の両方の部分が同じ段の範囲に収まることを意味す
る。初期値は#fとする。
u) 特質hyphenation-exceptions : は,文字列のリストとする。各文字列は,ハイフン文字#\−を含むこと
ができ,ハイフネーション可能な点を示す。ハイフネーション候補の単語がリスト中に存在する場合,
ハイフネーションは指定された場所だけで可能となる。初期値は空リストとする。
備考 単語の決定は,処理系依存とする。
v) 特質line-breaking-method : は,文字列又は#fとする。文字列は,この段落に使用する行分割法の公開
識別子を指定する。初期値は#fとする。
w) 特質line-composition-method : は,文字列又は#fとする。文字列は,この段落に使用する行組版法の公
開識別子を指定する。初期値は#fとする。
備考 通常,特質line-composition-method : は,構文application-characteristic-declaration又は構文
application-char-characteristic+property-declarationを使用して宣言した特質を使用する。
x) 特質implicit-bidi-method : は,文字列又は#fとする。文字列は,段落の内容の方向性の暗黙の決定に
使用する方法の公開識別子を指定する。これには,文字の表記方向及び共通の表記方向をもつ内容部
分をどのようにして互いに入れ子になるかを含む。文字の表記方向に関しては,この特質の値が#fの
場合,特質writing-modeを用いて指定する。入れ子の方法に関しては,この特質の値が#fの場合,流
し込みオブジェクトembedded-textを用いて指定する。どの流し込みオブジェクトcharacterの特質を
利用するかは,その方式の意味の一部となる。方式は,特定の文字レパートリに固有であってよく,
その場合には,特質を使用してはならない。また,特定のグリフ代替の方式を文字に適用する表記方
向及び文字特質に依存して適用する方式もその一部であってよい。初期値を#fとする。
y) 特質glyph-alignment-mode : はシンボルとする。その値として,シンボルbase,シンボルcenter,シン
ボルtop,シンボルbottom又はシンボルfontのいずれかをとる。グリフに使用する流し込みオブジェ
クトの表記モード方向における名目そろえモードを意味する。初期値はシンボルfontとする。
z) 特質font-family-name : は,文字列又は#fとする。文字列は,好ましいフォント資源のフォントファミ
186
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
リ名特性を与える。#fは任意のフォントファミリが許容されることを示す。初期値はiso-serifとする。
備考 JIS X 4154は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,
iso-sanserif,iso-monospaceから成る。
この特質は,特質glyph-alignment-mode : がfontであるか,特質min-pre-line-spadng : 又は
min-post-line-spacing : が#fである場合に,適用する。
aa) 特質font-weight : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボル
ultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,
シンボルbold,シンボルextra-bold,又はシンボルultra-boldを値とし,望ましいフォント資源の特性
weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。この
特質は,特質glyph-alignment-mode : がシンボルfontの値をとるか又は特質min-pre-line-spacing : が#f
になる場合に適用する。
ab) 特質font-posture : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,
シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボルback-slanted-italicのいず
れかを値とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の姿勢を許容すること
を示す。初期値はシンボルuprightとする。この特質は,特質glyph-alignment-mode : がシンボルfont
の値をとるか又は特質min-pre-line-spacing : が#fになる場合に適用する。
ac) 特質font-structure : は,シンボル又は#fとし,許容可能なフォント構造を指定する。シンボルの場合,
シンボルnot-applicable,シンボルsolid又はシンボルoutlineを値にとる。#fの場合,任意の構造を許
容することを示す。初期値はシンボルsolidとする。この特質は,特質glyph-alignment-mode : がシン
ボルfontの値をとるか又は特質min-pre-line-spacing : が#fになる場合に適用する。
ad) 特質font-proportionate-width : は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,
シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シ
ンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボル
extra-expanded又はシンボルultra-expandedのいずれかを値にとる。#fの場合,任意の字幅を許容する
ことを示す。初期値はシンボルmediumとする。この特質は,特質glyph-alignment-mode : がシンボル
fontの値をとるか又は特質min-pre-line-spacing : が#fになる場合に適用する。
ae) 特質font-name : は,シンボル又は#fを値とし,望ましいフォントリソースのフォント名特性の公開識
別子文字列を指定する。#fの場合,任意のフォント名を許容することを示す。値が文字列の場合,特
質font-family-name ;,特質font-weight ;,特質font-posture ;,特質font-structure : 及び特質
font-proportionate-width : は,フォント選択には用いない。初期値は#fとする。この特質は,特質
min-pre-line-spacing : 又は特質min-post-line-spacing : が#fになる場合に適用する。
af) 特質font-size : は型lengthであって,フォントリソースを変倍する大きさを指定する。初期値は10pt
とする。この特質は,特質min-pre-line-spacing : 又は特質min-post-line-spacing : が#fになる場合に適
用する。
ag) 特質numbered-lines? : は,型booleanのオブジェクトを指定する。値が#tの場合,この段落で生成さ
れる行を,行番号付けの対象とすることを指定する。値が#fの場合,行番号付けの対照としないこと
を指定する。初期値は#tとする。
ah) 特質line-number : は,行内流し込みオブジェクトだけを含むラベルなし型sosofoのオブジェクト又は
#fとする。型sosofoのオブジェクトの場合,フォーマットの結果,単一の行内領域を生成して,段落
の各行の添付領域として配置される。12.3.4を参照。初期値は,#fとする。
187
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考1. 型sosofoのオブジェクトは,手続きline-numberを使用して行の番号を参照する,間接流し込
みオブジェクトを含む場合がある。
2. 添付領域の配置の規則は,通常行番号はその行に一番近い端がそろうように配置されること
を意味する。それと異なるそろえは,流し込みオブジェクトline-fieldを使用して実現できる。
ai) 特質line-number-side : は,シンボルとし,特質line-number : で指定された添付行の位置を指定する。
シンボルの場合,シンボルstart,シンボルend,シンボルspread-inside,シンボルspread-outside,シン
ボルpage-inside又はシンボルpage-outsideのいずれかとする。シンボルspread-inside又はシンボル
spread-outsideは,その流し込みオブジェクトがクラスpage-sequenceを祖先にもつ場合だけ指定できる。
シンボルpage-inside又はシンボルpage-outsideは,流し込みオブジェクトがcolumn-set-sequenceを祖
先にもつ場合だけ指定できる。
aj) 特質line-number-sep : は,型length-specのオブジェクトとし,特質line-number : で指定された添付領
域の分離間隔を指定する。
ak) 特質quadding : は,シンボルであって,特質writing-modeの方向において,段落の最後の行以外の行
そろえを指定する。その値は,シンボルstart,シンボルend,シンボルspread-inside,シンボル
spread-outside,シンボルpage-inside,シンボルpage-outside,シンボルcenter又はシンボルjustifyのい
ずれか一つとする。シンボルspread-inside又はシンボルspread-outsideは,流し込みオブジェクトがク
ラスpage-sequenceを祖先にもつ場合だけ指定できる。シンボルpage-inside又はシンボルpage-outside
は,流し込みオブジェクトがクラスcolumn-set-sequenceを祖先にもつ場合だけ指定できる。初期値は,
シンボルstartとする。
al) 特質last-line-quadding : は,シンボルであって,特質writing-modeの方向において,段落の最後の行の
そろえを指定する。シンボルrelative,シンボルstart,シンボルend,シンボルspread-inside,シンボル
spread-outside,シンボルpage-inside,シンボルpage-outside,シンボルcenter又はシンボルjustifyのい
ずれか一つとする。これは,段落分割の直前の行にも適用する。シンボルrelativeは,特質quadding : の
値の使用を意味する。ただし,特質quadding : の値がjustifyである場合を例外とし,その場合にはシ
ンボルstartを使用する。シンボルspread-inside又はシンボルspread-outsideは,流し込みオブジェクト
がクラスpage-sequenceを祖先にもつ場合にだけ指定できる。初期値は,シンボルrelativeとする。
am) 特質last-line-justify-limit : は,型length-specのオブジェクトであって,最後の行を特質
last-line-quadding : によって指定した方法でそろえずに,両端そろえを行う余った空きの最大量を指定
する。初期値は,0とする。
an) 特質justify-glyph-space-max-add : は,型length-specのオブジェクトであって,行の両端揃えの際にグ
リフ間に加える空きの最大値を指定する。初期値は,0ptとする。
ao) 特質justify-glyph-space-max-remove : は,型length-specのオブジェクトであって,行を両端そろえの際
にグリフ間から取り除く空きの最大値を指定する。初期値は,0ptとする。
ap) 特質hanging-punct? : は,型booleanのオブジェクトであって,段落をフォーマットする場合に,約物
を段の余白又は段間にぶら下げるかどうかを指定する。
aq) 特質widow-count : は,正の整数であって,領域の先頭に一緒に保持する段落の行の最小数を指定す
る。特質widow-count : の値がnの場合,段落の最後のn行においては分割は許されない。初期値は2
とする。
ar) 特質orphan-count : は,正の整数であって,領域の最後に一緒に保持する段落の行の最小数を指定す
る。特質orphan-count : の値がnの場合,段落の最初のn行においては分割は許されない。初期値は2
188
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
とする。
as) 特質language : は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立て
に処理系固有の方法で影響する。初期値は#fとする。
at) 特質country : は,#f又はJIS X 0304で定義する2文字の国名コードを大文字で指定する。これは,
行の組立てに処理系固有の方法で影響する。初期値は#fとする。
au) 特質position-preference : は,シンボル又は#fとする。シンボルの場合,シンボルtop又はシンボルbottom
を値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポ
ートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられ
る場合に,この流し込みオブジェクトからの領域がどちらかだけの区域に流し込まれるか否かを指定
する。この特質は継承しない。無指定時値は#fとする。
av) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,行の配置方向を制御する。
aw) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトparagraphに由来する行
だけに適用する。
ax) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトparagraphに由来する行
だけに適用する。
ay) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,
本文域に流れ込む,段集合列のポートに向けられた場合だけに適用する。初期値は1とする。
az) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
ba) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
bb) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
bc) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
bd) 特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
be) 特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
189
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
bf) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
bg) 特質keep : は,次のいずれかを指定する。
1) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持され
ることを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
bh) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : が指定する,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関
する制約を尊重しないことを指定する。この特質は継承しない。無指定時値は#fとする。
bi) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : が指定する,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関
する制約を尊重しないことを指定する。この特質は継承しない。無指定時値は#fとする。
12.6.6.1 行間調整
段落によって生成される行領域の大きさは,配置パスの段落の流し込み逆方向の大きさが特質
min-pre-line-spacing : となり,配置パスの段落流し込み方向の大きさが特質min-post-line-spacing : となる。
特質min-leading : の値が#fではない場合,行の大きさは,行内のすべての領域を含む大きさに増える。直
前の領域が行である場合,必要であれば行の前に条件付き空きを加えて,直前の行の配置パス及びこの配
置パスの間の合計の距離が特質line-spacing : の値にする。直前の領域が行ではない場合,必要であれば行
の前に条件付き空きを加えて,直前の領域の末尾及びこの配置パスの間の合計の距離が,特質line-spacing :
の値から特質min-post-line-spacing : を引いた値にする。特質min-leading : の値が#fでない場合,必要であ
れば条件付き空きを加えて,直前の領域とこの領域との空きをmin-leading : の値以上にする。条件付き空
きは,特質line-spacing-priority : によって指定される優先度をもつ。
12.6.7 段落分割流し込みオブジェクト (paragraph-break)
流し込みオブジェクトparagraph-breakを使用することによって,流し込みオブジェクトparagraphが段
落の列を表現できる。段落は,原子流し込みオブジェクトparagraph-breakによって分割される。流し込み
オブジェクトparagraph-breakは,流し込みオブジェクトparagraphの中においてだけ出現してよい。流し
込みオブジェクトparagraphに適用されるすべての特質は,流し込みオブジェクトparagraph-breakにも適
用する。流し込みオブジェクトparagraph-breakの特質は,その流し込みオブジェクトparagraph-breakから
次の流し込みオブジェクトparagraph-breakまで(もしあれば)の流し込みオブジェクトparagraphの内容
部分がどのようにフォーマットされるかを決定する。
190
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 流し込みオブジェクトparagraph-breakは,それを含む流し込みオブジェクトparagraphを普通
の方法で継承する。
特質first-line-start-indent : は,流し込みオブジェクトparagraph-breakに続く行に適用し,特質
last-line-end-indent : は,流し込みオブジェクトparagraph-breakの直前の行に適用する。
備考 流し込みオブジェクトparagraph-breakは,それ以外にフォーマット指定できない場合にだけ使
うことが望ましい。
12.6.8 行フィールド流し込みオブジェクト (line-field)
流し込みオブジェクトクラスline-fieldは行内とし,内容として行内領域をもつ。これは,単一の行内領
域を生成する。この領域の幅は,特質field-width : の値と等しいものとする。line-field領域の内容がこの
幅に合わない場合,その領域は内容を収容できるよう大きくなり,段落内でline-fieldが出現する場合,
line-fieldの後に分割が生じなければならない。
単一の主要ポートをもつ。
この流し込みオブジェクトは,次の特質をもつ。
a) 特質field-width : は,型length-specのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の幅を指定する。初期値は0ptとする。
b) 特質field-align : は,フィールドの内容のそろえを指定するシンボルstart,シンボルend又はシンボル
centerのいずれか一つとする。初期値はstartとする。
c) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bootomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。
d) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行にだけ影響する。初期値は#fとする。
e) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定
時値は0とする。
f)
特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。
段落内で使用する流し込みオブジェクトline-fieldの直前及び直後では,行分割を許可する。
12.6.9 側線流し込みオブジェクト (sideline)
この流し込みオブジェクトの使用は,機能sidelineを必要とする。
流し込みオブジェクトsidelineは,配置方向に対して平行な線から成る添付領域(12.3.4参照のこと)を
もつ流し込みオブジェクトを指定する。流し込みオブジェクトsidelineは,行内流し込みオブジェクト及
び行外流し込みオブジェクトの両方を含むことができる単一の主要ポートをもつ。その内容によって生成
される行外領域のそれぞれに対して,流し込みオブジェクトsidelineは添付物を追加する。その内容によ
って生成される行内領域のそれぞれに対して,流し込みオブジェクトsidelineはその領域に注釈を付け,
191
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
その流し込みオブジェクトが出現する段落が,その行内領域が出現する行に添付領域を加えるようにする。
備考 流し込みオブジェクトsidelineは,しばしば変更部分を印付けに使用される。
図14に図示してある。
流し込みオブジェクトsidelineは,次の特質をもつ。
a) 特質sideline-side : は,シンボルであって,側線を添付する行領域の側を指定する。シンボルstart,シ
ンボルend,シンボルboth,シンボルspread-inside,シンボルspread-outside,シンボルpage-inside又は
シンボルpage-outsideのいずれか一つとする。シンボルspread-inside又はシンボルspread-outsideは,
その流し込みオブジェクトが流し込みオブジェクトpage-sequenceを祖先にもつ場合にだけ指定でき
る。シンボルpage-inside又はシンボルpage-outsideは,その流し込みオブジェクトが流し込みオブジ
ェクトcolumn-set-sequenceを祖先にもつ場合にだけ指定できる。シンボルbothは,そのテキストを含
む行領域の両側に側線を添付させることを意味する。初期値は,シンボルstartとする。
b) 特質sideline-sep : は,側行添付物に対する分離を指定する型length-specのオブジェクトとする。負の
値も許可される。
c) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
d) 特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定
する。領域はそのレイヤー値が低い領域から可視化される。初期値は0とする。
e) 特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。
f)
特質line-dash : は一つ以上の型lengthのオブジェクトのリストであって,線の破線パターンを指定す
る。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素
numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指
定する。初期値は,長さ0ptを含むリストとする。
g) 特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。
h) 特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。
i)
特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。
単一の領域コンテナ内にあり,間に空きのない連続する領域上の側線は単一の線として表示しなければ
ならない。
12.6.10 びょう(錨)流し込みオブジェクトクラス (anchor)
この流し込みオブジェクトの使用は機能pageを必要とする。
流し込みオブジェクトanchorは原子流し込みオブジェクトであって,同期の対象としてだけ使用する。
行内又は行外のどちらでもよい。行内の場合,送り方向で0の大きさをもつ単一の領域を生成する。行外
の場合,配置方向で0の大きさをもつ単一の領域を生成する。結果の領域は,特質
anchor-keep-with-previous? : が真でない場合に,後続する流し込みオブジェクトが生成する最初の領域と一
緒に保持される。
流し込みオブジェクトanchorは,次の特質をもつ。
a) anchor-keep-with-previous? : は,型booleanのオブジェクトとする。その値が#tの場合,結果の領域が,
後続する流し込みオブジェクトが生成する最初の領域ではなく,直前の流し込みオブジェクトの最後
の領域と一緒に保持されることを指定する。初期値は#fとする。
192
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) display? : は,型booleanのオブジェクトであって,流し込みオブジェクトが行内か行外かを指定する。
この特質は継承されない。無指定時値は#fとする。
c) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,
本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。
d) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
e) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行にだけ影響する。初期値は#fとする。
f)
特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定
時値は0とする。
g) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。
12.6.11 文字流し込みオブジェクトクラス (character)
流し込みオブジェクトcharacterは,原子流し込みオブジェクトとする。このクラスの流し込みオブジェ
クトは,行内にだけなる。このクラスの流し込みオブジェクトは,次の特質をもつ。
a) 特質char : は,文字を指定する型charのオブジェクトとする。この特質は,継承されない。特質が指
定されず,現ノードが存在し,その現ノードが特性charをもっている場合,特性charの値をこの特質
の値として使用する。特質char-map : の値が#fでない場合,特性charの値に適用し,その結果はこの
特質の値として使用する。この特質は,潜在的にグリフの選択において使用されるのと同じくハイフ
ネーションの制御にも使用する。
b) 特質char-map : は,手続き又は#fとする。手続きの場合,特質char : の無指定時値の構築に適用する。
初期値は,#fとする。
c) 特質glyph-id : は,結果の領域にイメージングするグリフを指定する型glyph-idのオブジェクト又は,
結果の領域に関連付けられたイメージがない場合#fとする。この特質は,継承されない。この特質が
指定されない場合,特質char : の値を使用して計算する。文字の特性blank?が真の場合,特質の値は
#fとする。それ以外の場合,特質の値は,文字の特性glyph-idの値でなければならない。この場合に
は,値が#f以外でなければならない。
d) 特質glyph-subst-table : は,#f,グリフ代替表又はグリフ代替表のリストであって,特質glyph-id : が
指定するglyph-idに対して,その代替グリフを探索する対象を指定する。値がリストの場合,指定さ
れた順序で代替グリフを探す。初期値は,#fとする。
193
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
e) 特質glyph-subst-method : は,#f,文字列又は文字列のリストとする。各文字列は,グリフ代替を行う
方法を指定する公開識別子でなければならない。初期値は#fとする。
備考 これによって,文脈依存のグリフ代替及び複数のグリフを含むグリフ代替が可能になる。
f)
特質glyph-reorder-method : は,#f,文字列又は文字列のリストとする。各文字列は,グリフの再順序
付けの方法を指定する公開識別子でなければならない。初期値は,#fとする。
備考 これは,普通ヒンズー語のスクリプトで使用する。
g) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,グリフのメトリクの決定において,どの表記方向を用いる
かを制御する。
h) 特質font-family-name : は,文字列又は#fとする。文字列の場合,好ましいフォントリソースのフォン
トファミリ名特性を与える。#fの場合,任意のフォントファミリが許容されることを示す。初期値は
iso-serifとする。
備考 ISO/IEC 10180は,交換のために必す(須)フォント集合を規定し,そのフォントファミリは
iso-serif,iso-sanserif,iso-monospaceから成る。
i)
特質font-weight : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボル
ultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,
シンボルbold,シンボルextra-bold又はシンボルultra-boldを値とし,望ましいフォント資源の特性
weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。
j) 特質font-posture : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,
シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はback-slanted-italicのいずれかを値
とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の姿勢を許容することを示す。
初期値はシンボルuprightとする。さらに,値としてシンボルmathが指定可能で,それは特質font-posture
の値として,特質math-font-postureの値の使用を意味する。
k) 特質math-font-posture : は,特質font-posture : が,シンボルmathをもつ場合に使用するフォント資源
の傾き特性を指定する。値はシンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シン
ボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボル
back-slanted-italicのいずれかとする。この特質は継承されない。無指定時値は,特質char : の文字特
性math-font-postureの値とする。
l)
特質font-structure : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボル
solid又はシンボルoutlineを値にとる。#fの場合,任意の構造が許容可能だと示す。初期値はシンボ
ルsolidとする。
m) 特質font-proportionate-width : は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,
シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シ
ンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボル
extra-expanded又はシンボルultra-expandedのいずれかを値にとる。#fの場合,任意の字幅が許容可能
を示す。初期値はシンボルmediumとする。
n) 特質font-name : は,文字列又は#fを値とする。文字列の場合,望ましいフォントリソースのフォント
名特性の公開識別子文字列を指定する。#fの場合,任意のフォント名が許容できることを示す。値が
文字列の場合,特質font-family-name ;,特質font-weight ;,特質font-posture ;,特質font-structure : 及
194
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
び特質font-proportionate-width : は,フォント選択には用いない。初期値は#fとする。
o) 特質font-size : は型lengthであって,フォントリソースを変倍するボディの大きさを指定する。初期
値は10ptとする。
p) 特質stretch-factor : は,文字の伸縮係数を指定する数とする。この特質は,継承されない。無指定時
値は1とする。
備考1. これをどのように実現するかは,実装依存及びフォント依存とする。
2. これは,主に様々な種類の数式の区切り子のために設計されている。区切り子の大きさは,
フォントサイズに伸縮係数を掛けることによって決定されるが,視覚的な見栄えは,そのフ
ォントサイズのグリフと同じになるように設計されている。
q) 特質hyphenate? : は,型booleanのオブジェクトとし,ハイフネーションの許可を指定する。初期値は
#fとする。
r) 特質hyphenation-method : は,文字列又は#fとし,文字列の場合,ハイフネーションの方法を示す公
開識別子を指定する。初期値は#fとする。
s)
特質kern? : は,型booleanのオブジェクトとし,送りの調整の許可を指定する。真の場合,カーニン
グは,特質kern-mode : に従い,JIS X 4161の8.8.1.6の指定どおり実行する。送りの調整は,送りの
調整指示子の特性として調整しないという値をもつグリフに対しては実行しない。初期値は#fとする。
t)
特質kern-mode : は,シンボルとし,送りの調整モードを指定する。その値は,シンボルloose,シン
ボルnormal,シンボルkern,シンボルtight又はシンボルtouchのいずれかとする。初期値はnormal
とする。
u) 特質ligature? : は,型booleanのオブジェクトを値とし,合字の許可を指定する。初期値は,#fとす
る。
v) 特質allowed-ligatures : は,許可するリガチャのリストとする。そのリストの各メンバは,型glyph-id
又は型charのいずれかとする。結果がそのリスト内のグリフ識別子の場合又はそのリスト内の文字で
あってその特性glyph-idが結果に等しい場合にだけ,リガチャを使用する。初期値は空リストとする。
w) 特質space? : は,型booleanのオブジェクトを値とし,流し込みオブジェクトが空白文字かどうかを
指定する。この特質は,継承されない。特質inline-space-space : の値として指定されたinline-spaceが,
この流し込みオブジェクトで利用できるかどうかにだけ影響する。無指定時値は,特質char : の文字
特性space?の値とする。
x) 特質inline-space-space : は,流し込みオブジェクトinline-space又は#fを値とし,流し込みオブジェク
トが空きの場合に適用する。これは,特質escapement-space-before : 及び特質escapement-space-after : が
指定する空きに追加される。値#fは,値が段落のフォントから判断することを指定する。初期値は#f
とする。
y) 特質escapement-space-before : は,型inline-spaceのオブジェクトを値とし,送り方向の最初の結果領
域の前に加えられる空きを指定する。初期値は, (inline-space 0pt) とする。
z) 特質escapement-space-after : は,型inline-spaceのオブジェクトを値とし,送り方向の最後の結果領域
の後に加えられる空きを指定する。初期値は, (inline-space 0pt) とする。
aa) 特質record-end? : は,型booleanのオブジェクトを値とし,その流し込みオブジェクトがレコード終
了であるかどうかを指定する。特質record-end? : が真である流し込みオブジェクトは,特質lines : が
値asisをもつ段落又は特質ignore-record-end? : が真である段落によって異なる方法で扱う。この特質
は継承されない。無指定時値は,特質char : の文字特性record-end?の値とする。
195
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ab) 特質input-tab? : は,型booleanのオブジェクトを値とし,流し込みオブジェクトの入力がタブである
かどうかを指定する。この特質は,継承されない。タブの流し込みオブジェクトcharacterは,特性
expand-tabsの値が#fではない段落においては,異なる仕方で扱われなければならない。無指定時値は,
特質char : が明示的に指定されなかった場合,特質char : の文字特性input-tab?の値とし,そうでない
場合,#fとする。
ac) 特質input-whitespace-treatment : は,次のシンボルのいずれかを値とする。
1) シンボルpreserveは,特殊な処置を指定しない。
2) シンボルcollapseは,流し込みオブジェクトcharacterが特質input-whitespace? : に真の値をもち,直
前の流し込みオブジェクトも特質input-whitespace? : に真の値をもつ流し込みオブジェクト
characterの場合に,それを無視すると指定する。
3) シンボルignoreは,特質input-whitespace? : が真の流し込みオブジェクトcharacterを無視すると指
定する。
初期値は,シンボルpreserveとする。
ad) 特質input-whitespace? : は,型booleanのオブジェクトを値とし,その文字が入力において空白文字だ
として扱うかを指定する。この特質は継承されない。無指定時値は,特質char : が明示的に指定され
なかった場合,特質char : の文字特性input-whitespace?の値とし,そうでない場合,#fとする。
ae) 特質punct? : は,型booleanのオブジェクトとし,ぶら下がり禁則を行う段落をフォーマットした場
合に,その文字を約物として扱うことを指定する。この特質は,段落の特質hanging-punct? : が真であ
る場合にだけ有効となる。この特質は継承されない。無指定時値は,特質char : の文字特性punct?の
値とする。
af) 特質break-before-priority : は整数とし,この文字の前で分割が許可されるか否かに影響する。潜在的
な分割点の優先度は,潜在的な分割点の直前の文字の特質break-after-priority,潜在的な分割点の直後
の文字の特質break-before-priority及びその潜在的な分割点の直後の文字の特質drop-after-line-break? :
が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の優
先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は特質char : の文字特性
break-before-prioriyの値とする。
備考 例えば,表意文字に対しては,特質break-before-priority : 及び特質break-after-priority : は,通
常0及び0,ラテン文字に関しては1及び1,空白類文字に関しては2及び3とする。
ag) 特質break-after-priority : は,整数とし,特質break-before-priority : の指定において規定したとおり,
この文字の後で分割が許可されるかどうかに影響を与える。この特質は,継承されない。無指定時値
は,特質char : の文字特性break-after-prioriyの値とする。
ah) 特質drop-after-line-break? : は,型booleanのオブジェクトを値とし,この文字が行分割の後に来た場
合捨てることを指定する。この特質は,継承されない。無指定時値は,特質char : の文字特性
drop-after-line-break?の値とする。
ai) 特質drop-unless-before-line-break? : は,型booleanのオブジェクトを値とし,この文字が行分割の前に
こない場合に捨てることを指定する。この特質は,継承されない。無指定時値は,特質char : の文字
特性drop-unless-before-line-break?の値とする。
aj) 特質math-class : は,シンボルを値とする。その値は,シンボルordinary,シンボルoperator,シンボ
ルbinary,シンボルrelation,シンボルopening,シンボルclosing,シンボルpunctuation,シンボルinner
又はシンボルspaceのいずれかとする。これは,数式のための流し込みオブジェクトによって文字の
196
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
間隔調整に使用する。値spaceは,追加の空きを指定する流し込みオブジェクトcharacterのために使
用する。このmath-classをもつ流し込みオブジェクトは別の流し込みオブジェクトcharacetrの間隔調
整時には無視する。この特質は,継承されない。無指定時値は,特質char : の文字特性math-classの
値とする。
ak) 特質script : は,文字列又は#fとする。文字列の場合には,その文字のスクリプトを指定する公式公
開識別子を指定する。#fの場合,その文字が単一のスクリプトと関連付けられていないことを指定す
る。この特質は,継承されない。無指定時値は,特質char : の文字特性scriptの値とする。
al) 特質position-point-shift : は型length-specとし,位置決め点の行進行方向に沿っての移動量を指定する。
初期値は0ptとする。
備考 行送り方向に正の量だけ位置決め点をずらすと,流し込みオブジェクトによって生成された領
域を行送り方向とは反対方向にずらす効果がある。
am) 特質language : は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立に
処理系固有の方法で影響する。初期値は#fとする。
an) 特質country : は,#f又はISO 3166で定義する国コードを大文字で指定する。これは,行の組立に処
理系固有の方法で影響する。初期値は#fとする。
ao) 特質color : は型colorのオブジェクトとし,流し込みオブジェクトのマークを行うカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
ap) 特質layer : は整数とし,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。
領域はそのレイヤー値が低い領域から可視化される。初期値は0とする。
aq) 特質inhibit-line-breaks? : は型booleanとし,この流し込みオブジェクトによって生成された領域の前
後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を収め
るために導入された改行にだけ影響する。初期値は#fとする。
流し込みオブジェクトcharacterは,フォーマットの結果,単一の行内領域を生成する。これは,特質
ligature? : が真の場合,隣接する行内領域と併合される場合がある。行内領域の位置決め点は,指定され
た表記方向に対してフォント資源において指定されているグリフの位置決め点特性とする。送り方向は,
指定された表記方向に対してフォント資源において指定されている位置決め点及び送り点の間の方向とす
る。送り方向におけるその領域の大きさは,位置決め点及び送り点の間の距離とする。行進行方向におけ
る配置パス前後の大きさは,指定された表記方向に対してフォント資源において指定されている方向での
グリフ範囲を覆う最小のものとする。その流し込みオブジェクトcharacterの表記方向の公称そろえモード
が,その段落のそろえモードと同じでない場合,指定された表記方向に対してフォント資源のそろえモー
ド特性によって指定されている方法でそのグリフ領域は自動的に調整される。
12.6.11.1 文字特性
文字特性は,流し込みオブジェクトcharacterの継承されない特質の無指定時値を決定するために使用す
る。さらに,文字特性は,手続きchar-propertyでアクセス可能とする。文字の特性は,流し込みオブジェ
クトがフォーマットされる方法に影響しない。それらは,流し込みオブジェクト木の構築時にだけ使用さ
れ,流し込みオブジェクト木の構築方法に影響する。
備考 文字特性は,クラスdata-charのノードの特性と混同してはならない。
次の文字特性は,スタイル言語のために事前定義されている。
a) 特性space?は,型booleanのオブジェクトを値とし,その文字が空白文字かどうかを示す。初期値は
#fとする。
197
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) 特性record-end?は,型booleanのオブジェクトを値とし,その文字がレコード終了かどうかを示す。
無指定時値は#fとする。特質space?及び特質record-end?は,通常の場合文字REのために使用する。
c) 特性blank?は,型booleanのオブジェクトを値とし,その文字が関連するグリフをもたない場合真と
なる。無指定時値は#fとする。
d) 特性input-tab?は,型booleanのオブジェクトを値とし,その文字が入力においてタブであったことを
示す。無指定時値は#fとする。
e) 特性input-whitespace?は,型booleanのオブジェクトを値とし,その文字が入力において空白文字であ
ったことを示す。無指定時値は#fとする。
f)
特性punct?は,型booleanのオブジェクトとし,ぶら下げ処理を行うとき,その文字を約物として扱
うことを示す。無指定時値は#fとする。
g) 特性scriptは,文字列又は#fを値とする。文字列の場合,その文字のスクリプトを識別する公式公開
識別子を指定する。#fの場合,その文字に単一のスクリプトが関連付けられていないことを指定する。
次のスクリプトの公開識別子をこの規格で定義する。
1) ISO/IEC 10179 : 1996//Script :: Latin
2) ISO/IEC 10179 : 1996//Script :: Greek
3) ISO/IEC 10179 : 1996//Script :: Cyrillic
4) ISO/IEC 10179 : 1996//Script :: Arabic
5) ISO/IEC 10179 : 1996//Script :: Hebrew
6) ISO/IEC 10179 : 1996//Script :: Armenian
7) ISO/IEC 10179 : 1996//Script :: Georgian
8) ISO/IEC 10179 : 1996//Script :: Devanagari
9) ISO/IEC 10179 : 1996//Script :: Gujarati
10) ISO/IEC 10179 : 1996//Script :: Gurmukhi
11) ISO/IEC 10179 : 1996//Script :: Bengali
12) ISO/IEC 10179 : 1996//Script :: Oriya
13) ISO/IEC 10179 : 1996//Script :: Telugu
14) ISO/IEC 10179 : 1996//Script :: Tamil
15) ISO/IEC 10179 : 1996//Script :: Kannada
16) ISO/IEC 10179 : 1996//Script :: Malayalam
17) ISO/IEC 10179 : 1996//Script :: Thai
18) ISO/IEC 10179 : 1996//Script :: Lao
19) ISO/IEC 10179 : 1996//Script :: Han
20) ISO/IEC 10179 : 1996//Script :: Bopomofo
21) ISO/IEC 10179 : 1996//Script :: Hiragana
22) ISO/IEC 10179 : 1996//Script :: Katakana
23) ISO/IEC 10179 : 1996//Script :: Hangul
24) ISO/IEC 10179 : 1996//Script :: Burmese
25) ISO/IEC 10179 : 1996//Script :: Khmer
26) ISO/IEC 10179 : 1996//Script :: Mongolian
27) ISO/IEC 10179 : 1996//Script :: Ethiopian
198
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
28) ISO/IEC 10179 : 1996//Script :: Sinhala
29) ISO/IEC 10179 : 1996//Script :: Tibetan
30) ISO/IEC 10179 : 1996//Script :: Punctuation
31) ISO/IEC 10179 : 1996//Script :: Symbol
32) ISO/IEC 10179 : 1996//Script :: Digit
備考 約物及び記号を表現する文字は,普通scriptの値は#fである。
h) glyph-idは,この文字に対して使用される公称グリフを表す型glyph-idのオブジェクト又はその文字
にグリフがない場合#fとする。その文字が,体系形式standard-charsを使用して宣言されたのであれば,
無指定時値は,その文字に対する公称グリフのglyph-idが存在すればその値とし,それ以外は#fとす
る。
備考 公称glyph-idは,一つ以上のglyph-substitution-tableを使用して変換される場合がある。これに
よって,例えば,小文字又は古いスタイルのglyphへの選択的な対応付けが可能になる。
i)
特性drop-after-line-break?は,型booleanのオブジェクトを値とし,その文字が行分割の直後に来た場
合に捨てられると指定する。無指定時値は#fとする。
備考 通常,空白類文字に対して真となる。
j)
特性drop-unless-before-line-break? : は,型booleanのオブジェクトを値とし,その文字が行分割の直前
に来ない場合に捨てると指定する。無指定時値は#fとする。
備考 通常,ソフトハイフンに対して真となる。
k) 特性break-before-priorityは,整数を値とし,流し込みオブジェクトcharacterの特質break-before-priority :
で説明した方法で,この文字の前で分割が許可されるかどうかに影響を与える。無指定時値は0とす
る。
l)
特性break-after-priorityは,整数を値とし,流し込みオブジェクトcharacterの特質break-after-priority : で
説明した方法で,この文字の後で分割が許可されるかどうかに影響を与える。無指定時値は0とする。
m) 特性math-classは,シンボルを値とし,シンボルordinary,シンボルoperator,シンボルbinary,シン
ボルrelation,シンボルopening,シンボルclosing,シンボルpunctuation又はシンボルinnerのいずれ
かをとる。無指定時値は,ordinaryとする。
n) 特性math-font-postureは,シンボル又は#fを値とする。シンボルの場合,特質font-posture : characteristic
が値mathをもつ場合に使用されるフォント資源の姿勢特性を指定し,シンボルnot-applicable,シンボ
ルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic,シンボルback-slanted-italic
又はシンボルmathのいずれかをとる。#fの場合,任意の傾きが可能であることを意味する。
備考 この文字特性の集合はすべてを網羅しているものではなく,構文
added-char-properties-declarationを使用して追加特性を加えることもできる。
12.6.12 リーダけい(罫)流し込みオブジェクト (leader)
流し込みオブジェクトleaderは,行内にだけなり得る。流し込みオブジェクトleaderは一つの主ポート
をもち,繰り返す行内流し込みオブジェクトを含む。流し込みオブジェクトleaderは,次の特質をもつ。
a) 特質length : は,型length-specのオブジェクトを値とし,リーダけいの長さを指定する。この特質は
継承しない。この特質が指定しない場合,リーダけいの長さはその使用文脈によって決定される。段
落内のリーダに関しては,それが最後の行で出現する場合以外は長さを指定する。
b) 特質truncate-leader? : は型booleanであって,この内容となる行内流し込みオブジェクト列の繰り返し
の最後を切り捨てると指定する。初期値は#fとする。
199
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
c) 特性align-leader? : は型booleanであって,リーダけいがページに関連付けられた仮想的な格子へのそ
ろえを指定する。初期値は#tとする。
d) 特質min-leader-repeat : は正の整数であって,繰り返しパターンの繰り返し最低回数を指定する。この
特質は,特質length : を指定しない場合にだけ適用可能とする。利用できる空きがこのリーダをこの
回数だけ繰り返すために十分でなければ,リーダはブランクとする。リーダが段落内で出現する場合,
利用できる空きは,パラグラフの行外サイズから,最終行開始インデント長さ,最終行終了インデン
ト長さ,段落内のリーダに続くすべての長さの合計及びリーダに先行しリーダとともになければなら
ない最小部分の長さの総計を差し引いたものとなる。初期値は1とする。
e) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行にだけ影響する。初期値は#fとする。
f)
特質break-before-priority : は整数であって,この文字の前で分割が許可されるか否かに影響する。分
割可能点の優先度は,分割可能点の直前の文字の特質break-after-priority,分割可能点の直後の文字の
特質break-before-priority及びその分割可能点の直後の文字の特質drop-after-line-break? : が真の場合に
は,その直後の文字の特質break-before-priorityの最大値となる。分割は,分割可能点の優先度が偶数
の場合だけ行う。この特質は継承しない。無指定時値は特質char : の文字特性break-before-priorityの
値とする。
g) 特質break-after-priority : は,整数であって,特質break-before-priority : の指定において示したとおり,
この文字の後で分割が許可されるかどうかに影響を与える。この特質は,継承されない。無指定時値
は,0とする。
12.6.13 埋込みテキスト流し込みオブジェクト (embedded-text)
流し込みオブジェクトクラスembedded-textは,表記方向モードright-to-leftのテキストを表記方向モー
ドleft-to-rightのテキストに埋め込んだり,その逆に埋め込んだりするために用いる。この流し込みオブジ
ェクトクラスは,行内だけになる。一つの主ポートをもつ。
流し込みオブジェクトembedded-textは,次の特質をもつ。
a) 特質direction : は,シンボルleft-to-right又はシンボルright-to-leftのいずれかとする。その方向は,パ
ラグラフの表記方向と平行となる。この特質は継承されず,必ず指定する。
b) 特質language : は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立に
処理 系固有の方法で影響する。初期値は#fとする。
c) 特質country : は,#f又はJIS X 0304で定義する国名コードを大文字で指定する。これは,行の組立
に処理系固有の方法で影響する。初期値は#fとする。
d) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。
流し込みオブジェクトembedded-textは,任意の埋込みテキスト流し込みオブジェクトの内容を含む行の
一部に,指定した方向をその行内進行方向として用いさせる効果をもつ。例えば,行が四つの行内領域を
もち,その流し込みオブジェクトストリームの順がA,B,C,Dであって,B及びCが埋込みテキスト流
し込みオブジェクト内に含まれており,その方向がパラグラフの表記方向と逆になっていると仮定する。
その場合に,行は次のとおりに構成される。最初にB及びCを含む行部分が構成され,Cの位置決め点を
Bの送り点におく。次に結果の行部分領域が,その位置決め点がCの送り点であって,その送り点がBの
200
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
位置決め点となる行内領域として取り扱う。行はA,続いてB及びCから生成された行内部分行領域,最
後にDから成り,パラグラフの表記方向を用いて配置される。図12.を参照のこと。
12.6.14 けい(罫)線流し込みオブジェクト (rule)
けい線は直線を指定するために用いる。けい線は行内でも,行外でもよい。
a) 特質orientation : は,シンボルhorizontal,シンボルvertical,シンボルescapement又はシンボル
line-progressionのいずれかであって,けい線の方向を指定するとともに,けい線が行内か,行外かを
指定する。この特質は継承しない。無指定時値はなく,指定しなければならない。
方向がシンボルhorizontal又はシンボルverticalの場合,けい線は行外となる。この場合,けい線の
方向が配置方向に直交するならば,配置方向の領域の大きさは0とする。それ以外の場合,配置方向
の領域の大きさはけい線の長さに等しい。
備考 領域の大きさとけい線の太さとは別である。
方向がシンボルescapementの場合,けい線は行内となる。この場合,けい線は行進行方向にその位
置決め点を中央そろえし,送りはけい線の長さと等しくなる。けい線は,特質position-point-shift : を
用いることで行進行方向にオフセットを加えてもよい。方向がシンボルline-progressionの場合,けい
線は行内となる。この場合,けい線は位置決め点で始まり,行進行方向にけい線長分伸びる。送りは
0でなければならない。
備考 このようにして,方向がシンボルline-progressionのけい線は続く流し込みオブジェクトの位置
決めに影響しない。
b) 特質length : は,けい線の長さを指定する型length-specのオブジェクトとする。この特質は継承しな
い。この特質が指定されない場合,けい線の長さはけい線が使用される文脈が決定する。
c) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
d) 特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定
する。領域はそのレイヤー値が低い領域から可視化される。初期値は0とする。
e) 特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。
f)
特質line-dash : は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さ
はISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。
残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長
さ0ptを含むリストとする。
g) 特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。
h) 特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。
i)
特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。
j)
特質position-point-shift : は型length-specであって,位置決め点の行進行方向に沿っての移動量を指定
する。初期値は0ptとする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
備考 行進行方向の正値の位置決め点移動は,流し込みオブジェクトが生成する領域を行進行方向の
反対方向に移動する効果をもつ。
k) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
201
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
収めるために導入された改行にだけ影響する。初期値は#fとする。
l)
特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
m) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
n) 特質position-preference : は,シンボル又は#fとする。シンボルの場合,シンボルtop又はシンボルbottom
を値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポ
ートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられ
る場合に,この流し込みオブジェクトからの領域がどちらかだけの区域に流し込まれるか否かを指定
する。この特質は継承しない。無指定時値は#fとする。
o) 特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろえを指定する。初期値はシンボルstartとする。この特質は流し込みオ
ブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大き
さが,行外サイズに等しくする。最初に空きは領域に加えられ,その大きさを行外サイズから先頭イ
ンデント及び最終インデントの合計を引いた値に等しくする。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きが表記モードの方向で先頭に加えられ,最終インデント
に等しい量の空きが表記モードの方向で最終に加えられる。この特質は,流し込みオブジェクトが行
外の場合だけ適用する。
p) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
q) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
202
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
する。
r) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
s)
特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,
本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
t)
特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことのできる段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
u) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
v) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
w) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。こ
の特質は,流し込みオブジェクトが行外の場合だけ適用する。
x) 特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
y) 特質break-before : は,#f又はシンボルpage,シンボルpage-region,シンボルcolumn又はcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始するかを指定する。この特質は
継承しない。無指定時値は,#fとする。この特質は,流し込みオブジェクトが行外の場合だけ適用す
る。
z) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
aa) 特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
203
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fはこの特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。この特質は,流し込みオブジェクトが行外の場合だけ
適用する。
ab) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
ac) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
12.6.15 外部グラフィック流し込みオブジェクトクラス (external-graphic)
流し込みオブジェクトクラスexternal-graphicは,外部実体に含まれるグラフィックのために用いる。こ
のクラスの流し込みオブジェクトは行内でも,行外でもよい,この流し込みオブジェクトクラスは原子流
し込みオブジェクトとする。このクラスの流し込みオブジェクトは次の特質をもつ。
a) 特質display? : は型booleanであって,流し込みオブジェクトが行外か否かを指定する。この特質は継
承しない。無指定時値は#fとする。
b) 特質scale : は,数値,二つの数値から成るリスト,シンボルmax又はシンボルmax-uniformを値とす
る。その値が数値の場合,グラフィックはその倍率で水平方向及び垂直方向の両方に変倍される。そ
の値が二つの数値をもつリストの場合,グラフィックは第一の数値によって水平方向に,第二の数値
で垂直方向に変倍される。その値がシンボルmax-uniformの場合,水平方向,垂直方向に同じ率で変
倍され,水平方向又は垂直方向が可能な最大サイズとなる。その値がシンボルmaxの場合,水平方向,
垂直方向の両方で最大サイズに変倍される。この特質は継承しない。無指定時値は,シンボル
max-uniformとする。
c) 特質max-width : は長さ指定であって,特質scale : がシンボルmax又はシンボルmax-uniformの場合
に結果領域の最大可能幅を指定する。この特質は継承しない。
d) 特質max-height : は型length-specであって,特質scale : の値がシンボルmax又はシンボルmax-uniform
の場合に許容する最大の高さを指定する。この特質は継承しない。
e) 特質entity-system-id : は型stringであって,外部グラフィックを含む実体のシステム識別子を指定す
る。この特質は継承せず,必ず指定する。
備考 入力文書の実体宣言で指定された外部識別子は,SGML処理系の実体管理によってシステム識
別子に解決されなければならない。結果のシステム識別子は,入力グローブ内のノード特性
effective-system-idとして利用できる。
f)
特質notation-system-id : は型stringであって,外部グラフィックの記法のシステム識別子を指定する。
この特質は継承せず,必ず指定しなければならない。
備考 入力文書の記法宣言で指定された外部識別子は,SGML処理系の実体管理によってシステム識
別子に解決されなければならない。結果のシステム識別子は,入力グローブ内のノード特性
204
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
effective-notation-system-idとして利用できる。このシステム識別子がその記法に対する処理を
特定する方法は処理系依存とする。
g) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
h) 特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定
する。領域はそのレイヤー値が低い領域から可視化される。初期値は0とする。
i)
特質position-preference : は,シンボルtop,シンボルbottom又は#fを値とする。この特質は流し込み
オブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部
浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェ
クトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質は継承しない。無
指定時値は#fとする。
j)
特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろ(揃)えを指定する。初期値はシンボルstartとする。この特質は流し
込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向
の大きさが,行外サイズに等しくする。最初に空きは領域に加えられ,その大きさを行外サイズから
先頭インデント及び最終インデントの合計を引いた値に等しくする。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きが表記モードの方向で先頭に加えられ,最終インデント
に等しい量の空きが表記モードの方向で最終に加えられる。この特質は,流し込みオブジェクトが行
外の場合だけ適用する。
k) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
l)
特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
m) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
205
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
n) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が行う段抜きの数を指定
する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動
区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。
この特質は,流し込みオブジェクトが行外の場合だけ適用する。
o) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
p) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
q) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
r) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。こ
の特質は,流し込みオブジェクトが行外の場合だけ適用する。
s)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
t)
特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
u) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
v) 特質keep : には,次のいずれかを指定する。
1) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持され
ることを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。この特質は,流し込みオブジェクトが行外の場合だけ
206
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
適用する。
w) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
x) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
y) 特質position-point-x : は型length-specであって,結果となる領域の位置決め点のx座標を,その領域
の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。こ
の特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指
定されず,特質writing-mode : がシンボルleft-to-right又はシンボルright-to-leftの場合,無指定時値は
0とする。
z) 特質position-point-y : は型length-specであって,結果となる領域の位置決め点のy座標を,その領域
の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。こ
の特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指
定されず,特質writing-mode : がシンボルtop-to-bottomの場合,無指定時値は0とする。
aa) 特質escapement-direction : はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right,シン
ボルbottom-to-top又はright-to-leftのいずれかの値をとり,結果となる領域の送り方向を領域の座標系
相対で指定する。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この
特質は,流し込みオブジェクトが行内の場合だけ適用する。この特質は継承しない。この特質が指定
されない場合,無指定時値は特質writing-mode : となる。
ab) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行にだけ影響する。初期値は#fとする。この特質は,流し込みオブジェク
トが行内の場合だけ適用する。
ac) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
ad) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
12.6.16 取り込みコンテナ領域流し込みオブジェクト (Included-container-area)
流し込みオブジェクトincluded-container-areaは,それぞれが領域コンテナとして指定された一つ以上の
領域列を結果とする。流し込みオブジェクトincluded-container-areaは,単一の主ポートをもつ。ポートの
内容は,行外となる。
207
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
流し込みオブジェクトクラスincluded-container-areaの流し込みオブジェクトは,行内又は行外としてよ
い。
コンテナの大きさは,領域コンテナの流し込み方向に直交する方向には固定となる。その大きさは,流
し込みオブジェクトが行外であって,その親の流し込み方向が流し込み方向と同じには,行外サイズとな
る。それ以外の場合,必ず指定しなければならない。流し込み方向は,必ずしも指定する必要はない。省
略した場合は,子領域の大きさによって決定する。このクラスの流し込みオブジェクトを行外として,そ
の配置方向が領域コンテナの流し込み方向と平行であって,流し込み方向の大きさを指定しない場合,流
し込み方向の大きさは親のその方向の大きさで制限される。流し込みオブジェクトが行外であって,その
配置方向が領域コンテナの流し込み方向と直交し,その流し込み方向の大きさが指定されない場合,流し
込み方向の大きさは行外サイズに制限される。
流し込みオブジェクトincluded-container-areaは,次の特質をもつ。
a) 特質display? : は型booleanのオブジェクトであって,流し込みオブジェクトを行外とするか否かを指
定する。この特質は継承しない。無指定時値を#fとする。
b) 特質filling-direction : は,シンボルtop-to-bottom,シンボルleft-to-righ又はシンボルright-to-leftのいず
れかとする。この特質は,領域コンテナの流し込み方向を指定する。領域コンテナの流し込み方向は,
配置方向と直交してもよい。初期値をシンボルtop-to-bottomとする。
c) 特質width : は長さであって,領域コンテナの幅を指定する。この特質は継承しない。
d) 特質height : は長さであって,領域コンテナの高さを指定する。この特質は継承しない。
e) 特質contents-alignment : は,シンボルstart,シンボルend,シンボルcenter又はシンボルjustifyのい
ずれかであって,領域コンテナ内の子領域の流し込み方向に関するそろ(揃)えを指定する。初期値
はシンボルstartとする。
f)
特質overflow-action : は,シンボルtruncate,シンボルerror又はシンボルrepeatのいずれかであって,
領域コンテナ内の内容が領域コンテナの大きさに合わない場合に行う動作を指定する。初期値はシン
ボルrepeatとする。
g) 特質contents-rotation : は,整数0,整数90,整数180,整数270のいずれかであって,内容領域に適
用する回転の反時計周りの角度を指定する。この特質は継承しない。無指定時値は0とする。
h) 特質scale : は,領域の内容に適用する変倍率を指定する。1より小さい数は,内容を小さくする。1
より大きい数は,内容を大きくする。この特質は継承しない。指定されない場合,無指定時値は1と
する。
i)
特質position-preference : は,シンボルtop,シンボルbottom又は#fを値とする。この特質は流し込み
オブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部
浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェ
クトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質は継承しない。無
指定時値は#fとする。
j)
特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろえを指定する。初期値はシンボルstartとする。この特質は流し込みオ
ブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大き
さが,行外サイズに等しくする。最初に空きは領域に加えられ,その大きさを行外サイズから先頭イ
ンデント及び最終インデントの合計を引いた値に等しくする。
208
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きが表記モードの方向で先頭に加えられ,最終インデント
に等しい量の空きが表記モードの方向で最終に加えられる。この特質は,流し込みオブジェクトが行
外の場合だけ適用する。
k) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
l)
特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
m) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
n) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,
本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
o) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
p) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
q) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
r) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。こ
209
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の特質は,流し込みオブジェクトが行外の場合だけ適用する。
s)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
t)
特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
u) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
v) 特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fはこの特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。この特質は,流し込みオブジェクトが行外の場合だけ
適用する。
w) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
x) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
y) 特質position-point-x : は型length-specであって,結果となる領域の位置決め点のx座標を,その領域
の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。こ
の特質は,流し込みオブジェクトが行内の場合だけ適用する。この特質は継承しない。この特質が指
定されず,特質writing-mode : がシンボルleft-to-right又はシンボルright-to-leftの場合,無指定時値は
0とする。
z) 特質position-point-y : は型length-specであって,結果となる領域の位置決め点のy座標を,その領域
の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。こ
の特質は,流し込みオブジェクトが行内の場合だけ適用する。この特質は継承しない。この特質が指
210
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
定されず,特質writing-mode : がシンボルtop-to-bottomの場合,無指定時値は0とする。
aa) 特質escapement-direction : はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right,シン
ボルbottom-to-top又はright-to-leftのいずれかの値をとり,結果となる領域の送り方向を領域の座標系
相対で指定する。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この
特質は,流し込みオブジェクトが行内の場合だけ適用する。この特質は継承しない。この特質が指定
されない場合,無指定時値は特質writing-mode : となる。
ab) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。この特質は,流し込みオブジェク
トが行内の場合だけ適用する。
ac) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
ad) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したのと同じ方法で影響する。この特質は継承しない。
無指定時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
12.6.17 傍線・抹消線 (score)
流し込みオブジェクトscoreは単一の主ポートをもつ。その主ポートの内容は傍線又は抹消線をもつ。
ポートは,行内となる流し込みオブジェクトだけを含んでよい。
備考 圏点スコアは,圏点 (emphasized-mark) 流し込みオブジェクトを用いて扱う。
適用可能な特質は次のとおり。
a) 特質type : は,次のいずれかの値をとる。
1) シンボルbeforeは,傍線が配置パスに平行であって,傍線のためのフォントによって指定される位
置に,行進行方向に関して配置パスの前に引くことを指定する。
2) シンボルthroughは,抹消線が配置パスに平行であって,抹消線のためのフォントによって指定さ
れる位置に,文字を貫いて引くことを指定する。
3) シンボルafterは,傍線が配置パスに平行であって,傍線めためのフォントによって指定される位置
に,行進行方向に関して配置パスの後に引くことを指定する。
4) 型length-specであって,傍線が配置パスに平行であって傍線の中心から配置パスへ指定した距離を
保って平行に引くことを指定する。正の値は傍線を配置パスの後に引く。
5) 文字であって,各グリフがその文字によって上打ちされることを指定する。
この特質は継承せず,指定しなければならない。
b) 特質score-spaces? : は型booleanのオブジェクトであって,傍線・抹消線が空白文字にも適用するか否
かを指定する。初期値は#tとする。
c) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
d) 特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤを指定す
211
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
る。領域はそのレイヤ値が低い領域から可視化される。初期値は0とする。
e) 特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質は,特質type : が型
length-specの場合だけ適用できる。
f)
特質line-dash : は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さ
はJIS X 4154が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残
りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ
0ptを含むリストとする。この特質は,特質type : が型length-specの場合だけ適用できる。
g) 特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。この特質は,特質
type : が型length-specの場合だけ適用できる。
h) 特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。この特質は,特質type : が型length-specの場合だけ適用できる。
i)
特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この
特質は,特質type : が型length-specの場合だけ適用できる。
j)
特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。
k) 特質font-family-name : は,文字列又は#fとする。文字列は,好ましいフォント資源のフォントファミ
リ名特性を与える。#fは任意のフォントファミリが許容されることを示す。初期値はiso-serifとする。
備考 JIS X 4154は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,
iso-sanserif,iso-monospaceから成る。
l)
特質font-weight : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボル
ultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,
シンボルbold,シンボルextra-bold,又はシンボルultra-boldを値とし,望ましいフォント資源の特性
weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。この
特質は,特質glyph-alignment-mode : がシンボルfontの値をとるか,又は特質min-pre-line-spacing : が
#fの場合に適用する。
m) 特質font-posture : は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,
シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボルback-slanted-italicのいず
れかを値とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の姿勢が許容できるこ
とを示す。初期値はシンボルuprightとする。この特質は,特質glyph-alignment-mode : がシンボルfont
の値をとるか又は特質min-pre-line-spacing : が#fの場合に適用する。
n) 特質font-structure : は,シンボル又は#fとし,適用できるフォント構造を指定する。シンボルの場合,
シンボルnot-applicable,シンボルsolid又はシンボルoutlineを値にとる。#fの場合,任意の構造が適
用できることを示す。初期値はシンボルsolidとする。
o) 特質font-proportionate-width : は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,
シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シ
ンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボル
extra-expanded又はシンボルultra-expandedのいずれかを値にとる。#fの場合,任意の字幅が許容可能
を示す。初期値はシンボルmediumとする。この特質は,特質glyph-alignment-mode : がシンボルfont
212
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の値をとるか又は特質min-pre-line-spacing : が#fの場合に適用する。
p) 特質font-name : は,シンボル又は#fを値とし,望ましいフォントリソースのフォント名特性の公開識
別子文字列を指定する。#fの場合,任意のフォント名が許容可能を示す。値が文字列の場合,特質
font-family-name ;,特質font-weight ;,特質font-posture ;,特質font-structure : 及び特質
font-proportionate-width : は,フォント選択には用いない。初期値は#fとする。この特質は,特質
glyph-alignment-mode : がシンボルfontの値をとるか又は特質min-pre-line-spacing : が#fの場合に適用
する。
q) 特質font-size : は型lengthであって,フォントリソースを変倍する大きさを指定する。初期値は10pt
とする。この特質は,特質glyph-alignment-mode : がシンボルfontの値をとるか又は特質
min-pre-line-spacing : が#fの場合に適用する。
さらに特質type : が,シンボルbefore,シンボルafter又はthroughのいずれかの場合,この流し込みオ
ブジェクトにはフォント指定特質を指定しなければならず,それによって位置決めを決定する。フォント
特質は,特質type : の値が文字の場合に指定しなければならず,それによって使用するグリフを決定する。
12.6.18 囲みけい(罫)流し込みオブジェクト (box)
流し込みオブジェクトboxは,流し込みオブジェクト列を囲む囲みけい(罫)を置くために用いる。流
し込みオブジェクトboxは行外又は行内のどちらでもよく,それは特質display? : の値によって決定する。
流し込みオブジェクトboxは,主ポートだけをもつ。流し込みオブジェクトboxが行外の場合,ポートは
任意の行外流し込みオブジェクトを受け付ける。流し込みオブジェクトboxが行内の場合,ポートは任意
の行内流し込みオブジェクトを受け付ける。
流し込みオブジェクトboxは,一つ以上の領域を結果としてよい。この場合,改行に隣接する流し込み
オブジェクトboxの境界線は,特質box-open-end? : が真の場合に,無視してよい。
流し込みオブジェクトboxが行内の場合,無視する境界線は表記モードに直交する境界とする。
流し込みオブジェクトboxが行外の場合,無視する境界線は表記モードに平行な境界線とする。流し込
みオブジェクトboxが行外の場合,表記モードが決定する方向boxの大きさ,つまり境界線位置間の距離
は,boxの行外サイズから先頭及び最終インデントを引いた距離に等しい。流し込みオブジェクトboxの
内容の行外サイズは,boxの行外サイズに等しい。
備考 このように,boxの内容の特質start-indent : 及び特質end-indent : は,boxの境界線と内容とを
分離する好ましい距離を指定するために設定しなければならない。境界線の太さを考慮するた
めに,自動的な分離は行わない。
適用可能な特質は次のとおりとする。
a) 特質display? : は型booleanのオブジェクトであって,boxが行外か否かを指定する。この特質は継承
しない。無指定時値は#fとする。
b) 特質box-type : は,次のシンボルのいずれかを値とする。
1) シンボルborderは,boxが境界線をもつことを指定する。
2) シンボルbackgroundは,boxが背景をもつことを指定する。
3) シンボルbothは,boxが境界線と背景の両方をもつことを指定する。
初期値はシンボルborderとする。
c) 特質box-open-end? : は型booleanのオブジェクトであって,分割されたboxが開いた端をもつことを
指定する。その値が#tの場合,分割の前の領域の終端は目に見える境界線をもたず,分割の後の領域
の先端も目に見える境界線をもたない。その値が#fの場合,分割されたboxは通常どおり目に見える
213
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
境界線をもつ。初期値は#fとする。
d) 特質background-color : は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のた
めに生成されるマークのカラーを指定する。初期値は#fとする。この特質は,特質box-type : がシン
ボルborderを値としない場合だけ指定できる。
e) 特質background-layer : は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレ
イヤーを指定する。初期値は-1とする。この特質は特質box-type : がシンボルborderを値としない場
合にだけ指定できる。
f)
特質box-corner-rounded : は,boxの角がその値に対応して4分の1の円として描かれることを指定す
る。
1) #fは,どの角も丸めないことを示す。
2) #tは,すべての角を丸めることを指定する。
3) シンボルのリストであって,それぞれの角を丸めるか否かを指定する。各シンボルはx-yの形式を
もち,x及びyはbefore又はafterのいずれかとする。boxが行外の場合,xは角が表記モードが決定
する方向に関して前にあるか後にあるかを指定し,yは角が配置方向に関して前にあるか後にある
かを指定する。boxが行内の場合,xは角が送り方向に関して前にあるか後にあるかを指定し,yは
角が行進行方向に関して前にあるか後にあるかを指定する。
初期値は#fとする。
g) 特質box-corner-radius : は型length-specであって,特質box-corner-rounded : の値が#fでない場合の4
分の1円の半径を指定する。負の値は円の中心が辺の交点に位置することを示す。この場合,角はへ
こむ。初期値は3ptとする。
h) 特質box-border-alignment : はシンボルであって,境界線のそろえを境界の位置相対で次のとおり指定
する。
1) シンボルcenterは,線が境界位置に対して中心に位置することを指定する。
2) シンボルoutsideは,boxの外側の辺となる線の辺を境界の位置にそろえることを指定する。
3) シンボルinsideは,boxの内側の辺となる線の辺を境界の位置にそろえることを指定する。
初期値はシンボルoutsideとする。
i)
特質box-size-before : は型lengthであって,配置パスからboxの辺までの,行進行方向に沿って配置
パスの前方への距離を指定する。この特質は,流し込みオブジェクトが行内の場合だけ適用する。初
期値は8ptとする。
j)
特質box-size-after : は型lengthであって,配置パスからboxの辺までの,行進行方向に沿って配置パ
スの後方への距離を指定する。この特質は,流し込みオブジェクトが行内の場合だけ適用する。初期
値は4ptとする。
k) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。この特質は,boxの境界線だけに適用する。
l)
特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定
する。領域はそのレイヤー値が低い領域から可視化される。初期値は0とする。この特質は,boxの
境界線だけに適用する。
m) 特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質は,boxの境界線だけ
に適用する。
214
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
n) 特質line-dash : は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さ
はISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。
残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長
さ0ptを含むリストとする。この特質は,boxの境界線だけに適用する。
o) 特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。この特質は,boxの
境界線だけに適用する。
p) 特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。この特質は,boxの境界線だけに適用する。
q) 特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この
特質は,boxの境界線だけに適用する。
r) 特質line-miter-limit : は数であって,線のマイタ接続限界を示す。マイタ接続の意味は,ISO/IEC 10180
で定義する。初期値は10とする。この特質は,boxの境界線だけに適用する。
s)
特質line-join : はシンボルであって,シンボルmiter,シンボルround又はシンボルbevelのいずれか
の値をとり,線の接続スタイルを指定する。初期値はシンボルmiterとする。この特質は,boxの境界
線だけに適用する。
t)
特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。boxが行内の場合,この特質は,box内の流し込みオブジェクトの配置
を決定する。
u) 特質position-preference : は,シンボルtop,シンボルbottom又は#fを値とする。この特質は流し込み
オブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部
浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェ
クトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質は継承しない。無
指定時値は#fとする。
v) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行にだけ影響する。初期値は#fとする。この特質は,流し込みオブジェク
トが行内の場合だけ適用する。
w) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は,潜在的な分割点の分割優先度が偶数の場合だけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
x) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
y) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
215
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
z) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトが行外の場合だけ適用
する。
aa) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,
本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
ab) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は流し
込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込
む,段集合列のポートに向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
ac) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
ad) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
ae) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。こ
の特質は,流し込みオブジェクトが行外の場合だけ適用する。
af) 特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特
質は,流し込みオブジェクトが行外の場合だけ適用する。
ag) 特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
ah) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
ai) 特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
216
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fはこの特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。この特質は,流し込みオブジェクトが行外の場合だけ
適用する。
aj) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトとの相対位置
決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fと
する。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
ak) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトとの相対位置
決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fと
する。この特質は,流し込みオブジェクトが行外の場合だけ適用する。
12.6.19 並び流し込みオブジェクト (side-by-side)
この流し込みオブジェクトを使用するには,機能side-by-sideの指定が必要となる。
単一のポートをもち,その内容は流し込みオブジェクトside-by-side-itemの列であって,流し込みオブジ
ェクトside-by-sideの配置方向に潜在的にそろえられる。
備考 二つのオブジェクトをある方向にそろえる場合,それらのオブジェクトのその方向に沿った相
対位置を調整して,そろえ点がその方向に直交する線上に並べる。
次の特質を適用可能とする。
a) 特質side-by-side-overlap-control : はシンボルであって,シンボルnone又はシンボルindentを値とし,
流し込みオブジェクトside-by-sideが内容となる流し込みオブジェクトside-by-side-itemが互いに重な
りあう可能性をどのように扱うかを決定する。初期値はシンボルindentとする。
b) 特質position-preference : は,#fであるか,シンボルtop又はシンボルbottomを値とする。この特質は
流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集
合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込み
オブジェクトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質は継承し
ない。無指定時値は#fとする。
c) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
d) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
e) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
f)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
g) 特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
217
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
h) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
i)
特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
j)
特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
k) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
12.6.20 並び対象流し込みオブジェクト (side-by-side-item)
この流し込みオブジェクトの使用には,機能side-by-sideの指定が必要となる。
流し込みオブジェクトside-by-side-itemは,常に行外とする。単一の主ポートをもち,その内容は行外と
なる。その内容の行外サイズは,親の流し込みオブジェクトside-by-sideと同じになる。流し込みオブジェ
クトside-by-side-itemは,流し込みオブジェクトside-by-sideの内部でだけ出現してよい。
次の特質を適用可能とする。
a) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,その流し込みオブジェクトを含む流し込みオ
ブジェクトside-by-sideの特質side-by-side-overlap-control : が,値としてシンボルindentをもつ場合に,
隣接する流し込みオブジェクトが重なるか否かだけを指定する。
b) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,その流し込みオブジェクトを含む流し込みオ
ブジェクトside-by-sideの特質side-by-side-overlap-control : が,値としてシンボルindentをもつ場合に,
隣接する流し込みオブジェクトが重なるか否かだけを指定する。
c) 特質side-by-side-pre-align : はシンボルであって,この流し込みオブジェクトと先行する流し込みオブ
ジェクトside-by-side-itemのそろえに用いる点を指定する。
218
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
1) シンボルstartは,流し込みオブジェクトside-by-side-itemによって生成された最初の領域の配置パ
スに沿った最初の辺を意味する。
2) シンボルinitialは,流し込みオブジェクトside-by-side-itemによって生成された最初の行の配置パス
を意味する。
3) シンボルfinalは,流し込みオブジェクトside-by-side-itemによって生成された最後の行領域の配置
パスを意味する。
4) シンボルendは,流し込みオブジェクトside-by-side-itemによって生成された最後の行領域の配置パ
スに沿った終端辺を意味する。
初期値はシンボルinitialを意味する。
d) 特質side-by-side-post-align : はシンボルであって,特質side-by-side-pre-align : と同じ方法で,この流
し込みオブジェクトと後続の流し込みオブジェクトside-by-side-itemのそろえに使用する点を指定す
る。初期値はシンボルinitialとする。
流し込みオブジェクトside-by-side-itemは,最初を除く各流し込みオブジェクトside-by-side-itemに関し
て,特質side-by-side-pre-alignの決定する点を,配置パスに沿って直前の流し込みオブジェクト
side-by-side-itemの特質side-by-side-post-alignが決定する点にそろえる。
特質side-by-side-overlap-control : がシンボルindentを値にもち,流し込みオブジェクトside-by-side内の
流し込みオブジェクトside-by-side-itemがもつ特質start-indentが,親の流し込みオブジェクトside-by-side
内で直前の流し込みオブジェクトside-by-side-itemの行外サイズと最終インデントとの差より小さい場合,
配置方向に直前の流し込みオブジェクトside-by-side-itemより後に位置付ける。
流し込みオブジェクトside-by-side-itemによって生成される最初の領域に適用可能な任意の特質
space-before : 及び流し込みオブジェクトside-by-side-itemによって生成される最後の領域に適用可能な任
意の特質space-after : は無視する。
12.6.21 グリフ修飾流し込みオブジェクト (glyph-annotation)
流し込みオブジェクトglyph-annotationは,主に意味や発音の記述を文字,語,句に関連させるために用
いる。修飾は,修飾されるグリフの行進行方向に対して前に置く。一つ以上の修飾するグリフをもつ流し
込みオブジェクトglyph-annotationは,複数行に分割してはならない。
備考 長いグリフ修飾は,利用者が明示的に幾つかのグリフ修飾に分割しなければならない。
流し込みオブジェクトglyph-annotationは,次のポートをもつ。
a) 主ポートは修飾されるグリフに用いられる。流し込みオブジェクトcharacterだけを,このポートに流
し込んでよい。
b) ポートannotationは,修飾されるグリフに配置する修飾グリフを流し込むのに用いる。流し込みオブ
ジェクトcharacterだけを,このポートに流し込んでよい。
適用可能な特質は次のとおり。
a) 特質annotation-glyph-placement : はシンボルであって,修飾グリフの配置規則を指定する。シンボル
shoulderedは,修飾されるグリフが一つの流し込みオブジェクトglyph-annotationだけ適用可能とする。
指定可能な値を,次に示す。
1) シンボルcenteredは,修飾するグリフを中央に配置する。
2) シンボルshoulderedは,修飾するグリフの数と修飾されるグリフの先頭との関連で配置を決定する。
この配置の場合,修飾されるグリフは一つでなければならない。修飾するグリフの詳細な配置は,
特質annotation-glyph-styleによって決定する。
219
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
初期値はシンボルcenteredとする。
b) 特質annotation-glyph-style : は,#f又は公開識別子文字列であって,フォーマット時に適用する付加的
な規則を指定する。初期値は#fとする。
備考 この規則は,例えば,配置,行頭及び行末での異なる形式,行内での空きの調整などの詳細を
制御する。
c) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。
d) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は,潜在的な分割点の分割優先度が偶数の場合だけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。
e) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。
12.6.22 そろ(揃)え点流し込みオブジェクト (alignment-point)
流し込みオブジェクトalignment-pointは,特質first-line-align : が#tに等しい流し込みオブジェクト
para-graphの明示的なそろえ点を指定する。この流し込みオブジェクトは原子流し込みオブジェクトであ
って,行内となる。
12.6.23 そろ(揃)い段流し込みオブジェクト (aligned-column)
この流し込みオブジェクトの使用には,機能aligned-columnの指定が必要となる。
流し込みオブジェクトaligned-columnは,外部からそろえられた流し込みオブジェクトparagraphをグル
ープ化するために用いる。流し込みオブジェクトaligned-columnは,行外となる。単一の主要ポートをも
ち,任意の行外流し込みオブジェクトを含んでよい。そのポート内の行外流し込みオブジェクトであって,
外部からそろえられた流し込みオブジェクトparagraph以外は,通常どおりフォーマットされる。内容内又
は内容の流し込みオブジェクトside-by-sideの外部からそろえられた流し込みオブジェクトparagraphは,
表記モードの方向にそろえて,そのそろえ点を配置方向の線に載せる。結果となるそろえられた行のグル
ープは,特質display-alignment ;,特質start-indent : 及び特質end-indent : に従って位置付けられる。
次の特質を適用可能とする。
a) 特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろえを指定する。初期値はシンボルstartとする。この特質は流し込みオ
ブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大き
さが,行外サイズに等しくする。最初に空きは領域に加え,その大きさを行外サイズから先頭インデ
ント及び最終インデントの合計を引いた値に等しくする。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
220
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
を見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きを表記モードの方向で先頭に加え,最終インデントに等
しい量の空きを表記モードの方向で最終に加える。この特質は流し込みオブジェクトが行外の場合に
だけ適用する。
b) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,各外部からそろえられた流し込みオブジェク
トparagraphの最初の行のそろえに用いる。
c) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,各外部からそろえられた流し込みオブジェク
トparagraphの最初の行のそろえに用いる。
d) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。
e) 特質position-preference : は,#fであるか,シンボルtop又はシンボルbottomを値とする。この特質は
流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集
合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込み
オブジェクトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質は継承し
ない。無指定時値は#fとする。
f)
特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
g) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
h) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
i)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
j)
特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
k) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
221
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
継承しない。無指定時は#fとする。
l)
特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること,
及びそれぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fはこの特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
m) 特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
n) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
12.6.24 複数行行内注釈流し込みオブジェクト (multi-line-inline-note)
流し込みオブジェクトmulti-line-inline-noteは,注釈を行内に置くために用いる。この流し込みオブジェ
クトは行内となる。典型的には,この流し込みオブジェクトは次の構成要素から成る。
a) 注釈の前のグリフとほぼ同じ大きさの開きかっこ。
b) 行進行方向において一方が他方に先行する二つの行。その内容は注釈の前後のグリフより小さい大き
さであって,二つの行に内容を流し込み,それらをほぼ同じ長さにする。
c) 開きかっこと同じ大きさの閉じかっこ。
流し込みオブジェクトmulti-line-inline-noteは,二つ以上の行に分割してよい。分割した場合,内容は各
部分となる行を順番に流し込むのに用いる。例えば,分割された最初の部分の2番目の行の最初の文字は,
2番目の部分の最初の行の文字より,流し込んだ内容の中で先に出現しなければならない。さらに,分割
は特質inline-note-style : によって影響を受ける。
この流し込みオブジェクトは単一のポートをもち,行内注釈の内容を含む。このポートは,任意の行内
流し込みオブジェクトを受け付ける。
備考 通常,内容には小さい文字の大きさが指定される。
適用可能な特質は次のとおりとする。
a) 特質open : は,流し込みオブジェクトの開始に用いるラベルなしsosofoとする。sosofoは,行内流し
込みオブジェクトだけを含んでよい。この特質は継承しない。指定のない場合は, (literal " (") を評
価した結果をデフォルトとする。
222
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) 特質close : は,流し込みオブジェクトの終了に用いるラベルなしsosofoとする。そのsosofoは行内
流し込みオブジェクトだけを含む。この特質は継承しない。指定されない場合,無指定時値は (literal
")") の評価結果となる。
c) 特質inline-note-line-count : は正の整数であって,注釈に含める行の数を指定する。初期値は2とする。
d) 特質inline-note-style : は#f又は公開識別子文字列であって,フォーマット時に適用する付加的な規則
を指定する。初期値は#fとする。
備考 この規則は配置,行分割などを制御する。
e) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。
f)
特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は,潜在的な分割点の分割優先度が偶数の場合だけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
g) 特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。
12.6.25 強調マーク流し込みオブジェクト (emphasizing-mark)
流し込みオブジェクトemphasizing-markは,文字,語,句の強調に用いる。各マークは行進行方向に直
交し,配置パスの前に存在するパス上に置かれる。このパスは強調マーク配置パスと呼ぶ。
備考 強調マーク流し込みオブジェクトは,日本語組版の圏点をより一般的な形で利用できるように
したものである。
強調マークは,次に示すとおり配分される。
a) 配置方式glyphは,強調マークを配置パス上で強調するグリフの中心に位置付ける。
備考 この配置は,等幅フォントを使用した文字,語,句を強調するために用いる。
b) 配置方式evenは,強調マークが強調マーク配置パスに沿って,この流し込みオブジェクトの内容の生
成する領域に等分に配置する。
どちらの配置に関しても,流し込みオブジェクトのフォーマットの詳細は,特質mark-styleで指定した
公開識別子で識別する規則によって影響を受ける。
適用できる特質は,次のとおりとする。
a) 特質mark : はラベルなしsosofoであって,強調マークとして用いる領域を指定する。このsosofoは,
行内流し込みオブジェクトだけを含む。この特質は継承しない。この特質は無指定時値をもたない。
b) 特質mark-distribution : はシンボルであって,シンボルglyph又はシンボルevenを値とし,強調マーク
の配置を指定する。初期値はシンボルglyphとする。
c) 特質mark-style : は,#f又は公開識別し文字列であって,この流し込みオブジェクトのフォーマット
に適用する付加的な又は詳細な規則を指定する。初期値は#fとする。
備考 例えば,これらの規則は,配置規則又は行分割規則かもしれない。
d) 特質inhibit-line-breaks? : は型booleanであって,この流し込みオブジェクトによって生成された領域
223
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できる空きに行を
収めるために導入された改行だけに影響する。初期値は#fとする。
e) 特質break-before-priority : は整数であって,この流し込みオブジェクトの前で分割が許可されるか否
かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特
質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び
特質drop-after-line-break? : が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。
分割は,潜在的な分割点の分割優先度が偶数の場合だけ行ってよい。この特質は継承しない。無指定
時値は0とする。この特質は,流し込みオブジェクトが行内の場合だけ適用する。
f)
特質break-after-priority : は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定
に,特質break-before-priority : の規定に記述したと同じ方法で影響する。この特質は継承しない。無
指定時値は0とする。
12.6.26 数式用流し込みオブジェクトクラス
数式に用いる流し込みオブジェクトには,流し込みオブジェクトmath-sequence,流し込みオブジェクト
unmath,流し込みオブジェクトsubscript,流し込みオブジェクトsuperscript,流し込みオブジェクトscript,
流し込みオブジェクトmark,流し込みオブジェクトfence,流し込みオブジェクトfraction,流し込みオブ
ジェクトradical,流し込みオブジェクトmath-operator及び流し込みオブジェクトgridがある。
備考 これらの流し込みオブジェクトは,線形化学式のためにも用いられる。
流し込みオブジェクトcharacterは,数式内の文字のためにも用いるので,特別なクラスは必要としない。
特質font-size ;,特質font-posture : などの特質は,流し込みオブジェクトcharacterと同じ方法で決定する。
これらの特質は,数式用流し込みオブジェクト内で自動的に変更したりはしない。しかし,特質
font-posture : の値としてシンボルmathを指定してある場合,異なる文字に数式内で異なる姿勢をとらせる
こともできる。
12.6.26.1 数式列流し込みオブジェクト (math-sequence)
流し込みオブジェクトmath-sequenceは,一つの領域を生成する。
流し込みオブジェクトは単一の主ポートをもち,領域の内容に用いる。ポートは次のクラスの流し込み
オブジェクトを受け付ける。流し込みオブジェクトmath-sequence,流し込みオブジェクトunmath,流し込
みオブジェクトsub-script,流し込みオブジェクトsuperscript,流し込みオブジェクトscript,流し込みオブ
ジェクトmark,流し込みオブジェクトfence,流し込みオブジェクトfraction,流し込みオブジェクトradical,
流し込みオブジェクトmath-operator,流し込みオブジェクトgrid,流し込みオブジェクトcharacter又は流
し込みオブジェクトalignment-point。内容の流し込みオブジェクト間の空きは,そのクラス及び特質によ
って調整される可能性がある。
適用可能な特質は,次のとおりとする。
a) 特質math-display-mode : は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指
定する。初期値はシンボルdisplayとする。
ある数式流し込みオブジェクトクラスが,流し込みオブジェクトmath-sequenceと同じクラスを受け付け
るポートをもつ場合,流し込みオブジェクト間の空きは,それが流し込みオブジェクトmath-sequenceの中
にあるかのように調整する。
12.6.26.2 数式解除流し込みオブジェクト (unmath)
流し込みオブジェクトunmathは,数式内で自然言語の単語の列を利用するために用いる。それらの語内
の文字は,隣接する数式内の文字とは異なる空きをもつ。流し込みオブジェクトunmathは,単一の主ポー
224
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
トをもつ。ポートは任意の行内流し込みオブジェクトを受け付ける。これらの流し込みオブジェクトは,
通常どおり配置される。
次の特質を適用可能とする。
a) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。
b) 特質glyph-alignment-mode : はシンボルであって,シンボルbase,シンボルcenter,シンボルtop,シ
ンボルbottom又はシンボルfontのいずれかを値とし,グリフに使用する流し込みオブジェクトの表記
モード方向における公称そろえモードを意味する。初期値はシンボルfontとする。
c) 特質font-family-name : は,任意のフォントファミリが許容されることを示す#f,好ましいフォントリ
ソースのフォントファミリ名特性を与える文字列とする。初期値はiso-serifとする。
備考 JIS X 4154は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,
iso-sanserif,iso-monospaceから成る。
この特質は,特質glyph-alignment-mode : の値がシンボルfontの場合に適用する。
d) 特質font-weight : は,任意のフォントのウェイトが許容できることを示す#fであるか,それぞれ望ま
しいフォントリソースのウェイト特性を示す,シンボルnot-applicable,シンボルultra-light,シンボル
extra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,シンボルbold,
シンボルextra-bold,又はシンボルultra-boldのいずれかを値とする。初期値はmediumとする。この
特質は,特質glyph-alignment-mode : の値がシンボルfontの場合に適用する。
e) 特質font-posture : は,任意の姿勢が許容できることを示す#fであるか,望ましいフォントリソースの
姿勢特性を示すシンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,
シンボルitalic,又はback-slanted-italicのいずれかを値とする。初期値はシンボルuprightとする。こ
の特質は,特質glyph-alignment-mode : の値がシンボルfontの場合に適用する。
f)
特質font-structure : は,任意の構造が許容できることを示す#fであるか,シンボルnot-applicable,シ
ンボルsolid,又はシンボルoutlineのいずれかを値とする。初期値はシンボルsolidとする。この特質
は,特質glyph-alignment-mode : の値がシンボルfontの場合に適用する。
g) 特質font-proportionate-width : は,任意の字幅が許容可能を示す#fであるか,シンボルnot-applicable,
シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シンボルsemi-condensed,
シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボルextra-expanded,又はシンボ
ルultra-expandedのいずれかを値とする。初期値はシンボルmediumとする。この特質は,特質
glyph-alignment-mode : の値がシンボルfontの場合に適用する。
h) 特質font-name : は,任意のフォント名が許容可能を示す#fであるか,又は望ましいフォントリソース
のフォント名特性の公開識別子文字列を値とする。値が文字列の場合,特質font-family-name ;,特質
font-weight ;,特質font-posture ;,特質font-structure ;,及び特質font-proportionate-width : は,フォント
選択には用いない。初期値は#fとする。この特質は,特質glyph-alignment-mode : の値がシンボルfont
の場合に適用する。
12.6.26.3 下付き流し込みオブジェクト (subscript)
流し込みオブジェクトsubscriptは,流し込みオブジェクトmath-sequence内又は流し込みオブジェクト
math-sequenceと同じ流し込みオブジェクトを受け付ける数式流し込みオブジェクトのポート内で出現し
てよい。流し込みオブジェクトsubscriptは,その親が流し込みオブジェクトsubscriptの内容が,直前の領
225
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
域の下付きに位置付けさせる。流し込みオブジェクトsubscriptは,単一の主ポートをもつ。
12.6.26.4 上付き流し込みオブジェクト (superscript)
流し込みオブジェクトsuperscriptは,流し込みオブジェクトmath-sequence内又は流し込みオブジェクト
math-sequenceと同じ流し込みオブジェクトを受け付ける数式流し込みオブジェクトのポート内で出現し
てよい。流し込みオブジェクトsuperscriptは,その親が流し込みオブジェクトsuperscriptの内容が,直前
の領域の下付きに位置付けさせる。流し込みオブジェクトsuperscriptは,単一の主ポートをもつ。
12.6.26.5 文字付き流し込みオブジェクト (script)
流し込みオブジェクトscriptは,七つの部分の領域で記述する。
それらの部分を,次に示す。
a) 基本領域
b) 前上付き領域
c) 前下付き領域
d) 中上付き領域
e) 中下付き領域
f)
後上付き領域
g) 後下付き領域
適用可能なポートは次のとおりとする。
a) 主ポートは流し込みオブジェクトの基本内容に用いる。
b) ポートpre-supは,表記モードが決定する方向に関して基本内容の前に上付きを置くために用いる。
c) ポートpre-subは,表記モードが決定する方向に関して基本内容の前に下付きを置くために用いる。
d) ポートpost-supは,表記モードが決定する方向に関して基本内容の後に上付きを置くために用いる。
e) ポートpost-subは,表記モードが決定する方向に関して基本内容の後に下付きを置くために用いる。
f)
ポートmid-supは,基本内容の上に上付きを置くために用いる。
g) ポートmid-subは,基本内容の下に下付きを置くために用いる。
各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスの流し込みオブジェクトを受け
付ける。適用可能な特質は,次のとおりとする。
a) 特質script-pre-align : はシンボルであって,前上付き及び前下付きのそろえを指定する。次の値を指定
可能とする。
1) シンボルindependentは,前下付き及び前上付きを個別にそろえることを指定する。
2) シンボルpileは,領域の終端辺のそろえを指定する。
3) シンボルsup-outは,ポートpre-supに関連付けられた領域の終端辺を,ポートpre-subに関連付けら
れた領域の先頭辺とそろえることを指定する。
4) シンボルsub-outは,ポートpre-subに関連付けられた領域の終端辺を,ポートpre-supに関連付けら
れた領域の先頭辺とそろえることを指定する。
初期値はシンボルindependentとする。
b) 特質script-post-align : はシンボルであって,後上付き領域及び後下付き領域のそろえを指定する。次
の値を指定可能とする。
1) シンボルindependentは,後下付き及び後上付きを個別にそろえることを指定する。
2) シンボルpileは,領域の先頭辺のそろえを指定する。
3) シンボルsup-outは,ポートpost-supに関連付けられた領域の先頭辺を,ポートpost-subに関連付け
226
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
られた領域の終端辺とそろえることを指定する。
4) シンボルsub-outは,ポートpost-supに関連付けられた領域の先頭辺を,ポートpost-supに関連付け
られた領域の終端辺とそろえることを指定する。
初期値はシンボルindependentとする。
c) 特質script-mid-sup-align : はシンボルであって,中上付き領域及び基本領域のそろえを指定する。
次の値を指定可能とする。
1) シンボルlead-edgeは,領域列の先頭辺のそろえを指定する。
2) シンボルtrail-edgeは,領域列の終端辺のそろえを指定する。
3) シンボルcenterは,領域列の中心を,表記モードが決定する方向にそろえることを指定する。
初期値はシンボルcenterとする。
d) 特質script-mid-sub-align : はシンボルであって,中下付き領域及び基本領域のそろえを指定する。
次の値を指定可能とする。
1) シンボルlead-edgeは,領域列の先頭辺のそろえを指定する。
2) シンボルtrail-edgeは,領域列の終端辺のそろえを指定する。
3) シンボルcenterは,領域列の中心を,表記モードが決定する方向にそろえることを指定する。
初期値はシンボルcenterとする。
e) 特質math-display-mode : は,シンボルdisplay又はシンボルinlineを値とし,フォーマテイングのスタ
イルを指定する。初期値はシンボルdisplayとする。
12.6.26.6 マーク流し込みオブジェクト (mark)
流し込みオブジェクトは,3部分の領域を記述する。
記述する領域は次のとおりとする。
a) 基本領域
b) 上マーク領域
c) 下マーク領域
利用可能なポートは次のとおり。
a) 主ポートは流し込みオブジェクトの基本内容に用いる。
b) ポートover-markは,上マーク領域に置く流し込みオブジェクトのために用いる。
c) ポートunder-markは,下マーク領域に置く流し込みオブジェクトのために用いる。
ポートover-mark又はポートunder-markが,流し込みオブジェクトcharacter,流し込みオブジェクトrule,
又は流し込みオブジェクトleaderのオブジェクトを一つだけ含む場合,基本領域全体を覆うように伸長さ
れる。
備考 流し込みオブジェクトの伸長方法は,実装依存及びフォント依存とする。
各ポートは流し込みオブジェクトmath-sequenceのポートと同じ内容を受け付ける。
適用可能な特質は次のとおりとする。
a) 特質math-display-mode : は,シンボルdisplay又はシンボルinlineを値とし,フォーマテイングのスタ
イルを指定する。初期値はシンボルdisplayとする。
12.6.26.7 フェンス流し込みオブジェクト (fence)
流し込みオブジェクトfenceは,3部分の領域を記述する。
それらの部分は次のとおりとする。
a) 基本領域
227
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) 開きフェンス領域
c) 閉じフェンス領域
フェンスは,基本領域の高さに従って伸長したほうがよい。
備考 この実現の方法は,実装依存及びフォント依存となる。
流し込みオブジェクトは,次のポートをもつ。
a) 主ポートは,流し込みオブジェクトの基本内容のために用いる。このポートは,流し込みオブジェク
トmath-sequenceのポートと同じクラスの流し込みオブジェクトを受け付ける。
b) ポートopenは,開きフェンス領域のために用いる。このポートは流し込みオブジェクトcharacterを
一つだけ受け付ける。
c) ポートcloseは,閉じフェンス領域のために用いる。このポートは流し込みオブジェクトcharacterを
一つだけ受け付ける。
適用可能な特質は次のとおりとする。
a) 特質math-display-mode : は,シンボルdisplay又はinlineを値とし,フォーマテイングのスタイルを指
定する。初期値はシンボルdisplayとする。
12.6.26.8 除算流し込みオブジェクト (fraction)
流し込みオブジェクトfractionは,3部分の領域を記述する。
記述する部分は次のとおりとする。
a) 被除数領域
b) 除算を示す線の領域
c) 除数領域
この流し込みオブジェクトは,次のポートをもつ。
a) ポートnumeratorは,被除数領域に置く内容に用いる。
b) ポートdenominatorは,除数領域に置く内容に用いる。
各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスの流し込みオブジェクトを受け
付ける。
適用可能な特質は次のとおりとする。
a) 特質fraction-bar : はラベルなしsosofoであって,一つの流し込みオブジェクトruleを含み,除算を示
す線に用いる。初期値は,すべての継承可能特質に継承した値をもつ流し込みオブジェクトruleとす
る。
b) 特質numerator-align : はシンボルであって,被除数領域と除算を示す線の領域とのそろえを指定する。
指定可能な値は次のとおりとする。
1) シンボルlead-edgeは,領域列の先頭辺のそろえを指定する。
2) シンボルtrail-edgeは,領域列の終端辺のそろえを指定する。
3) シンボルcenterは,領域列の中心を,表記モードが決定する方向にそろえることを指定する。
初期値は,シンボルcenterとする。
c) 特質denominator-align : はシンボルであって,除数領域と除算線領域とのそろえを指定する。指定可
能な値は次のとおりとする。
1) シンボルlead-edgeは,領域列の先頭辺のそろえを指定する。
2) シンボルtrail-edgeは,領域列の終端辺のそろえを指定する。
3) シンボルcenterは領域列の中心を,表記モードが決定する方向にそろえることを指定する。
228
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
初期値はシンボルcenterとする。
d) 特質math-display-mode : は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指
定する。初期値はシンボルdisplayとする。
12.6.26.9 根号流し込みオブジェクト (radical)
流し込みオブジェクトradicalは,3部分から成る領域を記述する。
各部分は,それぞれ次の領域を記述する。
a) 基本領域
b) 次数領域
c) 根号グリフ領域
流し込みオブジェクトradicalは,次のポートをもつ。
a) 主ポートは流し込みオブジェクトの主要な内容のために用いる。
b) ポートdegreeは,流し込みオブジェクトの根の次数に用いる。
各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。
適用可能な特質は次のとおりとする。
a) 特質math-display-mode : は,シンボルdisplay又はシンボルinlineを値とし,フォーマット処理のスタ
イルを指定する。初期値はシンボルdisplayとする。
b) 特質radical : はラベルなしsosofoであって,根号グリフに用いる単一の文字を含む。この特質は継承
しない。指定されない場合,処理系依存の方法で無指定時値を決定する。
12.6.26.10 数学演算子流し込みオブジェクト (math-operator)
流し込みオブジェクトmath-operatorは,4部分から成る領域を記述する。
各部分はそれぞれ次の領域を記述する。
a) 基本領域
b) 下限値領域
c) 上限値領域
d) 演算子シンボル領域
流し込みオブジェクトmath-operatorは,次のポートをもつ。
a) 主ポートは流し込みオブジェクトの主要な内容のために用いる。
b) ポートoperatorは,演算子シンボルのために用いる。
c) ポートlower-limitは,下限値の内容のために用いる。
d) ポートupper-limitは,上限値の内容のために用いる。
各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。
適用可能な特質は,次のとおりとする。
a) 特質math-display-mode : は,シンボルdisplay又はシンボルinlineを値とし,フォーマット処理のスタ
イルを指定する。初期値はシンボルdisplayとする。
備考 シンボルdisplayは,典型的には行進行方向に沿ってその前後に上限値,下限値を配置すること
を示す。シンボルinlineは,典型的には行内進行方向に沿って演算子シンボルの後に上限値,
下限値を配置することを示す。
12.6.26.11 格子流し込みオブジェクト (grid)
流し込みオブジェクトgridは,格子状に配置される一連の領域を記述する。格子の列 (column) 進行方
向が送り方向となり,行 (row) 進行方向が行進行方向となる。
229
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
備考 行列は流し込みオブジェクトgridを流し込みオブジェクトfenceで囲むことで取り扱う。
流し込みオブジェクトgridは,単一の主ポートをもち,すべての内容をそこに含む。主ポートは,流し
込みオブジェクトクラスgrid-cellを受け付ける。
適用可能な特質は次のとおりとする。
a) 特質grid-position-cell-type : はシンボルであって,格子内のセルの位置決めを次のとおりに決定する。
1) シンボルexplicitは,各格子セルが明示的に行番号及び列番号をもつことを示す。
2) シンボルrow-majorは,各セルの位置は流し込みオブジェクトgridのどこに出現するかによって決
定され,ある行のセルはそれ以降の行のセルより先に出現することを示す。
3) シンボルcolumn-majorは,各セルの位置は流し込みオブジェクトgridのどこに出現するかによって
決定され,ある列のセルはそれ以降の列のセルより先に出現することを示す。
初期値は,シンボルrow-majorとする。
b) 特質grid-n-columns : は正の整数であって,流し込みオブジェクトgrid内の列の数を指定する。この
特質は継承せず,特質grid-position-cell-type : の値がシンボルrow-major又はシンボルexplicitの場合に
指定しなければならない。
c) 特質grid-n-rows : は正の整数であって,流し込みオブジェクトgrid内の列の数を指定する。この特質
は継承せず,特質grid-position-cell-type : の値がシンボルcolumn-major又はシンボルexplicitの場合に
指定しなければならない。
d) 特質grid-column-alignment : はシンボルであって,流し込みオブジェクトgrid内の領域の列進行方向
におけるそろえを指定する。指定可能な値は,シンボルstart,シンボルcenter又はシンボルendのい
ずれかとする。初期値はシンボルcenterとする。
e) 特質grid-row-alignment : はシンボルであって,流し込みオブジェクトgrid内の領域の行進行方向にお
けるそろえを指定する。指定可能な値は,シンボルstart,シンボルcenter又はシンボルendのいずれ
かとする。初期値はシンボルcenterとする。
f)
特質grid-equidistant-rows? : は型booleanのオブジェクトであって,流し込みオブジェクトgrid内の領
域の中心が,流し込みオブジェクトgridの行 (row) 進行方向に沿って等距離にするか否かを指定する。
初期値は#fとする。
g) 特質grid-equidistant-columns? : は型booleanのオブジェクトであって,流し込みオブジェクトgrid内
の領域の中心が,流し込みオブジェクトgridの列 (column) 進行方向に沿って等距離にするか否かを
指定する。初期値は#fとする。
h) 特質math-display-mode : は,シンボルdisplay又はシンボルinlineを値とし,フォーマティングのスタ
イルを指定する。初期値はシンボルdisplayとする。
12.6.26.12 格子セル流し込みオブジェクト (grid-cell)
流し込みオブジェクトgrid-cellは,格子内の各セルの内容を格納する。
流し込みオブジェクトgrid-cellは,単一の主ポートをもち,すべての内容をそこに含む。主ポートは,
流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。
適用可能な特質は次のとおりとする。
a) 特質column-number : は正の整数であって,そのセルの属する列を指定する。この特質は継承しない。
この特質は,その親の流し込みオブジェクトgridが特質grid-position-cell-type : にシンボルexplicitを
値としてもつ場合だけ指定する。その値は,親の流し込みオブジェクトgridの特質grid-n-columns : に
指定した値を超えてはならない。最初の列を示す値は1とする。
230
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
b) 特質row-number : は正の整数であって,そのセルの属する行 (row) を指定する。この特質は継承しな
い。この特質は,その親の流し込みオブジェクトgridが特質grid-position-cell-type : にシンボルexplict
を値としてもつ場合だけ指定する。その値は,親の流し込みオブジェクトgridの特質grid-n-rows : に
指定した値を超えてはならない。最初の行 (row) を示す値は1とする。
任意の流し込みオブジェクトgridにおいて,二つ以上のセルが特質column-number : 及び特質
row-number : に同じ値をもってはならない。
12.6.27 表用流し込みオブジェクト
表のフォーマティング指定には,次の流し込みオブジェクトクラスを使用する。
a) 流し込みオブジェクトクラスtable
b) 流し込みオブジェクトクラスtable-part
c) 流し込みオブジェクトクラスtable-column
d) 流し込みオブジェクトクラスtable-row
e) 流し込みオブジェクトクラスtable-cell
f)
流し込みオブジェクトクラスtable-border
12.6.27.1 表流し込みオブジェクト (table)
流し込みオブジェクトtableは,単一の主ポートをもつ。
主ポートの内容は,次のいずれかとする。
a) 流し込みオブジェクトクラスtable-partに属するすべての流し込みオブジェクト。
b) 流し込みオブジェクトクラスtable-column,流し込みオブジェクトクラスtable-row,流し込みオブジ
ェクトクラスtable-cell,のいずれかに属するすべての流し込みオブジェクト。
流し込みオブジェクトtableが流し込みオブジェクトtable-columnを含む場合,それらは他のクラスの流
し込みオブジェクトすべてに先行しなければならない。流し込みオブジェクトtableは行外となる。
表には関連する方向が二つあり,それぞれ行 (row) 進行方向及び列 (column) 進行方向と呼ぶ。行 (row)
進行方向は,流し込みオブジェクトtableの配置方向に等しい。列 (column) 進行方向は,流し込みオブジ
ェクトtableの特質writing-mode : の値によって指定される方向となる。この二つの方向は直交しなければ
ならない。
流し込みオブジェクトtableは,次の特質をもつ。
a) 特質table-width : は型length-specであって,表の列 (column) 進行方向の大きさを指定するか,又は
機能table-auto-widthを使用している場合に,#fでその内容に従った最小サイズを指定する。この特質
は継承しない。無指定時値は,行外サイズから適用可能なすべてのインデントを引いた値となる。
b) 特質table-auto-width-method : は#f又は公開識別子文字列であって,列 (column) の幅を決定する方式
を指定する。この特質は機能table-auto-widthを使用している場合だけ適用する。初期値は#fとする。
c) 特質table-border : はラベルなしsosofoであって,一つの流し込みオブジェクトtable-borderを含む。
値として#t又は#fも指定可能とする。これは,特質border-present? : にそれぞれ#t又は#fを値にもつ
流し込みオブジェクトtable-borderを指定するのと同価で,その他の特質は流し込みオブジェクトtable
から継承したものを用いる。この特質は,特質before-row-border ;,特質after-row-border ;,特質
before-column-border : 及び特質after-column-border : 特質に対する無指定時値を決定する。初期値は#f
とする。
d) 特質before-row-border : はラベルなしsosofoであって,行(row)進行方向に沿って前にある辺の境界と
して用いる,一つの流し込みオブジェクトtable-borderを含む。値として#t又は#fも指定可能とする。
231
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
これは,特質border-present? : にそれぞれ#t又は#fを値にもつ流し込みオブジェクトtable-borderを指
定するのと同価で,その他の特質は流し込みオブジェクトtableから継承したものを用いる。この特質
は継承しない。無指定時値は,特質table-border : の値とする。
e) 特質after-row-border ;,は特質before-row-border : と同じ方法で指定するが,適用する辺は行 (row) 進
行方向に後の辺となる。
f)
特質before-column-border : は特質before-row-border : と同じ方法で指定するが,適用する辺は列
(column) 進行方向に前の辺となる。
g) 特質after-column-border : は特質before-row-border : と同じ方法で指定するが,適用する辺は列
(column) 進行方向に後の辺となる。
h) 特質table-corner-rounded : は,表の角を4分の1円で描くことに関して,次のとおり指定する。
1) #fは,どの角も丸めないことを意味する。
2) #tは,すべての角を丸めることを意味する。
3) シンボルのリストであって,それぞれの角を丸めるか否かを指定する。各シンボルはx-yの形式を
もち,x及びyはbefore又はafterのいずれかとする。boxが行外の場合,xは角が表記モードが決定
する方向に関して前にあるか後にあるかを指定し,yは角が配置方向に関して前にあるか後にある
かを指定する。boxが行内の場合,xは角が送り方向に関して前にあるか後にあるかを指定し,yは
角が行進行方向に関して前にあるか後にあるかを指定する。
初期値は#fとする。
i)
特質table-corner-radius : は型length-specであって,特質table-corner-rounded : の値が#fでない場合の4
分の1円の半径を指定する。負の値は円の中心が辺の交点に位置することを示す。この場合,角はへ
こむ。初期値は3ptとする。
j)
特質position-preference : は,#fであるか,シンボルtop又はシンボルbottomのいずれかを値とする。
この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,
段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この
流し込みオブジェクトからの領域がどちらかだけの区域に流し込まれるか否かを指定する。この特質
は継承しない。無指定時値は#fとする。
k) 特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろえを指定する。初期値はシンボルstartとする。この特質は,流し込み
オブジェクトがその領域を拡大して,その大きさを領域コンテナの流し込み方向に直交する方向の行
外サイズに等しくする。最初に空きは領域に加えられ,その大きさを行外サイズから先頭インデント
及び最終インデントの合計を引いた値に等しくする。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
232
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きが表記モードの方向で先頭に加えられ,最終インデント
に等しい量の空きが表記モードの方向で最終に加えられる。この特質は流し込みオブジェクトが行外
の場合だけ適用する。
l)
特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。
m) 特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。
n) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。
o) 特質span : は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。
この特質は,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域又は本文域に流れ込む段集
合列のポートに,流し込みオブジェクトが向けられた場合だけ適用する。初期値は1とする。
p) 特質span-weak? : は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる
領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5.1参照のこと。この特質は,抜
くことの可能な段部分集合の上部浮動区域,下部浮動区域又は本文域に流れ込む段集合列のポートに,
流し込みオブジェクトが向けられ,特質span : が1を超える場合に限って適用する。初期値は#fとす
る。
q) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
r) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
s)
特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
t)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
u) 特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
v) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
w) 特質keep : には,次のいずれかを指定する。
1) 値#tはこの流し込みオブジェクトの生成する領域が,可能な最も小さい領域内で一緒に保持される
ことを意味する。
233
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは,流し込みオブジェクトpage-sequenceの先祖をもたなけ
ればならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは,流し込みオブジェクトcolumn-set-sequenceの先
祖をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること
を示し,それぞれの領域が抜く最初の段は同じになることを示す。
5) 値#fは,この特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
x) 特質may-violate-keep-before? : は,型booleanであって,真の場合には先祖の流し込みオブジェクトの
特質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置
決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fと
する。
y) 特質may-violate-keep-after? : は,型booleanであって,真の場合には先祖の流し込みオブジェクトの
特質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置
決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fと
する。
12.6.27.2 表部部分流し込みオブジェクト (table-part)
流し込みオブジェクトtable-partは,流し込みオブジェクトtableの中でだけ出現してよい。
流し込みオブジェクトtable-partは,三つのポートをもつ。
a) 主ポートは,表本体に用いる。
b) ポートheaderは,表ヘッダに用いる。
c) ポートfooterは,表フッタに用いる。
流し込みオブジェクトtable-partのポートに適用可能な流し込みオブジェクトは,ここで明示的に記述し
てあるものだけとする。流し込みオブジェクトtable-columnは主ポートに適用可能とする。それらは,そ
の他のクラスの流し込みオブジェクトに先行していなければならない。流し込みオブジェクトtable-part
のすべてのポートに,流し込みオブジェクトtable-row及び流し込みオブジェクトtable-cellを適用可能と
する。
流し込みオブジェクトtable-partをフォーマットした結果は,領域列となる。それぞれの領域は,ポート
headerの内容(特質table-part-omit-middle-header? : の指定によって無視される場合を除く。),続いて主ポ
ートの内容,さらにポートfooterの内容(特質table-part-omit-middle-footer? : の指定によって無視される場
合を除く)から成る。主ポート内の各行 (row) は一度だけ出現し,各行 (row) の順序は保存されなければ
ならない。ポートheader及びポートfooterの行 (row) は,各結果領域で複製しなければならない。
表内のすべての流し込みオブジェクトtable-partは同じ幅をもつ。
次の特質を適用可能とする。
a) 特質table-part-omit-middle-header? : は型booleanであって,真の値は,流し込みオブジェクトtable-part
が生成する最初の領域が,表によって生成される領域の先頭に位置しない場合には,ポートheaderの
内容で開始しないことを指定する。初期値は#fとする。
b) 特質table-part-omit-middle-footer? : は型booleanであって,真の値は,流し込みオブジェクトtable-part
234
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
が生成する最後の領域が,表によって生成される領域の末尾に位置しない場合には,ポートfooterrの
内容で終了しないことを指定する。初期値は#fとする。
c) 特質space-before : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
d) 特質space-after : は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生
成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空
きを挿入しない。
e) 特質keep-with-previous? : は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェク
トと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
f)
特質keep-with-next? : は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと
同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。
g) 特質break-before : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継
承しない。無指定時は#fとする。
h) 特質break-after : は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-set
のいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は
継承しない。無指定時は#fとする。
i)
特質keep : には,次のいずれかを指定する。
1) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持され
ることを意味する。
2) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを
示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなけれ
ばならない。
3) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置する
ことを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖
をもたなければならない。
4) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること
を示し,それぞれの領域が抜く最初の段が同じになることを示す。
5) 値#fはこの特質を無視することを指定する。
この特質は継承しない。初期値は#fとする。
j)
特質may-violate-keep-before? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
k) 特質may-violate-keep-after? : は型booleanであって,真の場合には先祖の流し込みオブジェクトの特
質keep : によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決
めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとす
る。
12.6.27.3 表列流し込みオブジェクト (table-column)
235
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
流し込みオブジェクトtable-columnは原子流し込みオブジェクトであって,同じ列及び列抜きの表セル
に適用する特質を指定する。
次の特質を適用可能とする。
a) 特質column-number : は正の整数であって,この流し込みオブジェクトtable-columnから特質を継承す
る表セルの列番号を指定する。無指定時値は1に直前の流し込みオブジェクトtable-columnの特質
column-number : の値を加えたもので,直前の流し込みオブジェクトtable-columnが存在しない場合1
となる。この特質は継承しない。
b) 特質n-columns-spanned : は正の整数であって,この流し込みオブジェクトtable-columnから特質を継
承する表セルが幾つの列を抜くかを指定する。この特質は継承しない。無指定時値は1とする。
c) 特質width : は型length-specであって,この列 (column) の幅を指定する。この特質は継承しない。こ
の特質は,特質n-columns-spanned : が1より大きい流し込みオブジェクトtable-columnには指定して
はならない。特質width : は,機能table-auto-widthを指定しない限り,流し込みオブジェクト
table-columnごとに指定する。
d) 特質display-alignment : はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボ
ルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,
表記モードの方向に関するそろえを指定する。初期値はシンボルstartとする。この特質は,流し込み
オブジェクトがその領域を拡大して,その大きさを領域コンテナの流し込み方向に直交する方向の行
外サイズに等しくする。最初に空きは領域に加えられ,その大きさを行外サイズから先頭インデント
及び最終インデントの合計を引いた値に等しくする。
1) そろえがシンボルstartの場合,空きをすべて表記モード方向の最終に加える。
2) そろえがシンボルendの場合,空きをすべて表記モード方向の先頭に加える。
3) そろえがシンボルcenterの場合,空きを表記モード方向の先頭及び最終に等分に加える。
4) そろえがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して外側の辺に加える。
5) そろえがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラス
page-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクト
page-sequenceの特質binding-edge : の方向に直交するようにしなければならない。この場合,空き
は見開きに対して内側の辺に加える。
その後,先頭インデントに等しい量の空きが表記モードの方向で先頭に加えられ,最終インデント
に等しい量の空きが表記モードの方向で最終に加えられる。この特質は流し込みオブジェクトが行外
の場合だけ適用する。
e) 特質start-indent : は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は列 (column) 内の外部からそろえられた各段落の
最初の行のそろえに用いる。
f)
特質end-indent : は型length-specであって,表記モードの方向で最終に位置する領域の辺からのイン
デントを指定する。初期値は0ptとする。この特質は,列 (column) 内の外部からそろえられた各段落
の最初の行のそろえに用いる。
流し込みオブジェクトtable-columnに指定した任意の継承可能特質は,12.4の記載どおり,表セル又は
236
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
表セルの内容によって間接的に継承される。
機能table-auto-widthを利用可能にしない場合,流し込みオブジェクトtable-part内,又は流し込みオブジ
ェクトtable-partを含まない流し込みオブジェクトtable内の列 (column) の数は,主ポートの内部にある流
し込みオブジェクトtable-columnによって決定する。内容内の各セル及びそのセルが抜く各列 (column)
について,列番号が等しい流し込みオブジェクトtable-columnが存在しなければならない。機能
table-auto-widthを利用可能にした場合,列の数は表の内容から自動的に決定される。
(table-unit k)
比率尺度k単位の型length-specを返す。この手続きは特質width : の値で使用可能とする。特定の表で
の比率尺度の単位の値を選択して,列の幅の合計をその表の幅と等しくする。
備考 これは列の幅を比率で指定可能にする。
12.6.27.4 表の幅の自動計算
この12.6.27.4は機能table-auto-widthを利用可能にした場合に適用する。
幅の指定のない列の幅は,少なくとも,その列に広がる任意の表セルの内容の可能な最小サイズの最大
値と同じ大きさでなければならない。
備考 特質lines : の値がシンボルwrapとなる段落を含む表セルの場合,その可能な最小幅は処理系
依存の方式で決定される。例えば,最も長い語の長さの場合もあるだろう。
表セルが一つ以上の列を抜く場合,表セルが抜く列の幅の合計は少なくともそのセルの内容の幅と同じ
大きさをもつ。
列の幅について型length-specで指定した場合,列の幅は指定した幅になる。列の幅について型length-spec
で指定した場合,その長さはその列に広がる任意の表セルの行外サイズとして用いる。
その他の計算方式の様相は,特質table-auto-width-method : によって制御される。
12.6.27.5 表行流し込みオブジェクト (table-row)
流し込みオブジェクトtable-rowは,表セルを行 (row) にグループ化する役にたつ。同一の流し込みオ
ブジェクトtable-row内のすべて表セルは,幾何学的な意味で同じ行から開始する。
流し込みオブジェクトtable-rowは単一の主ポートをもち,主ポートは流し込みオブジェクトtable-cell
を受け付ける。
流し込みオブジェクトtable-rowは,流し込みオブジェクトtable-part又は流し込みオブジェクトtableの
子として出現できる。
流し込みオブジェクトtable-cellが,流し込みオブジェクトtable-part内又は流し込みオブジェクトtable
内に直接出現した場合,セルは特質starts-row? : 及び特質ends-row? : を用いてグループ化される。
12.6.27.6 表セル流し込みオブジェクト (table-cell)
流し込みオブジェクトtable-cellは,単一の主ポートをもつ。主ポートは行外となり得る任意の流し込み
オブジェクトを受け付ける。流し込みオブジェクトtable-cellは,流し込みオブジェクトtable-row,流し込
みオブジェクトtable-part又は流し込みオブジェクトtableの子として出現してよい。
流し込みオブジェクトtable-cellは,次の特質をもつ。
a) 特質column-number : は正の整数であって,この表セルが広がる最初の列番号を指定する。この特質
は継承しない。無指定時値は現在の列番号とする。表行 (row) 内の最初の表セルでは,現在の列番号
を1とする。それ以外の表セルでは,現在の列番号は,同じ行の直前の表セルの列番号とその表セル
が抜く列の数とを加えたものとなる。
備考 以前に出現した表行 (row) が一つを越える行 (row) を抜く表セルをもつ場合には,それ以降の
237
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
表行 (row) では衝突を避けるため特質column-number : を指定する。
b) 特質n-columns-spanned : は正の整数であって,このセルがこの列から始まって列 (column) 進行方向
に抜く列の数を指定する。この特質は継承しない。無指定時値は1とする。
c) 特質n-rows-spanned : は正の整数であって,このセルがこの行 (row) から始まって行 (row) 進行方向
に抜く行の数を指定する。この特質は継承しない。無指定時値は1とする。
d) 特質cell-before-row-margin : は型lengthであって,行 (row) 進行方向の前余白を与える。初期値は0
とする。
e) 特質cell-after-row-margin : は型lengthであって,行 (row) 進行方向の後余白を与える。初期値は0と
する。
f)
特質cell-before-column-margin : は型lengthであって,列 (column) 行方向の前余白を与える。初期値
は0とする。このセルの内容の行外サイズは,セルの幅から特質cell-before-column-margin : 及び特質
cell-after-column-margin : の合計を引いたものとなる。
g) 特質cell-after-column-margin : は型lengthであって,列 (column) 進行方向の後余白を与える。初期値
は0とする。
h) 特質cell-row-alignment : は,シンボルstart,シンボルend,又はシンボルcenterのいずれかであって,
セルの内容の行 (row) 進行方向におけるそろえを指定する。初期値はシンボルstartとする。
i)
特質cell-background? : は型booleanであって,セルが背景をもつか否かを指定する。背景をもつ場合,
特質background-color : がその背景として用いる色を指定する。初期値は#fとする。
j)
特質background-color : は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のた
めに生成されるマークのカラーを指定する。初期値は#fとする。この特質は,特質cell-background? : が
#tの場合だけ適用する。
k) 特質background-layer : は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレ
イヤを指定する。初期値は−1とする。この特質は,特質cell-background? : が#tの場合だけ適用する。
l)
特質cell-before-row-border : はラベルなしsosofoであって,行 (row) 進行方向に沿って前にある辺の
境界として用いる,一つの流し込みオブジェクトtable-borderを含む。値として#t又は#fも指定可能と
する。これは,特質border-present? : にそれぞれ#t又は#fを値にもつ流し込みオブジェクトtable-border
を指定するのと等価で,その他の特質は流し込みオブジェクトtableから継承したものを用いる。初期
値は#fとする。
m) 特質cell-after-row-border : は特質cell-before-row-border : と同じ方法で指定するが,適用する辺は行
(row)進行方向に後の辺となる。
n) 特質cell-before-column-border : は特質cell-before-row-border : と同じ方法で指定するが,適用する辺は
列 (column) 進行方向に前の辺となる。
o) 特質cell-after-column-border : は特質cell-before-row-border : と同じ方法で指定するが,適用する辺は
列 (column) 進行方向に後の辺となる。
p) 特質starts-row? : は型booleanであって,このセルが行 (row) を開始するか否かを指定する。この特
質は,流し込みオブジェクトtable-row内にない流し込みオブジェクトtable-celだけに適用可能とする。
無指定時値は#fとする。この特質は継承しない。流し込みオブジェクトtable-rowの一部ではない流し
込みオブジェクトtable-cellは,特質starts-row? : が真の場合,直前に流し込みオブジェクトをもたな
い場合,直前の流し込みオブジェクトが流し込みオブジェクトtable-cellでない場合,又は直前の流し
込みオブジェクトが流し込みオブジェクトtable-cellであって,その特質ends-row? : が真の場合に,
238
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
表行を開始する。
q) 特質ends-row? : は型booleanであって,このセルが表行 (row) を終了するか否かを指定する。この特
質は,流し込みオブジェクトtable-cellが流し込みオブジェクトtable-rowの中にない場合だけ適用可
能とする。無指定時値は#fとする。この特質は継承しない。
r) 特質cell-crossed : は,#f又は次のシンボルのいずれかを値とする。
1) シンボルwithは1本の斜め線を,表行 (row) 進行方向及び表列 (column) 進行方向の両方で前にな
る角から,対角線を引くことを指定する。
2) シンボルagainstは1本の斜め線を,表行 (row) 進行方向に最初で,表列 (column) 進行方向で最後
の角から,対角線を引くことを指定する。
3) シンボルbothは,セルの各角から斜めに対角に,2本の対角線を引くことを指定する。
初期値は#fとする。線の外観は,流し込みオブジェクトtable-cellの次の特質の値によって決定する。
s)
特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質は,特質cell-crossed : が
真の場合だけ適用する。
t)
特質line-dash : は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さ
はJIS X 4154が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残
りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ
0ptを含むリストとする。この特質は,特質cell-crossed : が真の場合だけ適用する。
u) 特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。この特質は,特質
cell-crossed : が真の場合だけ適用する。
v) 特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。この特質は,特質cell-crossed : が真の場合だけ適用する。
w) 特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この
特質は,特質cell-crossed : が真の場合だけ適用する。
x) 特質float-out-sidelines? : は型booleanであって,真であれば,セルの内容の側線添付領域をセルから
外して,代わりに表に添付させることを指定する。初期値は#fとする。
y) 特質float-out-marginalia? : は,真であれば,セルの内容の余注添付領域をセルから外して,代わりに
表に添付させることを指定する。初期値は#fとする。
z) 特質float-out-line-numbers? : は,真であれば,セルの内容の行番号添付領域をセルから外して,代わ
りに表に添付させることを指定する。初期値は#fとする。
備考 表列 (column) 進行方向における表セルの内容のそろえ(つまり右向き,下向きの表記方向に
おける水平方向のそろえ)は,表セルの内容の特質display-alignment : 又は特質quadding : によ
って制御する。
12.6.27.7 表けい(罫)線流し込みオブジェクト (table-border)
流し込みオブジェクトtable-borderは原子流し込みオブジェクトであって,表セル又は表全体の境界線を
指定するために用いる。流し込みオブジェクトtable-borderは,流し込みオブジェクトの内容とはならない。
次の特質を適用可能とする。
a) 特質border-priority : は整数であって,境界線間の競合をどのように解決するか指定する。二つの流し
込みオブジェクトtable-borderが特定の境界線の一部として適用された場合,より大きい優先度をもつ
ものを使用する。二つの同一ではない表けい線が同じ優先度をもつ場合エラーとする。初期値は0と
239
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
する。
備考 この特質は,表の境界線指定とセルの境界線の指定の競合を解決すると同時に,隣接するセル
間の境界線の指定の競合も解決する。
b) 特質border-alignment : はシンボルであって,境界線のそろえを境界の位置相対で次のとおり指定する。
1) シンボルcenterは,線は境界位置に対して中央にそろえることを指定する。
2) シンボルstart,表行 (row) 進行方向又は表列 (column) 進行方向において線の最初の辺を境界位置
にそろえることを指定する。
3) シンボルendは,表行 (row) 進行方向又は表列 (column) 進行方向において線の最後の辺を境界位
置にそろえることを指定する。
4) シンボルoutsideは,表の外側の辺となる線の辺を境界の位置にそろえることを指定する。この特質
は表の辺となる境界だけに指定可能とする。
5) シンボルinsideは,表の外側の辺とならない線の辺を境界の位置にそろえることを指定する。この
特質は表の辺となる境界だけに指定可能とする。
初期値はシンボルcenterとする。
c) 特質border-present? : は型booleanであって,境界が存在するか否かを指定する。初期値は#tとする。
d) 特質border-omit-at-break? : は型booleanであって,この境界が表の分割に隣接している場合に無視す
ることを指定する。境界はこの特質又は特質border-present? : が#fの場合無視される。この特質は,
表行(row)進行方向に平行な境界だけに指定可能とする。初期値は#fとする。
e) 特質color : は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。
初期値は,色空間device-grayの無指定時カラーとする。
f)
特質layer : は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤを指定す
る。領域はそのレイヤ値が低い領域から可視化される。初期値は0とする。
g) 特質line-cap : はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの
値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。
h) 特質line-dash : は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さ
はJIS X 4154が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残
りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ
0ptを含むリストとする。
i)
特質line-thickness : は長さであって,線の太さを指定する。初期値は1ptとする。
j)
特質line-repeat : は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。
初期値は1とする。
k) 特質line-sep : は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。
l)
特質line-miter-limit : は数であって,線のマイタ接続限界を示す。マイタ接続の意味は,JIS X 4154で
定義する。初期値は10とする。
m) 特質line-join : はシンボルであって,シンボルmiter,シンボルround又はシンボルbevelのいずれか
の値をとり,線の接続スタイルを指定する。初期値はシンボルmiterとする。
境界の幅はセルの幅に影響せず,セルの内容の位置決め,表の幅,表によって生成される領域の大きさ
にも影響しない。特に表の幅は流し込みオブジェクトtableの特質table-width : で指定されており,セルの
幅の合計に等しい。
12.6.28 オンライン表示用流し込みオブジェクトクラス
240
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
この12.6.28で記述する機能を利用するためには,機能onlineを必要とする。
12.6.28.1 スクロール流し込みオブジェクト (scroll)
流し込みオブジェクトscrollは,オンライン表示の最上位レベルの流し込みオブジェクトとして用いる。
流し込みオブジェクトscrollは主ポートをもち,主ポートは行外流し込みオブジェクトを受け付ける。
流し込み方向に直交する方向の大きさは,表示環境によって決定される。
この流し込みオブジェクトは,次の特質をもつ。
a) 特質filling-direction : はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right又はシンボ
ルright-to-leftをとる。この特質は領域コンテナの流し込み方向を指定する。領域コンテナの流し込み
方向は,配置方向と直交してよい。初期値はシンボルtop-to-bottomとする。
b) 特質writing-mode : はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボル
top-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,
シンボルleft-to-rightとする。この特質は,流し込みオブジェクトのどちらの側に特質start-margin : 及
びend-margin : を適用するかを決定する。
c) 特質background-color : は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のた
めに生成されるマークのカラーを指定する。初期値は#fとする。
d) 特質background-layer : は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレ
イヤを指定する。初期値は−1とする。
e) 特質background-tile : は#f又は公開識別子文字列であって,スクロールの背景を覆うために繰り返さ
れる画像を示す。初期値は#fとする。
f)
特質start-margin : は型length-specであって,結果領域の表記方向において最初の領域の辺から,最も
近いテキスト領域までの距離を指定する。初期値は0ptとする。
g) 特質end-margin : は型length-specであって,結果領域の表記方向において最後の領域の辺から,最も
近いテキスト領域までの距離を指定する。初期値は0ptとする。
12.6.28.2 複数モード流し込みオブジェクトクラス (multi-mode)
流し込みオブジェクトmulti-modeは,二つ以上の提示モードをもつ流し込みオブジェクトとする。この
流し込みオブジェクトは,提示モード間を処理系依存の方法で切り替えることができる。
備考 実装はメニューを,異なる複数モードとして表示してよい。フォーマット済み流し込みオブジ
ェクトをクリックすることによって,それらのモード間を巡回してもよい。
この流し込みオブジェクトは,その内容及び提示モードに応じて行内でも行外でもよい。
この流し込みオブジェクトは,次の特質をもつ。
a) 特質multi-modes : は次に示す形式のリストとする。リストの要素の数は,提示モードの数を与える。
リストは少なくとも二つの要素をもつ。リストの各要素は,ポート指定又はポート指定及びモードの
記述を与える文字列から成るリストとする。ポート指定は,主ポートを示す#f又は名前付きのポート
を指定するシンボルとする。ポート指定はリスト内で2回以上出現してはならない。リストには#fの
ポート指定が一つ存在する。対応するモードは主モードとする。
備考 文字列はメニュー内に表示してもよい。
この特質は継承されず,指定しなければならない。
b) 特質principal-mode-simultaneous? : は型booleanであって,主モードが他のモードと同時に提示される
かを指定する。この特質が真であれば,現提示モードが主モード以外の場合に,主モードのポート内
容及び現モードのポート内容の両方が表示される。初期値は#fとする。
241
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
流し込みオブジェクトはモードごとに一つのポートをもつ。ポートの内容は,対応するモードの提示を
指定する。最初に流し込みオブジェクトは,主モードを用いて表示される。
備考 例えば,クリックするとウィンドウをポップアップするアイコンは,二つのポートをもち,最
初のポートにはアイコンを表す流し込みオブジェクトcharacterを含み,第2のポートにはスク
ロール流し込みオブジェクトを含む,流し込みオブジェクトmulti-modeで表現できるかもしれ
ない。この場合には,特質principal-mode-simultaneous? : は真となるだろう。
12.6.28.3 リンク流し込みオブジェクト (link)
流し込みオブジェクトlinkはハイパテキストリンクを表し,流し込みオブジェクト及びその内容を表す
領域を,典型的にはクリックすることによって対話的にたどることができる。流し込みオブジェクトlink
は一つの主ポートをもち,主ポートは行内及び行外の両方の流し込みオブジェクトを含む。流し込みオブ
ジェクトlinkは入れ子にでき,最も内側のリンクが有効となる。
流し込みオブジェクトlinkは,次の特質をもつ。
a) 特質destination : は#f,型addressのオブジェクト又は一つ以上の型addressのオブジェクトから成るリ
ストを値とする。12.5.8を参照のこと。値#fは入れ子のリンクに用い,流し込みオブジェクトの内容
はその流し込みオブジェクトを含むリンクの一部とはみなさないことを指定する。
12.6.28.4 余注流し込みオブジェクト (marginalia)
流し込みオブジェクトmarginaliaは,流し込みオブジェクトmarginaliaが出現した行に対して,その結
果領域が添付領域となる流し込みオブジェクトを含む。12.3.4を参照のこと。流し込みオブジェクト
marginaliaは,一つの主ポートをもち,行内流し込みオブジェクトだけを含む。流し込みオブジェクト
marginaliaは,流し込みオブジェクトクラスparagraphに属する流し込みオブジェクトを先祖にもたなけれ
ばならない。
一つの行に二つ以上の余注領域が添付された場合の動作は,処理系依存とする。
流し込みオブジェクトmarginaliaは,次の特質をもつ。
a) 特質marginalia-sep : は型length-specであって,添付する余注領域との分離を指定する。初期値は0pt
とする。
b) 特質marginalia-side : はシンボルであって,シンボルstart又はシンボルendを値とし,余注領域を行
のどちら側に添付するかを指定する。初期値は,シンボルstartとする。
c) 特質marginalia-keep-with-previous? : は,余注領域が直前の流し込みオブジェクトの最後の領域と関連
し,直後の流し込みオブジェクトの最初の領域と関連はしないことを指定する。初期値は#fとする。
242
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書A(参考) その他の情報
DSSSLの理解及び実装のための解説,生成規則の相互参照リスト,その他の関連情報は,次にアドレス
を示すウェブサイト及びFTPから入手できる。
http : //www.ornl.gov/sgml/WG8/wg8home.htm
ftp.ornl.gov/sgml/wg8/dsssl
243
X 4153 : 1998 (ISO/IEC 10179 : 1996)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本事務機械工業会文書記述・フォントJIS原案作成委員会 構成表
氏名
所属
(委員長)
池 田 克 夫
京都大学
小 町 祐 史
SC18/WG8国内委員会(松下電送株式会社)
三 宅 信 弘
通商産業省機械情報産業局
竹田原 省 二
通商産業省工業技術院標準部
兼 谷 明 男
通商産業省工業技術院標準部
渡 辺 清 次
財団法人日本規格協会
篠 崎 徳 量
愛知女子短期大学
小笠原 治
社団法人日本印刷技術協会
宮 内 久 男
株式会社岩波
田 中 洋 一
凸版印刷株式会社
空 閑 明
共同印刷株式会社
高 沢 通
大日本スクリーン株式会社
石 井 裕
大日本印刷株式会社
吉 野 順
NTTデータ株式会社
宮 本 義 昭
日本ユニシス株式会社
武 居 則 幸
セイコーエプソン株式会社
伊 藤 晃
日本情報科学株式会社
藤 田 克 彦
株式会社リコー
柳 沢 一 大
日本電気株式会社
高 橋 亨
株式会社日立製作所
安 達 淳
株式会社沖データ
(事務局)
佐々木 好 洋
社団法人日本事務機械工業会
プロジェクトリーダ会議 構成表
氏名
所属
(リーダ)
小 町 祐 史
SC18/WG8国内委員会(松下電送株式会社)
小笠原 治
社団法人日本印刷技術協会
小 田 宏 行
通商産業省工業技術院標準部
高 橋 亨
株式会社日立製作所
安 達 淳
株式会社沖データ
田 中 洋 一
凸版印刷株式会社
今 郷 詔
株式会社リコー
筧 捷 彦
早稲田大学
DSSSLプロジェクト 構成表
氏名
所属
(リーダ)
安 達 淳
株式会社沖データ
小 町 祐 史
SC18/WG8国内委員会(松下電送株式会社)
奥 井 康 弘
日本ユニテック株式会社
荻久保 友 史
株式会社東芝
下 垣 弘 行
共同印刷株式会社
(事務局)
佐々木 好 洋
社団法人日本事務機械工業会