サイトトップへこのカテゴリの一覧へ

X 4151-1992  

(1) 

令和2年6月22日,産業標準化法第17条又は第18条の規定に基づく確認公示に際し,産業標準化法の用語に合わせ,規格中“日本工業規
格”を“日本産業規格”に改めた。 

目次 

ページ 

1. 適用範囲 ························································································································ 1 

2. 適用分野 ························································································································ 2 

3. 用語の定義 ····················································································································· 3 

4. 表記法 ·························································································································· 20 

4.1 生成規則及び式 ············································································································ 20 

4.2 構文字句 ····················································································································· 21 

4.3 演算記号 ····················································································································· 23 

5. 実体構造 ······················································································································· 23 

5.1 SGML文書 ·················································································································· 24 

5.2 SGML実体 ·················································································································· 24 

5.2.1 分離子s ···················································································································· 24 

5.2.2 実体終了Ee ··············································································································· 24 

5.2.3 SGML宣言の補充 ······································································································· 25 

5.3 データ実体 ·················································································································· 25 

6. 要素構造 ······················································································································· 25 

6.1 前書き ························································································································ 25 

6.1.1 制限 ························································································································· 26 

6.2 文書要素 ····················································································································· 26 

6.3 要素 ··························································································································· 26 

6.3.1 最小化−タグの省略 ···································································································· 26 

6.3.1.1 開始タグの省略 ········································································································ 26 

6.3.1.2 終了タグの省略 ········································································································ 26 

6.3.2 最小化−データタグ ···································································································· 26 

6.3.3 量的制限 ··················································································································· 27 

6.4 開始タグ ····················································································································· 27 

6.4.1 最小化 ······················································································································ 27 

6.4.1.1 空開始タグ ·············································································································· 27 

6.4.1.2 閉じない開始タグ ····································································································· 27 

6.4.1.3 net可能開始タグ······································································································· 27 

6.4.2 量的制限 ··················································································································· 28 

6.5 終了タグ ····················································································································· 28 

6.5.1 最小化 ······················································································································ 28 

6.5.1.1 空終了タグ ·············································································································· 28 

6.5.1.2 閉じない終了タグ ····································································································· 28 

6.5.1.3 簡略終了タグ ··········································································································· 28 

X 4151-1992 目次 

(2) 

ページ 

6.6 内容 ··························································································································· 28 

6.6.1 記録の境界 ················································································································ 29 

6.7 文書型指定 ·················································································································· 30 

6.8 共通識別子指定 ············································································································ 30 

6.8.1 付番機構 ··················································································································· 30 

6.8.1.1 完全な共通識別子 ····································································································· 30 

6.8.1.2 付番核 ···················································································································· 30 

6.9 属性指定並び ··············································································································· 30 

6.9.1 最小化 ······················································································································ 30 

6.9.1.1 属性指定の省略 ········································································································ 30 

6.9.1.2 属性名の省略 ··········································································································· 31 

6.9.2 量的制限 ··················································································································· 31 

6.9.3 属性値指定 ················································································································ 31 

6.9.3.1 最小化 ···················································································································· 31 

6.9.4 属性値 ······················································································································ 31 

6.9.4.1 構文要件 ················································································································· 32 

6.9.4.2 固定属性 ················································································································· 32 

6.9.4.3 一般実体名 ·············································································································· 32 

6.9.4.4 記法名 ···················································································································· 32 

6.9.4.5 量的制限 ················································································································· 32 

7. 処理指令 ······················································································································· 32 

7.1 量的制限 ····················································································································· 32 

8. 共通の構成要素 ·············································································································· 32 

8.1 置換可能文字データ ······································································································ 33 

8.2 文字データ ·················································································································· 33 

8.2.1 SGML文字 ················································································································ 33 

8.2.2 機能文字 ··················································································································· 33 

8.3 名前 ··························································································································· 33 

8.3.1 量的制限 ··················································································································· 33 

8.4 実体参照 ····················································································································· 33 

8.4.1 量的制限 ··················································································································· 34 

8.4.2 SGML部分実体の量的制限 ··························································································· 34 

8.4.3 混乱を招く実体参照 ···································································································· 34 

8.4.4 名前指定実体参照 ······································································································· 34 

8.4.4.1 適用可能な実体宣言 ·································································································· 34 

8.4.5 参照終了 ··················································································································· 35 

8.4.6 短縮参照 ··················································································································· 35 

8.4.6.1 同値な参照列 ··········································································································· 35 

8.5 文字参照 ····················································································································· 36 

X 4151-1992 目次 

(3) 

ページ 

8.6 区切り子の認知 ············································································································ 36 

8.6.1 認知様相 ··················································································································· 36 

8.6.2 文脈上の制約 ············································································································· 37 

8.6.3 認知の順序 ················································································································ 37 

8.6.4 同じ文字で始まる区切り子 ··························································································· 37 

8.6.5 空白列を含む短縮参照 ································································································· 37 

8.6.5.1 量的制限 ················································································································· 38 

8.6.6 名前文字 ··················································································································· 38 

8.7 マークの抑制 ··············································································································· 38 

8.8 容量 ··························································································································· 38 

9. マーク宣言−一般 ··········································································································· 39 

9.1 宣言の部品 ·················································································································· 39 

9.1.1 引数分離子ps ············································································································· 39 

9.1.2 引数表記 ··················································································································· 39 

9.1.2.1 量的宣言 ················································································································· 40 

9.1.3 群 ···························································································································· 40 

9.1.3.1 量的制限 ················································································································· 40 

9.1.4 宣言分離子ds ············································································································· 40 

9.1.5 結合要素型 ················································································································ 40 

9.1.6 外部識別子 ················································································································ 41 

9.1.6.1 量的制限 ················································································································· 41 

9.1.6.2 容量 ······················································································································· 41 

9.1.7 最小表記 ··················································································································· 41 

9.1.7.1 量的制限 ················································································································· 41 

9.2 公的公開識別子 ············································································································ 41 

9.2.1 所有者識別子 ············································································································· 41 

9.2.1.1 ISO所有者識別子 ····································································································· 41 

9.2.1.2 登録所有者識別子 ····································································································· 42 

9.2.1.3 未登録所有者識別子 ·································································································· 42 

9.2.2 文識別子 ··················································································································· 42 

9.2.2.1 公開文種別 ·············································································································· 42 

9.2.2.2 公開文記述 ·············································································································· 43 

9.2.2.3 公開文言語 ·············································································································· 43 

9.2.2.4 公開文指示シーケンス ······························································································· 43 

9.2.2.5 公開文表示版 ··········································································································· 43 

9.3 注釈宣言 ····················································································································· 44 

9.4 マーク区間宣言 ············································································································ 44 

9.4.1 量的制限 ··················································································································· 44 

9.4.2 状態見出し語指定 ······································································································· 44 

X 4151-1992 目次 

(4) 

ページ 

9.5 実体宣言 ····················································································································· 45 

9.5.1 実体名 ······················································································································ 45 

9.5.1.1 量的制限 ················································································································· 45 

9.5.1.2 容量 ······················································································································· 45 

9.5.2 実体文 ······················································································································ 45 

9.5.3 データ文 ··················································································································· 45 

9.5.4 くくった文 ················································································································ 46 

9.5.4.1 量的制限 ················································································································· 46 

9.5.5 外部実体指定 ············································································································· 46 

10. マーク宣言−文書型定義································································································· 47 

10.1 文書型宣言 ················································································································· 47 

10.2 要素宣言 ···················································································································· 47 

10.2.1 要素型 ····················································································································· 47 

10.2.1.1 付番要素 ··············································································································· 48 

10.2.1.2 量的制限 ··············································································································· 48 

10.2.2 タグ省略最小化 ········································································································· 48 

10.2.3 宣言内容 ·················································································································· 48 

10.2.4 内容モデル ··············································································································· 48 

10.2.4.1 接続子 ·················································································································· 49 

10.2.4.2 出現標識 ··············································································································· 50 

10.2.4.3 あいまいな内容モデル······························································································ 50 

10.2.4.4 データタグ群 ········································································································· 50 

10.2.4.5 量的制限 ··············································································································· 51 

l0.2.5 例外 ························································································································ 51 

10.2.5.1 添加要素 ··············································································································· 51 

10.2.5.2 排除要素 ··············································································································· 51 

10.3 属性定義並び宣言 ········································································································ 52 

10.3.1 量的制限 ·················································································································· 52 

10.3.2 属性名 ····················································································································· 52 

10.3.3 宣言値 ····················································································································· 52 

10.3.4 省略時値 ·················································································································· 53 

10.3.4.1 量的制限 ··············································································································· 53 

10.3.4.2 容量 ····················································································································· 53 

10.4 記法宣言 ···················································································································· 53 

10.4.1 データ属性 ··············································································································· 53 

10.4.1.1 結合記法名 ············································································································ 53 

10.4.1.2 データ属性指定 ······································································································ 54 

10.5 短縮参照対応表宣言 ····································································································· 54 

10.6 短縮参照使用宣言 ········································································································ 54 

X 4151-1992 目次 

(5) 

ページ 

10.6.1 文書型宣言での使用 ··································································································· 54 

10.6.2 文書実現値での使用 ··································································································· 55 

10.6.3 現対応表 ·················································································································· 55 

11. マーク宣言−連結処理定義 ······························································································ 55 

11.1 連結型宣言 ················································································································· 55 

11.1.1 単純連結指定 ············································································································ 55 

11.1.1.1 制限 ····················································································································· 55 

11.1.2 暗黙連結指定 ············································································································ 55 

11.1.3 明示連結指定 ············································································································ 56 

11.1.3.1 制限 ····················································································································· 56 

11.1.4 連結型宣言部分集合 ··································································································· 56 

11.1.4.1 実体 ····················································································································· 56 

11.1.4.2 連結属性················································································································ 56 

11.1.4.3 単純連結················································································································ 56 

11.2 連結集合宣言 ·············································································································· 56 

11.2.1 原始要素指定 ············································································································ 57 

11.2.2 明示連結規則 ············································································································ 57 

11.2.3 識別子連結集合宣言 ··································································································· 58 

11.3 連結集合使用宣言 ········································································································ 58 

11.4 現連結集合 ················································································································· 58 

12. SGML宣言 ·················································································································· 58 

12.1 文書文字集合 ·············································································································· 59 

12.1.1 文字集合記述 ············································································································ 59 

12.1.1.1 基本文字集合 ········································································································· 60 

12.1.1.2 文字集合区分 ········································································································· 60 

12.1.2 非SGML文字の認定 ·································································································· 60 

12.2 容量集合 ···················································································································· 60 

12.3 具象構文範囲 ·············································································································· 61 

12.4 具象構文 ···················································································································· 61 

12.4.1 公開具象構文 ············································································································ 61 

12.4.2 回避文字番号指定 ······································································································ 62 

12.4.3 構文参照文字集合 ······································································································ 62 

12.4.4 機能文字指定 ············································································································ 62 

12.4.5 命名方法 ·················································································································· 63 

12.4.6 区切り子集合 ············································································································ 63 

12.4.6.1 一般区切り子 ········································································································· 64 

12.4.6.2 短縮参照区切り子···································································································· 64 

12.4.7 予約名使用 ··············································································································· 64 

12.4.8 量集合 ····················································································································· 65 

X 4151-1992 目次 

(6) 

ページ 

12.5 機構使用 ···················································································································· 65 

12.5.1 マーク最小化機構 ······································································································ 65 

12.5.2 連結型機構 ··············································································································· 66 

12.5.3 他機構 ····················································································································· 66 

12.6 応用特有情報 ·············································································································· 66 

13. 規格参照具象構文・核具象構文 ························································································ 67 

14. 適合 ··························································································································· 67 

14.1 適合SGML文書 ·········································································································· 67 

14.1.1 基本SGML文書 ········································································································ 67 

14.1.2 最小SGML文書 ········································································································ 72 

14.1.3 変形適合SGML文書 ·································································································· 72 

14.2 適合SGML応用 ·········································································································· 72 

14.2.1 応用規則 ·················································································································· 72 

14.2.2 文書の適合性 ············································································································ 72 

14.2.3 文書提供の適合性 ······································································································ 73 

14.3 適合SGMLシステム ···································································································· 73 

14.3.1 文書提供の適合性 ······································································································ 73 

14.3.2 システム宣言の適合性 ································································································ 73 

14.3.3 規格参照具象構文での処理 ·························································································· 73 

14.3.4 規格参照容量集合での処理 ·························································································· 73 

14.3.5 構文解析の一貫性 ······································································································ 73 

14.3.6 応用規則 ·················································································································· 74 

14.4 SGML検定構文解析系 ·································································································· 74 

14.4.1 誤りの検出 ··············································································································· 74 

14.4.2 SGML報告 ··············································································································· 74 

14.4.3 SGML報告の内容 ······································································································ 74 

14.5 文書提供 ···················································································································· 74 

14.5.1 規格表示 ·················································································································· 74 

14.5.2 SGML構成要素の表示 ································································································ 75 

14.5.3 用語 ························································································································ 75 

14.5.4 変形具象構文 ············································································································ 75 

14.6 システム宣言 ·············································································································· 75 

14.6.1 提供具象構文 ············································································································ 76 

14.6.1.1 具象構文変更点 ······································································································ 76 

14.6.2 検定能力 ·················································································································· 76 

14.6.3 SDIF能力 ················································································································ 77 

参考1 SGMLの背景 ··········································································································· 78 

参考2 一般化マーク付けの導入 ···························································································· 81 

X 4151-1992 目次 

(7) 

ページ 

参考3 基本的概念 ·············································································································· 90 

参考4 付加機構 ················································································································ 116 

参考5 公開文 ··················································································································· 133 

参考6 応用例 ··················································································································· 169 

参考7 実現についての考察 ································································································· 179 

参考8 適合性の類別及び検定 ······························································································ 183 

参考9 SGML内容モデルの理論的基礎 ·················································································· 186 

参考10 規格外の変形 ········································································································ 188 

参考11 SGML構文式一覧··································································································· 190 

X 4151-1992  

日本産業規格          JIS 

X 4151-1992 

文書記述言語SGML 

SGML (Standard Generalized Markup Language)  

1. 適用範囲 この規格は,次の事項を規定する。 

(1) 文書記述言語SGMLの抽象構文。 

備考 文書記述言語SGMLは,文書の構造及び属性の記述を表現し,更にマークを翻訳するための情

報も表現する。 

(2) 抽象構文を特定の文字又は数値に結び付ける規格参照具象構文及び各種の具象構文を定義するための

基準。 

(3) 適合SGML文書。 

(4) 適合SGML文書の処理能力及びその文書中のマークの誤りを認識する能力による適合SGMLシステ

ム。 

(5) この規格で規定しないデータ(画像,図形又は書式付きの文)を適合SGML文書の中に含める方法。 

備考1. 次の事項は,この規格の対象外とする。 

(1) 標準の,文書型,文書体系又は文書構造の特定又は規定。 

(2) 適合SGMLシステムに関する実現,体系又はマーク誤りの取扱い規定。 

(3) 適合SGML文書の作成方法の規定。 

(4) 適合SGML文書を格納し,又は交換するための,データ列,メッセージ交換システム,ファ

イル構造,その他の物理的表現及びこれらのために適合SGML文書を変換する文字集合又は

符号化方式の規定。 

(5) 適合SGML文書に含まれる画像,図形,書式付きの文などのデータの表現又は記法の規定。 

2. この規格の引用規格を,次に示す。 

JIS X 0202 情報交換用符号の拡張法 

JIS X 0208 情報交換用漢字符号 

ISO 639 : 1988 Code for the representation of names of languages Bilingual edition 

ISO 646 : 1983 Information processing−ISO 7-bit coded character set for information interchange 

ISO 3166 : 1988 Codes for the representation of names of countries Bilingual edition 

ISO 4873 : 1986 Information processing−ISO 8-bit code for information interchange−Structure and rules 

for implementation 

ISO 6937-1 : 1983 Information processing−Coded character sets for text communication 

ISO 6937-2 : 1983 Information processing−Coded character sets for text communication−Part 2 : Latin 

alphabetic and non-alphabetic graphic characters 

ISO 8632-2 : 1987 Information processing systems−Computer graphics−Metafile for the storage and 

transfer of picture description information−Part 2 : Character encoding 

X 4151-1992  

ISO 8632-4 : 1987 Information processing systems−Computer graphics−Metafile for the storage and 

transfer of picture description information−Part 4 : Clear text encoding 

ISO 9069 : 1988 Information processing−SGML support facilities−SGML Document Interchange Format 

(SDIF)  

ISO 9070 : 1990 Information processing−SGML support facilities−Registration procedures for public text 

owner identifiers 

3. この規格の対応国際規格を,次に示す。 

ISO 8879 : 1986 Information processing−Text and office systems−Standard Generalized Markup 

Language (SGML)  

ISO 8879/AMENDMENT 1 Information processing−Text and office systems−Standard 

Generalized Markup Language (SGML)  

AMENDMENT 1 

参考 この規格は,これらの国際規格の技術的内容を変更することなく作成した日本産業規格である。

ただし,この規格で側線を施してある参考は,これらの国際規格にはない事項である。 

2. 適用分野 文書処理システムが処理対象とする文書に適用する。ただし,全体が最終的な書式付き形

式となっている文書は,この規格の適用分野外とする。 

備考1. 特に適している文書には次のものがある。 

(1) 異なる文書記述言語を用いたシステム間で交換する文書。 

(2) 同じ文書記述言語を用いる場合でも,一つ以上の方法で処理される文書。 

2. この規格は,次のとおり構成する。 

(1) SGML文書の物理的構成を示す実体構造は,5.に規定する。 

(2) SGML文書の論理的構成及び記述的マークによる表現を示す要素構造は,6.に規定する。 

(3) 処理指令は,7.に規定する。 

(4) 共通のマーク構成要素,例えば文字,実体参照及び処理指令は,8.に規定する。 

(5) 広範な応用可能性をもつマーク宣言(注釈,実体及びマーク区間)は,9.に規定する。 

(6) 文書型定義(文書型,要素,記法,短縮参照対応表及び短縮参照使用)を指定するために使

用するマーク宣言は,10.に規定する。 

(7) 連結処理定義(連結型,連結属性,連結集合及び連結集合使用)を指定するために使用する

マーク宣言は,11.に規定する。 

(8) 文書文字集合,容量集合,具象構文及び機構を指定するSGML宣言は,12.に規定する。 

(9) 規格参照具象構文は,13.に規定する。 

(10) SGML文書,SGML応用及びSGMLシステムの適合性は,14.に規定する。 

更に,追加情報を含む参考1〜11があるが,それらはこの規定の一部ではない。 

SGMLの規格は,計算機言語の形式的記述であり,文書作成の専門家には読みやすいもので

はない。そこで参考2〜4で,多くの読者にとってより理解しやすい,解説形式で主な概念を説

明している。しかし,これらの参考は,すべてのSGMLの構成要素を完全に説明しておらず,

説明のすべてが詳細でなく,更に概要を分かりやすく表現するために,細かな違いを無視して

いる。 

X 4151-1992  

3. 用語の定義 この規格で用いる主な用語の定義は,次のとおりとする。 

(1) ISO所有者識別子 (ISO owner identifier)  ISO出版番号又は文字集合登録番号によって構成する所

有者識別子。ISO出版物を識別する所有者識別子,ISO出版物によって割り当てられる所有者識別子

又はISO登録文字集合を識別する所有者識別子。 

(2) ISO文記述 (ISO text description)  ISO出版文書名の部番号の表示を除く最後の要素によって構成す

る公開文記述。ISO出版物を識別する文識別子。 

(3) あいまいな内容モデル (ambiguous content model)  文書実現値に現れる要素・文字列が,先読みな

しには,二つ以上の素内容字句とみなし得るような内容モデル。 

備考 SGMLではあいまいな内容モデルを禁止している。 

(4) 暗黙連結(処理定義) [implicit link (process definition)]  結果要素型及びそれらの属性が応用によっ

て暗黙的に定まる連結(処理定義)。ただし,連結属性値の集合は,複数個指定することができる。 

(5) 一意な識別子 (unique identifier)  要素を一意に識別する名前。 

(6) 一般区切り子(機能) [general delimiter (role)]  短縮参照ではない区切り子(機能)。 

(7) 一般実体 (general entity)  要素の内容又は属性値表記から参照することができる実体。 

(8) 一般実体参照 (general entity reference)  一般実体への名前付き実体参照。 

(9) 英大文字 (upper-case letters)  A〜Zの26種の英大文字からなる文字種別。 

(10) 英小文字 (lower-case letters)  a〜zの26種の英小文字からなる文字種別。 

(11) エスケープシーケンス (escape sequence)  最初の文字がエスケープ (ESC) である制御シーケンス。 

(12) SGML応用 (SGML application)  SGMLを文書処理システムに適用する規則。SGML表現のマーク

構成要素の形式指定を含み,意味定義,応用規則及び処理の非SGML定義を含んでもよい。 

備考1. 通常,SGML応用の形式指定は,文書型定義,データ内容記法及び実体集合を含み,具象構

文又は容量集合を含んでもよい。応用システムが処理を定義している場合には,形式指定に

連結処理定義を含めてもよい。 

2. SGML応用の形式指定は,応用システムが処理する文書に共通の部分となる。それらの共通

の部分は,しばしば公開文として使用可能である。 

3. 通常,形式指定は,注釈,意味,応用規則及び応用システムの処理指定を説明する文書を伴

う。 

4. SGML応用は,実現から独立している。応用システムが処理を定義している場合,非SGML

定義は,プログラム言語又は文書処理言語によって実現される応用手続きを含んでもよい。 

(13) SGML検定構文解析系 (validating SGML parser)  報告可能マーク誤りが存在している場合(及びそ

の場合に限り),発見可能及び報告可能な適合SGMLシステムの構文解析系。 

(14) SGML構文解析系 (SGML parser)  適合SGML文書中のマークを認識するプログラム(プログラム

の一部分及びプログラムの組合せを含む。)。 

備考 プログラム言語処理系に対応させると,SGML構文解析系はSGML文書に関して,字句解析系

及び構文解析系の両方の機能を果たすことに相当する。 

(15) SGMLシステム (SGML system)  SGML構文解析系,実体管理系及び一つ以上のSGML応用の実現

を含むシステム若しくは利用者が,SGML応用を実現するための,SGML構文解析系及び実体管理系

への使用手段を含むシステム又はその両者を含むシステム。 

(16) SGML実体 (SGML entity)  この規格に従ってその文字がマーク又はデータとして解釈される実体。 

X 4151-1992  

備考 SGML文書実体,SGML部分文書実体及びSGML文実体の3種類がある。 

(17) SGML宣言 (SGML declaration)  文字集合,具象構文,任意選択の機構及び文書のマークに必要な

容量を指定するマーク宣言。 

(18) SGML部分文書実体 (SGML subdocument entity)  独自の文書型宣言及び連結型宣言に従うSGML

実体であって,それに先行するSGML文書実体のSGML宣言に従うもの。少なくとも基本文書型宣

言及び基本文書要素の開始及び終了を含む。 

(19) SGML文書 (SGML document)  文字列で表現された文書であって,この規格に従って物理的な実体

構造及び論理的な要素構造に編成された文書。その情報内容を表現するデータ文字並びにデータ構造

及びそのデータの処理に必要なその他の情報を表すマーク文字から構成される。そのマークは少なく

とも一つの文書型定義を与え,その定義に適合する構造を実現している。 

(20) SGML文書実体 (SGML document entity)  SGML文書を開始するSGML実体。少なくとも,SGML

宣言,基本文書型宣言並びに基本文書要素の開始及び終了を含む。 

(21) SGML文実体 (SGML text entity)  SGML文書実体のSGML宣言に従い,かつ,それを参照する実

体に対する文書型宣言及び連結型宣言にも従うSGML実体。 

(22) SGML文字 (SGML character)  SGML実体の中で使用できる文字。 

(23) 応用 (application)  文書処理の応用。 

(24) 応用規則 (application convention)  この規格が利用者選択にしている範囲での,文書中の文を規定す

る応用に特有の規則。 

備考 内容規則及びマーク規則の2種類がある。 

(25) 応用特有情報 (application-specific information)  応用又は応用体系が必要とする情報を指定する

SGML宣言の引数。 

備考 この情報によって,応用又は応用体系を指定したり,システムがその文書を処理できるかどう

かを決定したりすることができる。 

(26) 大文字名前開始文字 (upper-case name start characters)  小文字名前開始文字に対応する大文字から

なる文字種別。 

(27)大文字名前文字 (upper-case name characters)  小文字名前文字に対応する大文字からなる文字種別。 

(28) 親要素 (containing element)  部分要素を含む要素。 

(29) 開始タグ (start-tag)  要素の開始を識別し,共通識別子及び属性を指定する記述的マーク。 

(30) 解釈済み引数表記 (interpreted parameter literal)  引数表記に対して,表記区切り子を取り除き,文

字参照及び引数実体参照を置換して得られる文字列。 

(31) 回避文字(番号) [shunned character (number)]  具象構文によってその構文を用いた文書の中では

使用してはならないと識別された文字(番号)。システムが誤って制御文字として扱う可能性がある文

字を対象とする。 

(32) 外部識別子 (external identifier)  外部実体又はデータ内容記法を識別する引数。 

備考 システム識別子及び公開識別子の2種類がある。 

(33) 外部実体 (external entity)  実体宣言中にその文を直接含まない実体。そのシステム識別子及び(又

は)公開識別子を代わりに指定する。 

備考 文書型又は連結型宣言は,宣言部分集合のすべて又はその一部を含む外部実体の識別子を含む

ことができ,その外部識別子は,同時に実体宣言及び実体参照となる。 

(34) 核具象構文 (core concrete syntax)  規格参照具象構文から短縮参照区切り子を除いたもの。 

X 4151-1992  

(35) 仮想文字集合 (virtual character set)  図形文字符号拡張における中間的な文字集合の一つであって,

JIS X 0202のG0集合,G1集合,G2集合又はG3集合。 

(36) 型定義 (type definition)  文書型定義。 

(37) 活性連結型(宣言) [active link type (declaration)]  システムが活性状態と識別している連結型(宣

言)。 

(38) 活性文書型(宣言) [active document type (declaration)]  システムが活性状態と識別している文書型

(宣言)。 

備考 SGML実体は,活性化した文書型に従って構文解析され,特定の文書型を活性化していなけれ

ば基本文書型及び活性化した連結型に従って構文解析される。 

(39) 間隔 (space)  具象構文で割り当てられ,間隔を表現する機能文字。 

(40) 規格参照区切り子集合 (reference delimiter set)  この規格で定義し,規格参照具象構文の中で使われ

る区切り子集合。 

(41) 規格参照具象構文 (reference concrete syntax)  この規格で定義し,すべてのSGML宣言の中で使わ

れる具象構文。 

(42) 規格参照予約名 (reference reserved name)  この規格で定義した予約名。 

(43) 規格参照容量集合 (reference capacity set)  この規格で定義した容量集合。 

(44) 規格参照量集合 (reference quantity set)  この規格で定義した量集合。 

(45) 記述的マーク (descriptive markup)  実行されるすべての処理から独立し,システムに依存しない方

法で,文書の構造及び属性を記述するマーク。特に,要素構造を表現するために,タグを使用する。 

(46) 機能文字 (function character)  具象構文によって割り当てられ,マークとして認知された上でSGML

機能を果たすマーク文字。データが許される文脈でマークとして認知されない場合は,データとして

扱う(機能文字の記録開始RS及び記録終了REの場合のように,言語が特別の扱いを指示する場合を

除く。)。 

(47) 機能文字識別引数 (function character identification parameter)  記録開始RS,記録終了RE及び

SPACE機能に割り当てられた文字を識別するSGML宣言の引数。更に追加機能を定義することがで

きる。 

(48) 記法識別子 (notation identifier)  記法宣言中でデータ内容記法を識別する外部識別子。 

備考 記法が公開であれば,公開識別子とできる。そうでなければ,記法を解釈するためのプログラ

ムを呼び出すのに十分な記述又はその他の情報とできる。 

(49) 記法宣言 (notation declaration)  名前を記法識別子に結合するマーク宣言。 

(50) 記法属性 (notation attribute)  要素の内容のデータ内容記法を識別する記法名を値とする属性。 

備考 明示的な内容参照がある場合には,要素の内容が空となるので,記法属性を用いてはならない。 

(51) 記法名 (notation name)  記法宣言によってデータ内容記法に割り当てた名前。 

(52) 基本SGML文書 (basic SGML document)  規格参照具象構文,規格参照容量集合並びにマーク最小

化機構SHORTTAG及びOMITTAGを使用した適合SGML文書。 

備考 基本SGML文書は,規格参照具象構文を使用するのでSHORTREF機構も使用することになる。 

(53) 基本文書型 (base document type)  前書きの中の最初の文書型宣言によって指定された文書型。 

(54) 基本文書要素 (base document element)  文書型が基本文書型である文書要素。 

(55) 共通識別子 (generic identifier)  要素型を識別する名前。 

(56) 記録 (record)  文入力装置上の入力行に対応するSGML実体の区分であって,記録開始RS及び記録

X 4151-1992  

終了REによって区切られる。 

備考1. 文の書式付けによって作成される出力行と区別するために,行ではなく記録と呼ぶ。 

2. SGML実体は,複数の記録の文,一つの記録の文又は記録境界を全くもたない文(それは,

文書中のどこか別の場所で記録境界文字が出現するか否かに依存して,記録の一部分又は記

録の外側と考えることができる。)から構成される。 

(57) 記録開始 (record start)  具象構文によって割り当てられる記録の開始を表現する機能文字。 

(58) 記録境界文字 (record boundary character)  記録の境界を表現するマーク。 

備考 記録境界文字は,記録開始RS又は記録終了REからなる。 

(59) 記録終了 (record end)  具象構文によって割り当てられた記録の終了を表現する機能文字。 

(60) 空対応表 (empty map)  すべての区切り子が対応付けされていない短縮参照対応表。 

備考 空対応表は,明示的には宣言できないが,規格参照具象構文中で “#EMPTY” と表記されてい

る予約名によって参照できる。 

(61) 空白列 (blank sequence)  SPACE文字及び(又は)SEPCHAR文字の連続した列。 

(62) 空連結集合 (empty link set)  すべての結果要素型が暗黙的に決まっており,それらの属性が一つも

指定されていない連結集合。 

(63) 区切り子(文字列) [delimiter (string)]  具象構文によって区切り子機能に割り当てられた文字列。 

(64) 区切り子機能 (delimiter role)  抽象構文によって定義され,具象構文によって割り当てられた文字列

で表現され,マークの部品の識別又は(及び)データとマークとの区別を含む機能。 

(65) 区切り子集合 (delimiter set)  抽象構文の区切り子機能に割り当てた区切り子の集合。 

(66) 区切り子集合引数 (delimiter set parameter)  SGML宣言の具象構文引数の中にあって,宣言した具

象構文の区切り子集合を識別する引数。 

(67) 区切り子文字 (delimiter characters)  具象構文によって区切り子機能に割り当てられた文字列の中

に出現する名前文字及び機能文字を除くSGML文字の種別。 

(68) 具象構文 [concrete syntax (of SGML)]  特定の区切り子文字,量,マーク宣言名などを抽象構文に結

合する構文。 

(69) 具象構文引数 (concrete syntax parameter)  文書要素及び(通常)前書きの中で使われる具象構文を

識別するSGML宣言の引数。 

備考 構文参照文字集合,機能文字,回避文字,命名方法,区切り子使用法,予約名使用法及び量的

特徴を識別する引数群からなる引数。 

(70) 群 (group)  区切り子のgrpoとgrpcとの均衡対又は区切り子のdtgoとdtgcとの均衡対によってく

くられた引数の一部分。 

備考 名前群,名前字句群,モデル群,データタグ群及びデータタグひな形群の5種類がある。名前,

名前字句又はデータタグひな形群は,群を含むことはできない。しかし,モデル群はモデル群

を含むことができ,データタグ群はデータタグひな形群を含むことができる。 

(71) 結果文書型 [result document type (of a link)]  連結処理の結果として生成される実現値の文書型。 

(72) 結果要素型 [result element type (of a link)]  結果文書型宣言の中で定義される要素型。 

(73) 結合記法(名) [associated notation (name)]  その引数によって,対応するマーク宣言の対象と結合

されている記法(名)。 

(74) 結合要素型 (associated element type)  その引数によって,対応するマーク宣言の対象と結合されて

いる要素型。 

X 4151-1992  

(75) 原始文書型 [source document type (of a link)]  連結処理の元である実現値の文書型。 

(76) 原始要素型 [source element type (of a link)]  原始文書型宣言で定義した要素型。 

(77) 現属性 (current attribute)  現在値(すなわち,最近指定された値)が省略時値となる属性。 

備考 開始タグは,現属性をもつ要素の最初の出現に対して省略できない。 

(78) 現対応表 (current map)  要素内容又は連結型定義の中で短縮参照使用宣言によって現要素と結合さ

れた短縮参照対応表。 

備考 現要素が対応表と結合されていない場合,その直前の現対応表が新しい現対応表として継続す

る。 

(79) 現付番 (current rank)  共通識別子を得るためにタグの中の付番核に付けられた10進数。 

備考 開始タグの場合,現付番は,同一の付番核又は同じ付番群の中の付番核をもつ最新の要素の付

番である。終了タグの場合,現付番は,同一の付番核で最新の開いている要素の付番である。 

(80) 現要素 (current element)  開始タグが新しく出現し(又はマーク最小化によって省略された)開いて

いる要素。 

(81) 現連結集合 (current link set)  要素内容又は連結型定義の中で連結集合使用宣言によって現要素と

結合された連結集合。 

備考 現要素が連結集合と結合されていない場合,その直前の現連結集合を新しい現連結集合として

継続する。 

(82) 公開識別子 (public identifier)  公開文を識別する最小表記。 

備考1. 文書中の公開識別子は,公的公開識別子として解釈可能としてもよい。 

2. システムは,公開識別子からシステム識別子への変換に対して責任をもつ。 

(83) 公開文 (public text)  単一文書の文脈又はシステム環境の範囲を越えて既知であり,公開識別子で使

用可能な文。 

例 この規格,登録された文書型定義,実体集合,要素集合,データ内容記法又は他のマーク構成要

素。 

備考1. 公開文は,出版済みの文と等価ではない。すなわち,制限なしの開かれた使用との関連はな

い。特に,公開文の所有者は,他人にそれを販売・供与,単一団体への使用の制限などの選

択が許される。 

2. 公開文は,文書の構成を共有し,実際に交換する文書の量を縮め,誤りの可能性を少なくし

て,使用を単純にする。 

(84) 公開文記述 (public text description)  公開文を記述する文識別子の一部分。 

(85) 公開文言語 (public text language)  公開文の中に使われている自然言語を特定する文識別子の一部

分。 

備考 データ,注釈及び(又は)定義される名前に使う自然言語を公開文言語とできる。 

(86) 公開文種別 (public text class)  公開文が適合するSGMLマーク構成要素を識別する文識別子の一部

分。 

(87) 公開文指示シーケンス (public text designating sequence)  公開文の中の文字集合の宣言のときに使

われ,文字集合を指示するJIS X 0202に規定するエスケープシーケンスを含む文識別子の一部分。 

(88) 公開文表示版 (public text display version)  提供される装置機能又は使用される符号化方式を記述す

ることによって,共通の公開文記述をもつ公開文ではないことを示す文識別子の一部分。 

備考 もし省略した場合,公開文は装置依存ではない。 

X 4151-1992  

(89) 公的公開識別子 (formal public identifier)  その所有者識別子及びその文識別子の構成要素が識別で

きるように,この規格に規定している規則に従い構成された公開識別子。 

(90) 公的公開識別子誤り (formal public identifier error)  公的公開識別子の構成の誤り又は使用法の誤

り。ただし,最小表記が適正でない場合を除く。 

備考 SGML宣言で構文表記 “FORMAL YES” を指定した場合にだけ公的公開識別子誤りが起こる。

最小表記としての公的公開識別子誤りは,それを指定しない場合でも起きる。 

(91) 構文解析対象文字データ (parsed character data)  解析され,マークが認知されている文の内容中に

出現する0個以上の文字であって,解析中にマークとして認知されないので,データ文字として分類

されるもの。 

(92) 構文参照文字集合 (syntax-reference character set)  具象集合によって指定される文字集合であって,

構文のすべての潜在利用者に既知であり,すべての重要なSGML文字を含むもの。 

備考 構文参照文字集合は,一緒に使う特定の文書又はシステム文字集合に無関係に具象構文を定義

することを可能とする。 

(93) 固定属性 (fixed attribute)  指定値(もしあれば)が省略時値と同じでなければならない属性。 

(94) 小文字名前開始文字 (lower-case name start characters)  具象構文によって追加された小文字の名前

開始文字からなる文字種別。 

(95) 小文字名前文字 (lower-case name characters)  具象構文によって追加された小文字の名前文字から

なる文字種別。 

(96) 固有選択字句 (inherently optional token)  次のいずれかのモデル群字句。 

1) opt又はrep出現標識をもつもの 

2) 一つの字句が固有選択であるor群 

3) すべての字句が固有選択であるand群又はseq群 

(97) 合計容量 (total capacity)  すべての対象体容量の総和の限界。 

(98) 最小SGML文書 (minimal SGML document)  機構がなく規格参照容量集合をもち,核具象構文だけ

を使う適合SGML文書。 

(99) 参照 (reference)  他の文,実体又は単一文字のいずれかによって置換されるマーク。 

(100) G0集合 (G0 set)  図形文字符号拡張において,標準の呼出しである場合,文字集合位置中の128

より小さい文字番号となる文書文字集合図形文字を表す仮想文字集合。 

(101) 識別子 (identifier)  識別するための単一の文字列。 

(102) 識別子参照値 (identifier reference value)  属性値であって,同一文書中の要素に対して一つの識別

子値として指定された名前。 

(103) 識別子参照並び (identifier reference list)  属性値であって,識別子参照値の並び。 

(104) 識別子値 (identifier value)  属性値であって,要素を一意に識別する名前。 

備考 識別子値は,同一の文書中の他のいかなる識別子値と同じであってはならない。 

(105) 字句 (token)  必す(須)又は任意選択の字句分離子によって境界をつけられた群の一部。その群

は,完全な入れ子群(接続子を除く。)を含む。 

(106) システム識別子 (system identifier)  外部実体を位置付けるため,ファイル識別子,格納場所,プ

ログラム呼出し,データ列の位置又は他のシステム特有情報を特定するシステムデータ。 

(107) システム宣言 (system declaration)  適合SGMLシステムの文書に含まれる機構,容量集合,具象

構文,文字集合,システム文字集合,解釈可能なデータ内容記法及び実行可能な検定サービスを特定

X 4151-1992  

する宣言。 

(108) システム文字集合 (system character set)  特定のSGMLシステムで使う文字集合。 

(109) 10進数 (digits)  0から9までの10種のアラビア数字で構成する文字種別。 

(110) 実体 (entity)  一つの単位として参照される文字の集まり。 

備考1. 異なる著者によって書かれた本の章,規格外の文字又は写真のような対象は,独立した実体

として保持することによって取り扱うことができる。 

2. 実体の物理的な構成は,システム依存であり,ファイル,分割されたデータ集合の一部,デ

ータ構造の要素,記号表の項などの形式をとる。 

(111) 実体管理系 (entity manager)  複数の実体への使用を維持及び提供するファイルシステム又は記

号表などのプログラム(プログラムの一部又はプログラムの組合せ)。 

(112) 実体構造 (entity structure)  一つ以上の実体へ分割された文書の構成。 

備考 最初の実体は,SGML文書実体であり,その実体に関連する他の実体がどこにあるかを示した

実体参照を含む。 

(113) 実体参照 (entity reference)  実体によって置換される参照。 

備考 名前付き実体参照及び短縮参照の2種類がある。 

(114) 実体集合 (entity set)  一緒に使われる実体宣言の集合。 

備考 実体集合は,公開文にすることができる。 

(115) 実体終了信号 [entity end (signal)]  一つの実体の置換文の終了を示すシステムからの信号。 

(116) 実体宣言 (entity declaration)  参照を可能にするために,一つの実体にSGML名を指定するマーク

宣言。 

(117) (文書型の)実現値 [instance (of a document type)]  文書型定義に適合する要素の階層に対応する

データ及びマーク。 

(118) 実体文 (entity text)  引数表記の中に置換文を含むことによって,又は外部識別子によって置換文

を指定する実体宣言の引数。 

(119) シフト機能 (shift function)  図形文字符号拡張において,図形文字集合を呼び出す制御文字又は制

御文字列。 

備考 シングルシフト及びロッキングシフトの2種類がある。 

(120) 重要なSGML文字 (significant SGML character)  マーク文字又は最小データ文字。 

(121) 終了タグ (end-tag)  要素の終わりを識別する記述的マーク。 

(122) 省略時実体 (default entity)  名前か宣言されていない一般実体参照によって参照される実体。 

(123) 省略時値 (default value)  属性指定がない場合に属性値を特定する属性定義の一部。 

(124) 省略タグ最小化引数 (omitted tag minimization parameter)  開始タグ・終了タグの技術的に正しい

省略が報告可能マーク誤りとみなされるかどうかを指定する要素宣言の引数。 

(125) 初期連結集合 (initial link set)  文書の開始時に出現し連結集合となるもの。 

(126) 所有者識別子 (owner identifier)  公開文の所有者又は創作者を識別する公開識別子の一部分。 

備考 ISO,登録及び未登録の3種類がある。 

(127) 処理指令 (processing instruction)  文書処理を制御するシステム依存のデータからなるマーク。 

(128) 処理指令実体 (processing instruction entity)  参照時に,処理指令のシステムデータとして扱われ

る実体。 

(129) 充足字句 (satisfied token)  出現した内容と一致する内容字句。 

10 

X 4151-1992  

(130) 状態見出し語 (status keyword)  マーク区間を無視すること,又はマーク区間を文字データ,置換

可能文字データ若しくは構文解析対象として扱うことを指定するマーク区間宣言の引数。 

(131) シングルシフト (single shift)  後に続く1文字だけに適用するシフト機能。 

(132) 真の部分要素 (proper subelement)  含んでいる要素のモデルによって許される部分要素。 

(133) 数 (number)  10進数だけからなる名前字句。 

(134) 数字句 (number token)  最初の文字が10進数である名前字句。 

備考 群の中に出現する数字句も字句の一種であるが,属性値として出現する数字句は字句とはみな

さない。 

(135) 数値指定文字参照 (numeric character reference)  区切られた文字番号によって構成する文字参照。 

(136) (属性指定並びの)正規化長さ [normalized length (of an attribute specification list)]  構成要素を

区切ったり分離するために使われる実際の文字を無視し,構成要素当たり特別の固定数を数えること

によって計算した長さ。 

(137) 制御シーケンス (control sequence)  それ以降の文字列の解釈,表現又はその他の処理を制御する

機能制御文字で始まる文字の並び。 

例 エスケープシーケンス。 

(138) 宣言済み具象構文 (declared concrete syntax)  SGML宣言の具象構文引数によって記述された具

象構文。 

(139) 宣言部分集合 (declaration subset)  別の宣言を出現させることができるマーク宣言の部分。 

備考 宣言部分集合は,文書型,連結型及びマーク区間宣言の中でだけ出現する。 

(140) 装置依存の公開文 (device-dependent version of public text)  公開文表示版に追加された部分だけ

公的公開識別子が他の公開文とは異なる公開文。 

備考 支援する表示装置又は使用符号化方法を識別する。 

(141) (要素の)属性 [attribute (of an element)]  型及び内容を除く特質。 

(142) 属性指定 (attribute specification)  属性指定並びの構成要素であって,単一の属性値を特定するも

の。 

(143) 属性(指定)並び [attribute (specification) list]  一つ以上の属性(指定)の集まり。 

備考 属性(指定)並びは,開始タグ及び連結集合に出現する。 

(144) 属性(定義)並び宣言 [attribute (definition) list declaration]  属性(定義)並びを一つ以上の要素

型と結合するマーク宣言。 

(145) 属性値表記 (attribute value literal)  参照の置換及び機能文字を無視する又は変換することによっ

て属性値として解釈された区切られた文字列。 

(146) 属性定義 (attribute definition)  属性定義並びの構成要素である属性名,許容値及び省略時値の定

義。 

(147) 属性定義並び (attribute definition list)  属性定義並び宣言の属性定義並び引数によって定義する

一つ以上の属性定義の集合。 

(148) (内容字句の)対応内容 [corresponding content (of a content token)]  内容字句に対応する文書の

中の要素群及び(又は)データ。 

(149) (短縮参照)対応表 [(short reference) map]  短縮参照対応表宣言によって宣言された関連の名付

けられた集合であって,各短縮参照区切り子は,一般実体名に対応付けられるか又は何にも対応付け

られない表。 

11 

X 4151-1992  

(150) 対象体容量 (object capacity)  実体文の文字,定義された実体などの特定の種類の対象体の容量制

限。 

(151) タグ (tag)  記述的マーク。 

備考 開始タグ及び終了タグの2種類がある。 

(152) 多符号核具象構文 (multicode core concrete syntax)  多符号化した核具象構文であって,符号拡張

が行われている場合に,その中でマークとして認知しないもの。 

(153) 多符号基本具象構文 (multicode basic concrete syntax)  多符号化した基本具象構文であって,符号

拡張が行われている場合に,その中でマークとして認知しないもの。 

(154) 多符号具象構文 (multicode concrete syntax)  SGML文字として符号拡張制御文字を許す具象構文。 

(155) 短縮参照(列) [short reference (string)]  具象構文によって短縮参照区切り子機能に割り当てられ

る文字列。 

(156) 短縮参照区切り子機能 (short reference delimiter role)  具象構文によって0個以上の文字列で割当

て可能な区切り子の役割。短縮参照文字列が認知された場合,短縮参照文字列は,一般実体の名前が

現対応表で対応付けられていれば置換され,対応付けられていなければ分離子又はデータとして扱う。 

(157) 短縮参照集合 (short reference set)  一緒に使われる短縮参照対応表,短縮参照使用及び実体宣言の

集合。 

備考 短縮参照集合は,公開文であってもよい。 

(158) 短縮参照使用宣言 (short reference use declaration)  短縮参照対応表と一つ以上の要素とを関連付

け又は現要素に新しい現対応表を指定するマーク宣言。 

(159) 短縮参照対応表宣言 (short reference mapping declaration)  短縮参照対応表を定義するマーク宣

言。 

(160) 単純連結(処理定義) [simple link (process definition)]  応用によってすべて暗黙的に指定される

結果要素型及び属性の連結(処理定義)。その連結属性は,一つの集合だけが指定でき,原始文書型を

基本としなければならない。 

(161) 置換可能引数データ (replaceable parameter data)  認知及び置換される引数実体参照中の又は文

字参照中の文字データ。 

備考 置換可能引数チータを終了するマークは,その中で参照される実体の置換文中では認知されな

い。 

(162) 置換可能文字データ (replaceable character data)  認知及び置換される一般実体参照中の又は文字

参照中の文字データ。 

備考 置換可能文字データを終了するマークは,その中で参照される実体の置換文中では認知されな

い。 

(163) 置換文 (replacement text)  実体参照に置換される実体の文。 

(164) 置換文字 (replacement character)  文字参照に置換される文字。 

(165) 注釈 (comment)  文書を使う人を補助する説明又は留意事項を含むマーク宣言の一部。 

(166) 注釈宣言 (comment declaration)  注釈だけを含むマーク宣言。 

(167) 抽象構文 [abstract syntax (of SGML)]  文書データにマークの付加を規定する構文であって,マー

クを表現するために使う特定文字に依存しない構文。 

(168) 定義文字実体集合 (definitional character entity set)  実際には表示しない図形文字に対する実体名

の定義を目的とする文字実体集合。 

12 

X 4151-1992  

備考1 

その公開識別子は,公開文表示版を含まない。 

2. システム処理中は,定義実体集合を特定の出力装置に対応する表示文字実体集合に代替する。 

(169) 適合SGML応用 (conforming SGML application)  適合SGML文書の要件を満たしている応用。 

(170) 適合SGML文書 (conforming SGML document)  この規格に適合した文書。 

(171) 手続き (procedure)  特定の要素に働くように応用によって定義される処理。 

備考1. 単一の手続きは,一つ以上の要素型と関連付けられ,一つ以上の手続きが文書中の異なる位

置の同一の要素型に働くことができる。 

手続きは,通常,手続き集合の一部である。 

(172) 手続き集合 (procedure set)  与えられた応用の処理に対して,一緒に使われる手続きの集まり。 

備考 通常,SGML応用において,手続き集合は連結処理定義に対する応用処理を構成する。 

(173) データ (data)  固有の情報内容を表現する文書文字のうち,マークとして認知されない文字。 

(174) データ実体 (data entity)  データとして宣言し,参照のときに構文解析しない実体。 

備考 これには,文字データ実体,特定文字データ実体及び非SGMLデータ実体の3種類がある。 

(175) データ専用文字 (dedicated data character)  マークにならないSGML文字によって構成される文

字種別。 

備考 その箇所は,データ文字としてだけ扱う。 

(176) データ属性 (data attribute)  特定のデータ内容記法に適合するデータの属性。 

備考 データ属性の値は,その記法に従って解釈する前に既知でなければならない。 

(177) データ内容 (data content)  マークでもなく部分要素でもない要素内容の一部。 

(178) データ内容記法 (data content notation)  要素のデータ内容又はデータ実体の応用依存の表現法で

あって,通常の文書文字集合の意味を拡張又は変更を表す。 

備考 記法属性によって要素内容を指定し,実体宣言の記法名引数によってデータ実体を指定する。 

(179) データタグ (data tag)  開いている要素のデータタグ形式に適合する列。 

備考 開いている要素の終了タグ及びデータタグを含む要素の中の文字データとして作用する。 

(180) データタグ群 (data tag group)  データタグ形式と目標とする要素型とを結合するモデル群の字句。 

備考 目標とする要素の実現値の中で,データ内容及び部分要素のデータ内容からデータタグ形式に

適合する列が探索される。 

(181) データタグ形式 (data tag pattern)  適正な文脈中で出現した場合にデータタグを構成する列を特

定するデータタグ群の字句。 

(182) データ文字 (data character)  文脈中でデータとして宣言されているか又はマークとして認知しな

いことによって,データとして解釈されるSGML文字。 

(183) 点 (point)  記憶装置の相対的要求量を大雑把に指し示す容量の測定単位。 

(184) 添加部分要素 (included subelement)  親要素に許されていないが,添加の例外によって許された部

分要素。 

(185) 添加要素 (inclusions)  適用モデルが許していなくても,要素又はその部分要素の内容中のどこに

でも許されている要素。 

(186) 等価参照列 (equivalent reference string)  実体参照,記録終了RE及び(又は)記録開始RSを含

む文字列であって,文書が短縮参照を支持する具象構文から短縮参照を支持しない具象構文へ変換さ

れたときに短縮参照を置換する文字列。 

(187) 登録所有者識別子 (registered owner identifier)  ISO 9070に従って構成した所有者識別子。 

13 

X 4151-1992  

備考 登録所有者識別子は,所有者識別子の中で一意であり,ISO所有者識別子及び未登録所有者識

別子とは異なる。 

(188) 特定文字データ実体 (specific character data entity)  参照時に,実体のもつ文が文字データとして

扱われる実体。特定のシステム,装置又は応用処理に依存する。 

備考 特定文字データ実体は,通常,異なった応用,システム又は出力装置に対して再定義すべきで

ある。 

(189) 内容 (content)  文書の中で要素の開始タグと終了タグとの間に出現する文字。 

備考1. その文字は,データ,真の部分要素,添加部分要素,その他のマーク又はこれらが混在した

ものとして解釈される。 

2. 要素が明示内容参照又はその宣言済み内容が “EMPTY” ならば,内容は空である。 

その場合,応用自身が内容のデータを生成してもよい。 

(190) 内容規則 (content convention)  長さに関する制限,許される文字,英大文字及び英小文字の使用

などのデータ内容を統制する応用規則。 

備考 内容規則は,本質的に非公式のデータ内容記法であって,通常,一つの要素型に制限される。 

(191) 内容参照属性 (content reference attribute)  内容データを生成するために応用によって参照され

る暗示属性。 

備考 要素が明示内容参照をもつ場合,文書の中で要素内容は空である。 

(192) 内容モデル (content model)  許容できる要素内容を定義するモデル群及び例外を指定する要素宣

言の引数。 

(193) 内容モデル入れ子水準 (content model nesting level)  内容モデルの中で対応する区切り子終了

(grpc又はdtgc)がない開始の区切り子(grpo又はdtgo)の最大数。 

(194) 名前 (name)  最初の文字が名前開始文字である名前字句。 

(195) 名前開始文字 (name start character)  名前を開始できる文字。 

(196) 名前群 (name group)  名前の連なり。 

(197) 名前字句 (name token)  名前文字だけからなる文字列。その長さは,NAMELEN量によって制限

される。 

備考 群の中に出現する名前字句も字句であるが,属性値として出現する名前字句は,字句ではない。 

(198) 名前字句群 (name token group)  名前字句の連なり。 

(199) 名前指定実体参照 (named entity reference)  実体宣言によって宣言された一般実体又は引数実体

(おそらく文書型指定によって修飾されている。)の区切られた名前から構成する実体参照。 

備考 もし省略時実体が宣言されているならば,一般実体参照は,宣言されていない名前をもつこと

ができる。 

(200) 名前指定文字参照 (named character reference)  区切られた機能名からなる文字参照。 

(201) 名前文字 (name character)  名前の中に現れることのできる文字。その文字は,名前開始文字,10

進数及びその他の具象構文で指定される文字のいずれかである。 

(202) 入手可能公開文 (available public text)  一般公開され,入手が可能な公開文。 

備考 所有者が料金の支払又はその他制約の履行を要求する場合がある。 

(203) 入手不能公開文 (unavailable public text)  所有者によって選択され制限された人だけに入手可能

な公開文。 

(204) 排除要素 (exclusions)  適応可能な内容モデル及び添加が任意に許容しても,ある要素の内容中及

14 

X 4151-1992  

び部分要素中に許されない要素。 

(205) 非SGMLデータ実体 (non−SGML data entity)  この規格に従って解釈されない文字をもつ実体

であり,認知されないもの。 

備考 非SGMLデータ実体の解釈は,データ内容記法によって規制され,別の規格によって定義され

る。 

(206) 非SGML文字 (non−SGML character)  文書文字集合中の文字であって,符号化表現がSGML実

体中に現れてはならないもの。 

(207) 引数 (parameter)  引数分離子によって連結されているマーク宣言の一部。引数が更に他の引数を

含んでもよい。 

(208) 引数表記 (parameter literal)  区切られた置換可能な引数データからなる引数又は字句。 

(209) 引数実体 (parameter entity)  マーク宣言引数から参照することができる実体。 

(210) 引数実体参照 (parameter entity reference)  引数実体への名前付き実体参照。 

(211) 引数分離子 (parameter separator)  マーク宣言中に出現する引数を分離するもの。 

(212) 必す(須)属性 (required attribute)  属性値のための属性指定が常に存在しなければならない属性。 

(213) 表示文字実体集合 (display character entity set)  対応する定義の文字実体集合と同じ実体名をも

つ表示される文字の実体集合。これは,対応する定義の文字実体集合の装置依存版である。 

(214) 開いている実体 (open entity)  既に参照されているが,その実体終了がまだ出現していない実体。 

(215) 開いているマーク区間宣言 (open marked section declaration)  マーク区間開始が出現しているが,

マーク区間終了がまだ出現していないマーク区間宣言。 

(216) 開いている要素 (open element)  開始タグは既に出現している(又は既にマーク付け最小化により

省略されている)が,終了タグが出現していない(又はマーク付け最小化による省略がまだ行われて

いない)要素。 

(217) B列 (B sequence)  大文字Bの連続した文字列。短縮参照として割り当てられた文字列の中で,そ

の文字Bの個数以上の長さをもつ空白列を意味する。 

(218) 不活性機能文字 (inert function character)  無効という追加SGML機能をもつ機能文字からなる文

字種別。 

(219) 符号化表現 (coded representation)  同じビット数のビット組合せの一つ以上の並びで文字を表現

したもの。 

(220) 符号集合 (code set)  順序付けられた同じビット数のビット組合せの集合。 

例 ビット組合せが8ビット(8ビット符号)の符号集合は,00000000〜11111111までの値の範囲(10

進数で0から255)で256のビット組合せ又はそれらのビット組合せのあらゆる連続した部分集

合を構成する。 

(221) 符号集合位置 (code set position)  符号集合の中のビット組合せの位置を表す数値。 

(222) 付番核 (rank stem)  現付番を追加することによって共通識別子名を導き出すことのできる名前。 

(223) 付番群 (ranked group)  同じ現付番を共用する付番核の集まり。 

備考 付番核が群の中のいかなる付番要素の開始の場合においても,その付番は群中のすべての付番

核に対する現付番となる。 

(224) 付番要素 (ranked element)  付番核及び付番から構成される共通識別子をもつ要素。 

備考 付番要素の開始の場合,その付番は,その付番核及び(もしあるならば)付番核が要素の付番

群中の付番核に対する現付番となる。 

15 

X 4151-1992  

(225) 付番 (rank suffix)  共通識別子を形成するために付番核に付加される番号。 

備考 番号は,通常1から始まる連番であり,結果の共通識別子は,それらの要素の相対的な付番を

示す。 

例 頭書きの場合,付番核をHとすると,頭書きの要素の水準はH1,H2,H3などとなる。 

(226) 部分要素 (subelement)  要素の内容(親要素)において出現する要素であって,親要素が現要素で

ある場合に開始するもの。 

(227) 文 (text)  文字の並んだもの。 

備考 それらの文字は,普通の文字集合での意味又はデータ内容記法による図形,画像などとして解

釈される。 

(228) 文識別子 (text identifier)  同じ所有者識別子をもつ他の公開文から区別するために公開文を識別

する公開識別子の一部分。 

備考 公開文種別,任意選択の入手不能標識,公開文記述,公開文言語及び任意選択の公開文表示版

から構成される。 

(229) 文書 (document)  1単位として処理される情報の集まりを記述したもの。 

備考 この規格の中では,普遍的にSGML文書を意味する。 

(230) 文書型 (document type)  同一の特性をもつ文書の型。 

例 日誌,記事,技術手順書又は書簡。 

(231) 文書型指定 (document type specification)  タグ又は実体参照が処理される範囲で文書型を識別す

るタグの一部又は実体参照の一部。 

(232) 文書型宣言 (document type decralation)  形式指定を含んでいる文書型定義のマーク宣言。 

(233) 文書型宣言部分集合 (document type decralation subset)  文書型宣言の宣言部分集合の中で出現す

る要素,実体及び短縮参照集合。 

備考 文書型宣言から参照される外部実体は,宣言部分集合の部分と考えられる。 

(234) 文書型定義 (document type definition)  応用によって定義される特定の型の文書のマークに

SGMLを応用する規則。 

備考1. 文書型定義は,文書型宣言中に記述され,要素型,要素関係及び属性の形式指定とマークに

よって表現できる参照とからなる。それによって,SGMLが構文を定義するためのマークの

語いを定義する。 

2. 文書型定義は,要素の意味,属性の意味及びすべての応用の規則を記述する注釈を含む。 

(235) 文書実現値 (document instance)  文書型の実現値。 

(236) 文書実現値集合 (document instance set)  一つ以上の文書型の実現値からなる実体構造の中の

SGML文書実体又はSGML部分文書実体の一部。 

備考 並行して出現する実現値機構が使用されている場合,複合の実現値が一つの文書の中に存在す

ることができ,マーク及びデータがその中で共有される。 

(237) 文書処理応用 (text processing application)  関連した型の文書処理の集合。 

例1. ソフトウェア開発者のための技術手引書の出版の場合は,次のようになる。文書型は,設置手

引書,操作手引書及び保守手引書を含む。処理は,各種出力装置のための作成,校正,書式付

け,ページ割り付けなどからなる。 

例2. 出版協会員の著者による原稿の準備の場合は,次のようになる。文書型は,本,雑誌,記事な

どからなる。処理は,出版者が自身の書式付け及び印刷手段をもつので,作成だけを定義する。 

16 

X 4151-1992  

例3. 事務連絡文書の場合は,次のようになる。文書型は,書簡,郵便の履歴及び報告書を含む。処

理は,作成,校正,簡単な書式付け,格納,検索,書簡の履歴の更新,報告書生成などからな

る。 

(238) 文書体系 (document architecture)  文書処理応用の形式化のための規則。 

例 文書体系は,次のものを定義できる。 

1. 多様な要素定義に対する属性の意味。 

2. 要素クラス及び要素がもつ属性。 

3. 要素クラスの言葉の中で文書型を定義するための構造規則。 

4. 連結処理及び属性の値による影響。 

5. 交換時に文書に伴う情報(文書概要)。 

(239) 文書文字集合 (document character set)  SGML文書の中のすべてのマーク及びデータに使用され

る文字集合。 

備考 文書がシステム間で交換される場合,文字集合は受信側システムの文字集合に翻訳される。 

(240) 文書要素 (document element)  文書型の実現値の最も外側にある要素であって,その要素の共通識

別子となる文書型名をもつ要素。 

(241) 文脈上の選択字句 (contextually optional token)  次のいずれかの場合の内容字句。 

(a) 固有選択字句である内容字句。 

(b) 出現標識plusをもつ充足字句。 

(c) モデル群自身が文脈上の選択字句であるモデル群の中にあって,充足字句でない。 

(242) 文脈上の選択要素 (contextually optional element)  

(a) それが添加のときだけ出現できる。 

(b) その時点で適用可能なモデル群の中において,その要素の内容字句が文脈上の選択字句。 

(243) 文脈上の区切り子 (delimiter-in-context)  同じ実体の中で文脈列が直接続く区切り子列で構成さ

れる文字列。 

(244) 文脈上の必す(須)字句 (contextually required token)  次の(a)〜(b)のいずれかの場合の内容字句。 

(a) そのモデル群の中にそれだけしか存在しない。 

(b) 次の1.〜2.の二つの条件を満たすseq群。 

1. 

それ自身が文脈上の必要な字句又は充足字句を含む。 

2. 

先行するすべての充足字句又は文脈上の選択字句。 

(245) 文脈上の必す(須)要素 (contextually required element)  文脈上の選択要素でなく,次の(a)〜(b)

のいずれかの場合である要素。 

(a) その共通識別子が文書型名。 

(b) その時点で適用可能な内容モデル字句が文脈上必す。 

備考 要素は,文脈上必すでもなく選択でもないことがある。例えば,その時点で適用可能な内容モ

デル字句がor群の中にあり,しかもそのor群に固有選択字句がない場合。 

(246) 文脈列 (contextual sequence)  文字列が区切り子として認識されるために,同一実体の中で区切り

子列に続かなければならない一つ以上のマーク文字の並び。 

(247) 分離子 (separator)  文の構造を分けるための記号s,ds,ps又はts。 

(248) 分離子文字 (separator character)  分離子中で許容される機能文字から構成する文字種別。記録終

了REが間隔に置換される場合,それらの文脈中で間隔に置換される。 

17 

X 4151-1992  

(249) 変形(適合)SGML文書 [variant (conforming) SGML document]  変形具象構文を使う適合SGML

文書。 

(250) 変形具象構文 (variant concrete syntax)  規格参照具象構文又は核具象構文以外の具象構文。 

(251) 報告可能マーク誤り (reportable markup error)  この規格に適合した文書を,活性文書及び連結型

に関して構文解析した場合に生ずる誤りで,(要素型を識別できない共通識別子のような)意味誤り及

び次の場合を除く。 

(a) あいまいな内容モデル。 

(b) 内容モデル中の字句の必ず又は任意選択の状態を変更できる排除。 

(c) 容量限界の超過。 

(d) SGML宣言の誤り。 

(e) あいまいさを生ずるタグの省略。 

(f) 非SGML文字の出現。 

(g) 公的公開識別子の誤り。 

(252) マーク (markup)  情報を伝達するために文書のデータに付け加えられた文字。 

備考 記述的マーク(タグ),参照,マーク宣言及び処理指令の4種類がある。 

(253) マーク規則 (markup convention)  実体名の形式化のための規則又は許された短縮参照区切り子

の好ましい部分集合のようにマークを統制する応用規則。 

(254) マーク区間 (marked section)  特別の目的のために認識される文書の区間。 

(255) マーク区間開始 (marked section start)  マーク区間宣言を開く区切り子。 

(256) マーク区間終了 (marked section end)  マーク区間宣言を閉じる区切り子。 

(257) マーク区間宣言 (marked section declaration)  マーク区間を識別し,その取扱いを指定するマーク

宣言 

(258) マーク区間の有効状態 (effective status of a marked section)  マーク区間宣言で指定される優先順

位の最も高い状態見出し語。 

(259) マーク最小化機構 (markup minimization feature)  タグの短縮,省略又は実体参照の短縮によって

マークが最小化されることを許すSGMLの機構。 

備考 マーク最小化機構は,文書型定義に影響しないので,省略されたマークを回復することによっ

て,これらの機構を支持しないシステムに最小化された文書を送ることができる。SHORTTAG,

OMITTAG,SHORTREF,DATATAG及びRANKの5種類がある。 

(260) マーク宣言 (markup declaration)  文書の中のマークの解釈を制御する宣言。 

備考 SGML,実体,要素,属性定義並び,記法,文書型,連結型,連結集合,連結使用,マーク区

間,短縮参照対応表,短縮参照使用及び注釈の13種類がある。 

(261) マーク付け (mark up)  文書にマークを付け加えること。 

(262) マーク文字 (markup character)  文脈に依存してマーク又はデータとして解釈可能なSGML文字。 

(263) マーク認知開始文字 (markup-scan-in characters)  マーク認知終了文字の出現するまで,マーク認

知がされている状態にする機能文字から構成される文字種別。 

(264) マーク認知終了文字 (markup-scan-out cahracters)  マーク認知開始文字又は実体終了が出現する

までマーク認知を抑止する機能文字から構成される文字種別。 

(265) マーク認知抑止文字 (markup-scan-suppress characters)  同一の実体中で,すぐ後に続く文字のマ

ークの認知を抑止する機能文字からなる文字種別。 

18 

X 4151-1992  

(266) 前書き (prolog)  SGML文書又はSGML部分文書実体の一部分であって,文書型宣言及び連結型

宣言を行うもの。 

(267) 見出し語 (keyword)  具象構文によって定義された予約名である引数。 

備考 引数としては,見出し語又は応用が定義した名前を指定できるが,見出し語の前には,いつで

も予約名標識が付く。そのため,具象構文によって使われているかどうかに関係なく,応用が

名前を定義できる。 

(268) 未登録所有者識別子 (unregistered owner identifier)  登録所有者識別子及びISO所有者識別子と区

別可能な所有者識別子。 

備考 登録規格に従って構成されていないので,他の未登録所有者識別子と重複することがある。 

(269) 明示内容参照 (explicit content reference)  属性指定中に規定された内容参照。 

(270) 明示連結(処理定義) [explicit link (process definition)]  結果要素型及びその属性の連結(処理定

義)であって,複数の連結属性値の集合を指定することができる。 

(271) 命名方法引数 (naming rules parameter)  標準の名前英文字種別への追加の指定並びに英大文字へ

の代替の指定のSGML宣言の引数。 

(272) 目的要素 (target element)  それがもつ共通識別子がデータタグ群で指定される要素。 

(273) 黙示属性 (impliable attribute)  属性指定の必要がない属性であって,その属性値は,指定されな

い場合,応用によって定義される。 

(274) 文字 (character)  文字レパートリで定義されて個々に意味をもつ情報の原子 (atom)。 

備考1. 図形文字及び制御文字の2種類がある。 

2. 文字は,文脈上に出現し,マーク又はデータ内容記法によって定義され,文字レパートリの

中でその意味を変更又は補足する。 

(275) 文字参照 (character reference)  1文字に置換される参照。 

備考 名前指定文字参照及び数値指定文字参照の2種類がある。 

(276) 文字集合 (character set)  各々の文字が符号化表現で関連付けられるような符号集合に割り当て

た文字レパートリ。 

(277) 文字種別 (character class)  非SGML文字又は分離子文字のように,抽象構文の中で共通の目的を

もつ文字集合。 

備考 特定の文字が次の4通りの方法で文字種別へ割り当てられる。 

1. 抽象構文によって明示する方法(Special,Digit,LC Letter及びUC Letter)。 

2. 具象構文によって明示する方法(LCNMSTRT,FUNCHAR,SEPCHARなど)。 

3. 区切り子機能又はその他の文字種別への明示的な割当て結果のように,絶対的な方法

(DELM-CHAR及びDATACHAR)。 

4. 文書文字集合によって明示する方法 (NONSGML)。 

(278) 文字実体集合 (character entity set)  図形文字である一般実体からなる公開実体集合。 

備考1. 文字実体は,文書文字集合の中で符号化表現をもたない文字を表すため,又は容易にけん盤

から入力できない文字若しくはビット組合せが,すべての出力装置で適切に表示することの

できない文字を装置に独立にするために使用される。 

2. 定義用及び表示用の2種類の実体がある。 

(279) 文字データ (character data)  文字データの終りを示す区切り子のほかにはマークがない文脈に出

現する文字。 

19 

X 4151-1992  

備考 そのような文字は,データ文字として宣言されるので,データ文字に分類される。 

(280) 文字データ実体 (character data entity)  参照された文字データであって,特定システム,装置及

び応用処理に依存しない文の実体。 

(281) 文字番号 (character number)  文字の符号化表現を等価の10進数で表す番号。 

備考 ビット組合せの並びを一つ以上の2進数として取り扱うことで得られる。 

(282) 文字レパートリ (character repertoire)  同時に使用される文字の集合。 

備考1. 各々の文字又は複合文字の制御シーケンスに対して,意味を定義することができる。 

2. 文字が制御シーケンスの中に出現した場合,その並びの意味は,個々の文字の意味を破棄す

る。 

(283) モデル群 (model group)  内容モデルの構成要素。その構成要素は,要素の内容中の要素及び文字

列の出現の順番を指定する。ただし,要素の内容モデル中及び他の開いている要素の内容モデル中に

指定した例外によって修正される。 

(284) 要素 (element)  文書型宣言によって定義される階層構造の構成要素。 

備考1. 通常は,開始タグ及び終了タグである記述的マークによって文書実現値の中で識別される。 

2. 要素は,特定の要素型に分類される。 

(285) 要素型 (element type)  同一の特性をもつ要素の組の型。 

例 章,節,要約,注釈,目録など。 

(286) 要素型定義 (element type definition)  特定の型の要素のマークに対してSGMLを応用する応用に

特有の規則。 

備考 要素型定義は,要素定義並び宣言の中及び属性定義並び宣言の中に記述され,特定の要素型に

許容された内容,マーク最小化機構及び属性の形式指定を含む。 

(287) 要素型引数 (element type parameter)  定義の要素の型を識別する要素宣言の引数。 

備考 独立した共通識別子及び名前群の構成要素の形式によって直接的に,又は付番要素若しくは付

番群の構成要素によって間接的に指定することができる。 

(288) 要素構造 (element structure)  各階層が異なる文書型定義に適合する要素の階層的な文書の構成。 

(289) 要素集合 (element set)  共用される要素宣言の集合。 

備考 要素集合は,公開文にすることができる。 

(290) 要素宣言 (element declaration)  内容及びマーク最小化機構を処理する要素型宣言の形式指定か

らなるマーク宣言。 

(291) 容量 (capacity)  対象の一部又は全体に対し積算した文書内容の量又は複雑さに付けられた制限。 

備考 容量集合は,抽象構文によって定義されるが,値は個々の文書及びSGMLシステムによって割

り当てられる。 

(292) 容量集合 (capacity set)  容量名に対する数値の割当ての集合。 

備考 SGML宣言の中で,容量集合は文書の最大容量要件とみなされる。容量集合は,応用が処理で

きなければならない文書の容量要件を制限するために応用によって定義すること,又はシステ

ムが動作できる容量要件を指定するためにシステムによって定義することができる。 

(293) 予約名 (reserved name)  具象構文によって定義される名前。 

備考 そのような名前は,この規格では構文表記として出現する(4.2参照)。 

(294) 予約名使用引数 (reserved name use parameter)  規格参照予約名に対する宣言済み具象構文にお

いて,置換を指定するSGML宣言の引数。 

20 

X 4151-1992  

(295) 量 (quantity)  マークの数的制限。 

例 名前の最大長又は開いている要素の入れ子の最大の深さ。 

備考 量は,抽象構文によって定義されるが,特定の値が具象構文によって割り当てられる。 

(296) 量集合 (quantity set)  量の名前に対する数値の割当ての集合。 

(297) 例外 (exceptions)  添加の制限及び排除の禁止によって,要素の内容モデル及びその要素の中にあ

る要素の内容モデルの効果を書き変える要素宣言の引数。 

(298) (文字)列 [(character) string]  文字の並び。 

(299) 連結型宣言 (link type declaration)  連結処理定義の形式指定をするマーク宣言。 

(300) 連結型宣言部分集合 (link type declaration subset)  連結型宣言の宣言部分集合中に出現する実体

集合,連結属性集合,連結集合及び連結集合使用宣言。 

備考 連結型宣言からの外部実体参照は,宣言部分集合の部分とみなす。 

(301) 連結集合 (link set)  連結集合宣言によって結合を宣言された名前付き集合であって,原始文書型

の要素が結果文書型の要素と連結され,それぞれの要素について,原始連結属性と結果要素属性とを

指定できる。 

(302) 連結集合宣言 (link set declaration)  連結集合を定義するマーク宣言。 

(303) 連結処理 (link process)  現存する同じ又は別の文書型の実現値(原始文書型)から新しい幾つか

の文書型の実現値(結果文書型)を生成する処理であって,その結果が次処理への入力となるように

連鎖できる。 

備考 編集を含むような連結処理の場合は,原始文書型及び結果文書型が通常同じであるが,書式付

けの場合は通常異なる。 

(304) 連結処理定義 (link process definition)  連結処理を記述するためにSGMLに適用する応用特定規

則。連結処理定義は,原始要素と結果要素との間の連結の連結型宣言の中で表現される形式指定を含

み,その連結処理に適用可能な原始属性(連結属性)の定義を含む。 

備考1. 連結処理定義は,連結属性の意味及び処理上の効果を含め,処理の意味を記述する注釈も含

むことができる。 

2. 連結処理定義には,単純,暗黙及び明示の3種類がある。 

(305) 連結処理の連鎖 (chain of link processes)  最初の処理の元が基本文書型の実現値であって,途中の

処理の結果が次の元を形成して順次実行されるような処理の連なり。 

備考 鎖のどの部分でも繰り返すことができる。例えば,複雑なページ割付け応用は,論理・棒組・

ページの三つの文書型及び両端そろえ・行数算出(ページ組)の二つの連結処理を含むことが

できる。両端そろえ処理は,論理文書の実現値から棒組の実現値を生成し,行数算出処理は,

棒組からページを次々と生成する。二つの処理は,行数算出が異なった大きさで棒組の両端そ

ろえを要求する間は繰り返すことができる。 

(306) 連結属性 (link attribute)  原始文書実現値の特定の処理の文脈においてだけ意味のある原始要素

型の属性。 

4. 表記法 

4.1 

生成規則及び式 SGMLの抽象構文は,形式的な生成規則によって“構文変数”を定義することで

規定する。生成規則は,次のとおり,定義しようとする構文変数,等号及び定義内容を示す式で構成し,

その右に参照番号をふる。 

background image

21 

X 4151-1992  

構文変数=式 −(参照番号) 

式は,構文字句,括弧でくくった式及び演算記号で構成する。 

備考 これらの記法は,この規格でSGMLを規定するためのものであって,SGMLの一部ではない。 

例 構文変数“属性指定”を定義する生成規則 

属性指定=s*,(名前,s*,vi,s*)?, 属性値指定 

−(32) 

式の中の “s”,“名前”, “vi” 及び“属性値指定”は構文字句, “*”, “,” 及び “?” は演算記号である。 

4.2 

構文字句 構文字句は,次のとおりとする。 

(1) 構文変数 生成規則で定義する構文字句。 

例 SGML文書,文字データ実体 

(2) 構文定数 マークに際してそのとおりに記入しなければならない構文字句。式の中では,“と”とでく

くって示す。 

備考 具象構文の命名方法引数(12.4.5参照)で “NAME GENERAL YES” と指定してあれば,マー

クに際して対応する小文字で記入しても差し支えない。 

例 “CDATA” “IGNORE”  

(3) 区切り子機能 区切り子を表す構文字句。区切り子機能は,表3のとおりとする。表3には,一般区

切り子機能に規格参照具象構文で割り当てる文字列も示す。区切り子機能shortrefに規格参照具象構

文で割り当てる文字列は,表4に示す。 

例 shortref ero 

表3 規格参照区切り子集合(一般区切り子) 

区切り子機能 

名前 

文字列 

文字番号 

認知様相 

制約 

機能 

and 

AND 

38 

GRP 

接続子and 

com 

COM 

−− 

45 45 

CXT MD 

注釈の開始・終了 

cro 

CRO 

&# 

38 35 

CON LIT 

CREF 

文字参照の開始 

dsc 

DSC 

93 

DS MD 

ENT 

宣言部分集合の終了 

dso 

DSO 

91 

CXT MD 

宣言部分集合の開始 

dtgc 

DTGC 

93 

GRP 

データタグ群の終了 

dtgo 

DTGO 

91 

GRP 

データタグ群の開始 

ero 

ERO 

38 

CON LIT 

NMS 

実体参照の開始 

etago 

ETAGO 

</ 

60 47 

COH TAG 

GI 

終了タグの開始 

grpc 

GRPC 

41 

GRP 

群の終了 

grpo 

GRPO 

40 

CXT GRP MD 

群の開始 

lit 

LIT 

” 

34 

GRP LIT MD TAG 

表記の開始・終了 

lita 

LITA 

ʼ 

39 

GRP LIT MD TAG 

表記の開始・終了(代替) 

mdc 

MDC 

62 

CXT MD 

マーク宣言の終了 

mdo 

MDO 

<! 

60 33 

CON DSM 

DCL 

マーク宣言の開始 

minus 

MINUS 

− 

45 

MD 

EX 

排除要素の指定 

msc 

MSC 

]] 

93 93 

CON DSM 

MSE 

マーク区間の終了 

net 

NET 

47 

CON TAG 

ELEM 簡略終了タグ 

opt 

OPT 

63 

GRP 

出現標識opt 

or 

OR 

| 

124 

GRP 

接続子or 

pero 

PERO 

37 

DSM GRP MD LIT 

NMS 

引数実体参照の開始 

pic 

PIC 

62 

PI 

処理指令の終了 

pio 

PIO 

<? 

60 63 

CON DSM 

処理指令の開始 

plus 

PLUS 

+ 

43 

GRP MD 

EX 

添加要素の指定・出現標識plus 

refc 

REFC 

59 

REF 

参照の終了 

rep 

REP 

42 

GRP 

出現標識rep 

background image

22 

X 4151-1992  

区切り子機能 

名前 

文字列 

文字番号 

認知様相 

制約 

機能 

rni 

RNI 

35 

GRP MD 

予約名の標識 

seq 

SEQ 

44 

GRP 

接続子seq 

shortref 

SHORTREF 

CON 

短縮参照(表4参照) 

stago 

STAGO 

60 

CON TAG 

開始タグの開始 

tagc 

TAGC 

62 

CXT TAG 

GI 

タグの終了 

vi 

VI 

= 

61 

TAG 

値標識 

表4 規格参照区切り子集合(短縮参照) 

文字列 

文字番号 

名称 

&#TAB; 

水平タブ 

&#RE; 

13 

記録終了 

&#RS; 

10 

記録開始 

&#RS;B 

10 66 

先導空白 

&#RS;&#RE; 

10 13 

空記録 

&#RS;B&#RE; 

10 66 13 

空白記録 

B&#RE; 

66 13 

追従空白 

&#SPACE; 

32 

間隔 

BB 

66 66 

二つ以上の空白 

” 

34 

引用符 

35 

番号記号 

37 

パーセント 

ʼ 

39 

アポストロフィー 

 ( 

40 

左小かっこ 

)  

41 

右小かっこ 

42 

アステリスク 

+ 

43 

正記号 

44 

コンマ 

− 

45 

ハイフン 

−− 

45 45 

二つのハイフン 

58 

コロン 

59 

セミコロン 

= 

61 

等号 

@ 

64 

単価記号 

91 

左大かっこ 

93 

右大かっこ 

^ 

94 

アクサンシルコンフレックス 

̲ 

95 

アンダーライン 

123 

左中かっこ 

| 

124 

縦棒 

125 

右中かっこ 

126 

チルド 

(4) 終端変数 すべてのSGML文書で同じとは限らない文字種別を表す構文字句。NONSGMLを除く終端

変数は,表2のとおりとする。これらの文字種別の文字は,具象構文で割り当てる。 

備考 終端変数NONSGMLの文字種別の文字は,文書文字集合で割り当てる(12.1.2参照)。 

例 DATACHAR,NONSGML 

表2 具象構文−終端変数 

終端変数 

文字 

文字番号 

名称 

DATACHAR 

(間接的) (間接的) データ文字 

DELMCHAR 

(間接的) (間接的) 区切り子文字 

background image

23 

X 4151-1992  

終端変数 

文字 

文字番号 

名称 

FUNCHAR 

(なし) 

(なし) 

休止機能文字 

LCNMCHAR 

−. 

45 46 

名前文字(小文字) 

LCNMSTRT 

(なし) 

(なし) 

名前開始文字(小文字) 

MSICHAR 

(なし) 

(なし) 

マーク認知開始文字 

MSOCHAR 

(なし) 

(なし) 

マーク認知終了文字 

MSSCHAR 

(なし) 

(なし) 

マーク認知抑制文字 

RE 

13 

記録終了文字 

RS 

10 

記録開始文字 

SEPCHAR 

分離子文字 

SPACE 

32 

間隔 

UCNMCHAR 

−. 

45 46 

名前文字(大文字) 

UCNMSTRT 

(なし) 

(なし) 

名前開始文字(大文字) 

(5) 終端定数 実体終了信号又はすべてのSGML文書で同じ文字種別を表す構文字句。終端定数は,表1

のとおりとする。 

例 Digit Ee 

表1 抽象構文−終端定数 

終端定数 

文字 

文字番号 

名称 

Digit 

0〜9 

48〜57 

数字 

Ee 

(システム信号であって文字ではない。) 実体終了信号 

LC Letter 

a〜z 

97〜122 

英小文字 

Special 

ʼ()+, −./:= 

39〜41 43〜47 58 61 63 

特殊文字 

UC Letter 

A〜Z 

65〜90 

英大文字 

4.3 

演算記号 演算記号は,接続演算子及び接尾演算子とする。接続演算子は, “,”, “&” 及び “|” と

する。接尾演算子は, “?”, “+” 及び “*” とする。 

式の中に複数の構文字句が現れる場合,それらを結び付ける接続演算子は,次のとおり,それらの順序

及び選択を表す。 

すべてが式の構成の順に現れなければならない。 

すべてが現れなければならないが,その順序は任意でよい。 

| そのうちのただ一つが現れなければならない。 

接尾演算子は,次のとおり,任意選択又は反復を表す。 

任意選択(0回又は1回) 

+ 必す(須)の反復(1回以上) 

任意選択の反復(0回以上) 

接尾演算子は,接続演算子よりも先に結び付く。数式の場合と同様に,この結合順位を変更するために

括弧を用いる。 

例 (実体宣言|ds)* 

任意反復 “*” による反復の回数を定めてから,その個々について選択 “|” を行う。したがっ

て,この式は,実体宣言とdsとを任意の順序で任意個数(0個以上)並べたものを表す。 

5. 実体構造 

24 

X 4151-1992  

5.1 

SGML文書 SGML文書は,物理的には実体を組織した構造体となる。その主体は,SGML文書実

体とする。SGML文書実体には,それに関係する他の実体がSGML文書実体からみてどこにあるかを示し

た実体参照を含めることができる。 

SGML文書 =SGML文書実体, 

 (SGML部分文書実体|SGML文実体|文字データ実体| 

 特定文字データ実体|非SGMLデータ実体)* 

−(1)

SGML文書実体,SGML部分文書実体及びSGML文実体を,SGML実体という。 

備考1. この生成規則は,SGML文書が一つのSGML文書実体と幾つかのその他の実体とから構成さ

れることを示すだけであって,その文書を収めたデータ流,メッセージ交換,ファイルシス

テムなどの物理的な媒体上での構成を規定するものではない。特に,複数の実体が同一の媒

体にあってもよいし,一つの実体が複数の媒体に分散していてもよい。更に,物理的な順序

がどうなっていてもよい。 

2. この規格は,SGML実体以外の実体に用いる文字について,何らの要件を設けない。これら

の文字の解釈は,他の規格又は規則によることになる。 

3. SGML文書を,その実体の構造を保った形で単一の媒体上で扱うためのSGML文書交換様式 

(SDIF) を定めた規格として,ISO 9069がある。 

5.2 

SGML実体 

SGML文書実体 

=s*,SGML宣言, 

 前書き,文書実現値集合,Ee 

−(2)

SGML部分文書実体 =前書き,文書実現値集合,Ee 

−(3)

SGML文実体 

=SGML文字*,Ee 

−(4)

SGML実体は,その文字列をこの規格に従って構文解析して,そのSGML宣言,前書き,文書実現値集

合及びそれらの構成部品を認知する。 

構文解析は,それぞれのSGML文字に対して,出現の順に次の(1)〜(4)のとおりに行う。 

(1) その文字が区切り子の一部であるかどうかを検査する(8.6参照)。一般区切り子と認知した場合は,

それに続くマークを構文解析する[(4)参照]。短縮参照と認知できた場合は,8.4.6による。 

(2) 区切り子の一部でもなく短縮参照でもなければ,その文字が分離子であるかどうかを検査する。分離

子の場合は,その文字を無視する。 

(3) その文字が区切り子の一部でもなく分離子でもなければ,その文字をデータとして扱う。 

(4) マークの中では,その文字が,区切り子の一部,分離子,区切り子でくくった表記データ又は字句で

あるかどうかを検査する(8.6.6参照)。 

そのSGML文字が機能文字であった場合は,その他の扱いに加えて,その機能を実行する。 

5.2.1 

分離子s 

s=SPACE|RE|RS|SEPCHAR 

−(5) 

SGML文字がs以外のマークとして解釈することができる場合は,そのSGML文字をsとは認知しない。

sと認知した文字は,無視する。 

5.2.2 

実体終了Ee Eeは,実体の終了を示す信号とする。システムは,Eeを表現するのに,SGML文字

と区別することができるどんな方法を用いてもよい。 

備考1. Eeは,文字でないので,データとはならない。Eeは,特別に許す位置にだけ出現すること

ができる。 

25 

X 4151-1992  

2. システムは,非SGML文字が割り当てられている場合,Eeを非SGML文字のビット組合せ

の一つで表現してもよい。 

5.2.3 

SGML宣言の補充 SGML宣言は,SGML文書を単一のシステムだけで処理するのであれば,そ

のシステムに補充してもらってもよい。ただし,その文書を他のシステムに送るのであれば,明示的に書

いておかなければならない。 

5.3 

データ実体 

文字データ実体 

=SGML文字*,Ee 

−(5.1)

特定文字データ実体 =SGML文字*,Ee 

−(5.2)

非SGMLデータ実体 =文字*,Ee 

−(6)

文字データ実体,特定文字データ実体及び非SGMLデータ実体を,データ実体という。 

備考 データ実体の宣言には,そのデータの解釈方法を指定する記法引数が添えてある。 

6. 要素構造 

6.1 

前書き 

前書き 

=他の前書き*, 

 基本文書型宣言, 

 (文書型宣言|他の前書き)*, 

 (連結型宣言|他の前書き)* 

−(7)

他の前書き 

=注釈宣言|処理指令|s 

−(8)

基本文書型宣言 =文書型宣言 

−(9)

SGML文書実体又はSGML部分文書実体は,その前書きの中の,文書型宣言で指定した文書型定義及び

連結型宣言で指定した連結処理定義に従う。SGML文実体は,それを参照した実体が従っている前書きに

従う。SGML実体の構文解析は,活性文書型があれば,それらの活性文書型及び活性連結型に従い,活性

文書型がなければ,基本文書型及び活性連結型に従う。 

基本文書型宣言以外に文書型宣言を書くことができるのは,SGML宣言で “CONCUR YES” 又は 

“EXPLICIT YES” と指定してある場合に限る。活性文書型は,SGML宣言で “CONCUR YES” と指定して

ある場合に限って存在することができる。基本文書型は,その他の文書型の少なくとも一つが活性状態に

あるときに限って,活性状態になることができる。 

備考1. システムは,通常,その初期設定に際して活性文書型及び活性連結型の認知を行う(参考7

参照)。 

2. 基本文書型だけに従う構文解析は,活性文書型が一つもない場合に起きる。 

少なくとも一つの連結処理定義を指定した場合には,その実体に活性連結型が存在し得る。複数の活性

連結型が存在し得るかどうかは,次のとおり,その連結型の指定によって決まる。 

(1) 単純連結 単純連結の連結型は,暗黙連結及び明示連結の連結型に加えて,幾つでも活性状態になる

ことができる。 

(2) 暗黙連結 暗黙連結の連結型は,一つだけ活性状態になることができる。 

(3) 明示連結 明示連結の連結型は,それらが連結処理の連鎖をなすとき,幾つでも活性状態になること

ができる。ここで,“連結処理の連鎖をなす”とは,第1の処理の原始文書型が基本文書型であり,そ

の結果文書型が第2の処理の原始文書型であり,その結果文書型が第3の処理の原始文書型になると

いったことを指す。このとき,最終の結果文書型は暗黙連結の連結型であってもよい。 

26 

X 4151-1992  

6.1.1 

制限 前書きの中の基本文書型宣言を除く文書型宣言の出現回数は,SGML宣言のCONCUR引数

で指定した値以下でなければならない。 

6.2 

文書要素 

文書実現値集合 =基本文書要素,他の前書き 

−(10) 

基本文書要素 

=文書要素 

−(11) 

文書要素 

=要素 

−(12) 

6.3 

要素 

要素 =開始タグ?,内容,終了タグ? 

−(13) 

要素の終了タグは,その要素が宣言内容EMPTYをもつ場合又はその要素が明示的な内容参照を含む場

合,省略しなければならない。 

備考 この要件は,マークの最小化に依存しない。 

6.3.1 

最小化−タグの省略 SGML宣言で “OMITTAG YES” と指定してある場合,要素の開始タグ及び

終了タグは,そのタグの省略によってあいまいさが生じないときに限り6.3.1.1〜6.3.1.2に従って省略する

ことができる。 

備考 文書型定義によっては,技術的に正しい省略をマークの誤り(10.2.2参照)とすることもでき

る。 

6.3.1.1 

開始タグの省略 要素の開始タグは,その要素が文脈上必すであって,しかもそこに現れ得る他

の形式の要素がどれも文脈上任意選択である場合,省略することができる。ただし,次の(1)〜(2)のときを

除く。 

(1) その要素に必すの属性があるか,その要素が宣言内容をもつとき 

(2) その要素の実現値の内容が空であるとき 

開始タグの属性指定並びは,その開始タグを省略した場合,空として扱う。 

要素の開始タグは,その要素の内容が短縮参照列から始まり,しかもその短縮参照区切り子の対応付け

がその要素に結合した短縮参照対応表によって変更を受けている場合,あいまいとなる。 

6.3.1.2 

終了タグの省略 要素の終了タグは,次の(1)〜(3)の直前に位置する場合,省略することができる。 

(1) SGML文書実体又はSGML部分文書実体の終わり 

(2) 他の開いている要素の終了タグ 

(3) その要素の内容となり得ない要素又はSGML文字 

備考 排除要素の対象となっている要素は,そのモデル群の字句として現れ得ないので,ここでの“内

容と名り得ない要素”となる。 

6.3.2 

最小化−データタグ SGML宣言で “DATATAG YES” と指定してある場合,要素のデータは,そ

の要素に指定してあるデータタグ群に呼応する内容をもつ1個の要素となっているとき,その要素の終了

タグとなる。 

要素及びその部分要素のデータ内容は,その要素のデータタグ形式のデータタグひな(雛)形に合致す

る文字列があるかどうかを検査する。合致する文字列がある場合,その文字列と,それに続くデータ埋め

草ひな形に合致する文字列とを,その要素のデータタグという。データタグは,要素の終了タグともなり,

その親要素の文字データともなる。 

備考 共通識別子がその要素のデータタグ群に呼応する要素として現れた場合でも,その共通識別子

が,別の文脈から見ると1個の要素字句ともなっていることがある。このような文脈では,デ

ータタグとはみなさない。その共通識別子が,また,別のデータタグ群の異なったデータタグ

27 

X 4151-1992  

形式に合致している場合も同様とする。 

要素のデータ内容は,前から1字ずつ検査していく。それぞれの文字位置で,データタグ形式のデータ

タグひな形と最長一致で照合する。検査対象の開いている要素が複数ある場合,最も近くに開いた要素に

対する照合をまず行う。最長一致がとれなければ,その次に近くに開いた要素に対する照合を行う。この

手順で,候補の要素に対する照合を順次行う。 

備考 データタグは,したがって,データタグひな形に最長一致する最も近くの要素を終わらせる。 

データタグひな形と内容との照合は,その内容のマークの認知及び参照の置換を行った後,しかも記録

開始RS及び記録終了REの無視を行う前に行う。 

備考 データタグひな形は,したがって,RS又はREへの参照を含んでいて差し支えない。 

データタグは,終了タグを認知しない文脈では,認知しない。例えば,CDATAマーク区間では認知しな

い。 

データ埋め草ひな形との照合では,ひな形の文字列が1度も現れなくてもよいし,任意回現れてもよい。

その最後(1個しかないかもしれない。)のものが,ひな形全体の終わりとなる。 

データタグをもつ要素は,終了タグを省略したとはみなさない。 

6.3.3 

量的制限 開いている要素の個数は,量TAGLVLの値以下でなければならない。 

データタグの長さは,量DTAGLENの値以下でなければならない。 

6.4 

開始タグ 

開始タグ =(stago,文書型指定,共通識別子指定, 

 属性指定並び,s*,tagc)|最小化開始タグ 

−(14)

6.4.1 

最小化 

最小化開始タグ =空開始タグ|閉じない開始タグ 

 |net可能開始タグ 

−(15)

6.4.1.1 

空開始タグ 

空開始タグ =stago,tagc 

−(16)

要素の開始タグは,その要素が基本文書要素の一部である場合,空開始タグとしてもよい。このとき,

このタグの共通識別子指定は,次のいずれかとして扱う。 

(1) SGML宣言で “OMITTAG YES” と指定してある場合は,その基本文書型の中で最も近くに始まった

開いている要素の共通識別子 

(2) SGML宣言で “OMITTAG NO” と指定してある場合は,その基本文書型の中で最も近くに終わった要

素の共通識別子 

(3) (1)〜(2)に該当する要素がない場合は,その文書要素の共通識別子 

備考 この共通識別子の充当は,何かのタグが省略してあるかどうかの判定に先立って行う。 

空開始タグの属性指定並びは,空として扱う。 

6.4.1.2 

閉じない開始タグ 

閉じない開始タグ =stago,文書型指定,共通識別子指定, 

 属性指定並び,s* 

−(17)

開始タグは,区切り子機能stago又はetagoに割り当てた文字列の直前に位置する場合,閉じない開始タ

グとしてもよい。このとき,その文字列がその文脈で正当な区切り子となっているかいないかは影響しな

い。 

6.4.1.3 

net可能開始タグ 

28 

X 4151-1992  

net可能開始タグ =stago,共通識別子指定, 

 属性指定並び,s*,net 

−(18) 

要素の開始タグは,その要素が基本文書要素の一部である場合,net可能開始タグとしてもよい。 

6.4.2 量的制限 開始タグの長さは,その属性指定並びの中の参照を置換する前において,区切り子stago,

tagc及びnetを除いて,量TAGLENの値以下でなければならない。 

6.5 

終了タグ 

終了タグ =(etago,文書型指定,共通識別子指定,s*,tagc)| 

 最小化終了タグ 

−(19)

終了タグは,その文書型指定で指定した文書型の実現値の中の,その共通識別子指定で指定した共通識

別子をもつ要素のうち,最も近くに始まった開いている要素を終わらせる。 

6.5.1 

最小化 

最小化終了タグ =空終了タグ|閉じない終了タグ| 

 簡略終了タグ 

−(20)

終了タグは,SGML宣言で “SHORTTAG YES” と指定してある場合,最小化終了タグとしてもよい。 

6.5.1.1 

空終了タグ 

空終了タグ =etago,tagc 

−(21) 

終了タグが空終了タグである場合,その共通識別子は,基本文書要素の実現値の中の,最も近くに始ま

った開いている要素の共通識別子とする。このような要素が存在しなければ,その終了タグは誤りとする。 

6.5.1.2 

閉じない終了タグ 

閉じない終了タグ =etago,文書型指定,共通識別子指定,s* 

−(22)

終了タグは,区切り子機能stago又はetagoに割り当てた文字列の直前に位置する場合,閉じない終了タ

グとしてもよい。このとき,その文字列がその文脈で正当な区切り子となっているかいないかは影響しな

い。 

6.5.1.3 

簡略終了タグ 

簡略終了タグ =net 

−(23)

文字列netは,基本文書型の中の開いている要素のうちで,その開始タグがnet可能開始タグとなってい

るものがある場合,簡略終了タグとして認知する。このとき,その終了タグは,該当する要素のうちの最

も近くに始まった要素を終わらせる。 

6.6 

内容 

内容 

=混合内容|要素内容| 

 置換可能文字データ|文字データ 

−(24)

混合内容  (データ文字|要素|他の内容)* 

−(25)

要素内容  (要素|他の内容|s)* 

−(26)

他の内容  注釈宣言|短縮参照使用宣言| 

 連結集合使用宣言|処理指令|shortref| 

 文字参照|一般実体参照|マーク区間宣言|Ee 

−(27)

要素の内容は,その要素の宣言内容又は内容モデルに従った4種類のどれかになっているか,空である

かでなければならない。ただし,その要素が明示的な内容参照をもつ場合は,空としなければならない。 

要素の内容が,その要素の宣言内容に従って置換可能文字データ又は文字データとなっている場合,そ

の内容は,その文脈依存区切り子etago(正当な終了タグとなっていなくてもよい。)又は正当なnetによ

29 

X 4151-1992  

ってだけ終わる。ただし,その内容が混合内容であるとしたら誤りとなってしまう終了は,誤りとする。 

備考 内容の中の文字は,次の(1)〜(2)の場合にデータ内容となる。 

(1) 宣言による場合 

要素の内容が,要素宣言の宣言内容引数に従って置換可能文字データ又は文字データとな

っている。 

(2) 構文解析による場合 

要素の内容が混合内容となっていて,マークとは認知されなかったために,データと構文

解析された。 

6.6.1 

記録の境界 内容の中に現れるRSは,マークと解釈できない場合,無視する。 

内容の中で,すべての参照の置換及びマークの認知の後に残るREは,次の(1)〜(3)のとおりにそれがマ

ークのためだけに存在するのでなければ,データとして扱う。 

(1) 要素の最初のREは,その直前にRS,データ又は真の部分要素がなければ,無視する。 

(2) 要素の最後のREは,その直後にデータ又は真の部分要素がなければ,無視する。 

(3) RS又はREの直後に位置しないREは,その間にデータ又は真の部分要素がなければ,無視する。 

備考 REをデータとするかどうかの判定は,マークの認知の過程で行う。マークの認知は,タグの省

略の認知を含めて,(1)〜(3)に従ってREか無視できるかどうかの判定に先立って行う。この手

順では, 

 (quote|#PCDATA) * 

のように,要素の内容のどこにでもデータが現れ得る通常の場合,直感に合った結果が得られ

る。しかしながら, 

 (x, #PCDATA)  

のように,内容モデルがデータの現れ得る位置に制限を課す場合には,(1)又は(2)の状況がマー

クの認知の最中に誤りとなることがある。このような内容モデルは,通常必要としないので,

推奨しない(10.2.4参照)。 

上の規則を要素に適用するに当たっては,その部分要素の内容を無視する。すなわち,真の部分要素で

あれ,添加部分要素であれ,それが始まったのと同じ記録内で終わる原子 (atom) として扱う。 

例 record 1 <outer><sub> 

record 2 </sub> 

</outer>record 3 

この要素outerの最初のREは,record2の終わりに位置する。このREは,subがouterの真の部

分要素であればデータとなるが,subが添加要素であれば,outerの中に直前に位置するデータも

真の部分要素もないので,無視する。 

いずれの場合にしても,部分要素subの最初のREは,record 1の終わりに位置する。このRE

は,その直前にその部分要素のデータも真の部分要素もないので,無視する。 

REは,それに続く最初のデータ又は真の部分要素の直前に位置するものとして扱う(その間にマーク

宣言,処理指令又は添加部分要素があるときは,その直後に位置するものとして扱う。)。 

備考1. 特定文字データ実体,非SGML実体又はSGML部分文書実体はデータとして扱うが,処理

指令実体はデータとして扱わない。 

2. SGMLは記録の境界の扱い方を定義しているが,SGML文書をいわゆる記録を単位として構

成しなければならないわけではない。 

30 

X 4151-1992  

3. すべての実体は,SGML文書実体及び外部実体を含めて,実際にRSで始まっていないので

あればRSで始まるとはみなさないし,REで終わっていないのであればREで終わるとはみ

なさない。 

6.7 

文書型指定 

文書型指定 =名前群? 

−(28) 

文書型指定を含むマークは,次の(1)〜(2)の場合にだけ処理する。 

(1) その文書型指定の名前群の中に,活性文書型の名前がある場合 

(2) 名前群がない場合(その文書型指定が空の場合) 

備考 空の文書型指定をもつ(名前群がない)マークは,どんな文書の実現値にも使えることになる。 

文書型指定の名前群は,SGML宣言で “CONCUR YES” と指定してある場合にだけ,指定することがで

きる。 

6.8 

共通識別子指定 

共通識別子指定 =共通識別子|付番核 

−(29)

共通識別子 

=名前 

−(30)

共通識別子は,その文書型定義の中で要素型として指定してある名前であって,次のいずれかの名前で

なければならない。 

(1) その要素の要素型宣言の要素モデルの中に指定してある名前 

(2) 適用可能な添加要素例外に指定してある名前 

(3) その文書要素の開始タグ又は終了タグに現れた文書型名 

6.8.1 

付番機構 SGML宣言で “RANK YES” と指定してある場合には,6.8.1.1〜6.8.1.2を適用する。 

6.8.1.1 

完全な共通識別子 付番要素に対してその開始タグに完全な共通識別子を指定した場合,その共

通識別子の付番部分は,その付番要素の付番核の現番号となり,更に,その付番核が成分となっている付

番群のすべての付番核の現番号ともなる。 

6.8.1.2 

付番核 共通識別子指定を付番核としてもよいのは,その付番核が,適用可能な要素宣言の付番

要素又は付番群の成分として指定してある場合に限る。 

付番核を指定することは,その後ろにその付番核の現番号をつないでできる共通識別子を指定したのと

同値とする。 

付番核の指定は,その付番核に対して現番号を定める要素がその前に現れていなければ,誤りとする。 

6.9 

属性指定並び 

属性指定並び =属性指定* 

−(31)

属性指定 

=s*,(名前,s*,vi,s*)?,属性値指定 

−(32)

属性指定並びの正当性は,その要素に結合した属性定義並びに従って決まる。属性指定並びは,この結

合した属性定義並びが存在しない場合,空でなければならない。 

属性定義が存在する属性は,それが暗黙の属性でない限り,指定しなければならない。ただし,マーク

の最小化を使った場合(6.9.1.1参照)を除く。 

属性指定は,それぞれの属性定義に対してたかだか1個しか指定できない。 

属性指定は,区切り子の直後に位置する場合にだけ,その先頭のsを省略することができる。 

6.9.1 

最小化 

6.9.1.1 属性指定の省略 SGML宣言で “SHORTTAG YES” 又は “OMITTAG YES” と指定してある場合,

次の(1)〜(2)を適用する。 

31 

X 4151-1992  

(1) 属性指定は,必すの属性及びその属性が現れる属性定義並びをもつ要素の最初の出現での現属性に対

してだけ指定すればよい。指定しなかった属性は,その宣言された省略時値に等しい属性値を指定し

たものとして扱う。 

(2) 現属性に対して属性値指定を与えると,その指定した属性値が省略時値となる。この新しい省略時値

は,その属性を定義している属性定義並びに結合したすべての要素で有効とする。 

6.9.1.2 

属性名の省略 SGML宣言で “SHORTTAG YES” と指定してある場合,属性指定の名前及びvi

は,属性値指定が,その属性に対する宣言値の群の成分の,区切り子でくくってない名前字句であるなら

ば,省略することができる。 

備考 名前字句は,属性定義並びの中の一つの群にだけ現れることができる(10.3.3参照)。 

6.9.2 

量的制限 属性指定並びの正規の長さは,その中の属性名及び属性値の正規の長さの総和とする。

属性指定並びの正規の長さは,量ATTSPLENの値以下でなければならない。 

属性名の正規の長さは,その名前の文字の個数に量NORMSEPの値を加えた値とする。 

6.9.3 

属性値指定 

属性値指定 =属性値|属性値表記 

−(33)

属性値表記 =(lit,置換可能文字データ,lit)| 

 (lita,置換可能文字データ,lita) 

−(34)

属性値表記は,その中の参照を置換し,Ee及びRSを無視し,RE又はSEPCHARをSPACEに置換した

上で,属性値として解釈する。 

備考 属性値表記の解釈に当たっては,その属性の実際の宣言値とは無関係に,その属性が文字デー

タであるものとして行う。 

文字データ以外の属性値は,その文字列の中に現れる2個以上連続するSPACEを1個のSPACEに置換

し,先頭及び末尾に現れるSPACEをすべて無視する。 

備考 この箇条は,元の表記が何であるかによらない。例えば,CDATA実体であるかSDATA実体で

あるかによらない。 

6.9.3.1 

最小化 属性値指定は,名前文字だけからなり,しかも次の(1)又は(2)の条件を満たす場合,属性

値としてもよい(属性値表記としなくてもよい。)。 

(1) その属性値が属性定義並びに現れている。 

(2) SGML宣言で “SHORTTAG YES” と指定してある。 

6.9.4 

属性値 

属性値 

=文字データ|一般実体名|一般実体名並び| 

 識別子値|識別子参照値|識別子参照並び| 

 名前|名前並び|名前字句|名前字句並び| 

 記法名|数|数並び|数字句|数字句並び 

−(35)

一般実体名並び =名前並び 

−(35.1)

識別子値 

=名前 

−(36)

識別子参照並び =名前並び 

−(37)

識別子参照値 

=名前 

−(38)

名前並び 

=名前,(SPACE,名前)* 

−(39)

名前字句並び 

=名前字句,(SPACE,名前字句)* 

−(40)

記法名 

=名前 

−(41)

32 

X 4151-1992  

数並び 

=数,(SPACE,数)* 

−(42)

数字句並び 

=数字句,(SPACE,数字句)* 

−(43)

属性値は,その属性定義の宣言値に従って15種類のどれかとしなければならない。 

6.9.4.1 

構文要件 属性値は,その宣言値に従わなければならない。 

属性値は,その宣言値が群を含む場合,その群の中の字句でなければならない。 

空の属性値表記を指定してもよいのは,属性値の種類が文字データである場合に限る。 

6.9.4.2 

固定属性 固定属性に対して指定する属性値は,その省略時値でなければならない。 

6.9.4.3 

一般実体名 属性値としての一般実体名及び一般実体名並びの中の名前は,データ実体又は

SGML部分文書実体の名前でなければならない。これらの名前は,名前群の指定のない一般実体参照とし

て使うときと同様に宣言していなければならない。 

6.9.4.4 

記法名 記法属性に対する属性値は,その要素の文書型宣言で宣言していなければならない。 

明示的な内容参照がある場合,記法属性に属性値を指定することは誤りとする。 

6.9.4.5 

量的制限 属性値の正規の長さは,その値が直接に指定してあるか属性値表記から解釈したもの

であるかを問わず,次の(1)〜(2)の値に量NORMSEPの値を加えた値とする。 

(1) 一般実体名並び,識別子参照並び,名前並び,名前字句並び,数並び及び数字句並びに対しては,そ

の並びに1個の字句しかない場合も含めて,その並びの中のそれぞれの字句について,その文字の個

数と量NORMSEPの値とを加えた総和。 

(2) その他の属性値に対しては,その値の中の文字の総数に,CDATA実体及びSDATA実体の出現回数だ

け量NORM-SEPの値を加えた総和。 

属性値の正規の長さは,量LITLENの値以下でなければならない。 

1個の開始タグの中の,属性の値としての識別子参照値及び識別子参照並びの名前の個数は,省略時値

を含めて,量GRPCNTの値以下でなければならない。 

1個の属性指定並びの中の,属性の値としての一般実体名及び一般実体名並びの名前の個数は,省略時

値を含めて,量GRPCNTの値以下でなければならない。 

7. 処理指令 

処理指令 

=pio,システムデータ,pic 

−(44)

システムデータ =文字データ 

−(45)

処理指令は,文書の移植性を減少させるので,推奨しない。どうしても使わなければならない場合は,

処理指令を実体として定義して,そのシステムデータを前書きの中に閉じ込めることで,その文書を受け

手が容易に検出し変更することができるようにしておくことが望ましい。 

データを返す処理指令は,SDATA実体として定義した上で実体参照を通して使わなければならない。デ

ータを返さない処理指令は,PI実体として定義することが望ましい。 

システムデータの中では,それを終わらせる区切り子を除いてマークの認知を行わない。 

備考 システムデータとして使う文字及びその文字の解釈は,システムが定める。非SGML文字又は

区切り子picをシステムデータに含める必要がある場合には,文書の中にそれらの文字が直接

に現れないで済むような代替の方法を用意することが望ましい。 

7.1 

量的制限 処理指令の長さは,その区切り子を除いて,量PILENの値以下でなければならない。 

8. 共通の構成要素 

33 

X 4151-1992  

8.1 

置換可能文字データ 

置換可能文字データ =(データ文字|文字参照| 

=一般実体参照|Ee)* 

−(46)

その実体を置換可能文字データの中で参照している間,その実体中で置換可能文字データを終わらせる

はずのマークの認知を行わない。 

Eeが置換可能文字データの中に現れてもよいのは,それが終わらせる実体への参照が同じ置換可能文字

データの中にある場合に限る。 

置換可能文字データの中では,非SGMLデータ実体,P1実体又はSGML部分文書実体への参照を行っ

てはならない。 

CDATA実体又はSDATA実体への参照は,行っても差し支えない。 

備考 置換可能文字データと宣言してある要素又はマーク区間は,同じ実体の中で開始し終了しなけ

ればならない。 

8.2 

文字データ 

文字データ =データ文字* 

−(47)

データ文字 =SGML文字 

−(48)

文字 

=SGML文字|NONSGML 

−(49)

備考 非SGML文字も,文字参照を使えば,SGML実体の文字データとして書くことができる。 

8.2.1 

SGML文字 

SGML文字 

=マーク文字|DATACHAR 

−(50)

マーク文字 

=名前文字|機能文字|DELMCHAR 

−(51)

名前文字 

=名前開始文字| 

Digit|LCNMCHAR|UCNMCHAR 

−(52)

名前開始文字 =LC Letter|UC Letter| 

LCNMSTART|UCNMSTART 

−(53)

8.2.2 

機能文字 

機能文字 =RE|RS|SPACE|SEPCHAR| 

MSOCHAR|MSICHAR|MSSCHAR|FUNCHAR 

−(54)

8.3 

名前 

名前 

=名前開始文字,名前文字* 

−(55)

数 

=Digit+ 

−(56)

名前字句 =名前文字+ 

−(57)

数字句 

=Digit,名前文字* 

−(58)

名前,名前字句,数又は数字句の文字は,SGML宣言のNAMECASE引数の指定に従って,それぞれ対

応する大文字に代替する。 

備考 数又は数字句は,数値ではなく,名前又は名前字句と同じく文字列にすぎない。したがって,

例えば “01” と “1” とは同値でない。 

8.3.1 

量的制限 名前,名前字句,数又は数字句の文字数は,量NAMELEN以下でなければならない。 

8.4 

実体参照 実体参照の置換文は,その参照の文脈での構文及び意味についての要件に従っていなけ

ればならない。このとき,SGML部分文書実体又は非SGMLデータ実体への参照は,データ文字への参照

として扱う。 

34 

X 4151-1992  

備考 これらの実体は,属性の一般実体名参照としても現れ得る。 

宣言のない実体への参照は,適用できる省略時値の実体(8.4.4参照)がない限り誤りとする。 

既に参照中の実体で,まだ終了していない実体への参照は,誤りとする(実体は,再帰的に参照しては

ならない。)。 

8.4.1 

量的制限 開いている実体(SGML文書実体は,参照中でない限り除外する。)の個数は,量ENTLVL

の値以下でなければならない。 

8.4.2 

SGML部分実体の量的制限 開いているSGML部分実体の個数は,SGML宣言のSUBDOC引数で

指定した量以下でなければならない。 

8.4.3 

混乱を招く実体参照 マークに混乱を招く実体参照は,推奨しない。 

備考 該当する乱用は,ほとんどSGMLの構文が禁止している。次の(1)〜(4)の原則を守ることが望

ましい(原則のうち“ならない”と書いてある事項は,構文規則によるものを表す。)。 

(1) タグ,処理指令,宣言,表記又は区切り子でくくったその他の文を開始する区切り子は,そ

れを終了する区切り子と同じ実体の中になければならない。 

実体は,区切り子でくくった文の中で始まったならばその同じ文の中で終わらなければな

らないし,区切り子でくくった文の中で始まっていないのにその文の中で終わることがあっ

てはならない。 

(2) 文字データ若しくは置換可能文字データと宣言してある要素若しくはマーク区間の内容又は

無視するマーク区間の内容は,同じ実体の中で始まって終わらなければならない(他の要素

の内容又は他のマーク区間の内容も,そうすることが望ましい。)。 

(3) (2)に該当しない要素又はマーク区間に対しては,その開始タグ及び終了タグ(又はそのマー

ク区間開始及びマーク区間終了)が,ともに同じ実体の中にあるか,同じ実体の中から参照

している実体の置換文となっているかであることが望ましい。 

(4) マーク宣言の中での参照は,0個以上の連続する完全な引数(その間のps分離子を含む。)

で置換するか,群の中にあって1個以上の連続する完全な字句(その間のts分離子及び接続

子を含む。)で置換するかしなければならない。 

8.4.4 

名前指定実体参照 

一般実体参照 =ero,名前群?,名前,参照終了 

−(59)

引数実体参照 =pero,名前群?,名前,参照終了 

−(60)

一般実体参照又は引数実体参照は,SGML宣言で “CONCUR YES”, “SIMPLE YES”, “IMPLICIT YES” 

又は “EXPLICIT YES” と宣言してある場合に限って,その中に名前群を指定することができる。名前群を

もつ一般実体参照又は引数実体参照は,開始タグ又は前書きの中に現れてはならない。 

備考 引数実体参照の名前群は,文書の実現値の中のマーク区間開始の中ならば指定することができ

る。 

一般実体参照又は引数実体参照は,名前群が指定してあって,その中の名前に活性文書型又は活性連結

型の名前が一つもなければ無視する。 

8.4.4.1 

適用可能な実体宣言 実体の名前が使えるのは,その名前が,適用可能なすべての文書型定義の

実体宣言で宣言してある場合に限る。このとき,一般実体の名前については,それを宣言していない文書

型定義があれば,そこでは省略時値の実体として宣言してあるものとみなす。 

実体の名前に適用可能な文書型定義は,その名前が現れた文脈に応じて次の(1)〜(5)のとおりとする。 

(1) 開始タグでは,すべての文書型定義が適用可能とする。 

35 

X 4151-1992  

備考 すなわち,基本文書型定義又はその開始タグの文書型指定で指定してあるすべての活性文書型

の文書型定義が適用可能となる。 

(2) 文書の実現値のその他の場所では,その一般実体参照又は引数実体参照の名前群に指定してある,活

性文書型の文書型定義又は活性連結型の原始文書型定義が適用可能とする。ただし,これらの文書型

定義で宣言していない名前又は名前群を指定していないときの名前に対しては,基本文書型定義が適

用可能とする。 

備考 基本文書型が定義している実体は,どんな文書型の実現値の中であっても,その文書型が同じ

名前の実体を定義していず,しかも一般実体としての省略時の実体を定義していない限り,参

照することができる。 

(3) 文書型定義の中では,その文書型定義が適用可能とする。 

(4) 結果属性指定の中では,その結果文書型定義が適用可能とする。 

(5) 連結処理定義の中のその他の場所では,その原始文書型定義が適用可能とする。 

備考 連結処理定義の構文解析では,その中の実体宣言がその原始文書型定義の中に現れているもの

として扱う。 

備考1. 

上の規定は,一般実体参照又は引数実体参照に限らず,属性値の一般実体名又は一般

実体名並びに現れた実体名にも適用する。 

2. 省略時の実体を宣言していない文書型の実現値の中では,宣言のない一般実体の名前を

使うことで,基本文書型が宣言している省略時の実体を参照することができる。 

3. 実体宣言でデータ内容記法を指定するには,その記法を実体として同じ文書型定義の中

で宣言しておかなければならない。 

8.4.5 

参照終了 

参照終了 = (refc|RE) ? 

−(61)

備考 REで参照が終わる場合,そのREは,データとしては無視する。 

refc又はREは,その参照の中に現れ得る文字が直後にくるのでなければ省略することができるし,参

照終了の省略と解釈できる文字が直後にくるのでなければ省略することができる。 

8.4.6 

短縮参照 短縮参照は,現対応表によって一般実体に対応付けてある場合,マークとして扱って,

その一般実体に置換する。対応付けていない場合,それが区切り子として認知できれば分離子sとして扱

い,そうでなければデータとして扱う。 

8.4.6.1 

同値な参照列 短縮参照は,その参照する実体の名前を含む同値な参照列で置換することによっ

て,文書から取り除くことができる。このとき,その名前は,現対応表によってその短縮参照に対応付け

ている実体の名前とする。 

同値な参照列は,その短縮参照にRS又はREが現れているかどうかによって,次のとおりとする。 

短縮参照 

同値な参照列 

RSなし,REなし 

ero,名前,refc 

RSあり,REなし 

RS,ero,名前,refc 

REなし,REあり 

ero,名前,RE 

RSあり,REあり 

RS,ero,名前,RE 

備考1. 同値な参照列は,短縮参照を許す具象構文から短縮参照を許さない具象構文へと,文書を書

き換えるときに使う。 

2. 同値な参照列では,連続する記録がくっついてしまうのを防ぐため,又はシステムでの長さ

36 

X 4151-1992  

についての制限をなるべく超えないようにするため,RS及びREのそれぞれ1個を保存する。

これらは,データとして解釈されることがない。RSはデータとならないし,このREは参照

終了のためにあるからである。 

8.5 

文字参照 

文字参照 =cro, 

(機能名|文字番号),参照終了 

−(62)

機能名 

= “RE” | “RS” | “SPACE” |名前 

−(63)

文字番号 =数 

−(64)

機能名での名前は,具象構文の追加機能に指定してある名前でなければならない。 

文字参照は,その文字が他の手段では簡便に書けない場合に限って使うことが望ましい。 

文字参照を置換した文字は,その文字参照と同じ実体の中にあるものとして扱う。 

置換した文字は,直接そこに書いてあったものとして扱う。ただし,数値指定文字参照(文字番号によ

る文字参照)を置換した文字は,常に,その置換を行った文脈でのデータとして扱う。 

備考1. システムは,置換文字の内部表現を独自に定めることができる。通常の機能文字(直接に書

かれたもの又は名前指定文字参照を置換したもの)と数値指定文字参照を置換したものとの

区別に注意すること。 

2. 文書を他の文書文字集合に変換する場合,数値指定文字参照の中の文字番号は,変換先の文

字集合での文字番号に書き換えなければならない。 

8.6 

区切り子の認知 区切り子は,この規格で特に断らない限り,区切り子機能に割り当ててある文字

列に対して,その区切り子機能が意味をもつ特定の認知様相にあり,しかも文脈上の制約を満足している

と判断した場合に,認知する。区切り子機能の,機能,認知様相及び認知に関する文脈上の制約は,表3

のとおりとする。一般区切り子については,規格参照区切り子集合として割り当てる文字列及びそれらの

文字の規格参照具象構文の構文参照文字集合での文字番号も,表3に示す。短縮参照区切り子については,

規格参照区切り子集合として割り当てる文字列を,表4に示す。 

備考 区切り子又は文脈依存区切り子は,その最初の文字に限って,名前指定文字参照(名前による

文字参照)を使って与えることができる。 

区切り子又は文脈依存区切り子(8.6.2参照)は,そのすべての文字が同じ実体の中になければならない。 

8.6.1 

認知様相 認知様相は,次のとおりとする。 

(1) 

CON 

要素又はその中のマーク区間宣言のマーク宣言の中で認知する。 

備考 たいていの区切り子は,要素が文字データ又は置換可能文字データである場合,認知しない。 

(2) 

CXT 

認知様相 “CON” 又は “DSM” での文脈依存区切り子に対する文脈列の一部として認知す

る。 

(3) 

DS 

宣言部分集合の中で認知する。 

(4) 

DSM 

宣言部分集合又はその中のマーク区間宣言のマーク宣言の中で認知する。 

(5) 

GRP 

群の中で認知する。 

(6) 

LIT 

表記の中で認知する。 

(7) 

MD 

マーク宣言の中で認知する。 

(8) 

PI 

処理指令の中で認知する。 

(9) 

REF 

一般実体参照,引数実体参照又は文字参照の中で認知する。 

(10) 

TAG 

開始タグ又は終了タグの中で認知する。 

37 

X 4151-1992  

備考 認知様相は,入れ子になる。例えば,マーク宣言が始まると,認知様相は “MD” になる。その

宣言の中でgrpoがくると,認知様相は “GRP” となり,(例えば)mdcを認知しなくなる。続

いてgrpcがくると,認知様相 “GRP” は終わり,認知様相は “MD” に戻る。 

8.6.2 

文脈上の制約 文脈上の制約は,次のとおりとする。 

(1) 区切り子に割り当ててある文字列の直後に次の(a)〜(e)に示す文脈列が続く場合に,文脈依存区切り子

として認知する。 

(a) CREF 

名前開始文字又はDigit 

(b) DCL 

名前開始文字,com,dso又はmdc 

(c) GI 

名前開始文字,SGML宣言で “SHORTTAG YES” と指定してある場合のtagc又はSGML宣

言で “CONCUR YES” と指定してある場合のgrpo 

(d) MSE 

mdc 

(e) NMS 

名前開始文字又はSGML宣言で “CONCUR YES”, “SIMPLE YES”, “IMPLICIT YES” 又は 

“EXPLICIT YES” と指定してある場合のgrpo 

(2) ELEM 

認知様相 “CON” では,その開始タグがnet可能開始タグとなっている要素の中で認知する。

認知様相 “TAG” では,制約がない。 

(3) EX 

認知様相 “MD” では,grpoが直後に続く文脈依存区切り子の最初でだけ認知する。認知様

相 “GRP” では,制約がない。 

(4) ENT 

対応するdsoがあったのと同じ実体の中でだけ認知する。 

8.6.3 

認知の順序 区切り子(その直後の文脈列も含む。)は,出現の順に重なりなしで認知する。 

備考 例えば, “abc” 及び “bcd” が区切り子であり,文書に “abcde” が現れたとすると, “abc” を

認知して,続けて “d” からの構文解析を行う。したがって, “bcd” を認知することはない。 

この規則は,認知できる区切り子の正否に依存しない。認知する区切り子が,意味の上で不当なもので

あることも,対応付けのない短縮参照であることも起こり得る。 

備考 例えば,規格参照区切り子集合において,小記号 “<” に続く斜線 “/” は,その直後に続く共

通識別子が宣言していないものであっても開いている要素の共通識別子でなくても,netとし

てではなく,文脈依存区切り子etagoの一部分として認知する。 

8.6.4 

同じ文字で始まる区切り子 複数の区切り子が同じ文字で始まる場合は,文書のその位置で最長の

区切り子又は文脈依存区切り子を認知する。 

備考 例えば, “ab” 及び “abc” が区切り子であり,文書に “abcde” が現れたとすると, “abc” を

認知して,続けて “d” からの構文解析を行う。したがって, “ab” を認知することはない。 

この規則は,認知できる最長の区切り子が正当であるか不当であるかに依存しない。認知する区切り子

が,意味の上で不当なものであることも,対応付けのない短縮参照であることも起こり得る。 

備考 例えば, “ab” 及び “abc” が短縮参照であり,文書に “abcde” が現れたとすると,現対応表で 

“ab” に対応付けがあり “abc” に対応付けがないとしても, “abc” を認知して, “ab” を認知

することはない。 

8.6.5 

空白列を含む短縮参照 短縮参照区切り子の定義の中にB列があれば,内容の中では,それに対

応して空白列を認知する。その空白列の最小の長さは,そのB列の長さとする。 

備考  “B” は1個以上の空白を意味し, “BB” は2個以上の空白を意味する。3個以上も同様となる。 

文字列が2通り以上の区切り子として認知できるときは,その中で最も長い文字列に対応する区切り子

として認知する。 

38 

X 4151-1992  

例  “&#TAB;” は “B” としてよりもタブ文字として認知するし, “BBB” は “BB” としてよりも3

個の空白として認知する。 

8.6.5.1 

量的制限 短縮参照として認知する空白列の長さは,量BSEQLENを超えることができない。空

白列の実際の長さがこれを超えるときは,その最初のBSEQLEN個だけを短縮参照区切り子に含め,残り

の空白の位置から構文解析を再開する。 

8.6.6 

名前文字 名前文字が区切り子機能に割り当ててある場合,その名前文字は,既に名前字句が始ま

っているのでなければ(名前文字とは見ずに)その区切り子として認知する。既に名前字句が始まってい

るのであれば,名前文字として扱う。 

SGML宣言のNAMECASE引数で “GENERAL YES” と指定してある場合,区切り子機能に割り当てて

ある名前文字は,区切り子の認知に関する限り,その大文字に代替して扱う。 

8.7 

マークの抑制 MSOCHARは,MSICHARが現れるか実体の最後に達するかするまで,マークの認

知を抑制する。MSSCHARは,MSSCHARが現れた同じ実体の(もしあれば)直後の文字のマークの認知

を抑制する。 

備考 文字データ又はその他の区切り子でくくった文の中のMSOCHARは,それらの終了の区切り子

の認知を抑制することがある。MSSCHARも,その区切り子の前にあれば,その区切り子の認

知を抑制することがある。 

MSOCHARによってマークの認知が抑制されていない場合に現れるMSICHARは,誤りとはせず,マー

クの認知に何らの影響を与えない。 

MSOCHARによってマークの認知が抑制されている場合に現れるMSOCHAR又はMSSCHARは,誤り

とはせず,マークの認知に影響を与えない。 

MSSCHARに続くMSOCHARは,マークの認知に何らの影響を与えない。 

8.8 

容量 文書の大きさ及び複雑さは,その文書の中の個々の対象について,その容量点の合計が文書

容量集合で許容する容量値以下でなければならない。 

全容量の名前,個々の容量の名前及びそれらに規格参照容量集合で割り当てる容量値は,表5のとおり

とする。この集合の公開識別子は,次のとおりとする。 

ISO 8879-1986//CAPACITY Reference//EN 

それぞれの種類の対象について合計した容量点は,その種類に対する個々の容量値以下でなければなら

ない。すべての対象について合計した容量点は,容量値TOTALCAP以下でなければならない。 

すべての容量値は,同時に存在し得る実現値又は同時に処理し得る連結処理の連鎖の集合で必要となる

最大の容量を満足するものでなければならない。 

容量点は,SGML文書実体及びそこから参照するSGML部分文書実体についての小計に加えて,これら

から参照する部分文書実体及びSGML文実体の中で,同時に開いているものの集合のうち最大の容量を必

要とする集合についての小計を合計する。 

備考 容量点の計算の例として,短縮参照が32個あり,NAMELENが8である具象構文を考える。

文書に次のものがあるとき,全容量は30 818以上必要となる。平均70文字の100個の実体 (800

+7 000)。 

200個の要素型があり (1 600), 

その2 000個の字句からなる内容モデルには (16 000), 

25個の例外群及び50個の名前がある (200+400)。 

平均20文字の省略時値をもつ50個の属性があり (400+1 000), 

background image

39 

X 4151-1992  

100個の属性としての名前字句がある (800)。 

平均50文字の識別子をもつ5個のデータ内容記法 (250+40)。 

属性としての50個の共通識別子及び50個の共通識別子参照 (400+400)。 

5個の短縮参照対応表 [5* (8+ (8*32)) =1 320]。 

5個ずつの原始要素名をもつ4個の連結集合を宣言する1個の暗黙連結 (168+40)。 

表5 規格参照容量集合 

名前 

容量値 

容量点 

容量点を計算する対象 

TOTALCAP 

35 000 

(総和) 

容量点の総和 

ENTCAP 

35 000 

NAMELEN 

定義した実体 

ENCHCAP 

35 000 

実体文の文字 

ELEMCAP 

35 000 

NAMELEN 

定義した要素 

GRPCAP 

35 000 

NAMELEN 

内容モデルの中の内容字句 

EXGRPCAP 

35 000 

NAMELEN 

排除要素・添加要素のある群 

EXNMCAP 

35 000 

NAMELEN 

排除要素・添加要素のある群の中の名前 

ATTCAP 

35 000 

NAMELEN 

定義した属性 

ATTCHCAP 

35 000 

属性の省略時値の文字(見出し語は含めない。) 

AVGRPCAP 

35 000 

NAMELEN 

属性値としての名前群・名前字句群の中の字句 

NOTCAP 

35 000 

NAMELEN 

定義したデータ内容記法 

NOTCHCAP 

35 000 

記法識別子の文字 

IDCAP 

35 000 

NAMELEN 

定義した識別子属性 

IDREFCAP 

35 000 

NAMELEN 

定義した識別子参照属性(省略時値も含む。) 

MAPCAP 

35 000 

NAMELEN 

宣言した短縮参照対応表 

LKSETCAP 

35 000 

NAMELEN 

定義した連結型・連結集合 

LKNMCAP 

35 000 

NAMELEN 

連結型宣言・連結集合宣言の中の文書型・要素 

9. マーク宣言−一般 

備考 宣言名及び見出し語は,生成規則の中では参照予約名を使って表すが,変形具象構文ではSGML

宣言の予約名利用引数によって再定義することができる。 

9.1 

宣言の部品 

9.1.1 

引数分離子ps 

ps =s|Ee|引数実体参照|注釈 

−(65)

引数実体参照は,引数が現れ得るどんな位置にも書くことができる。その参照する実体は,その参照が

現れたpsの直後に続ける0個以上の完全な引数の列からなっていなければならない。その列の前後又は間

にpsがあってもよい。更に,その実体は,同じ宣言の中で終わっていなければならない。 

引数分離子としてのEeは,それが終わらせる実体への参照が同じ宣言の中のpsとして現れている場合

に限って使うことができる。 

psは,文脈上必すであっても,区切り子又は他のpsに隣接していて省略してもあいまいさを生じない

のであれば,省略してもよい。 

psは,それを省略するとあいまいさを生じる場合,sで始めなければならない。 

9.1.2 

引数表記 

引数表記 

=(lit,置換可能引数データ,lit)| 

 (lita,置換可能引数データ,lita) 

−(66)

置換可能引数データ =(データ文字|文字参照|引数実体参照|Ee)* 

−(67)

40 

X 4151-1992  

引数表記は,宣言の処理に際して,その中の参照を置換した上で引数(又は字句)として解釈する。 

引数表記の中では,引数実体参照及び文字参照を除いて,その終わりのlit又はlita以外のマークを認知

しない。置換した文の中でも同様とする。 

備考 引数表記が実体宣言の実体文引数として現れた場合,その実体を参照したときには,その中の

マーク文字を認知することがある。 

置換可能引数データの中にEeが現れてもよいのは,そのEeが終わらせる実体への参照が,同じ置換可

能引数データの中にある場合に限る。 

9.1.2.1 

量的宣言 解釈を終えた引数表記の長さは,量LITLENの値以下でなければならない(その現れ

た文脈に他の制限がある場合を除く。)。 

9.1.3 

群 

名前字句群 =grpo,ts*,名前字句, 

 (ts*,接続子,ts*,名前字句)*,ts*,grpc 

−(68)

名前群 

=grpo,ts・,名前, 

 (ts*,接続子,ts*,名前)*,ts*,grpc 

−(69)

ts 

=s|Ee|引数実体参照 

−(70)

名前字句群又は名前群の中の接続子は,すべて同じであることが望ましい。 

備考 どの接続子を使うかは任意であるから,実体の中で定義した同じ群を,モデル群(それぞれの

接続子に意味がある。)として参照することも,名前群(それぞれの接続子に意味はない。)と

して参照することもできる。 

同じ字句が,一つの名前字句群又は名前群に2度以上現れてはならない。 

引数実体参照は,群の中で字句が現れ得るどんな位置にも使うことができる。その参照する実体は,そ

の参照が現れたtsに続ける同じ群の(同じ入れ子の水準での)0個以上の完全な字句の列からなっていな

ければならない。この列の前後又は間にはpsがあってもよいし,その間に接続子があってもよい。その参

照する実体は,同じ群の中で終わっていなければならない。 

tsとしてEeが現れてもよいのは,次の条件を満たす場合に限る。 

(1) そのtsが字句の直後に現れる(接続子,grpo又はdtgoの直後ではない。)。 

(2) そのEeが終わらせる実体への参照が,同じ群の中にある(同じ入れ子の水準にある。)。 

9.1.3.1 

量的制限 一つの群の中の字句の個数は,量GRPCNTの値以下でなければならない。 

9.1.4 

宣言分離子ds 

ds =s|Ee|引数実体参照| 

注釈宣言|処理指令|マーク区間宣言 

−(71)

dsとしての引数実体参照は,0個以上の完全なマーク宣言とdsとからなる実体を参照しなければならな

い。 

dsとしてのEeは,それが終わらせる実体への参照が同じ引数の中のdsとして現れている場合に限って

使うことができる。 

9.1.5 

結合要素型 

結合要素型 =共通識別子|名前群 

−(72) 

名前群の中の名前は,共通識別子でなければならない。 

共通識別子は,文書型宣言で要素型として指定してあってもなくても,正当な結合要素型となることが

できる。 

41 

X 4151-1992  

備考 この規定によって,より制限のある文書型の下でも,公開の定義によって多くの共通識別子が

使えるようになる。 

9.1.6 

外部識別子 

外部識別子 

=(“SYSTEM” |(“PUBLIC”,ps+,公開識別子)), 

 (ps+,システム識別子)? 

−(73)

公開識別子 

=最小表記 

−(74)

システム識別子 =(lit,システムデータ,lit)| 

 (lita,システムデータ,lita) 

−(75)

システム識別子は,公開識別子及びその他の情報からシステムが補充できるのであれば,省略してもよ

い。 

SGML宣言で “FORMAL YES” と指定してある場合,公開識別子は,公的公開識別子として解釈する。

したがって,公的公開識別子としての誤りが生じ得る。 

備考 この場合でも,公開識別子は,最小表記であることに変わりがないので,最小表記に対する要

件を満たしていなければならない。 

9.1.6.1 

量的制限 システム識別子の長さは,その区切り子の分を除いて,量LITLENの値以下でなけれ

ばならない。 

9.1.6.2 

容量 容量値ENTCHCAPに対して合計する要素文の文字数において,外部識別子に対しては,

そのシステム識別子(直接に指定してあるものであれ,補充したものであれ)の文字数(区切り子の分を

除く。)だけを合計する。 

9.1.7 

最小表記 

最小表記 

=(lit,最小データ,lit)| 

 (lita,最小データ,lita) 

−(76)

最小データ 

=最小データ文字* 

−(77)

最小データ文字 =RS|RE|SPACE|LC Letter| 

 UC Letter|Digit|Special 

−(78)

最小表記は,その最小データの中のRSを無視し,2個以上連続するRE及びSPACE(先頭及び末尾に

位置する場合を除く。)を1個のSPACEに置換した上で解釈する。 

9.1.7.1 

量的制限 解釈を終えた最小表記の長さは,その区切り子を除いて,(具象構文の定義にかかわ

らず)規格参照量集合の中の量LITLENの値以下でなければならない。 

9.2 

公的公開識別子 

公的公開識別子 =所有者識別子, “//”,文識別子 

−(79)

公的公開識別子は,生成規則で明記してあるものを除いて,二重の斜線 “//” を含んではならない。 

備考 公開識別子は,最小表記であるので,その中のRSを無視し,2個以上連続するRE及びSPACE

を1個のSPACEに置換した上で,公的公開識別子として解釈する。 

したがって,最小表記に対する量的制限(9.1.7.1参照)に従わなければならない。 

9.2.1 

所有者識別子 

所有者識別子 =ISO所有者識別子| 

登録所有者識別子|未登録所有者識別子 

−(80)

備考 所有者識別子を選定するに際しては,ISO 3166などの規格が役に立つ。 

9.2.1.1 

ISO所有者識別子 

42 

X 4151-1992  

ISO所有者識別子 =最小データ 

−(81)

ISO所有者識別子の一般形は,その公開識別子がISO出版物を識別する場合又はISO出版物の中でその

公開識別子を割り当てている場合に限って使う。一般形は,ISO出版物番号(英語,フランス語などの言

語識別接尾辞は取り除く。)とする。 

備考 例えば,この規格の対応国際規格の中の公開文は,翻訳の有無にかかわらず,そのISO所有者

識別子を “ISO 8879-1986 (E)” とはせず “ISO 8879-1986” とする。翻訳の別は,文識別子の公

開文言語として指定する。 

ISO所有者識別子の特殊形は,その公開文がISOの登録済み文字集合であって,公開文種別が 

“CHARSET” となる場合に限って使う。特殊形は, “ISO Registration Number” に続けてその文字集合の登

録番号を書く。 

9.2.1.2 

登録所有者識別子 

登録所有者識別子 = “+//”,最小データ 

−(82)

備考 登録所有者識別子は,国家規格の名称,産業規格の名称又はISO 9070に従って割り当てた一意

的な識別子とする。 

9.2.1.3 

未登録所有者識別子 

未登録所有者識別子 = “−//”,最小データ 

−(83)

備考 未登録所有者識別子は,業界組織利用者団体,個人などが選定した(おそらくは一意的な)商

標とする。 

9.2.2 

文識別子 

文識別子 

=公開文種別,SPACE,入手不能標識, 

公開文記述, “//”,(公開文言語|公開文指示シーケンス),

(“//”,公開文表示版)? 

−(84)

入手不能標識 = “−//”  

−(85)

入手不能標識は,その公開文が入手不能のときに指定し,入手可能なときには指定しない。 

公開文種別が “CHARSET” のときには公開文指示シーケンスを指定し,それ以外のときには公開文言語

を指定する。 

公的公開文識別子の文識別子は,その所有者識別子が同じものどうしの中では異なっていなければなら

ない。 

備考 所有者識別子も公開文記述も同じ二つの公開文は,少なくとも,その公開文種別及び公開文表

示版が異なっていなければならない。 

9.2.2.1 

公開文種別 

公開文種別 =名前 

−(86)

公開文種別の名前は,その公開文がどのSGML構成要素を収めたものかを示す次の(1)〜(13)のいずれか

でなければならない。 

(1) CAPACITY 

容量集合 

(2) CHARSET 

文字集合 

(3) DOCUMEM 

SGML文書 

(4) DTD 

文書型宣言部分集合 

(5) ELEMEM 

要素集合 

(6) ENTITIES 

実体集合 

43 

X 4151-1992  

(7) LPD 

連結型宣言部分集合 

(8) NONSGML 

非SGMLデータ実体 

(9) NOTATION 

記法 

(10) SHORTREF 

短縮参照集合 

(11) SUBDOC 

SGML部分文書実体 

(12) SYNTAX 

具象構文 

(13) TEXT 

SGML文実体 

公開文種別の名前は,すべて大文字で指定しなければならない。 

備考 システムは,公開文をその交換形式からシステムデータ及び具象構文を使った参照可能な実体

へと変換するに際して,適切な変換方式を選ぶのにその公開文種別を利用することができる。 

9.2.2.2 

公開文記述 

公開文記述 =ISO文記述|最小データ 

−(87)

ISO文記述 =最小データ 

−(87.1)

ISO文記述は,その公開識別子がISO出版物を識別している場合に限って使う。ISO文記述は,その文

書名の最後の要素(部番号があるときは,それを除く。)とする。 

備考 ISO 8632-4 : 1987 (Information processing systems−Computer graphics−Metafile for the storage and 

transfer of picture description information−Part 4 : Clear text encoding) に対するISO文記述は, 

“Clear text encoding” とする。 

9.2.2.3 

公開文言語 

公開文言語 =名前 

−(88)

公開文言語は,2個の英大文字でその名前を指定しなければならない。その名前は,ISO 639による言語

符号(公開文に使う主な自然言語を識別する。)とする。 

備考1. 公開文種別によっては,その自然言語が何であるかが公開文の有用性に影響を与える。 

2. 自然言語の別によって影響を受けやすいものには,データ,定義した名前,注釈などがある。 

3. システムは,公開文言語を使って,自動言語翻訳を試みることもできる。 

9.2.2.4 

公開文指示シーケンス 

公開文指示シーケンス =最小データ 

−(89)

公開文指示シーケンスの最小データは,その公開識別子で参照する文字集合の,JIS X 0202による指示

エスケープシーケンスを外部表現したものでなければならない。この指示エスケープシーケンスは,公開

文がISOの登録済み文字集合であれば,その登録してある指示エスケープシーケンスでなければならない。 

例1. ISO 646のIRV(ISOの登録済み文字集合002)の図形文字に対するG0指示エスケープシーケン

スの外部表現は, “ESC 2/8 4/0” となる。未登録の128文字の文字集合に対する指示エスケープ

シーケンスの外部表現は, “ESC 2/5 4/0” となる。 

例2. JIS X 0208の図形文字に対するG1指示エスケープシーケンスの外部表現は, “ESC 2/6 4/0 ESC 

2/4 2/9 4/2” となる。 

備考 登録済み文字集合に対する公開文指示シーケンスは,その公開文を一意に識別する。そうでな

い文字集合に対する公開文指示シーケンスは,その所有者識別子ごとに,一意な公開文を識別

する。 

9.2.2.5 

公開文表示版 

公開文表示版 =最小データ 

−(90)

44 

X 4151-1992  

公開文表示版は,その公開文種別が “CAPACITY”, “CHARSET”, “NOTAT10N” 又は “SYNTAX” で

ある場合,指定してはならない。公開文が装置に依存するものである場合,公開文表示版を指定して,対

象とする装置又は符号化方式を明記しなければならない。 

システムは,公開文を扱うのに際して,公開文表示版の指定があって当然なのにもかかわらず指定がな

い場合には,使用する表示装置に最もふさわしい装置依存の版を選定して補充しなければならない。ただ

し,該当するものがないときは,この限りでない。 

備考 この仕組みは,文字実体の集合に対して特に有用である。 

9.3 

注釈宣言 

注釈宣言 =mdo,(注釈,(s|注釈)*)?,mdc 

−(91)

注釈 

=com,SGML文字*,com 

−(92)

注釈の中では,その終わりとなる区切り子comを除いて,マークの認知を行わない。 

9.4 

マーク区間宣言 

マーク区間宣言 =マーク区間開始,状態見出し語指定,dso, 

マーク区間,マーク区間終了 

−(93)

マーク区間開始 =mdo,dso 

−(94)

マーク区間終了 =mso,mdc 

−(95)

マーク区間 

=SGML文字* 

−(96)

マーク区間宣言のマーク区間は,そのマーク区間宣言が位置する文脈での構文上及び意味上の要件に従

わなければならない。 

マーク区間宣言の外側に現れたマーク宣言終了は,誤りとする。 

9.4.1 

量的制限 開いているマーク区間宣言の個数は,量TAGLVLの値以下でなければならない。 

9.4.2 

状態見出し語指定 

状態見出し語指定 =(ps+,(状態見出し語| “TEMP” ))*,ps* 

−(97)

状態見出し語 

=“CDATA” | “IGNORE” | 

“INCLUDE” | “RCDATA” 

−(100)

それぞれの状態見出し語の意味は,次の(1)〜(5)のとおりとする。 

(1) IGNORE 

そのマーク区間に文字がないものとして扱う。ただし,入れ子になったマーク区間宣言の

終わりを見いだすために,マーク区間開始及びマーク区間終了の認知だけは行う。 

(2) INCLUDE そのマーク区間を無視しない。 

(3) CDATA 

そのマーク区間を文字データとして扱う。 

(4) RCDATA そのマーク区間を置換可能文字データとして扱う。 

(5) TEMP 

そのマーク区間を,いずれ取り除くことになるかもしれない一時的な部分として扱う。 

指定に重複がある場合,次の順位で有効な状態見出し語を定める(左のものほど優先する。)。 

IGNORE,CDATA,RCDATA,INCLUDE 

指定がない場合,有効な状態見出し語はINCLUDEとする。 

マーク区間宣言は,その有効な状態がCDATA又はRCDATAである場合,最初に現れたマーク区間終了

によって終わる。 

備考 CDATA又はRCDATAのマーク区間では,それが1個の実体の中にある限り,マークの認知を

行わないので,その中に入れ子になったマーク区間宣言が現れることはない。 

有効な状態見出し語がIGNOREであるマーク区間には,Eeが現れてはならない。 

45 

X 4151-1992  

備考 CDATA,RCDATA又はIGNOREのマーク区間の走査では,マーク区間終了を除いてすべての

マークを無視する。この結果,処理指令,属性値,表記,文字データの要素及び注釈も認知せ

ずに,その中身を走査する。したがって,その中身にマーク区間とみなせるものがあれば,誤

りが生じ得る。この問題を回避するには,多くの場合,これらを直接に書かずに,参照として

書くようにすればよい。 

9.5 

実体宣言 

実体宣言 =mdo, “EMITY”,ps+, 

 実体名,ps+,実体文,ps*,mdc 

−(101)

実体宣言は,その実体名が既に宣言してあるものであれば無視し,誤りとはしない。 

備考 この規定によって,文書型宣言部分集合の実体宣言は,その後に現れる公開文書型定義に同じ

実体に対する宣言があったとしても,それに優先することになる。 

9.5.1 

実体名 

実体名 

=一般実体名|引数実体名 

−(102) 

一般実体名 =名前| (rni, “DEFAULT”)  

−(103) 

引数実体名 =pero,ps+,名前 

−(104) 

一般実体名での “DEFAULT” は,その実体が省略時の実体であることを示す。 

引数実体名のperoは,この文脈では文脈上の制約なしで区切り子として認知する。 

引数実体名のpsは,区切り子の直後に位置しているにもかかわらず,文脈上必すとする。 

9.5.1.1 

量的制限 引数実体名の名前の長さは,量NAMELENの値から区切り子peroの文字数を減じた

値以下でなければならない。 

9.5.1.2 

容量 省略時の実体及びその名前での参照が省略時の実体を表すことになった異なる実体名は,

容量 “ENTCAP” に対するよう容量点として計算する。 

省略時の実体は,容量 “ENTCHCAP” に対する容量点を計算する。 

9.5.2 

実体文 

実体文 =引数表記|データ文|くくった文|外部実体指定 

−(105) 

実体文として引数表記を指定した場合,その実体への参照は,その引数表記を解釈して得た文で置換す

る。 

この置換する文の最後には,Eeを補って扱う。直接にEeを書いてはならない。 

備考 文の中に引数表記を含む実体は,その表記の解釈のときに決定する実体参照を含んでいた場合

でも一つの実体とみなす。その場合には,Eeは明示しない。 

9.5.3 

データ文 実体文としてデータ文を指定した場合,その実体への参照は,それがどんな場所にあっ

ても,そのデータ文を文字データとして扱って置換する。その文字データは,データ文の引数表記の中の

参照を普通に解釈して得た文とする。 

データ文 = (“CDATA” | “SDATA” | “PI”), 

 ps+,引数表記 

−(106)

データ文での見出し語の意味は,次の(1)〜(3)のとおりとする。 

(1) CDATA その引数表記を解釈した結果は,文字データ実体として置換する文となる。 

(2) SDATA その引数表記を解釈した結果は,特定文字データ実体として置換する文となる。 

(3) PI 

その引数表記を解釈した結果は,処理指令実体として置換する文となる。 

CDATA及びSDATAは,その実体名が一般実体名である場合に限って指定することができる。 

46 

X 4151-1992  

データを返す処理指令は,その実体をSDATAと指定して定義しなければならない。 

備考1. CDATA又はSDATAと指定した実体は,データ文字が現れ得る文脈で参照しなければならな

い。PIと指定した実体は,処理指令が現れ得る文脈で参照しなければならない。 

2. SDATAの指定は,通常,応用,システム又は出力装置ごとに定義し直すような実体に対して

行う。例えば,処理指令や,構文参照文字集合にない文字などを含んだデータに対して指定

する。 

3. データ内容記法は,明示的な内容参照の対象となる内部データ実体には適用しない。記法を

指定したければ,その実体を外部データ実体として宣言しなければならない。 

9.5.4 

くくった文 

くくった文 = (“STARTTAG” | “ENDTAG” | “MS” | “MD”), 

 ps+,引数表記 

−(107) 

くくった文は,その実体への参照を置換する際に,その引数表記を解釈して得た文を,その見出し語の

指定に従って次のとおりに区切り子でくくって置換する。 

(1) STARTTAG stagoとtagcとでくくる。 

(2) ENDTAG 

etagoとtagcとでくくる。 

(3) MS 

マーク区間開始とマーク区間終了とでくくる。 

(4) MD 

mdoとmdcとでくくる。 

備考 くくった文は,区切り子でくくった単なる文にすぎない。それが,正当な開始タグなどになっ

ている必要はない。したがって,その実体としての正否は,その参照が現れた文脈によって決

まる。 

9.5.4.1 

量的制限 くくった文の引数表記を解釈した結果の長さは,量LITLENの値からくくる区切り子

の長さを減じた値以下でなければならない。 

9.5.5 

外部実体指定 

外部実体指定 =外部識別子,(ps+,実体型)? 

−(108)

実体型 

= “SUBDOC” | 

((“CDATA” | “NDATA” | “SDATA”), 

ps+,記法名,データ属性指定?) 

−(109)

実体型での見出し語の意味は,次の(1)〜(4)のとおりとする。 

(1) SUBDOC 

その実体は,SGML部分文書実体とする。 

(2) CDATA 

その実体は,文字データ実体とする。 

(3) NDATA 

その実体は,非SGMLデータ実体とする。 

(4) SDATA 

その実体は,特定文字データ実体とする。 

実体型が指定できるのは,その実体名が共通識別子で指定してある場合に限る。 

実体型の指定を省略した場合,その実体は,SGML文書実体とする。 

記法名は,この実体宣言と同一の文書型定義の中で宣言していなければならない。その宣言は,この実

体宣言に先立っていなくても差し支えないが,その実体への参照よりも前になければならない。 

それぞれのデータ実体は,他のデータ実体及びSGML部分文書実体への参照を含んでいてもよい。その

参照するデータ実体及び更に入れ子にして参照するデータ実体は,この実体宣言と同一の文書型定義の中

で宣言することが望ましい。 

SUBDOCが指定できるのは,SGML宣言で “SUBDOC YES” と指定してある場合に限る。 

47 

X 4151-1992  

10. マーク宣言−文書型定義 

10.1 文書型宣言 

文書型宣言 

=mdo, 

“DOCTYPE”,ps+,文書型名, 

(ps+,外部識別子)?, 

(ps+,dso,文書型宣言部分集合,dsc)?, 

ps*,mdc 

−(110)

文書型名 

=共通識別子 

−(111)

文書型宣言部分集合 =(実体集合|要素集合|短縮参照集合)* 

−(112)

実体集合 

=(実体宣言|ds)* 

−(113)

要素集合 

=(要素宣言| 

属性定義並び宣言|記法宣言|ds)* 

−(114)

短縮参照集合 

=(実体宣言|短縮参照対応表宣言| 

短縮参照使用宣言|ds)* 

−(115)

文書型宣言に指定する文書型名は,同じ前書きの中で文書型名又は連結型名として現れていない共通識

別子でなければならない。 

文書型宣言に指定する外部識別子が表す実体は,その文書宣言部分集合の最後に参照してその一部(又

は全部)とする。文書型宣言で有効となる文書型定義は,その文書型部分集合及びこの外部実体の中の宣

言の組合せとする。 

備考 文書型部分集合の中の引数実体宣言は,外部実体の構文解析に先立って構文解析するので,外

部実体の中での実体の宣言に優先する。 

文書型宣言は,その文書型に対する要素宣言を含んでいなければならない。 

短縮参照集合は,基本文書型宣言の中でだけ指定することができる。 

文書型宣言の中で,Ee及び引数実体参照は,その文書型宣言部分集合の中にしか現れてはならない。 

10.2 要素宣言 

要素宣言 =(mdo, “ELEMEM”,ps+,要素型, 

(ps+,タグ省略最小化)?, 

ps+,(宣言内容|内容モデル),ps*,mdc 

−(116)

要素宣言は,その要素型に対する要素型定義となる。文書実現値の中の要素に現れる要素及び文字の順

序は,その要素の要素型定義に従わなければならない。 

要素宣言の中のタグ省略最小化は,SGML宣言で “OMITTAG NO” と指定してある場合に限って,その

直前のpsとともに省略することができる。 

10.2.1 要素型 

要素型 =共通識別子|名前群|付番要素|付番群 

−(117) 

共通識別子は,一つの文書型定義の中で,要素宣言の要素型として1度しか現れてはならず,更に,付

番要素の付番核又は付番核に付番をつないでできる共通識別子と同じであってはならない。 

要素型としての名前群は,その成分の名前を要素型名として出現の順に定義し,それぞれの名前に対し

て同じ定義を与える。 

要素型としての名前群に並べた名前は,それぞれ共通識別子とする。 

48 

X 4151-1992  

10.2.1.1 付番要素 

付番要素 =付番核,ps+,付番 

−(118)

付番群 

=grpo,ts*,付番核,(ts*,接続子,ts*,付番核)*, 

ts*,grpc,ps+,付番 

−(119)

付番核 

=名前 

−(120)

付番 

=数 

−(121)

要素型としての付番要素又は付番群は,その付番核に付番をつないでできる共通識別子を指定する。 

10.2.1.2 量的制限 共通識別子の長さは,量NAMELENの値以下でなければならない。 

10.2.2 タグ省略最小化 

タグ省略最小化 =開始タグ最小化,ps+,終了タグ最小化 

−(122)

開始タグ最小化 =“O” |minus 

−(123)

終了タグ最小化 =“O” |minus 

−(124)

タグ省略最小化は,次の(1)〜(2)のとおりに開始タグ及び終了タグの最小化の扱い方を指定する。 

(1) O 

そのタグの省略(6.3.1参照)を許す。 

(2) minus 

そのタグの省略をマークの誤りとする。 

タグ省略最小化の中のminusは,文脈上の制約なしで区切り子として認知する。 

開始タグの省略が6.3.1によって禁止になっている場合には,開始タグ最小化にminusを指定すること

が望ましい。 

その要素の宣言内容がEMPTYである場合及びその要素に内容参照属性がある場合には,終了タグ最小

化に “O” を指定することが望ましい。 

備考  “O” と指定しておくことで,その空の要素に終了タグがないことの備忘となる(指定しても

しなくても,マークの最小化には何ら影響しない。)。 

10.2.3 宣言内容 

宣言内容 =“CDATA” | “RCDATA” | “EMPTY” 

−(125)

宣言内容での見出し語は,次のとおりにその要素の内容を指定する。 

(1) CDATA 

その内容は,文字データとする。 

(2) RCDATA 

その内容は,置換可能文字データとする。 

(3) EMPTY 

その内容は,空とする。 

10.2.4 内容モデル 

内容モデル =(モデル群| “ANY”), 

(ps+,例外)? 

−(126) 

モデル群 

=grpo,ts*,内容字句, 

(ts*,接続子,内容字句)*, 

ts*,grpc,出現標識? 

−(127) 

内容字句 

=素内容字句|モデル群 

−(128) 

素内容字句   (rni, “PCDATA”) | 

要素字句|データタグ群 

−(129) 

要素字句 

=共通識別子,出現標識? 

−(130) 

内容モデルでの見出し語は,次の(1)〜(2)のとおりとする。 

(1) ANY 

その内容モデルとして,同じ文書型定義の中で要素型と定義してある共通識別子及び

49 

X 4151-1992  

“#PCDATA” を成分とする,任意選択反復可能なor群を指定する。 

(2) PCDATA 構文解析対象文字データを許すことを指定する。 

内容モデルの中に “#PCDATA” 又はデータタグ群がある場合,その要素の内容は,混合内容とする。そ

うでない場合,その要素の内容は,要素内容とする。 

備考  “#PCDATA” は,その要素の内容の中のどこにでもデータ文字を許す場合にだけ指定すること

を推奨する。言い換えれば, “#PCDATA” は,要素モテルの唯一の内容字句として指定するか,

接続子としてorだけを使っているモデル群の成分として指定するかだけにしておくことを推

奨する。 

この推奨の根拠は,要素内容の中でなら分離子と認知できるものも,混合内容の中ではデー

タとして扱われてしまうからである。この推奨に従わない例として,次の内容モデルがある。

(x, #PCDATA)  

この内容モデルに従うと, “x” の開始タグの直前のReは,データとなり,要素 “x” が文脈

上必すであるので,その開始タグとなる。すると,実際の “x” の開始タグは,2個目の “x” は

許されていないから誤りとなってしまう。 

このような推奨外の内容モデルは,一般に,その “#PCDATA” を,その内容が “#PCDATA” で

あって,その前後のタグが省略可能な要素を表す共通識別子で置換することで,同値なものに

書き換えることができる。 

この推奨は,データタグ機構を使うことを抑制することを意図するものではなく(10.2.4.4

の備考参照),分離子について注意を促すことを意図している。 

要素の内容の中の内容及び文字は,その内容モデルに従い,次の(1)〜(3)の優先順位で,そのモデル群の

中の字句及び例外を満たさなければならない。 

(1) 反復標識rep又はplusがある場合,最も近くに満たした字句の反復。 

(2) モデル群の中の字句。排除要素例外の対象となっている字句は除く(10.2.5参照)。 

(3) 添加要素例外として指定してある字句(10.2.5.1参照)。 

備考 例えば,次の要素の実現値を考えてみる。 

<!elmem e (a+|b) +> 

“a” が連続している場合,それは要素の反復として扱い,そのモデル群の反復としては扱わ

ない。 

二つのタグの間にあるすべての文字は,たとえその一部がマーク区間宣言で文字データと宣言してあっ

たとしても,1個の “#PCDATA” を満たすものとして扱う。 

要素字句としての共通識別子は,文書型定義で要素型として指定してあってもなくても,正当なものと

して扱う。 

備考 この規定によって,文書型で定義してある比較的少数の共通識別子に加えて,公開の定義を利

用した多数の共通識別子が使えることになる。 

10.2.4.1 接続子 

接続子 =and|or|seq 

−(131) 

モデル群の中に複数の内容字句がある場合,対応する要素の出現順序及び選択は,その接続子に応じて,

次の(1)〜(3)のとおりでなければならない。 

(1) and すべてが現れなければならないが,その順序は任意でよい。 

(2) or  その中の1個だけが現れなければならない。 

50 

X 4151-1992  

(3) seq すべてが指定の順序で現れなければならない。 

1個のモデル群の中では,1種類の接続子だけを使わなければならない(入れ子になったモデル群には,

別の接続子を使ってもよい。)。 

モデル群が1個の内容字句からなる場合,そのモデル群は,接続子seqが指定してあるものとして扱う。 

10.2.4.2 出現標識 

出現標識 =opt|plus|rep 

−(132)

標識が付けてない限り,ちょうど1度現れなければならない。出現標識が付けてある場合は,その出現

標識に従って,次の(1)〜(3)のとおりでなければならない。 

(1) opt 任意選択(0回又は1回) 

(2) plus 必すの反復(1回以上) 

(3) rep 任意選択の反復(0回以上) 

内容字句 “#PCDATA” には,出現標識repが付けてあるものとして扱う。 

潜在的に任意選択となっている内容字句は,出現標識の指定がなければoptが付けてあるものとして扱

い,plusの指定があればrepが付けてあるものとして扱う。 

10.2.4.3 あいまいな内容モデル 内容モデルは,あいまいであってはならない。すなわち,文書の実現値

に現れる要素又は文字列は,その実現値を先読みすることなく,それが満たす素内容字句が一つだけに決

まらなければならない。内容モデルがあいまいであるかどうかの判定は,10.2.4での優先順位を考慮せず

に行う。 

備考 あいまいな内容モデルの例を,次に示す。 

<!elemem e ((a, b?), b)> 

要素 “a” に続いて現れた要素 “b” は,この内容モテルの中の二つの素内容字句 “b” のどち

らも満たすからである。このあいまいさは,次のように中間的な要素を設けることで回避する

ことができる。 

<!element e (f,b)> 

<!elemem f (a, b?)> 

要素 “b” が満たす字句は, “f” がその “b” の前で終わっているかどうかから,あいまいさ

なく決まる(内容モデルについての理論的な基礎付けは,参考9に示す。)。 

10.2.4.4 データタグ群 

データタグ群 

=dtgo,ts*,共通識別子,ts*,seq,ts*, 

データタグ形式,ts*,dtgc,出現標識? 

−(133)

データタグ形式 

=(データタグひな形群|データタグひな形), 

(ts*,seq,ts*,データタグ埋め草ひな形)? 

−(134)

データタグひな形群 

=grpo,ts*,データタグひな形,(ts*,or, 

ts*,データタグひな形)*,ts*,grpc 

−(135)

データタグひな形 

=引数表記 

−(136)

データタグ埋め草ひな形 =引数表記 

−(137)

データタグ群は,その共通識別子と “#PCDATA” とを接続子seqで並べたモデル群として扱う。 

備考 例えば,規格参照区切り子集合の下で,モデル群 

([hours, (“ : ” | “ : ”), “ ”], minutes)  

は,次のモデル群として扱う。 

51 

X 4151-1992  

((hours, #PCDATA), minutes)  

データタグ群は,基本文書型宣言の中にだけ現れることができる。 

データタグ形式の中の引数表記は,他の引数表記と同様に解釈する。ただし,その中には,

機能文字の文字参照又は非SGML文字を参照する文字番号による文字参照が現れてはならない。 

10.2.4.5 量的制限 内容モデルの入れ子の深さは,量GRPLVLの値以下でなければならない。 

1個の内容モデルの中の内容字句の総数(入れ子の中も含める。)は,量GRPGTCNTの値以下でなけれ

ばならない。 

データタグひな形の中の引数表記を解釈した結果の長さは,量DTEMPLENの値以下でなければならな

い。 

l0.2.5 例外 

例外 =(排除要素,(ps+,添加要素)?)|添加要素 

−(138)

例外は,その要素の実現値の中のすべての場所(その内容が混合内容又は要素内容である部分要素も含

める。)に適用する。 

文書の実現値の中で,排除要素の対象とも添加要素の対象ともなっている要素があれば,排除要素の対

象として扱う。 

10.2.5.1 添加要素 

添加要素 =plus,名前群 

−(139)

内容モデルの中に指定した添加要素は,その内容モデルのモデル群の効果を次のとおりに変更する。そ

のモデル群の中の共通識別子又は群を “Q”,それに付けてある出現標識を “x” (出現標識が付けてないと

きは,空とする。),適用可能な添加要素を “R1” 〜 “Rn” とするとき,字句 

Qx 

を,次の指定があったものとして扱う。 

(R1|R2|…|Rn) *, (Q, (R1|R2|…|Rn) *) x 

内容モデルの要素字句を満たせる要素は,添加要素の対象となっていたとしても,その要素字句を満た

すものとして扱う。 

備考1. 添加要素の指定は,文脈上の部分要素に対して使わないことが望ましい。添加要素の指定は,

文書の中に現れる箇所での論理的な内容の一部とはなっていない要素,例えば,索引項目や

挿入した図などに対して使うのが望ましい。 

2. 添加要素に続くReは,通常の場合,無視する。一方,真の部分要素に続くReは,データと

して扱う。 

10.2.5.2 排除要素 

排除要素 =minus,名前群 

−(140)

内容モデルの中に指定した排除要素は,そのモデル群の効果を変更して,選択項目を除外する(ちょう

ど,文書の中から任意選択の要素を除外するのと同様な働きをもつ。)。 

排除要素が次のとおりにモデル群の効果を変更するときは,誤りとする。 

(1) 添加要素に指定してある字句,出現標識opt若しくはrepが付けてある字句又はor群の成分となって

いる字句以外の字句を排除する。 

(2) 字句が必すであるか任意選択であるかを変更する。 

備考 例えば,必すであるモデル群のすべての成分を排除すると,誤りとなる。それは,そのモデル

群がもはや必ずでなくなってしまうからである。 

52 

X 4151-1992  

10.3 属性定義並び宣言 

属性定義並び宣言 =mdo, 

“ATTLIST”,ps+,(結合要素型|結合記法名), 

ps+,属性定義並び,ps*,mdc 

−(141)

属性定義並び 

=属性定義,(ps+,属性定義)* 

−(142)

属性定義 

=属性名,ps+,宣言値,ps+,省略時値 

−(143)

属性定義並び宣言の結合要素型は,その宣言と同じ宣言部分集合の中の他の属性定義並びに現れてはな

らない。 

10.3.1 量的制限 1個の属性定義並びの中の,属性名及び名前字句の総数は,量ATTCNTの値以下でなけ

ればならない。 

備考 省略時値は,この総数に含めない。 

10.3.2 属性名 

属性名 =名前 

−(144) 

属性名は,一つの属性定義並びの中に1度だけ指定することができる。 

一つの文書型定義の中では,宣言値 “ID” を持つすべての属性に同じ属性名を与えることが望ましい。 

備考 識別子値をもつすべての属性に共通の名前を付けることで,一つの文書の実現値の中で識別子

値が一意的でなければならないという要件を強調することができる。 

10.3.3 宣言値 

宣言値 =“CDATA” | “ENTITY” | “ENTITIES” | 

“ID” | “IDREF” | “IDREFS” | 

“NAME” | “NAMES” | “NMTOKEN” | “NMTOKENS” | 

“NUMBER” | “NUMBERS” | “NUTOKEN” | “NUTOKENS” | 

記法|名前字句群 

−(145) 

記法 

=“NOTATION”,ps+,名前群 

−(146) 

宣言値での見出し語は,次の(1)〜(15)のとおりに,その属性値の種類を指定する。 

(1) CDATA 

文字データ 

(2) ENTITY 

一般実体名 

(3) ENTITIES 

一般実体名並び 

(4) ID 

識別子値 

(5) IDREF 

識別子参照値 

(6) IDREFS 

識別子参照並び 

(7) NAME 

名前 

(8) NAMES 

名前並び 

(9) NMTOKEN 

名前字句 

(10) NMTOKENS 名前字句並び 

(11) NOTATION 

要素の内容に対するデータ内容記法を識別する記法名。その名前群は,記法名として

許容する名前を指定する。 

(12) NUMBER 

数 

(13) NUMBERS 

数並び 

(14) NUTOKEN 

数字句 

53 

X 4151-1992  

(15) NUTOKENS 

数字句並び 

“ID” 及び “NOTATION” は,一つの属性定義並びの中で1度だけ指定することができる。 

字句は,一つの属性定義並びの中で,異なる群の中であっても,2度以上現れてはならない。 

“NOTATION” は,その宣言内容が “EMPTY” である要素に対して指定してはならない。 

10.3.4 省略時値 

省略時値 =((rni, “FIXED”, ps+) ?,属性値指定)| 

(rni, (“REQUIRED” | “CURRENT” | 

“CONREF” | “IMPLIED”)) 

−(147)

省略時値での見出し語は,次の(1)〜(5)のとおりにその属性の値を指定する。 

(1) FIXED 

その属性は,固定属性とする。 

(2) REQUIRED その属性は,必ず属性とする。 

(3) CURRENT 

その属性は,現属性とする。 

(4) CONREF 

その属性は,内容参照属性とする。 

(5) IMPLIED 

その属性は,黙示属性とする。 

備考 空の表記を指定しても, “IMPLIED” を指定したのと同値とはならない。 

省略時値の中の属性値指定は,6.9.4.1の構文上の要件を満足しなければならない。 

備考 その省略時値が属性指定の中に現れると,更に一般実体名,一般実体名並び及び記法属性に対

する検査を行うことになる。 

宣言値が “ID” である場合,その省略時値には, “IMPLIED” 又は “REQUIRED” を指定しなければな

らない。 

“CONREF” は,宣言値が “EMPTY” と指定してある要素に対して指定することができない。 

10.3.4.1 量的制限 見出し語 “CONREF”, “REQUIRED” 及び “IMPLIED” の正規の長さは,0とする。 

10.3.4.2 容量 現属性の省略時値の容量値ATTCHCAPに対する容量点としては,文書の中でその属性に

指定してある一番長い属性値の長さを計算する。 

10.4 記法宣言 

記法宣言 

=mdo, “NOTATION”,ps+,記法名, 

ps+,記法識別子,ps*,mdc 

−(148) 

記法識別子 =外部識別子 

−(149) 

記法宣言の中の記法名は,同じ文書型定義の中の他の記法宣言に指定してはならない。 

記法宣言の中の記法識別子が公開識別子を含んでいて,しかもSGML宣言で “FORMAL YES” と指定し

てある場合,その公開識別子の公開文種別は, “NOTATION” でなければならない。 

10.4.1 データ属性 

備考 データ属性は,データ内容記法に対して定義する。値は,その記法に従うデータ実体に対して

の実体宣言の中に指定する。 

データ属性の宣言値は, “ENTITY”, “ENTITIES”, “ID”, “IDREF”, “IDREFS” 又は “NOTATION” 

であってはならない。 

“CURRENT” 又は “CONREF” は,データ属性に対して指定することができない。 

10.4.1.1 結合記法名 

結合記法名 =rni, “NOTATION”,  

ps+,(記法名|名前群) 

−(149.1) 

54 

X 4151-1992  

結合記法名での見出し語NOTAT10Nは,定義しようとしている属性をデータ属性して指定する。 

結合記法名の名前群の中の名前は,その属性定義並びが現れたのと同じ文書型定義の中で記法名として

宣言してあり,しかも他の属性定義並びに指定していない名前でなければならない。これらの名前は,そ

の属性定義並びの前に宣言してある必要はない。しかし,その記法として宣言する実体への参照の前に宣

言しておかなければならない。 

10.4.1.2 データ属性指定 

データ属性指定 =ps+,dso,属性指定並び,s*,dsc 

−(149.2)

データ属性指定の中の属性指定並びの正否は,そのデータ内容記法を結合した属性定義並びによって決

まる。この属性定義並びは,そのデータ属性指定の前に宣言していなければならない。 

この属性定義並びが空である場合は,属性指定並びも空でなければならない。 

10.5 短縮参照対応表宣言 

短縮参照対応表宣言 =mdo, “SHORTREF”,ps+,対応表名, 

(ps+,引数表記,ps+,名前)+, 

ps*,mdc 

−(150)

対応表名 

=名前 

−(151)

短縮参照対応表宣言の対応表名は,同じ文書型定義の中の他の短縮参照対応表宣言に指定してはならな

い。 

短縮参照対応表宣言の中の引数表記と名前とのそれぞれの対は,その引数表記を解釈した結果の文字列

を短縮参照の区切り子とし,この区切り子にその名前を対応付ける。その名前は,同じ文書型定義の中で

一般実体の名前として宣言してあるものでなければならない。 

備考 この一般実体は,必すとする。文書を他のシステムに送ったとき,そのシステムが短縮参照機

能を提供していず,しかも引数実体参照が使えない文脈では,短縮参照をその対応付いた名前

の実体で置換しなければならなくなるからである。 

短縮参照の区切り子は,一つの短縮参照対応表宣言の中で1度だけ対応付けることができる。 

指定のなかった短縮参照の区切り子は,名前に対応付けしていないものとして扱う。 

10.6 短縮参照使用宣言 

短縮参照使用宣言 =mdo, “USEMAP”,ps+,対応表指定, 

(ps+,結合要素型)?,ps*,mdc 

−(152)

対応表指定 

=対応表名| (rni,“EMPTY”)  

−(153)

対応表指定での見出し語 “EMPTY” は,空対応表を指定する。 

10.6.1 文書型宣言での使用 短縮参照使用宣言が文書型宣言の中に現れる場合は,その中に結合要素型を

指定しなければならない。その対応表指定で指定した対応表は,結合要素型の要素が現要素となったとき,

いつでも現対応表となる。 

対応表指定の中の対応表名は,同じ文書型宣言の中の短縮参照対応表宣言で定義してあるものでなけれ

ばならない。 

備考 対応表名は,その短縮参照使用宣言の前に定義しなくてもよいが,その対応表が現対応表とな

る前には定義しなければならない。 

既に対応表が結合した結合要素型を指定した場合,誤りとはしないか,その短縮参照使用宣言は無視す

る。 

55 

X 4151-1992  

10.6.2 文書実現値での使用 短縮参照使用宣言が文書実現値に現れる場合は,その中に結合要素型を指定

してはならない。その対応表指定で指定した対応表は,現要素であるその実現値に対する現対応表となる。 

対応表指定の中の対応表名は,その実現値が従う文書型定義の中の短縮参照対応表宣言で定義してある

ものでなければならない。 

10.6.3 現対応表 対応表は,それに結合した要素が現要素となっている間,現対応表となる。現対応表は,

その要素の実現値に対して次の(1)〜(2)の場合に切り替わる。 

(1) その部分要素が現要素となった場合 その間だけ切り替わる。 

(2) その実現値の中に短縮参照使用宣言が現れた場合 以後,その宣言に従ったものに切り替わる。 

要素に結合した短縮参照対応表がない場合,その要素の実現値に対する現対応表は,その要素が始まっ

た時点での現対応表とする。その要素が文書要素である場合,その現対応表は,空対応表とする。 

11. マーク宣言−連結処理定義 

11.1 連結型宣言 

連結型宣言 =mdo, “LINKTYPE”,ps+,連結型名, 

ps+,(単純連結指定|暗黙連結指定|明示連結指定), 

(ps+,外部識別子)?, 

(ps+,dso,連結型宣言部分集合,dsc)?, 

ps*,mdc 

−(154) 

連結型名 

=名前 

−(155) 

連結型宣言に指定する連結型名は,同じ前書きの中での他の連結型名又は文書型名と同じであってはな

らない。 

連結型宣言に指定する外部識別子が表す実体は,その連結型宣言部分集合の最後に参照してその一部(又

は全部)とする。連結型宣言で有効となる連結型定義は,その連結型部分集合及びこの外部実体の中の宣

言の組合せとする。 

備考 連結型部分集合の中の引数実体宣言は,外部実体の構文解析に先立って構文解析するので,外

部実体の中での実体の宣言に優先する。 

連結型宣言の中で,Ee及び引数実体参照は,その連結型宣言部分集合の中にしか現れてはならない。 

11.1.1 単純連結指定 

単純連結指定 =rni, “SIMPLE” 

ps+,rni, “IMPLIED”  

−(156)

単純連結指定での見出し語の意味は,次の(1)〜(2)のとおりとする。 

(1) SIMPLE 

その連結を単純連結と指定する。 

(2) IMPLIES 

その結果文書型の名前を応用が補充することを指定する。 

単純連結が指定できるのは,SGML宣言の連結型機構引数で “SIMPLE YES” と指定してある場合に限

る。 

この連結の原始文書型は,基本文書型とする。 

11.1.1.1 制限 同時に活性状態になる単純連結処理の個数は,SGML宣言の連結型機構引数で “SIMPLE” 

に対して指定した量の値以下でなければならない。 

11.1.2 暗黙連結指定 

暗黙連結指定 =原始文書型名,ps+,rni, “IMPLIED” 

−(157)

56 

X 4151-1992  

暗黙連結指定での見出し語 “IMPLIED” は,その結果文書型の名前を応用が補充することを指定する。 

暗黙連結が指定できるのは,SGML宣言の連結型機構引数で “IMPLICIT YES” と指定してある場合に限

る。 

その原始文書型名は,基本文書型の名前又は連結処理の連鎖での最後の結果文書型の名前でなければな

らない。 

11.1.3 明示連結指定 

明示連結指定 =原始文書型名,ps+,結果文書型名 

−(158)

原始文書型名 =文書型名 

−(159)

結果文書型名 =文書型名 

−(160)

明示連結が指定できるのは,SGML宣言の連結型機構引数で “EXPLICIT YES” と指定してある場合に限

る。 

その原始文書型名は,基本文書型の名前又は連結処理の連鎖での最後の結果文書型の名前でなければな

らない。 

明示連結指定に指定する文書型名は,その明示連結指定と同じ前書きの中で指定してあるものでなけれ

ばならない。 

11.1.3.1 制限 最長の連結処理の連鎖の長さは,SGML宣言の連結型機構引数で “EXPLICIT” に対して指

定した量の値以下でなければならない。 

11.1.4 連結型宣言部分集合 

連結型宣言部分集合 =(連結属性集合|連結集合宣言)*, 

識別子連結集合宣言?, 

(連結属性集合|連結集合宣言)* 

−(161)

連結属性集合 

=(属性定義並び宣言|実体集合)* 

−(162)

11.1.4.1 実体 連結型宣言部分集合の中の実体宣言は,その連結型が活性状態になったとき,その原始文

書型の文書型宣言部分集合の先頭にあるものとして扱う。ただし,既に活性状態になっている連結型があ

れば,それらに対する同様の実体宣言の後ろにあるものとして扱う。 

連結型宣言では,その連結型宣言部分集合で定義した引数実体ばかりでなく,基本文書型宣言で定義し

てある引数実体も参照することができる。 

11.1.4.2 連結属性 連結属性集合の中の属性定義並び宣言の結合要素型は,原始文書型の要素型でなけれ

ばならない。 

連結属性の宣言値は, “ID”, “IDREF”, “IDREFS” 又は “NOTATION” であってはならない。 

 “CURRENT” 又は “CONREF” は,連結属性に対して指定することができない。 

11.1.4.3 単純連結 連結型宣言で単純連結を定義する場合,その連結型宣言部分集合は,1個の連結属性

集合だけからなるものでなければならず,しかもその中に2個以上の属性定義並び宣言があってはならな

い。この属性定義並び宣言は,原始文書型の要素型に属性を結合させるものでなければならず,しかも,

その属性すべてが固定属性でなければならない。 

11.2 連結集合宣言 

連結集合宣言 =mdo, “LINK”,ps+,連結集合名, 

(ps+,連結規則)+,ps*,mdc 

−(163)

連結規則 

=原始要素指定|明示連結規則 

−(163.1)

連結集合名 

=名前| (rni,“INITIAL”) 

−(164)

57 

X 4151-1992  

連結集合名での見出し語 “INITIAL” は,その文書実現値が始まった時点での現連結集合を表す。 

連結集合宣言の連結集合名として指定した名前は,その同じ連結型宣言の中の他の連結集合宣言に指定

してはならない。 

連結型宣言部分集合の中のただ一つの連結集合宣言に,連結集合名としての “INITIAL” を指定しなけ

ればならない。 

連結集合宣言の連結規則は,その連結型宣言が暗黙連結を指定する場合,原始要素指定としなければな

らない。明示連結を指定する場合は,明示連結規則としなければならない。 

11.2.1 原始要素指定 

原始要素指定 =結合要素型, 

(ps+,rni, “USELINK”,ps+,(連結集合名| 

 (rni, “EMPTY”)))?,(ps+,rni, “POSTLINK”, 

ps+,連結集合指定)?,連結属性指定? 

−(165)

連結属性指定 =ps+,dso,属性指定並び,s*,dsc 

−(166)

原始要素指定での見出し語の意味は,次の(1)〜(2)のとおりとする。 

(1) USELINK 

そこに指定する連結集合は,その結合要素型の要素が現要素となったとき,現連結集合

となる。 

備考 “#USELINK” の指定は,その連結集合宣言を開始タグの直後に書いたのと同様の

働きをする。言い換えれば,その指定は,要素の部分要素に作用する。要素が空

のときには,効果がない。 

(2) POSTLINK そこに指定する連結集合は,その結合要素型の要素が現要素でなくなったとき,現連結

集合となる。 

備考 “#POSTLINK” の指定は,その連結集合宣言を終了タグの直後(その要素が空で,

しかも終了タグがない場合には,その開始タグの直後)に書いたのと同様の働き

をする。その指定は,同じ親要素の中での次の要素に作用する。 

原始要素指定に指定する連結集合名は,それと同じ連結型宣言の中の連結集合宣言で定義したものでな

ければならない。 

原始要素指定に指定する結合要素型は,同じ連結集合宣言の中の他の連結規則に指定してはならない。

ただし,その連結規則すべてに連結属性指定を指定する場合は,この限りでない。 

備考 応用は,その要素型の実現値について,どの連結規則を適用すればよいかを,それらの連結属

性から決定できなければならない。例えば, “usage” 属性を定義して,原始要素の属性値や処

理の状態を検査する式が書けるようにし,その式の値が真になっている連結規則を適用するこ

とにしてもよい。 

連結属性指定の属性指定並びの正否は,その連結型宣言部分集合の中の原始要素型に結合した属性定義

並びによって決まる。この属性定義並びは,その連結属性指定の前に宣言していなければならない。属性

指定が結合したすべての要素型は,同じ定義によって結合していなければならない。 

連結属性指定は,この属性指定並びが空である場合,省略しなければならない。 

11.2.2 明示連結規則 

明示連結規則 =(原始要素指定,ps+,結果要素指定)| 

(原始要素指定,ps+,rni, “IMPLIED”)| 

(rni, “IMPLIED”,ps+,結果要素指定) 

−(166.1)

58 

X 4151-1992  

結果要素指定 =共通識別子,結果属性指定? 

−(167)

結果属性指定 =ps+,dso,属性指定並び,s*,dsc 

−(168)

明示連結規則での見出し語 “IMPLIED” は,その結果要素又は原始要素を応用が補充することを指定す

る。 

“#IMPLIED” は,一つの連結集合の中で,結果要素に1度しか指定することができない。 

結果属性指定の属性指定並びの正否は,その結果文書型の宣言の中で,結果要素に結合した属性定義並

びによって決まる。 

結果属性指定は,この属性指定並びが空の場合,省略しなければならない。 

11.2.3 識別子連結集合宣言 

識別子連結集合宣言 =mdo, “IDLINK”, 

(ps+,名前,ps+,連結規則)+, 

ps*, mdc 

−(168.1)

識別子連結集合宣言に指定する名前は,原始要素を表す一意的な識別子であることが望ましい。この原

始要素に対して,現連結集合とは無関係に,その組として指定した連結規則を適用する。その連結規則の

結合要素型は,この原始要素の要素型でなければならない。 

11.3 連結集合使用宣言 

連結集合使用宣言 =mdo, “USELINK”,ps+,連結集合指定, 

ps+,連結型名,ps*,mdc 

−(169)

連結集合指定 

=連結集合名| (rni, “EMPTY”) | 

(rni, “RESTORE”) 

−(170)

連結集合指定での見出し語は,次の(1)〜(2)のとおりとする。 

(1) EMPTY 

指定する連結集合は,空連結集合とする。 

(2) RESTORE 指定する連結集合は,現要素に結合した連結集合とする。結合したものがないときは,現

要素が始まった時点での現連結集合とする。 

連結集合使用宣言で指定した連結集合は,現要素に対する現連結集合となる。 

備考 文書の改定作業の手助けとするため,連結集合使用宣言で活性状態にした連結集合がもはや必

要でなくなったら,その位置に次のような宣言を書いておくことが望ましい。 

<!USELINK #RESTORE linktype> 

連結集合使用宣言に指定する連結型名は,その指定する連結集合を定義している連結型宣言の連結型名

でなければならない。 

連結集合使用宣言は,その連結型名が活性連結型でなければ,無視する。 

11.4 現連結集合 連結集合は,それに結合した要素が現要素となっている間,現連結集合となる。現連

結集合は,その要素の実現値に対して次の(1)〜(2)の場合に切り替わる。 

(1) その部分要素が現要素となった場合 その間だけ切り替わる。 

(2) その実現値の中に連結集合使用宣言が現れた場合 以後,その宣言に従ったものに切り替わる。 

要素に結合した連結集合がない場合,その要素の実現値に対する現連結集合は,その要素が始まった時

点での現連結集合とする。その要素が文書要素である場合,その現連結集合は,初期の連結集合とする。 

12. SGML宣言 

SGML宣言 =mdo, “SGML”,ps+,最小表記, 

59 

X 4151-1992  

ps+,文書文字集合, 

ps+,容量集合, 

ps+,具象構文範囲, 

ps+,具象構文, 

ps+,機構使用, 

ps+,応用特有情報,ps*,mdc 

−(171) 

SGML宣言の最小表記の最小データは, “ISO 8879 : 1986” とする。 

SGML宣言には,文書の残りで使う具象構文が何であれ,規格参照具象構文を使わなければならない。 

SGML宣言の引数及び注釈には,(規格参照具象構文での)マーク文字及び最小データ文字だけを使う

ことができる。 

ただし,文字参照の置換文には,マーク文字又は最小データ文字以外のSGML文字を使っても差し支え

ない。 

備考1. SGML宣言は,機械処理ばかりでなく,(印字して)人間の役に立てることも意図している。

文書の受け手は,SGML宣言を見て,システムがその文書を“そのまま”処理できるか,文

字変換などの機械的な変換が必要(例えば,文書マーク機構や別の区切り子集合を使ってい

る。)か,更に変換に人手をかける必要がある(例えば,文書型機構又は別の容量集合を使っ

ている。)かどうかを判断することができる。 

2. “&#222;” といった文字参照は,その置換文がマーク文字又は最小データ文字以外になるもの

の,それ自身はマーク文字及び最小データ文字でできているので,SGML宣言の中でも正当

である。 

3. 実体参照は,SGML宣言の中には(まだ一つも実体の宣言を行っていないので)書くことが

できない。 

12.1 文書文字集合 

文書文字集合 =“CHARSET”,ps+,文字集合記述 

−(172)

文書文字集合の文字集合記述には,重要なSGML文字それぞれについて,固有のビット組合せの符号化

表現を含めておかなければならない。 

備考 文書に二つの具象構文を使う場合,その二つの具象構文のマーク文字すべてが重要なSGML文

字となる。 

文書を新しい文字集合に変換するに際しては,この引数の中の文字番号及び文書の中に現れる文字番号

を使った文字参照を変更しなければならない。 

備考 文書を機械処理にかける前に,そのシステム文字集合に変換しておくのは,文書の受け手の責

任とする。これに関する情報の交換には,次の(1)〜(2)の二つの方式がある。 

(1) その文字集合が規格によるもの,登録してあるもの又は名前や番号などの識別子で参照でき

るものであれば,その識別子を文書の受け手に通知すればよい。この通知は,その文書とは

別に渡すことになる。例えば,文書交換を行うデータ流の一部を利用するとか,その他の媒

体(おそらくは,電子的でないもの)を利用するとかといった方法が使える。 

(2) そうでない文字集合では,SGML宣言を人間が読める形で渡せばよい。 

12.1.1 文字集合記述 

文字集合記述 =基本文字集合,ps+,文字集合区分, 

(ps+,基本文字集合, 

60 

X 4151-1992  

ps+,文字集合区分)* 

−(173)

文字集合記述の中の文字集合区分は,全体として,文字集合のすべての文字番号を重複なく記述してい

なければならない。 

12.1.1.1 基本文字集合 

基本文字集合 =“BASESET”,ps+,公開識別子 

−(174)

基本文字集合の公開識別子は,その文字集合区分の基本とする基本集合を人間が識別するための識別子

とする。 

備考 例えば,規格名称,登録番号,標号などの,想定できるその文書の受け手が理解できるもの。 

他機構引数に “FORMAL YES” と指定してあれば,この公開識別子は,公的公開識別子であってその公

開文種別が “CHARSET” であるものでなければならない。 

12.1.1.2 文字集合区分 

文字集合区分 

=“DESCSET”,(ps+,文字記述) + 

−(175)

文字記述 

=先頭文字番号,ps+,文字個数,ps+, 

(基本集合文字番号|最小表記| “UNUSED”) 

−(176)

先頭文字番号 

=文字番号 

−(177)

基本集合文字番号 =文字番号 

−(178)

文字個数 

=数 

−(179)

文字集合区分は,文字集合の文字のうち,そこに指定した先頭文字番号から始まる文字個数だけの文字

に,次の(1)〜(3)のとおりに意味を与える。 

(1) 基本集合文字番号が指定してある場合,それぞれの文字は,基本集合の中のその文字番号から始まる

一連の文字それぞれがもつ意味をもつ。 

備考 その一連の文字の中に,基本集合で意味をもたないものがあれば,それに対応する文字も文字

集合の中で意味をもたない。 

(2) 最小表記が指定してある場合,それぞれの文字は,その最小表記に記述してあるとおりの意味をもつ。 

備考 最小表記による指定は,基本集合の中に望む意味をもつ文字がない場合だけに使うことが望ま

しい。 

(3)  “UNUSED” が指定してある場合,それぞれの文字は,意味をもたない。 

12.1.2 非SGML文字の認定 文字集合区分で意味をもたないと指定した文字は,非SGML文字と認定し,

NONSGMLに加える。 

備考 文書を受け取って変換を施した後でも,その新しい文書文字集合が制御文字に別の符号化表現

を対応付けていれば,非SGML文字の種類が違ってくることがある。 

回避文字は,それが重要なSGML文字でない限り,非SGML文字とする。 

備考1. 表8及び表9では,文字番号9,10及び13の文字が,機能文字であることから,回避文字であり

ながら非SGML文字には割り当ててない。 

2. 文書に二つの具象構文を使う場合,その両方の回避文字がこの規定の対象となる。 

12.2 容量集合 

容量集合 =“CAPACITY”,ps+, 

((”PUBLIC”,ps+,公開識別子)| 

(”SGMLREF”,(ps+,名前,ps+,数)+)) 

−(180)

容量集合の中に指定する名前は,表5に示す容量値の名前でなければならない。その名前の容量値には,

61 

X 4151-1992  

指定した数が表す値を与える。 

容量集合で値を与えなかった容量値は,規格参照容量集合での値を与える。 

備考 見出し語 “SGMLREF” は,公開識別子を使わない場合に文脈上必すとなる(したがって,冗長

なものである。)が,これはSGML宣言を読む人に対するこの規定の備忘となっている。 

それぞれの容量値は,文書が超えてはならない限界を示す。その値は,一時に処理する可能性がある並

列実現値及び連結処理の連鎖での最大の要求にも耐えられるものでなければならない。 

“TOTALCAP” に割り当てる値は,個々の容量値の最大のもの以上でなければならない。 

他機構引数で “FORMAL YES” と指定してある場合,容量集合の公開識別子は,公的公開識別子であっ

て,その公開文種別が “CAPACITY” となっているものでなければならない。 

12.3 具象構文範囲 この引数は,SGML宣言で指定する具象構文を文書全体に適用するかどうかを指定

する。言い換えれば,前書きに対して規格参照具象構文が使えるかどうかを指定する。 

具象構文範囲 =“SCOPE”,ps+, 

(“DOCUMEM” | “INSTANCE”)  

−(181)

具象構文範囲での見出し語の意味は,次の(1)〜(2)のとおりとする。 

(1) DOCUMENT 指定する具象構文を,文書全体に適用する。 

(2) INSTANCE 

前書きには規格参照具象構文を適用し,文書実現値集合には指定する具象構文を適用す

る。 

“INSTANCE” を指定した場合,SGML宣言で指定する具象構文は,次の(3)〜(5)の条件を満たしていな

ければならない。 

(3) その構文参照文字集合が,規格参照具象構文のものと同じである。 

(4) その重要なSGML文字が,前書きの終わりと文書実現値集合の始まりとを区別できるものとなってい

る。 

(5) その量集合に指定した値が,規格参照量集合での値以上になっている。 

12.4 具象構文 

具象構文 = “SYNTAX”, ps+,  

(公開具象構文| 

(回避文字番号指定, 

ps+,構文参照文字集合, 

ps+,機能文字指定, 

ps+,命名方式,ps+,区切り子集合, 

ps+,予約名使用,ps+,量集合)) 

−(182)

けん盤の能力,表示装置の能力,用いる自然言語の特性などから変形具象構文が必要になる場合を除け

ば,規格参照具象構文又は核具象構文を使うことが望ましい。 

12.4.1 公開具象構文 

公開具象構文 = “PUBLIC”,ps+,公開識別子, 

(ps+, “SWITCHES”, 

(ps+,文字番号,ps+,文字番号)+)? 

−(183)

公開具象構文での見出し語 “SWITCHES” は,その公開識別子で指定した具象構文のマーク文字の幾つ

かを切り替えることを示す。 

公開具象構文の中の文字番号は,その公開識別子で指定した公開具象構文の構文参照文字集合の中の,

62 

X 4151-1992  

Digit,LC Letter又はUC Letter以外の文字の文字番号でなければならない。文字番号の対は,実現値の中

にその第1の文字番号の文字が現れたとき,その第2の文字番号の文字で代替することを指定する。 

備考 “SWITCHES” を使って得た具象構文は,明示的に指定した具象構文と同じく,この規格の要件

を満たしていなければならない。 

他機構引数で “FORMAL YES” と指定してある場合,その公開識別子は,公的公開識別子であって,そ

の公開文種別が “SYNTAX” となっているものでなければならない。 

12.4.2 回避文字番号指定 

回避文字番号指定 = “SHUNCHAR”,ps+, 

(“NONE” | 

((”CONTROLS” |文字番号), 

(ps+,文字番号)*)) 

−(184)

回避文字番号指定での見出し語の意味は,次の(1)〜(2)のとおりとする。 

(1) NONE 

回避文字がないことを指定する。 

(2) CONTROLS システム文字集合で制御文字となっている文字及び図形文字でない文字すべてが回避文

字であることを指定する。 

回避文字番号指定の中に指定した文字番号の文字は,すべて回避文字とする。 

備考 この引数に現れた文字番号は,文書を別の文字集合に変換する場合に変更する必要がない(し

たがって,変更しないことが望ましい。)。 

12.4.3 構文参照文字集合 

構文参照文字集合 =文字集合記述 

−(185)

構文参照文字集合には,すべての重要なSGML文字に対する,固有のビット組合せの符号化表現を記述

しておかなければならない。 

12.4.4 機能文字指定 

機能文字指定 = “FUNCTION”, 

ps+, “RE”,ps+,文字番号, 

ps+, “RS”,ps+,文字番号, 

ps+, “SPACE”,ps+,文字番号, 

(ps+,追加機能,ps+,機能種別,ps+,文字番号)* 

−(186)

追加機能 

=名前 

−(187)

機能種別 

=“FUNCHAR” | “MSICHAR” | “MSOCHAR” | 

“MSSCHAR” | “SEPCHAR” 

−(188)

追加クラスでの見出し語は,次の(1)〜(5)のとおりに,追加機能の種別を指定する。 

(1) FUNCHAR 

休止機能文字 

(2) MSICHAR 

マーク認知開始文字 

(3) MSOCHAR 

マーク認知終了文字 

(4) MSSCHAR 

マーク認知抑制文字 

(5) SEPCHAR 

分離子文字 

機能文字指定は,それぞれの機能文字にその文字番号を割り当てる。 

同じ文字番号を2個以上の機能文字に割り当ててはならない。 

追加機能に割り当てた文字番号は, “RE”, “RS”, “SPACE” 又は他の追加機能に割り当ててはならな

63 

X 4151-1992  

い。 

“MSOCHAR” を指定した場合, “MSICHAR” も指定しなければならない。 

備考 符号拡張を使う場合,シフト文字をマーク認知抑制文字とすれば,区切り子の誤った認知を避

けることができる。ただし,装置独立性を保つために実体参照を使うことだけはできなくなる。 

12.4.5 命名方法 

命名方法 = “NAMING”, 

ps+, “LCNMSTRT”, 

ps+,引数表記, 

ps+, “UCNMSTRT”, ps+,引数表記, 

ps+, “LCNMCHAR”, ps+,引数表記, 

ps+, “UCNMCHAR”, ps+,引数表記, 

ps+, “NAMECASE”, 

ps+, “GENERAL”, 

ps+,(“NO” | “YES”), 

ps+, “EMITY”, ps+,(“NO” | “YES”) 

−(189)

命名方法での見出し語の意味は,次の(1)〜(5)のとおりとする。 

(1) LCNMSTRT 

その引数表記の中の文字(があれば,それ)をLCNMSTRTに加える。 

(2) UCNMSTRT 

その引数表記の中の文字(があれば,それ)を, “LCNMSTRT” の引数表記の中の対

応する位置にある文字の大文字として,UCNMSTRTに加える。 

(3) LCNMCHAR その引数表記の中の文字(があれば,それ)をLCNMCHARに加える。 

(4) UCNMCHAR その引数表記の中の文字(があれば,それ)を, “LCNMCHAR” の引数表記の中の

対応する位置にある文字の大文字として,UCNMCHARに加える。 

(5) NAMECASE 

大文字への代替を行うかどうかを指定する。 “EMITY” は実体参照及び実体名に対す

る指定を行い, “GENERAL” はその他の名前,名前字句,数字句及び区切り子に対

する指定を行う。 

(a) YES LC Letterの文字は対応するUC Letterの文字で代替し,LCNMSTRT又はLCNMCHARの文字は

対応するUCNMSTRT又はUCNMCHARの文字で代替する。 

(b) NO 

大文字への代替を行わない。 

名前文字の大文字は,その小文字と同じであってもよい。 

LCNMCHAR,UCNMCHAR,LCNMSTRT又はUCNMSTRTに加える文字は,LC Letter,UC Letter,Digit,

RE,RS,SPACE又はSEPCHARであってはならない。 

LCNMCHAR又はUCNMCHARに加えた文字は,LCNMSTRT又はUCNMSTRTに加えてはならない。 

LCNMCHARの文字の個数とUCNMCHARの文字の個数とは,同じでなければならない。LCNMSTRT

の文字の個数とUCNMSTRTの文字の個数とは,同じでなければならない。 

12.4.6 区切り子集合 

区切り子集合 = “DELIM”, 

ps+,一般区切り子,ps+,短縮参照区切り子 

−(190)

区切り子又は文脈依存区切り子は,他の区切り子及び同じ認知様相で認知できる文脈依存区切り子とそ

の文字列が違っていなければならない。 

備考 認知様相CXTでは,別の区切り子機能が同じ文字列になっていてもよい。ただし,それらの文

脈依存区切り子が一意に認知できなければならない。 

名前開始文字又はDigitを区切り子の文字列の中に使うことは推奨しない。 

64 

X 4151-1992  

12.4.6.1 一般区切り子 

一般区切り子 = “GENERAL”,ps+, “SGMLREF”, 

(ps+,名前,ps+,引数表記)* 

−(191)

一般区切り子の中に指定する名前は,表3での一般区切り子の名前でなければならない。この一般区切

り子機能に,その引数表記を解釈して得た文字列を割り当てる。 

一般区切り子の中に指定しなかった一般区切り子機能には,規格参照区切り子集合での文字列を割り当

てる。 

備考 見出し語 “SGMLREF” は,文脈上必すである(したがって,冗長である。)が,これはSGML

宣言を読む人間に対するこの規則の備忘となっている。 

一般区切り子は,機能文字ばかりでできていてはならない。一般区切り子の中に機能文字を混在させる

ことは,禁止していないが,推奨しない。 

12.4.6.2 短縮参照区切り子 

短縮参照区切り子 = “SHORTREF”, 

ps+, (“SGMLREF” | “NONE”), 

(ps+,引数表記)* 

−(192)

短縮参照区切り子での見出し語の意味は,次の(1)〜(2)のとおりとする。 

(1) SGMLREF 

この区切り子集合には,規格参照区切り子集合での短縮参照区切り子をそのまま取り

込む。 

(2) NONE 

この区切り子集合には,その引数表記で指定する短縮参照区切り子だけをおく。 

短縮参照区切り子は,その引数表記を解釈して得た文字列を具象構文での短縮参照区切り子として割り

当てる。 

短縮参照区切り子の引数表記は,B列を1個含んでいてもよい。ただし,そのB列は,空白列又は空白

列の一部となり得る文字への参照に隣接していてはならない。 

2文字以上の短縮参照区切り子は,その文字列が広く使われている打けん上の規則又は符号化列でない

限り,推奨しない。 

また,次の(3)〜(4)の短縮参照区切り子も,推奨しない。 

(3) 区切り子又は認知様相CONでの文脈依存区切り子の全部又はその先頭部分となっている文字列。 

(4) 無視されることになる区切り子であるかのような,誤った印象を与える文字列。 

備考 この要件に関しては,実体への対応付けがない短縮参照でも区切り子として認知を受けること

に注意すること。したがって,その文字列の一部に一般区切り子があったとしても,その一般

区切り子が認知を受けることはない。 

12.4.7 予約名使用 

予約名使用 = “NAMES”,ps+, “SGMLREF”, 

(ps+,名前,ps+,名前)* 

−(193) 

予約名使用の名前の対は,具象構文の中で,その第1の名前(規格参照予約名でなければならない。)を

その第2の名前で置き換えることを指定する。 

備考 SGML宣言では常に規格参照具象構文を使うから,SGML宣言の中だけで使う名前,例えば,

区切り子機能の名前,量の名前,容量値の名前などは,置き換えることができない。 

予約名使用で置き換える名前を指定しなかった予約名は,規格参照予約名そのままとする。 

備考 見出し語 “SGMLREF” は,文脈上必すである(したがって,冗長である。)が,これはSGML

background image

65 

X 4151-1992  

宣言を読む人間に対するこの規則の備忘となっている。 

規格参照予約名を置き換える名前は,他の規格参照予約名又は他の置換えに割り当てた名前であっては

ならない。 

12.4.8 量集合 

量集合 =

 “QUANTITY”,ps+,“SGMLREF”, 

(ps+,名前,ps+,数)* 

−(194) 

量集合の中に指定する名前は,表6に示す量の名前でなければならない。その名前の量の値として,指

定した数が表す値を割り当てる。 

量集合で割り当てなかった量の値は,規格参照量集合での値を割り当てる。規格参照量集合での値は,

表6のとおりとする。 

備考 見出し語 “SGMLREF” は,文脈上必すである(したがって,冗長である。)が,これはSGML

宣言を読む人間に対するこの規則の備忘となっている。 

表6 規格参照量集合 

名前 

値 

性質 

ATTCNT 

40 

要素の属性定義の中の名前・名前字句 

ATTSPLEN 

960 

開始タグの属性指定の正規の長さ 

BSEQLEN 

960 

短縮参照列の中の空白列の長さ 

DTAGLEN 

16 

データタグの長さ 

DTEMPLEN 

16 

データタグ形式・データタグひな形の長さ(区切り子を除く。) 

ENTLVL 

16 

実体の入れ子の深さ(一番外のものは数えない。) 

GRPCNT 

32 

群の中の字句の個数 

GRPGTCNT 

96 

モデル群の中の字句の総個数 

GRPLVL 

16 

モデル群の入れ子の深さ(一番外のものも数える。) 

LITLEN 

240 

表記の長さ(区切り子を除く。) 

NAMELEN 

名前・名前字句・数などの長さ 

NORMSEP 

正規の長さの計算の際に分離子を数えるのに使う。 

PILEN 

240 

処理指令の長さ(区切り子を除く。) 

TAGLEN 

960 

開始タグの長さ(区切り子を除く。) 

TAGLVL 

24 

開いている要素の入れ子の深さ 

12.5 機構使用 

機構使用 = “FEATURES”, 

ps+,マーク最小化機構 

ps+,連結型機構, 

ps+,他機構 

−(195)

12.5.1 マーク最小化機構 

マーク最小化機構 = “MINIMIZE”,  

ps+, “DATATAG”,  

ps+, (“NO” | “YES”), 

ps+, “OMITTAG”,  

ps+, (“NO” | “YES”), 

ps+, “RANK”,  

ps+, (“NO” | “YES”), 

ps+, “SHORTTAG”,  

ps+, (“NO” | “YES”), 

−(196)

マーク最小化機構での見出し語の意味は,次のとおりとする。 

(1) NO   

その機構を使わないこと。 

(2) YES  

その機構を使うこと。 

66 

X 4151-1992  

(3) DATATAG 

データ文字の列が同時にタグの働きをもつ機構。 

(4) OMITTAG 

タグ省略の機構。 

(5) RANK 

要素の付番を省略する機構。 

(6) SHORTTAG 区切り子の省略,属性指定又は共通識別子を使った短縮タグ機構。 

備考 短縮参照の使用は, “SHORTREF” 引数で指定し,マーク最小化機構には指定しない。 

12.5.2 連結型機構 

連結型機構 = “LINK”,  

ps+, “SIMPLE”,  

ps+, (“NO” | (“YES”, ps+, 数)),  

ps+, “IMPLICIT”, ps+, (“NO” | “YES”),  

ps+, “EXPLICIT”,  

ps+, (“NO” |(“YES”, ps+, 数)) 

−(197) 

連結型機構での見出し語の意味は,次のとおりとする。 

(1) NO 

その機構を使わないこと。 

(2) YES 

その機構を使うこと。 

(3) SIMPLE 

単純連結の機構。その “YES” の後ろに指定した数は,同時に活性状態になり得る要素の

個数(1以上)を指定する。 

(4) IMPLICIT 暗黙連結の機構。 

(5) EXPLICIT 明示連結の機構。その “YES” の後ろに指定した数は,連結処理の最長の連鎖の長さを指

定する。 

12.5.3 他機構 

他機構 = “OTHER”,  

ps+, “CONCUR”,  

ps+, (“NO” | (“YES”, ps+, 数)),  

ps+, “SUBDOC”,  

ps+, (“NO” | (“YES”, ps+, 数)),  

ps+, “FORMAL”, ps+, (“NO” | “YES”)  

−(198) 

他機構での見出し語の意味は,次のとおりとする。 

(1) NO 

その機構を使わないこと。 

(2) YES 

その機構を使うこと。 

(3) CONCUR 基本文書型の実現値のほかに,同時に複数の文書型の実現値が存在し得る機構。その 

“YES” の後ろに指定した数は,その最大の個数(1以上)を指定する。 

(4) SUBDOC 

同時に複数のSGML部分文書実体が開いておける機構。その “YES” の後ろに指定した数

は,その最大の個数(1以上)を指定する。 

(5) FORMAL 公開識別子を公的公開識別子として解釈する機構。 

12.6 応用特有情報 

応用特有情報 = “APPINFO”,  

ps+,(“NONE” |最小表記) 

−(199)

応用特有情報での見出し語 “NONE” は,応用に特有の情報の指定がないことを示す。 

応用特有情報の最小表記は,その文書に適用する,応用に特有の情報を指定する。 

67 

X 4151-1992  

13. 規格参照具象構文・核具象構文 規格参照具象構文は,表7に示すSGML宣言の具象構文引数で指定

するとおりとする。その公開識別子は,次のとおりとする。 

“ISO 8879-1986//SYNTAX Reference//EN”  

表7 規格参照具象構文 

SYNTAX 

SHUNCHAR CONTROLS 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 
18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 255 

BASESET 

“ISO 646-1983//CHARSET 

International Reference Version (IRV) //ESC 2/5 4/0” 

DESCSET 

0 128 0 

FUNCTION 

RE 

13 

RS 

10 

SPACE 

32 

TAB SEPCHAR 

 9 

NAMING 

LCNMSTRT ” ”  

UCNMSTRT ” ”  

LCNMCHAR ”−.”  

−−英小文字ハイフン,ピリオドは−− 

UCNMCHAR ”−.” 

−−英大文字 (45 46) と同じである−− 

NAMECASE GENERAL 

YES 

ENTITY 

NO 

DELIM 

GENERAL 

SGMLREF 

SHORTREF 

SGMLREF 

NAMES 

SGMLREF 

QUANTITY 

SGMLREF 

備考 ここでは,注釈の部分もISO 646で規定する文字だけを使用すべきであるが,読者の理解を助

けるため,JIS X 0208の文字も使用した。 

核具象構文は,規格参照具象構文での “SHORTREF” 引数の指定を “NONE” に変えて得られる具象構

文とする。その公開識別子は,次のとおりとする。 

“ISO 8879-1986//SYNTAX Core//EN”  

備考 この規格参照具象構文での構文参照文字集合は,IS0 646のIRVとなっている。この文字集合

の文字は,0〜127の文字番号をもち,ISO 4873及びISO 6937の文字とも対応している。この

文字集合を選定したのは,規格参照具象構文での重要なSGML文字をすべて含んだ標準の文字

集合の中で最も単純であることによる。この選定は,文書文字集合の選定を制限するものでは

ないし,その文字の総数を制限するものでもない。 

14. 適合 

14.1 適合SGML文書 この規格のすべてに従ったSGML文書を,適合SGML文書という。 

14.1.1 基本SGML文書 適合SGML文書であって,その全体にわたって規格参照具象構文を使い,規格

参照容量集合を使っていて,しかもSHORTTAG及びOMITTAGの機構使用だけを行っている文書を,基

本SGML文書という。 

備考 基本SGML文書に対する典型的なSGML宣言を,表8及び表9に示す。基本SGML文書どう

しでは,その文書文字集合引数が違い得るだけである。 

表8 基本SGML文書に対するSGML宣言の例 

68 

X 4151-1992  

<!SGML “ISO 8879-1986”  

−−この文書は,基本SGML文書である。−− 

CHARSET 

−−8ビット文書文字集合−− 

−−最初の128文字は,構文参照文字集合と同じである。−− 

BASESET  

”ISO 646-1983//CHARSET 
International Reference Version (IRV) //ESC2/5 4/0”  

DESCSET 

9 UNUSED 

2 9 

11 

2 UNUSED 

13 

1 13 

14 

18 UNUSED 

32 

95 32 

127 

1 UNUSED 

BASESET 

“ISO Resistration Number 109//CHARSET 
ECMA-94 Right Part of Lation Alphabet Nr.3//ESC 2/9 4/3”  

DESCSET 

128 

32 UNUSED 

160 

5 32 

165 

1 ”SGML Userʼs Group logo”  

166 

88 38 

−−NONSGMLに対する5個のunusedを含む−− 

254 

1 127 

−−127の未使用位置に動かす−− 

255 

1 UNUSED 

−−255は,回避文字とする−− 

CAPACITY 

PUBLIC ”ISO 8879-1986//CAPACITY Reference//EN”  

SCOPE 

DOCUMENT 

SYNTAX 

PUBLIC ”ISO 8879-1986//SYNTAX Reference//EN”  

FEATURES 

MINIMIZE 

DATATAG NO 

OMITTAG YES RANK 

NO SHORTTAG YES 

LINK 

SIMPLE 

NO 

IMPLICIT NO 

EXPLICIT NO 

OTHER 

CONCUR  NO 

SUBDOC 

NO 

FORMAL 

NO 

APPINFO NONE> 

備考 ここでは,注釈の部分もISO 646で規定する文字だけを使用するべきであるが,読者の理解を

助けるため,JIS X 0208の文字も使用した。 

表9 基本SGML文書に対する日本語SGML宣言の例 

<!SGML ”ISO 8879-1986”  

−−この文書は,基本SGML文書である。−− 

CHARSET 

−−8ビット文書文字集合−− 

−−最初の128文字は,構文参照文字集合と同じである。−− 

BASESET 

”ISO 646-1983//CHARSET 

International Reference Version (IRV) //ESC 2/5 4/0” 

DESCSET 

9 UNUSED 

2 9 

11 

2 UNUSED 

13 

1 13 

14 

18 UNUSED 

32 

95 32 

127 

1 UNUSED 

BASESET 

”ISO Resistration Number 87//CHARSET 

background image

69 

X 4151-1992  

JIS X 0208//ESC 2/6 4/0 ESC 2/4 2/9 4/2” 

−−JIS X 0208の文字をG1集合に指示し,列10−15に呼び出す。−− 

DESCSET 

128 

41249 UNUSED 

41377 

94 8481 

−−2121−− 

41471 

162 UNUSED 

41633 

14 8737 

−−2221−− 

41647 

11 UNUSED 

41658 

8 8762 

−−223a−− 

41666 

8 UNUSED 

41674 

7 8778 

−−224a−− 

41681 

11 UNUSED 

41692 

15 8796 

−−225c−− 

41707 

7 UNUSED 

41714 

8 8818 

−−2272−− 

41722 

4 UNUSED 

41726 

1 8830 

−−227e−− 

41727 

177 UNUSED 

41904 

10 9008 

−−2330−− 

41914 

7 UNUSED 

41921 

26 9025 

−−2341−− 

41947 

6 UNUSED 

41953 

26 9057 

−−2361−̲ 

41979 

166 UNUSED 

42145 

83 9249 

−−2421−− 

42228 

173 UNUSED 

42401 

86 9505 

−−2521−− 

42487 

170 UNUSED 

42657 

24 9761 

−−2621−− 

42681 

8 UNUSED 

42689 

24 9793 

−−2641−− 

42713 

200 UNUSED 

42913 

33 10017 

−−2721−− 

42946 

15 UNUSED 

42961 

33 10065 

−−2751−− 

42994 

175 UNUSED 

43169 

32 10273 

−−2821−− 

43201 

2016 UNUSED 

45217 

94 12321 

−−3021−− 

45311 

162 UNUSED 

45473 

94 12577 

−−3121−− 

45567 

162 UNUSED 

45729 

94 12833 

−−3221−− 

45823 

162 UNUSED 

45985 

94 13089 

−−3321−− 

46079 

162 UNUSED 

46241 

94 13345 

−−3421−− 

46335 

162 UNUSED 

46497 

94 13601 

−−3521−− 

46591 

162 UNUSED 

46753 

94 13857 

−−3621−− 

46847 

162 UNUSED 

47009 

94 14113 

−−3721−− 

background image

70 

X 4151-1992  

47103 

162 UNUSED 

47265 

94 14369 

−−3821−− 

47359 

162 UNUSED 

47521 

94 14625 

−−3921−− 

47615 

162 UNUSED 

47777 

94 14881 

−−3a21−− 

47871 

162 UNUSED 

48033 

94 15137 

−−3b21−− 

48127 

162 UNUSED 

48289 

94 15393 

−−3c21−− 

48383 

162 UNUSED 

48545 

94 15649 

−−3d21−− 

48639 

162 UNUSED 

48801 

94 15905 

−−3e21−− 

48895 

162 UNUSED 

49057 

94 16161 

−−3f21−− 

49151 

162 UNUSED 

49313 

94 16417 

−−4021−− 

49407 

162 UNUSED 

49569 

94 16673 

−−4121−− 

49663 

162 UNUSED 

49825 

94 16929 

−−4221−− 

49919 

162 UNUSED 

50081 

94 17185 

−−4321−− 

50175 

162 UNUSED 

50337 

94 17441 

−−4421−− 

50431 

162 UNUSED 

50593 

94 17697 

−−4521−− 

50687 

162 UNUSED 

50849 

94 17953 

−−4621−− 

50943 

162 UNUSED 

51105 

94 18209 

−−4721−− 

51199 

162 UNUSED 

51361 

94 18465 

−−4821−− 

51455 

162 UNUSED 

51617 

94 18721 

−−4921−− 

51711 

162 UNUSED 

51873 

94 18977 

−−4a21−− 

51967 

162 UNUSED 

52129 

94 19233 

−−4b21−− 

52223 

162 UNUSED 

52385 

94 19489 

−−4c21−− 

52479 

162 UNUSED 

52641 

94 19745 

−−4d21−− 

52735 

162 UNUSED 

52897 

94 20001 

−−4e21−− 

52991 

162 UNUSED 

53153 

51 20257 

−−4f21−− 

53204 

205 UNUSED 

53409 

94 20513 

−−5021−− 

53503 

162 UNUSED 

53665 

94 20769 

−−5121−− 

background image

71 

X 4151-1992  

53759 

162 UNUSED 

53921 

94 21025 

−−5221−− 

54015 

162 UNUSED 

54177 

94 21281 

−−5321−− 

54271 

162 UNUSED 

54433 

94 21537 

−−5421−− 

54527 

162 UNUSED 

54689 

94 21793 

−−5521−− 

54783 

162 UNUSED 

54945 

94 22049 

−−5621−− 

55039 

162 UNUSED 

55201 

94 22305 

−−5721−− 

55295 

162 UNUSED 

55457 

94 22561 

−−5821−− 

55551 

162 UNUSED 

55713 

94 22817 

−−5921−− 

55807 

162 UNUSED 

55969 

94 23073 

−−6a21−− 

56063 

162 UNUSED 

56225 

4 23329 

−−5b21−− 

56319 

162 UNUSED 

56481 

94 23585 

−−5c21−− 

56575 

162 UNUSED 

56737 

94 23841 

−−5d21−− 

56831 

162 UNUSED 

56993 

94 24097 

−−5e21−− 

57087 

162 UNUSED 

57249 

94 24353 

−−5f21−− 

57343 

162 UNUSED 

57505 

94 24609 

−−6021−− 

57599 

162 UNUSED 

57761 

94 24865 

−−6121−− 

57855 

162 UNUSED 

58017 

94 25121 

−−6221−− 

58111 

162 UNUSED 

58273 

94 25377 

−−6321−− 

58367 

162 UNUSED 

58529 

94 25633 

−−6421−− 

58623 

162 UNUSED 

58785 

94 25889 

−−6521−− 

58879 

162 UNUSED 

59041 

94 26145 

−−6621−− 

59135 

162 UNUSED 

59297 

94 26401 

−−6721−− 

59391 

162 UNUSED 

59553 

94 26657 

−−6821−− 

59647 

162 UNUSED 

59809 

94 26913 

−−6921−− 

59903 

162 UNUSED 

60065 

94 27169 

−−6a21−− 

60159 

162 UNUSED 

60321 

94 27425 

−−6b21−− 

background image

72 

X 4151-1992  

60415 

162 UNUSED 

60577 

94 27681 

−−6c21−− 

60671 

162 UNUSED 

60833 

94 27937 

−−6d21−− 

60927 

162 UNUSED 

61089 

94 28193 

−−6e21−− 

61183 

162 UNUSED 

61345 

94 28449 

−−6f21−− 

61439 

162 UNUSED 

61601 

94 28705 

−−7021−− 

61695 

162 UNUSED 

61857 

94 28961 

−−7121−− 

61951 

162 UNUSED 

62113 

94 29217 

−−7221−− 

62207 

162 UNUSED 

62369 

94 29473 

−−7321−− 

62463 

162 UNUSED 

62625 

6 29731 

−−7421−− 

62631 

2905 UNUSED 

CAPACITY 

PUBLIC ”ISO 8879-1986//CAPACITY Reference//EN”  

SCOPE 

DOCUMENT 

SYNTAX 

PUBLIC ”ISO 8879-1986//SYNTAX Reference//EN”  

FEATURES 

MINIMIZE 

DATATAG NO OMITTAG YES RANK NO SHORTTAG YES 

LINK 

SIMPLE 

NO 

IMPLICIT NO 

EXPLICIT NO 

OTHER 

CONCUR NO 

SUBDOC 

NO 

FORMAL  NO 

APPINFO NONE> 

備考1. ここでは,注釈の部分もISO 646で規定する文字だけを使用すべきであるが,読者の理解を

助けるため,JIS X 0208の文字を使用した。 

2. 漢字符号の94文字と94文字の間にunused区域が存在するのは,0016〜1F16までの区間及び

7F16に図形文字を割り当てない性質による。 

14.1.2 最小SGML文書 適合SGML文書であって,その全体にわたって規格参照具象構文を使い,規格

参照容量集合を使っていて,しかも機構使用を行っていない文書を,最小SGML文書という。 

14.1.3 変形適合SGML文書 適合SGML文書であって,変形具象構文を使っている文書を,変形適合

SGML文書という。 

14.2 適合SGML応用 14.2.1〜14.2.3の要件を満たすSGML応用を,適合SGML応用という。 

14.2.1 応用規則 適合SGML応用の応用規則は,この規格が応用に委ねた事項だけに関与するものでな

ければならない。 

備考 例えば,要素及び実体についての命名の方法,構文参照文字集合にないデータ文字を直接に書

くことを禁じて文字参照として書くように要求した内容に関する規則など。 

14.2.2 文書の適合性 適合SGML応用は,その扱う文書について,適合SGML文書となっていることを

要求しなければならず,この規格が適合SGML文書に許容するどんなマークも禁止してはならない。 

備考 例えば,応用規則を設けて,特定の最小化機構だけを使うことを推奨しても差し支えないが,

この規格が許容する他の機構を禁止してはならない。 

73 

X 4151-1992  

14.2.3 文書提供の適合性 適合SGML応用は,文書提供に関して,この規格が規定する要件(14.5参照)

を満たしていなければならない。 

14.3 適合SGMLシステム 14.3.1〜14.3.6の要件を満たすSGMLシステムを,適合SGMLシステムとい

う。 

備考 適合SGMLシステムは,最小SGML文書が処理できるSGMLシステムとなる。 

14.3.1 文書提供の適合性 適合SGMLシステムは,文書提供に関して,この規格が規定する要件(14.5

参照)を満たしていなければならない。 

14.3.2 システム宣言の適合性 適合SGMLシステムは,そのシステムでのシステム宣言(14.6参照)と

矛盾しない限り,どんな適合SGML文書も処理できなければならない。 

備考 この規格はデータ内容記法やシステムデータの具体的なものを規定していないから,そのシス

テムがこれらを処理できなかったとしても,システムの適合性には影響しない。 

14.3.3 規格参照具象構文での処理 適合SGMLシステムは,そのシステムが用意する変形具象構文に加

えて,規格参照具象構文で書いた文書の構文解析ができなければならない。 

備考 この要件を満たすには,受け取った規格参照具象構文での文書をそのシステムでの具象構文に

変換してしまうことにするのでもよい。 

適合SGMLシステムは,SGML文書を生成したり修正したりできる場合,規格参照具象構文でのSGML

文書も生成したり修正したりできなければならない。 

備考 この要件を満たすには,文書を他に送るときにそのシステムでの具象構文から規格参照具象構

文に変換してしまうことにするのでもよい。 

適合SGMLシステムは,利用者がSGMLマークを編集できるようにしている場合,規格参照具象構文

でのSGMLマークも編集できるようにしておかなければならない。 

短縮参照機構を提供していない適合SGMLシステムでは,14.3.3での“規格参照具象構文”を“核具象

構文”に読み替えてもよい。 

備考1. この要件を満たすには,規格参照具象構文を処理する別のプログラム又はモジュールを提供

するだけでもよい。 

2. 14.3.3の要件は,文書交換を規格参照具象構文に限定するものではない。文書交換は,変形

具象構文によっても可能である。 

14.3.4 規格参照容量集合での処理 適合SGMLシステムは,規格参照容量集合での容量値以下に収まっ

ている文書を構文解析することができなければならない。さらに,SGML文書が生成できるのであれば,

規格参照容量集合での容量値以下に収まるSGML文書も生成できなければならない。 

14.3.5 構文解析の一貫性 適合SGMLシステムは,文書を操作する応用及び処理に関係なく,同じ文書

をいつも同じに構文解析しなければならない。 

備考1. 応用プログラムは,正規のインタフェースを介してSGML構文解析系を使い,その構文解析

の状態に影響を与えられないようにしておくことが望ましい。例えば,文を生成して,それ

をあたかも元の文書の一部であったかのように構文解析させることは,できないようにして

おくことが望ましい。応用開発者に対して提供する文書では,この要件に留意することが望

ましい。 

2. この要件から,システムの適合性を検査するのに,すべての応用について試してみる必要が

なくなる。 

74 

X 4151-1992  

14.3.6 応用規則 適合システムは,その応用規則をあたかもこの規格の要求であるかのように強制しては

ならない。 

備考 応用規則に違反しているときに警告を出しても差し支えないが,その警告は,マークの誤りに

対する報告とは区別できるものでなければならない。 

14.4 SGML検定構文解析系 適合SGMLシステムのSGML構文解析系であって,14.4.1〜14.4.3の要件

を満たすものを,SGML検定構文解析系という。 

備考 適合SGMLシステムにSGML検定構文解析系がなくてもよい。したがって,そのシステムで

検定を行うだけの余分な労力をかけるかどうかは,処理系作成者が判断すればよい。例えば,

SGML文書の検定又は整形ができる編集システムをもっている利用者にとっては,清書システ

ムでその文書を処理する際に検定ができる必要がない。 

14.4.1 誤りの検出 SGML検定構文解析系は,報告可能マーク誤りを検出してそれに対する報告を出すこ

とができなければならず,誤りがないときに報告を出してはならない。 

SGML検定構文解析系は,選択によって,その他の報告を出してもよい。 

備考 この規格は,マークの誤りに対して,その報告についての要件をどう処置するかを規定しない。

特に,誤りのあった文をデータとして扱うべきかどうか,誤りを見つけた後も処理を続けるべ

きかどうかについて,何も規定していない。 

SGML検定構文解析系は,誤りの可能性のある状態を警告するが,誤りとしなくてもよい。 

例 モデル群中の選択字句である共通識別子が宣言されていない場合,文書中でその要素が出現すれ

ば,誤りとする。 

14.4.2 SGML報告 SGMLマークの誤りに対する報告を,誤りが生じる可能性を検出したときの警告を

含めて,SGML報告という。SGML報告は,そのシステムが出す他の報告と明確に区別できるものでなけ

ればならない。 

14.4.3 SGML報告の内容 SGMLマークの誤りに対する報告は,この規格で許容する報告を含めて,そ

の誤りが訂正できるに足る位置の情報及び種別の情報を述べていなければならない。 

備考 この要件は,処理系作成者に,その利用者及びシステムからの要求に答えられるだけの最大の

自由度を残している。詳しくは,参考7を参照のこと。 

14.5 文書提供 この規格は,SGML文書が特定の応用又は構文解析系に依存することなく規格に合致し

ていることにそのすべての階層の利用者が注意を払うとき,初めてその目的を達することができる。適合

SGMLシステム及び適合SGML応用が提供する文書は,この注意を促すものでなければならない。 

備考 この要件は,利用者がSGMLシステムから得た知見を他のSGMLシステムにも適用できるよ

うにすることを意図したものであって,親しみやすく読みやすいSGML文書の作成を阻害する

ものではない。 

14.5.1 規格表示 提供する文書には,次の規格表示を行っておかなければならない。 

規格表示は,次の(1)〜(3)に対して,明確に行っておかなければならない。 

(1) 提供するすべての文書の表書き(通常は,表紙及び扉)の目立つ場所。 

(2) プログラムの名称を表示する画面。 

(3) その他,宣伝材,教材など。 

応用での規格表示は,次のとおりとする。 

An SGML Application Conforming to 

International Standard ISO 8879−− 

75 

X 4151-1992  

Standard Generalized Markup Language 

システムでの規格表示は,次のとおりとする。 

An SGML System Conforming to 

International Standard ISO 8879−− 

Standard Generalized Markup Language 

適合SGMLシステムは,そのシステム宣言(14.6参照)を文書として提供しなければならない。 

14.5.2 SGML構成要素の表示 提供する文書では,SGML構成要素と応用規則及びシステム機能とを明

確に区別し,SGML構成要素がこの規格によるものであることを明確に表示しておかなければならない。 

備考 この要件は,すべてのSGMLシステムに共通する構成要素と,そのシステム特有の構成要素と

を,利用者に意識させることを意図している。これによって,SGMLの経験者は,短い学習時

間で新しいシステムや応用に対処することができる。 

提供するSGML構成要素については,そのシステム又は応用でその仕様を文書として提供しない限り,

その仕様としてこの規格を引用しておかなければならない。例えば,物事を簡単にするため,特定の機構

についてその一部だけを提供する(例えば,実体宣言での選択項目を制限する。)としたら,その他の選択

項目はこの規格のとおりに使うことができることを明確に述べておかなければならない。 

14.5.3 用語 すべてのSGML構成要素は,この規格の用語を使って記述しなければならない。 

提供するすべての文書は,この規格での用語を使って記述することが望ましい。そうできない場合でも,

用語は,明確に定義した上で使わなければならないし,提供していない構成要素及びその文書で使ってい

ない構成要素であっても,この規格での用語に抵触してはならない。 

14.5.4 変形具象構文 提供する文書に変形具象構文を使うときは,その旨を明確にしておかなければなら

ないし,その変形具象構文の規則がSGMLそのものであるとしてはならない。 

14.6 システム宣言 

システム宣言 =mdo, “SYSTEM”, 

ps+,最小表記, 

ps+,文書文字集合, 

ps+,容量集合, 

ps+,機構使用, 

ps+,具象構文範囲, 

ps+,提供具象構文, 

ps+,検定能力, 

ps+,SDIF能力, 

ps*,mdc 

−(200)

システム宣言は,そこに使う具象構文及びデータ文字について,SGML宣言と同じ構文上の要件を満た

していなければならない。 

システム宣言の最小表記の最小データは,次のとおりとする。 

ISO 8879-1986 

システム宣言の文書文字集合は,SGML宣言の場合と同様の方法で指定しなければならない。ただし,

文書についての文書文字集合ではなく,そのシステムの文書文字集合を指定しなければならない。システ

ム宣言の文書文字集合は,その提供具象構文引数に記述するすべての具象構文でのすべての重要なSGML

文字に対して,単一のビット組合せの符号化表現を含んでいなければならない。 

76 

X 4151-1992  

システム宣言の容量集合引数は,SGML宣言の場合と同様の方法で指定しなければならない。ただし,

文書についての容量要求ではなく,そのシステムの容量値を指定しなければならない。 

システム宣言の機構使用引数は,SGML宣言の場合と同様の方法で指定しなければならない。ただし,

文書が使っている機構ではなく,そのシステムが提供する機構を指定しなければならない。 

システム宣言の具象構文範囲引数は,SGML宣言の場合と同様の方法で指定しなければならない。ただ

し,文書が二つの具象構文を使っていることを示すのではなく,そのシステムで二つの具象構文が使える

ことを示すものでなければならない。 

備考 システム宣言には,そのシステムが処理できるシステムデータの形式やそのデータ内容記法を

注釈として書いておくことが望ましい。 

14.6.1 提供具象構文 この引数は,そのシステムのSGML構文解析系が構文解析することのできる具象

構文又はその許容する変更点を指定する。 

提供具象構文 =(ps+,具象構文, 

(ps+,具象構文変更点)?)+ 

−(201)

提供具象構文の具象構文引数は,SGML宣言の場合と同様で,必ず指定しなければならず,構文解析で

きるそれぞれの具象構文について指定しなければならない。その指定する具象構文の一つとして,どんな

具象構文に対しても短縮参照を許容するならば規格参照具象構文を,そうでなければ核具象構文を含まな

ければならない。 

14.6.1.1 具象構文変更点 この引数は,そのシステムが提供する具象構文に若干の変更を加えた具象構文

のうち,そのシステムが構文解析することができるものを指定する。 

具象構文変更点 = “CHANGES”,ps+,  

(“SWITCHES” | 

(“DELIMLEN”,ps+,数,ps+, 

“SEQUENCE”,ps+,(“YES” | “NO”),ps+, 

“SRCNT”,ps+,数,ps+, 

“SRLEN”,ps+,数)) 

−(202)

具象構文変更点での見出し語の意味は,次の(1)〜(5)のとおりとする。 

(1) SWITCHES SGML宣言の “SWITCHES” 引数で指定することができる変更を許容する。 

(2) DELIMLEN 一般区切り子機能に対して,その後ろに指定した数の値(1以上とする。)以下の長さ

の文字列を割り当ててもよい。 

(3) SEQUENCE 短縮参照区切り子の中に空白列があってもよい。 “YES” の場合には,短縮参照区切り

子の中の空白列を長さ1の文字列として扱う。 

(4) SRCNT 

短縮参照区切り子に,その後ろに指定した数の値(0以上とする。)以下の長さの文字

列を割り当ててもよい。 

(5) SRLEN 

新たに短縮参照区切り子に割り当てる文字列の長さが,その後ろに指定した数の値(1

以上とする。)以下でなければならない。 

14.6.2 検定能力 検定能力引数は,そのシステムにSGML検定構文解析系があるかどうかを指定し,更

に,この規格で任意選択としている検定能力についてどれを備えているのかを指定する。 

検定能力 = “VALIDATE”, 

ps+, “GENERAL”, 

ps+, (“NO” | “YES”), 

ps+, “MODEL”, ps+, (“NO” | “YES”),  

77 

X 4151-1992  

ps+, “EXCLUDE”, 

ps+, (“NO” | “YES”), 

ps+, “CAPACITY”, 

ps+, (“NO” | “YES”), 

ps+, “NONSGML”, 

ps+, (“NO” | “YES”), 

ps+, “SGML”, 

ps+, (“NO” | “YES”), 

ps+, “FORMAL”, 

ps+, (“NO” | “YES”)  

−(203)

検定能力での見出し語の意味は,次の(1)〜(9)のとおりとする。 

(1) NO 

その検定能力を備えていないこと。 

(2) YES 

その検定能力を備えていること。 

(3) GENERAL 

マークの誤りを検出し報告する能力。 

(4) MODEL 

あいまいな内容モデルを報告する能力。 

(5) EXCLUDE 

内容モデルについて,字句が文脈上必すであるか任意選択であるかを変えてしまう排除

要素の指定を報告する能力。 

(6) CAPACITY 容量についての超過を報告する能力。 

(7) NONSGML 

非SGML文字が一つでもあったとき,それを報告する能力。 

(8) SGML 

SGML宣言の中での誤りを報告する能力。 

(9) FORMAL 

公的公開識別子の誤りを報告する能力。 

14.6.3 SDIF能力 SDIF能力引数は,そのシステムがISO 9069によるSGML文書交換様式 (SDIF) に従

った文書の交換能力を備えているかどうかを指定する。 

SDIF能力 = “SDIF”,  

ps+, “PACK”,  

ps+, (“NO” | (“YES”, (ps+, “ASN1”) ?)), 

ps+, “UNPACK”,  ps+, (“NO” | (“YES”, (ps+, “ASN1”) ?)) 

−(204)

SDIF能力での見出し語の意味は,次の(1)〜(5)のとおりとする。 

(1) NO   

そのSDIFの能力を備えていないこと。 

(2) YES  

そのSDIFの能力を備えていること。 

(3) PACK 

一つ又は複数の実体からSDIFでのデータ流を生成する能力。 

(4) UNPACK 

SDIFでのデータ流からその実体を復元する能力。 

(5) ASNI 

JIS X 5604によるASN.1基本符号化規則に従った能力。 

78 

X 4151-1992  

参考1 SGMLの背景 

この参考は,対応国際規格では本体の初めの導入部に相当するが,JISではこれを参考にした。これは,

規定の一部ではない。 

1. 序文 ここでは,文書記述言語SGMLの概要を示す。SGMLは,単一の表現媒体による従来の出版か

ら多表現媒体を使用したデータベース出版までの広義の出版に用いられる。さらに,その文書が人間に読

める利点を用いたい場合や,出版システムとの交換が必要となる場合には,通常の文書処理においても

SGMLが使われる。 

2. 背景 文書は,各種の要素から成る構造物として抽象的にとらえることができる。例えば,書籍の著

者は,その書籍を段落を含む章及び図見出しを含む図とで構成する。一方その書籍の編集者は,語などを

含む章からなる記述で,書籍を構成する。処理系は,種々の方法で文書の要素を扱う。書式付け処理は,

表題を目立った書体で印字し,段落の間に間隔をつけ,その他視覚的に文書構造及び他の属性とを読者に

伝える。情報検索処理系は,辞書の生成に際して表題中の語に特別な意味(検索属性)を与える。 

文書属性とその処理との関係は,現在では明らかであるが,初期の文書処理方式ではあいまいであるこ

とが多かった。自動植字を行う以前には,編集者が原稿に特定処理指令“マーク”を付け,その指令の実

行に際して植字工が必要な書式を生成していた。指示と文書構造との関係は,全く編集者の頭脳の中にあ

るだけであった。 

初期の計算機化したシステムは,この方式を踏襲し,機械で読める文書ファイルに対して処理固有の“マ

ーク”を施した。そのマークは,まだ特定の処理指令から構成されていたが,実行する指令は植字工から

離れ,書式付けプログラムの言語の中に存在した。すべてのマークを変えなければ,そのファイルを容易

には別用途に使えず,又は別の計算機システム上での実行も不可能であった。 

利用者が高度化し,文書処理系が一層強力になると,この問題を軽減する方法が開発され,マクロ呼出

し又は書式呼出しで,文書中の処理の開始位置が指定可能になった。実際の処理指令は,文書の外の手続

き,マクロ定義又は記録書式に置かれ,そこで処理指令を容易に変更できた。 

マクロ呼出しは,文書中の任意位置に置くことができたが,それらは文書要素の始めか終わりに位置す

ることに,利用者は気付き始めた。そこで当然の結果として,特定の処理に対して付けられた名前ではな

く,要素型式の共通識別子としての名前(例えば ”format-17” ではなく,“表題”)をマクロに対して採用

し,共通符号化又は一般化したタグ付けが始まった。 

共通符号化は,文書属性及び処理の自然な関係を反映した文書処理自動化への大きな第一歩であった。

1970年始めにおける一般化マーク付けの言語の出現は,共通符号化に形式言語基盤を与え,この勢いを更

に強めた。 

3. 一般化マーク付けの言語の特徴 

3.1 

記述的マーク 文書中の一般化マークの多くは記述的マークであり,それは処理指令とは異なる。

記述的マークは,共通識別子に加え処理指令に影響を与える文書要素の他の属性を含む。処理指令は,ど

のような文書処理言語の中にも存在できるが,通常は文書外の手続きの中に処理指令を集めている。 

処理系は,原始文書ファイルの中からマークを捜し,あるマークの文書要素を見つけると,要素及びそ

79 

X 4151-1992  

の処理のための属性に関係した手続きを実行する。他の処理をする場合には,文書のマークを変えること

なく,異なった手続きを同じ要素及び属性に関係付ける。 

処理指令を直接文書内に入れる必要がある場合は,容易に見つけ別の処理のために変更可能なように,

記述的マークに区切り子を付けている。 

3.2 

文書型の形式的定義 一般化マーク付けの言語は,“文書型定義”を導入することによって,文書マ

ークを形式化している。文書型定義は,文書中の要素及び属性の出現順序を(形式文法のように)指定す

る。この情報を用いることによって個々の文書のマークの正当性(つまり,型定義に従っているか否か)

を決定し,見落としたマークを付けることができる。それは,既に存在する別のマークから,見落とした

マークを確実に推論できるからである。 

備考 共通符号化の概念及びSGMLの詳細な導入を参考2に示す。 

4. SGMLの規定内容 SGMLは,共通符号化及び一般化マーク付けの概念の適用を規格化している。

SGMLは,利用者が文書中の要素の違いをすべて記述するための一貫性のある構文を提供する。この言語

は,次の(1)〜(6)の事項を含んでいる。 

(1) 文書要素の記述的マークの“抽象構文”。 

(2) 抽象構文を特別な区切り子文字及び量に結合する規格参照具象構文。利用者は,要求に応じて規格参

照抽象構文とは別の具象構文を定義できる。 

(3) 文書型の共通識別子及び属性固有用語を定義可能にするマーク宣言。 

(4) 任意のデータ内容に関する規定。SGMLは,データ種別を規定しない。このデータは,一般文とは異

なる解釈を必要とする特別な“データ内容記法”,例えば数式,画像,非ラテン系アルファベット,書

式付きの文又は図形がある。 

(5) 別途書かれた章,規格外の文字,写真などのような文書の主要な流れの外側に位置する内容を参照す

るためのシステム外の実体参照指定の技法。 

(6) 記述的マークと処理指令とを区別するための区切り子。処理指令は,手続きでは扱えない状況に迫ら

れた場合に導入するが,文書を異なる処理系へ送る際に容易に識別でき,後で修正できる。 

5. 超言語 SGMLは,単に文書処理の必す機能を満たすだけでなく,満足のいく規格にする必要がある。

多様な環境下での利用という制約を克服するために,この言語は超言語の特性をもたせる。SGMLの制約

及びSGMLの対応手段は,次の(1)〜(9)のとおりとする。 

(1) SGMLでマークされた文書は,広範囲な文書処理系によって処理可能とする。すべての任意選択機能

を備えた完全なSGMLは,高度なシステムが利用し得る一般性及び柔軟性を提供する。一方,比較的

高度でないシステムは,必ずしもそれらの選択機能を提供する必要はない。いずれにしても,異なる

システム間での交換を容易にするため,SGML宣言には,文書中で使用するマーク機構又は具象構文

を記述する。 

(2) 既存の文章の入力装置に対応させる。規格参照具象構文をもつSGML文書は,簡単に入力でき,特定

の機械の助けを借りなくても人間に理解できる。その結果,次の(a)〜(b)の特徴をもつ。 

(a) SGMLの使用は,新しい世代のハードウェアの開発及び認知を待つ必要がない。既存の装置の上で

文書を処理するソフトウェアがあればよい。 

(b) 新しい計算機世代への移行は,既にSGMLに慣れている利用者にとって極めて容易である。 

(3) 文書は,各種の装置で入力されるため,文字集合へ非依存とする。SGMLは,特定の文字集合への依

80 

X 4151-1992  

存性はない。文字,数字,間隔及び区切り子は,どのようなビット組合せをもつ文字集合も受け入れ

る。 

(4) 処理内容,システム又は装置への依存性をもたせない。SGMLのマークは,記述的マークによるため,

それらへの依存性を本質的にもたない。まれに生じる処理指令が交換又は別の処理にとって不適切な

場合,それを識別し変換できるように特別に区切られる。 

外部文書への参照は間接的な参照とし,参照と実の記憶体との関連付けを外部実体宣言で行う。外

部実体宣言は,文書の始めに置いているので,その交換に際して外部実体宣言の修正を容易に行える。

具象構文は,システム固有の見出し語に適合するように,SGML宣言を用いて変更できる。 

(5) 自然言語に中立とする。SGMLでは,名前文字に使用する各国独自の文字が追加できる。共通識別子,

属性名及び記述的マークに使用する名前は,要素及び実体の宣言で利用者が定義する。マーク宣言に

使う名前及び見出し語は,変更できる。複数の言語が混在する文書で使用できるように,複数の言語

の文字集合を導入できる。 

(6) 通常のタイプライタ及び文書処理システムの入力仕様に合わせる。短縮参照及びデータタグの機能が

タイプライタからの文章の入力を支援する。節及び引用を含む通常の文は,見えない機能マーク文字

付きで入力されても,SGMLとして解釈可能とする。 

(7) 特定のデータ列又はファイルの物理的な構成に依存させない。SGMLでは,各文書が一つ以上の記憶

実体から成り,その記憶実体は文字列から成る仮想記憶モデルをもつ。すべての実ファイルの使用は,

処理系に依存する。その処理系は,文字列が連続しているか物理記録境界であるかを決定する。 

(8) 他の形態のデータと共存させる。処理系が適合SGML文書の文頭及び文末を区別できる場合,適合

SGML文書を他の形態のデータの流れの中に置くことができる。 

処理系は,適合SGML文書以外のデータ内容を,適合SGML文書の中に論理的に置くことができ

る。交換を容易にするため,そのデータの存在をマーク宣言によって示す。 

(9) マークは,人間及び計算機の両方に利用可能とする。SGMLは,入力及び交換を前処理系なしに行う

ことに適したインタフェースとなるように意図した。SGMLは,文の入力における利用者の好み,各

種のけん盤及び表示装置に合わせて拡張できる。 

利用者の知的な編集及び前工程の文書からのSGML文書の作成のために,SGMLの情報の抽出機能

を提供したい利用者の要件にこたえるため,SGMLは次の(a)〜(d)の機能を提供する。 

(a) 要素の内容は,マークとは別に記憶できる。 

(b) 制御文字は,区切り子として利用できる。 

(c) 多様なデータ表現形式が文書中で混用できる。 

(d) 同時に出現する多重の論理構造及び割付け構造を扱うことができる。 

81 

X 4151-1992  

参考2 一般化マーク付けの導入 

この参考は,SGMLの背景にある一般化マーク付けについて解説する。これは,あくまで参考であって,

規定の一部ではない。 

備考1. この参考は,C. F. Goldfarbの論文[5.(1)参照]に基づいたものである。 

2. この参考の例示では,規格参照具象構文にデータ文字として漢字・仮名を追加した具象構文

を使う。 

1. マーク付け 文書処理システムでは,処理対象の文に加えて,そこに散在させた付加的な情報を必要

とするものである。この付加情報を,“マーク”という。マークは,次の(1)〜(2)の役割を果たす。 

(1) その文書の論理的な要素を区分する。 

(2) それらの要素に施す処理機能を指定する。組版システムでは,非常に複雑な書式付けを行うので,そ

のマーク付けは,普通,専門に訓練を受けた人が担当する。文書処理システムでは,書式付けの機能

が限定されていて,利用者自身が意識することなしにマーク付けを行ってしまう。高機能の印字機が

廉価で手に入るようになってきたから,事務用ワークステーションが組版システムの多くの機能を提

供するようになり,この“無意識”のマーク付けで済むのは事務での文書処理のほんの一部だけとな

っていくに違いない。 

そこで,高機能システムの利用者がどうやって文書のマーク付けを行っているかを考えてみることが重

要になる。利用者は,そう意識しているとは思えないものの,確かに次の(3)〜(5)の段階を踏む。 

(3) 文書の情報の構造や属性を調べる。意味のある個々の要素を見定め,それらを段落,見出し,箇条,

脚注などに分類する。 

(4) それぞれの要素を書式付けるのに使える処理指令(“制御”)を,記憶をたぐるか説明書をひもとくか

して,選び出す。 

(5) そして最後に,その選び出した制御を文の中に書き込む。この参考の最初の部分は,文書処理での典

型的な書式付け言語を使って,制御をマーク付けしたとすると,例1.のようになる。 

例1. 制御によるマーク付け 

.SK 1 

.BF 

1. マーク付け 

.SF 

文書処理システムでは,処理対象の文に加え

て,そこに散在させた付加的な情報を必要 

とするものである。この付加情報を,“マーク”

という。 

マークは,次の(1)〜(2)の役割を果たす。 

.SK 1 

(1) その文書の論理的な要素を区分する。 

.SK 1 

(2) それらの要素に施す処理機能を指定する。 

82 

X 4151-1992  

.SK 1 

例1.での “.SK”, “BF” などが制御のマークである。それぞれ, “.SK 1” は改行を, “.BF” は太

字体を, “.SF” は常字体を指定している。 

このような手続き的なマーク付けには,幾つもの欠陥がある。まず,その文書の属性に関する情報がた

いていは失なわれてしまうことがある。例えば,利用者が見出しも図見出しも書式付けの際に中央ぞろえ

にしたとしよう。ところがその“中央ぞろえ”の制御マークは,その文が見出しであるのか図見出しであ

るのかについて何の情報も与えてはくれない。したがって,その文書を情報検索システムにかけたとして

も,検索プログラムは,情報内容の点で非常に重要な“見出し”を,そのほかの中央ぞろえになった情報

から区別することができない。 

手続き的なマーク付けは,また,自在性に欠ける。例えば,利用者が(おそらくは,別の出力装置を使

うという理由から)その文書の様式を変更しようとすると,それに合わせてもう一度書式付けを全部やり

直さなければならなくなる。これは,例えば,安価な計算機の行印字機を使って2行どりで書き上げた原

稿から,高価な写植機を使って最終印刷物を作ることをできなくしてしまう。その文書の組版を入札にか

けるにしても,自社と同じ文書処理システムをもっている業者でない限り,たとえ,再度マーク付けをす

るための費用を払うつもりがあったところで,応札しないであろう。 

さらに,制御を使ってのマーク付けは,時間もかかるし,間違いも起こしやすい。おまけに,複雑な組

版結果を望むなら,高度に訓練を受けた操作者が必要になる。これは,そのシステムに手続きを組み込む

機能(いわゆる“マクロ”)があったとしても,(少しはましになるかもしれないが)変わることがない。

マクロの分が元の制御に加わるので,それだけ語いが複雑になってしまうからである。例えば,あの優美

で強力なTeXシステム[5.(3)参照]でさえも,広く数学での組版に使われてはいるものの,核となる部分

で300もの基本制御とマクロとを使っているのである。 

こうした手続き的なマーク付けの欠陥は,C. F. Goldfarb,E. J. Mosher及びR. A. Lorieが提唱したマーク

方式[5.(4)及び(5)参照]を使うことで克服することができる。この方式は,“一般化マーク付け”と呼ば

れている。文書を特定の応用,特定の書式,特定のシステムなどに限定してしまうことがないからである。

一般化マーク付けは,次の(6)〜(7)という斬新な主張に基づいている。 

(6) マークは,文書にどんな処理を施すかを指定するものではなくて,その文書の構造と属性とを記述す

るものであるべきである。記述的なマーク付けならば,一度行っておけば,その後のどんな処理にも

役に立つ。 

(7) マークは,厳密なものでなければならない。そうすれば,プログラムやデータベースなどの厳密に定

義された対象物の処理に使っている技術が文書の処理にも使えるようになる。 

この主張を出発点として,直観に訴える形で,このマーク付け方式の特性を順に見ていくことにする。 

2. 記述的マーク 一般化マーク付けを使うと,マーク付けの作業は,その第1段階でおしまいとなる。

利用者は,その文書での重要な要素を見つけ出し,それらを特徴付けるにふさわしいと思う覚えやすい名

前[これを,“共通識別子” (GI, Genenc Identifier) という。]でマーク付けするだけでよい。これらのマー

クに処理指令を結び付ける作業は,処理システムがやってくれる。 

一般化マーク付けの書き方は,SGMLというが,国際標準化機構 (ISO) の作業部会で開発したものであ

る。SGMLでのマークを使うと,例1.は例2.のようになる。 

例2. SGMLによるマーク付け 

<h>マーク付け 

83 

X 4151-1992  

<p>文書処理システムでは,処理対象の文に加 

えて,そこに散在させた付加的な情報を必要 

とするものである。この付加情報を,<q>マー 

ク</q>という。 

マークは,次の <liref refs= ”r1 r2”> の役割を果たす。 

<ol> 

<li id=r1>その文書の論理的な要素を区分する。 

<li id=r2>それらの要素に施す処理機能を指定する。 

</ol> 

それぞれの共通識別子は,その始まりを示すときには “<” で開き,その終わりを示すときには “</” で

開く。そして,共通識別子と文とを区切るために “>” で閉じる(1)。この共通識別子と区切りの記号との組

を,“開始タグ”又は“終了タグ”という。 

もちろん,始まりを示すのが開始タグであり,終わりを示すのが終了タグである。共通識別子の名前 “h”, 

“p”, “q”, “liref”, “ol” 及び “li” は,それぞれ, “heading” (見出し), “paragraph” (段落), “quotation” 

(引用句), “list item reference” (箇条参照), “ordered list” (箇条書き)及び “list item” (箇条)を表

すために選んだものである。 

注(1) これらの記号は,標準の場合の組合せである。SGMLでは,区切りの記号も自由に選定するこ

とができる。 

例2.には,次の(1)〜(3)という注目すべき特徴がある。 

(1) 文には,引用符号がない。引用符号は,処理システムが引用句の要素を認知したときに作り出してく

れるし,出力装置で使えるものなら,ちゃんとその開きと閉じの符号を使い分けてくれる。 

(2) ここでは,“マーク”という語だけが引用句の中身となっている。しかし,必要なら“という。”まで

含めて引用句とすることもできる。終了タグ “</q” をその後ろにもってくればよい。 

(3) 箇条の番号がどこにもない。箇条の番号は,書式付けのときに自動的にふられ,参照しているところ

(“<liref refs=”r1 r2“>” のところ)にも埋められる(2)。 

注(2) この機能は,(明示的な)内容参照と呼ぶものであるが,この参考では解説しない。詳しくは,

参考3の10.を参照のこと。 

言い換えると,文書には情報だけが書いてある。見た目をよくするだけが役割の文字列などは,処理の

際に作り出されるのである。 

これまでの分析から,文書処理を次の(4)〜(6)の3段階で行うものとモデル化することができる。 

(4) 認知 文書の属性を認知する。例えば, “footnote” (脚注)という共通識別子をもった要素を認知す

る。 

(5) 対応付け 認知した属性に処理機能を対応付ける。例えば, “footnote” という共通識別子には,それ

を脚注としてそのページの下部に印字する手続きなり,それらを集めておいて章末にまとめて印字す

る手続きなりを対応付ける。 

(6) 処理 対応付けた処理を実際に施す。 

英文文書の書式付けプログラムは,実際,このモデルに沿ったものとなる。まず,単語や文といっ

た要素を,空白や句読点を隠されたマークと見て認知していく。対応付けは,普通,飛び先表として

準備されている。単語を処理する手続きは,その単語の長さを調べて行に収まるかどうかを判定する。

文を処理する手続きは,必要に応じて単語と単語の間に空白を挿入していく(3)。 

84 

X 4151-1992  

注(3) このモデルは,実際のプログラムの作り方を制限するものではない。例えば,単語の処理は,

単語や文の認知を行う主反復の中に組み込むこともできるだろうし,そうすることで,効率が

上がるかもしれない。 

単語とか文とかといった低位の要素では,たいていの場合,利用者がその処理について制御できること

は少ないし,認知についてはほとんど関与のしようもない。段落ぐらいに高位の要素になると,書式付き

プログラムによってはもっと利用者に自由度を認めているし,強力なマクロ言語を備えたものなら,相当

程度に記述的マークにも対処してくれる。上の(4)〜(6)のモデルでいうと,記述的マーク付けの利点は,書

式付けプログラムが知らないような属性(つまり,要素の“型”)を利用者が定義して,その処理を指定す

ることができるようになることにある。 

例えば,例2.では,ごく普通の“段落”という要素に加えて,“箇条書き”や“箇条”といった要素型を

使っていた。こうした要素の認知や処理がシステムに組込みになっていることはまずない。そこで,明示

的にマーク付けしておくことで,これらを認知させ,そのときの処理目的に応じた手続きにそれぞれを対

応付けさせるのである。この,手続きとその共通識別子への対応付けとは,そのシステムでのマクロ言語

を使って書くことになるだろう。対応付けは,処理目的が変われば切り替えることになるし,一つの処理

の中でも部位ごとに切り替えることもあるに違いない。 

例えば,本文では箇条を(1),(2),…と番号付けるが,付録では(ア),(イ),…とするといった具合であ

る。 

ここまでの議論では,単一の属性,すなわち,共通識別子だけを扱ってきた。この属性は,その値とし

ての名前が,その要素の意味の上での役割ないし目的を特徴付けているのであった。記述的なマーク付け

方式の中には,属性として共通識別子だけを考えて,そのマーク付けを“共通符号化”と呼んでいるもの

がある[5.(6)参照]。共通符号化方式では,その共通識別子で手続きの名前を制御するという簡単な仕掛け

を使って,認知,対応付け及び処理を一度に済ましてしまうことができる。別の形での書式付けをしたい

場合にも,マーク付けを変えることなく,同名の手続きの中から望むものを選び出しさえすればよい。こ

のやり方は非常に有効なものであり,この方式の著名なシステムであるSCRIBE[5.(2)参照]では,実際,

手続き的なマーク付けを一切許していないほどである。 

共通符号化は,実用の上で手続き的なマーク付けに比べて大幅な改善となってはいるものの,概念構成

の上からみ止るとまだ欠けるところがある。文書は複雑な対象物であり,多くの属性をもつから,これを

マーク付け言語で記述できる必要がある。例えば,文書の中に図を要素として置けるようにし,それぞれ

の図を名前で参照できるようにしたとしてみよう。 “angelfig” (天使図)という名前の図を要素とするに

は,次のような開始タグを書くことになる。 

<fig id=angelfig> 

“fig” は,もちろん “figure” (図)のつもりの名前であり,属性としての共通識別子の値として指定し

てある。この共通識別子は,その要素が同じ役割をもつ要素の集まりに属していることを示す。これに対

して,識別子属性 “id” は,その要素を他の要素と区別するための一意的な名前を値としてとる。もちろ

ん, “fig” の他の要素ともこの名前で区別する(識別子属性の値は “id=” に続けて与えるが,共通識別

子は “GI=” などを置かずに直接その名前だけを書く。これは,SGMLが開始タグの最初にくるものを,

属性としての共通識別子の値と定めているからである。)。 

この共通識別子と識別子の二つの属性は,“1次”属性という。どの要素でももつことができるからであ

る。もちろん,要素によっては,このほかに“2次”属性をもつこともある。例えば,図の中に画家の描

いた挿絵も入れて出力できるようにしたとして,この要素型を “artwork” と命名したとしよう。この外部

85 

X 4151-1992  

で作られた挿絵の要素ではその寸法が重要になるので,この要素には2次属性 “depth” をもたせることに

しよう(4)。この結果,縦が24パイカ(pica,標準的な活字の大きさの一つ)分の挿絵に対する開始タグは,

次のようになる。 

<artwork depth=24p> 

図に対するマークには,更に,その内容を記述しておく必要がある。“内容” (conent) は,もちろん,1

次属性であり,その要素の2次属性で記述しておく対象ともなる。内容は,下位の要素を組み合わせてで

きている。その下位の要素は,また,その下位の要素を内容に含んでいる。こうして,いずれ,それ以上

は分割できなくなるところにまでたどり着くことになる(5)。SGMLが共通符号化と違っている点の一つが,

この階層的な構造を扱うための,概念構成や記述を行う道具をきちんと提供していることにある。これは,

一般化マーク付けの第2の主張[5・(7)参照],すなわち,マーク付けは厳密であるべきだとの主張に基づ

いている。 

注(4) “depth” というのは,縦送りの制御を表す語と同値なわけではない。完全なページ割付けを行う

プログラムでは実際にその余白を作り出すであろうが,校正用の書式付けプログラムなら割付

け担当者向けにその表示を出すだけであろうし,情報検索プログラムなら図の索引付けを行う

だけでこの属性を無視してしまうであろう。 

(5) したがって,文書と要素とは,同列に話すことができる。実際,文書とは,その処理での一番

高位の要素にすぎない。例えば,“技術報告”は,それ単独で文書として印刷することもあれば,

雑誌の一つの要素として印刷することもある。 

3. 厳密なマーク付け さて,この図 “angelfig” が,図本体 (figure body) と図説明 (figure caption) の二

つの要素からできているとしてみよう。図本体の内容には挿絵が入り,図説明の内容には文としての文字

が(もはや何のマークもなしで)並ぶとしよう。すると,この図に対するマーク付けば,例えば,例1.の

ようになる(6)。 

例1.  <fig id=angelfig> 

 <figbody> 

 <artwork depth=24p> 

 </artwork> 

 </figbody> 

 <figcap> 3天使の舞い 

 </figcap> 

 </fig> 

注(6) 内容を示す “content=” などというものは,共通識別子がそうであったように不要である。そ

の内容が外部で作られたものならもとより不必要であるし,タグの付いた要素だけからできて

いるならそのままで分かる。データの文字がその内容なら,開始タグの終わりの “>” と終了タ

グの始まりの “</” とでそれが区分できる。 

例1.のマークは,その構造を厳密に表現する。それぞれの要素の開始と終了とを古典的な入れ子の形で

示している。 

この構造を解釈するのにこれ以上は何の情報も要らない。だから,前に出てきたマクロ呼出しを使って

必要な処理を行わせることだって可能である。代わりに,この単純さの代償として,すべての要素に終了

タグを書かなければならない。 

86 

X 4151-1992  

この代償は,すべてのタグを利用者が書くのであれば,とても耐えられないものになる。利用者にとっ

てみれば,新しい段落が始まればその前の段落がそこで終わるはずのものであるから,そのことをシステ

ムに伝えるためにだけ,すべての段落の終わりに終了タグを書くという労力などはかけたくない。その要

素が自分で定義したもので,しかも頻繁に出てくるものであれば,強くそう思うに違いない。 

SGMLでは,そこで,利用者が要素の型について構造や属性を定義してシステムに知らせておくことで,

こうしたタグを省略できるようにしてある。これには,SGMLが定めた“要素宣言”と呼ぶ構文単位を使

って,その“文書型定義”を与えればよい。文書の中のマークが個々の要素を記述するのに対して,文書

型定義は,その型の要素に付けることのできるすべてのマークを定義する。 

要素宣言には,その要素として認める内容を,変形した正規表現を使って記述しておく。例えば,図の

定義を拡張して,図本体の中に挿絵を置くか,ある種の文要素を置くかのどちらかにできるようにしたと

しよう。すると,その要素宣言は,例えば,例2.のようになる(7)。 

例2.  <!−− 

要素 

最小化 内容 

−−> 

<!ELEMENT fig 

−− 

(figbody, figcap?)> 

<!ELEMENT figbody −O 

(artwork| (p|ol|ul) +)> 

<!ELEMENT artwork −O 

EMPTY> 

<!ELEMENT figcap 

−O 

(#PCDATA)> 

注(7) 疑問符 “?” は,その要素が任意選択であることを示す。カンマ “,” は,その前後の要素がその

順に現れることを示す。アステリスク “*” はその要素が任意選択反復(0回以上)することを,

正符号 “+” はその要素が必ず反復(1回以上)することを示す。縦棒 “|” は,選択項目を区

切る。かっこは,数学での使い方と同じで,式をまとめる。 

例2.の最初の宣言では,要素 “fig” (図)には “figbody” (図本体)と “figcap” (図説明)がこの順に

並ぶが, “figcap” はないこともある,ということを意味している(負符号の意味は,すぐ後で述べる。)。 

2番目の宣言では,図本体が, “artwork” (挿絵)となっているか,又は, “p” (段落), “ol” (箇条

書き)及び “ul” (unoredered list,項目列挙)の混在したものとなっているかのいずれかであることをい

っている。“最小化”の欄に書いた “O” は,図本体の終了タグが,それに続く開始タグで紛れなく兼用で

きるときには,省略できることを示している。これに対して,その左の負符号は,図本体の開始タグが省

略“できない”ことを示している。 

挿絵に対する宣言では,その内容が空 (empty) であるとしている。これは,外部で作られて,そこには

り込むものだからである。したがって,文書の中にその内容がくることがないので,その終了タグを書く

必要はない。 

最後の宣言では,図説明が勝手な文字列(長さ0でもよい。)であるとしている。文字は終端であり,そ

れ以上分割できないものである。“最小化”の欄の “O” は,図説明の終了タグが省略できることを示して

いる。図説明の終了タグは,前に述べた場合に加えて,この図説明を下位の要素とする上位の要素の終了

タグが紛れなく図説明の終了タグを兼用できる場合にも,省略することができる。 

もちろん,ここでは, “p”, “ol” 及び “ul” に対する宣言がどこか別のところに書いてあるものとして

いる。 

図の要素に対するこの形式的な定義に従うと, “angelfig” は,新たに例3.のようにマーク付けできるこ

とになる。 

例3.  <fig id=angelfig> 

<figbody> 

87 

X 4151-1992  

<artwork depth=24p> 

<figcap> 3天使の舞い 

</fig> 

マークは40%も減少した(8)。三つの要素の終了タグが,次の(1)〜(3)の理由で要らなくなったからである。 

(1) 図説明は,要素宣言から図の一部であり,したがって,その終了タグは図の終了タグが兼用するので

要らない。 

(2) 図説明は図本体と同じ水準にあり,したがって,図説明の開始タグが図本体を終わらせるので,図本

体の終了タグは要らない。 

(3) 挿絵は,その要素宣言で内容が空であるとしているから,それ自身で完結しているので,挿絵の終了

タグは要らない。 

注(8) SGMLでは,実際のところ,ここに示す以上にマークを減らすことができるようになっている。 

文書型定義には,属性をもつ要素があれば,そのそれぞれに“属性定義並び宣言”を書いておく。この

宣言では,それぞれの属性がとり得る値のほか,その属性が任意選択でしかも文書の中でその値を与えな

かったときにとる省略時値も定義しておく。 

例えば,図と挿絵とに対する属性定義並び宣言は,例4.のようになる。 

例4.  <!−− 

要素 

名前 

値 

省略時値 −−> 

<!ATTLIST 

fig 

id 

ID 

#IMPLIED> 

<!ATTLIST 

artwork depth 

CDATA #REQUIRED> 

図に対する宣言では,その値として一意的な名前をとる (“ID”) 属性 “id” をもつとしている。この属性

は,任意選択であり,その値を指定しなかったときは値をもたない (“IMPLIED”) と指定してある。 

これに対して,挿絵の属性 “depth” は,必ず (“REQUIRED”) であり,必ず値を指定してやらなければ

ならない。その値は,勝手な文字列 (“CDATA”) であってよい。 

文書型定義は,マークの最小化に役立つ(9)だけではなく,ほかにも用途がある。文書の具体的な処理に

かかる前に,その文書のマーク付けが正当なものかどうかを検査するのに使うことができるし,その文書

型に不慣れな利用者に対して,必要な情報を表示しながらその入力を手助けするのにも使うことができる。

例えば,文書入力の応用を考えてみよう。応用は,この図の定義を読み取るとそれぞれの要素に対する手

続きを動かす。その手続きは,それぞれ,“図の名前を入力して下さい”,“挿絵のdepthを指定して下さい”,

“図説明の文面を入力して下さい”,などと表示を出して利用者からの応答を得ていく。それぞれの手続き

は,また,作り出す文書の中にそれぞれのマークを自動的に書き込んでいくことだろう。 

注(9) 実用的で完全な文書型定義の例は,5.(5)に示す文献に見ることができる。ただし,この文献は,

SGMLそのものに従っているわけではない。 

SGMLでの文書型定義によれば,利用者は,文書を作る際の手間を最小に抑えることができる。これは,

“賢い”文書編集プログラムや文書処理システムに頼るまでもないのである。更に,文書の可搬性を最大

のものとすることができる。文書は,人間が読んで理解できるし,何百万台にも及ぶ既存の“間の抜けた”

けん盤を使ってでも簡単に編集できるからである。それでいて,文書型定義と文書に付けたマークとで,

機械処理に耐えるだけの厳密さを備えた文書を構成しているのである。 

88 

X 4151-1992  

4. 結論 一般化マーク付けが文書記述をどれほどに正確で自在性に富んだものにしたかとはよそに,出

版のために文書を準備する利用者にとっての関心は,次のことにある。すなわち,SGMLにしろ,どんな

記述的マーク付け方式にしろ,本当に手続き的なマーク付けに匹敵するだけの版組結果が得られるのか,

ということに尽きるのである。この実用的な関心についていえば,Prentice−Hall社刊の書籍[5.(7)参照]

が,一般化マーク付けの有効性の経験的な証左となる。 

この書籍は,ソフトウェア開発についての教科書であって,その著者が編み出した記法に従う何百とい

う数式が出てくる。その組版の複雑さ(実際,1行の中で字体を10回も20回も変えることがしばしばで

ある。)にもかかわらず,この本の文には,ただの一つも手続き的なマークを使う必要がなかった。そのマ

ーク付けに使ったのは,一般化マーク付けの原理に立脚した言語であって,しかもSGMLほどの自在性も

完成度もないものだったのである[5.(5)参照]。 

そこで使えた手続きは,計算機の出力装置を動かすだけのものであった。それでも,授業の教材として

用意した初版用としては,十分であった。出版の話がまとまるまで,その著者は,組版についての考慮を

まったく払っていなかった。話がまとまった時点で,350ページもの原稿を打ち直し校正するための時間

と手間とを考えて,著者は愕然とし,ほかの方法を探し始めた。折しも,C. F. Goldfarbが,一般化マーク

付けの商用出版への適応性を検証するに足る実例を求めているところであった。 

こうして,二つの探しものがうまく出会い,まれにみる実験が始まった。元の処理系には,写植機を直

接に動かす手続きがなかったので,写植機用の既存の組版プログラムで処理できるように,手続き的なマ

ーク付けに直した文書を作り出す手続きをまず用意した。書式の仕様は,出版社が決めてきた。それでい

て,この一般化マーク付けを生かすのに何も後退する必要は生じなかった。文書は,仕様が与えられる前

に一般化マーク付けしておいたものであるにもかかわらず,何の手入れも要らなかったのである。 

この実験は,期限内に完了し,出版社も完全な成功と認めてくれた[5.(8)参照]。このときに作った手続

きは,書式に応じて若干の手直しを施すことで,様々な内部出版に今なお使っている。 

したがって,一般化マーク付けは,実用目的にも学究目的にも便益を与えてくれる。出版においては,

マーク付けに要する原価を引き下げてくれるし,書籍製造に要する時間を減らしてもくれる。更に,文書

データベースに入れておいてもその自在性を失なうことがない。研究室においても,異なる種類の文書処

理システム間での文書交換が,様々な機能を失なうことなくできるようになるし,電子メールの一覧とい

った補助的な“文書”が,電子メールの要約といった,主体となる文書の関係する要素から自動的に作れ

るようにもなる。 

同時に,SGMLの厳密な記述的マーク付けによって,文章が計算機を使って容易に分析できるようにも

なる。手続き的なマーク付けをした(又は,全くマーク付けしていない)文書は,意味の解析をしない限

り何の構造ももたない文字の列にすぎない。これに対して,一般化マーク付けをした文書は,よく知られ

た正規表現に還元できる構造をもっている。これによって,計算言語学や翻訳系設計での技法が,自然言

語処理やその他の文書処理応用に使えるようになるのである。 

5. 参考文献 この参考で使った文献は,次のとおりである。 

(1) C. F. Goldfarb, “Generalized Approach to Document Markup”, SIGPLAN Notices, the Association for 

Computing Machinery, June 1981.  

(2) B. K. Reid “The Scribe Document Specification Language and its Compiler”, Proceedings of the International 

Conference on Research and Trend in Document Preparation Systems, 56-62 (1981)  

(3) Donald E. Knuth, TAU EPSILON CHI, a system for technical text, American Mathematical Society, Providence, 

89 

X 4151-1992  

1979.  

(4) C. F. Goldfarb, E. J. Mosher and T. I. Peterson, ”An Online System for Integrated Text Processing”, Proceedings 

of the American Society for Information Science, 7, 147-150 (1970).  

(5) Charles L. Goldfarb, Document Composition Facility Generalized Markup Language : Concept and Design 

Guide, Form No.SH20-9188-1, IBM Corporation, White Plains, 1984.  

(6) C. Lightfoot, Generic Textual Element Identification−A Primer, Graphic Communications Computer 

Association, Arlingon, 1979.  

(7) C, B. Jones, Software Development : A Rigorous Approach, Prentice−Hall International, London, 1980.  

(8) R. Decent, Personal Communication to C. F. Goldfarb (September 7, 1979).  

90 

X 4151-1992  

参考3 基本的概念 

この参考は,SGMLの基本的な概念と機能とを解説する。この参考では,SGMLが目的とするマーク付

けの方針(参考2参照)又は文字の符号化についての知識を仮定する。 

なお,この参考は,あくまで参考であって,規定の一部ではない。 

備考1. この参考は,SGMLのすべての機構及びその詳細のすべてを解説するものではない。SGML

の基本を分かりやすく解説するために,多くの場合に細かい事柄を省略してある。 

2. この参考では,規格参照具象構文に加えて,SGML文字として漢字・仮名が使えるようにな

った具象構文を想定して解説する。 

1. 文書,文書型定義及び手続き 

1.1 

文書 SGMLでの“文書”という用語は,ファイル,印字物といった物理的なものを意味するので

はなく,いわゆる文書の内容を構成している要素の論理的な構造体を意味する。その構造としては,文書

要素を最上位の節とし,それぞれの要素をその論理関係に従って下位の節として配置した木構造を想定す

る。例えば,“文書”として書籍をとれば,その下位に“章”の要素が並び,更にその下位に“段落”,“図”

などの要素が並ぶ。 

この木構造を下へたどっていくと,いずれは実際の文字や図などのデータを収めた末端の節にたどり着

く。例えば,“段落”が末端の節であったとすると,それは,文字だけをその内容としてもち,下位の要素

をもつことがない。“図”が末端の節であったとすると,その内容は,文字ではなく,図形を収めたデータ

となるであろう。 

物理的な文書の中では,これらの要素はマークと呼ぶ付加的な情報によって区分されている。このマー

クは,データの中に混在する。つまり,物理的な文書は,データとマークという2種類の情報で構成され

ている。 

1.2 

文書型定義 要素に対するマークは,その始めに置く開始タグと,その終わりに置く終了タグであ

る。これらのタグは,更に,その要素の特徴付けの役割も果たす。 

特徴付けの一つは,その要素の“型”(書籍,段落,図,表といった種別)を表す共通識別子である。こ

の共通識別子には,“属性”と呼ぶ特徴付けを添えることもできる。 

個々のマークのタグは,同時に,その要素の構造も記述している。つまり,その要素の下位の要素とし

て,どんなものがどんな順序で現れるかを示している。この構造は,その型の文書(言い換えれば,その

同じ共通識別子をもつもの)として認められる構造を定義した規則に従っていなければならない。 

認められる構造を定義する規則は,その型の文書の文書型定義の一部である。文書型定義は,次の(1)〜

(3)を指定する。 

(1) その型の文書に認められる要素の共通識別子。 

(2) それぞれの共通識別子に添えることができる属性,そのとり得る値及び省略したとき想定する値。 

(3) それぞれの共通識別子に対する内容の構造。これには,次の(a)〜(c)がある。 

(a) 部分要素としてどんな共通識別子がどんな順序で現れるか。 

(b) その中に文字データが現れるかどうか。 

(c) その中に非文字データが現れるかどうか。 

文書型定義では,次の(4)〜(5)を指定しない。 

91 

X 4151-1992  

(4) マークを示す区切り子。 

(5) その文書を書式付けしたり変換処理したりする方法。 

1.3 

手続き マークのタグは,文書の要素の構造を記述しはするが,その構造をどう処理するかについ

ては何も語らない。いろいろな処理が考えられる。もちろん,書式付けもその一つである。 

書式付けは,要素の構造を表示上の規約に従って紙面や画面の上に映し出すことだとみることができる。

すると,文書を処理するときには,それぞれの共通識別子(つまり,要素の型)に特定の手続きが結び付

いていることになる。それぞれの手続きは,その特定の要素の内容を処理する。書式付けの例でいうと,

手続きは,その要素を紙面や画面の上に想定したように配置することになる。 

文書の作成は,このように利用者が文を作り上げ,それをそれぞれの文書型でマーク付けしたときに始

まる。その文書を処理するシステムの一つが書式付けシステムである。そこには,幾つかの組になった手

続きが用意してあるに違いない。 

例えば, “mybook” という文書が “TechManual” という文書型でマーク付けしてあったとすると,必要

に応じて手続き集合を選ぶことで様々に書式付けできる。手続き集合の一つでは普通の画面表示になり,

別の手続き集合では袋とじ用の紙面表示になるであろう。 

新しく文書処理システムを開発するときには,その設計者がSGMLを使って文書型定義も作っておくこ

とになる。設計者は,同時に,そのシステムでの開発言語を使って,文書を処理する幾つかの手続き集合

も用意するに違いない。 

2. マーク付け マークは,文書のデータにその文書についての情報を付加した文をいう。SGMLでの文

書のマークには,次の(1)〜(4)の4種類がある。 

(1) 記述的マーク(“タグ”) タグは,マークの中で最もよく使われる最も重要なものである。タグは,

上で述べたように文書の構造を定義する。 

(2) 実体参照 システムの中では,1個の文書を幾つかに分け,それぞれをシステムでの記憶の単位とし

て蓄える。この単位を,実体という(実体は,システムによって,ファイル,データセット,変数,

データ流,ライブラリ要素など様々な形態をとり得る。)。 

ばらばらの実体をつなぎ合わせるために使う文書のマークを,実体参照という。実体参照は,その

文(実体)を文書のその位置に埋め込めという要求になる。実体は,文書の中で定義したものでも,

外部で定義してあるものでもよい。 

この実体参照の機能は,いわゆる“記号代入”とか“ファイルの読込み”とかといわれる機能を拡

張したものになっている。 

(3) マーク宣言 宣言は,そのマークをどう解釈するかという制御を言明する。宣言は,実体を定義した

り文書型定義を生成したりするのにも使う。 

(4) 処理指令 処理指令は,その処理システムに対して特定の作用を行うように指令するもので,そのシ

ステムでの言語で書く。他のマークとは違って,処理指令は,システムに依存するし,たいていの場

合に応用にも依存する。処理指令は,その文書を別の形で処理したい(例えば,別の様式に書式付け

る)場合や別のシステムで処理する場合には,普通,書き替える必要がある。 

SGMLシステムは,この4種類のマークを認知して,それぞれを適切に扱わなければならない。言い換

えれば,SGMLシステムには“SGML構文解析系”がなければならない。この構文解析系は,独立したプ

ログラムとなっているとは限らない。そのシステムで構文解析が行えるのであれば,SGML構文解析系が

存在するといって差し支えない。 

background image

92 

X 4151-1992  

文書の中のマークは,厳格な規則に従わなければならない。その幾つかは,この規格が決めているもの

で,すべての文書型を対象とする。他の規則は,現に処理している文書の型に対する文書型定義が決めて

いるものである。 

SGML構文解析系は,SGMLの規則に従って次の(5)〜(10)を行わなければならない。 

(5) それぞれの要素の内容の文を走査して,そのデータと4種類のマークとを見分ける(非文字の内容デ

ータは,走査しない。)。 

(6) 実体参照を,その実体で置換する。 

(7) マーク宣言を解釈する。 

(8) 処理システムに制御を渡して,処理指令を実行してもらう。 

(9) 記述的マークであるタグを解釈して,その共通識別子と属性を見定めた上で,その文書型の規則に従

って次の(a)〜(b)のことを行う。 

(a) その共通識別子や属性が正当なものであるかどうかを判断する。 

(b) その文書構造での要素の位置付けを行う。 

(10) 処理システムに制御を渡して,その共通識別子に結び付いている手続きを実行してもらう(繰り返す

が,これらのプログラムに対する実際の要件は何も設けられていない。“制御を渡す”というのは,こ

の規格がその先の処理内容を規定していないということを意味する。)。 

3. 文の中のマークの検出 

3.1 

記述的マーク 記述的マークであるタグは,要素の始まりと終わりとを示す。これらのうち,重要

な文字列は,次の三つである(参考3図1参照)。 

(1) STAGO 開始タグの開始 (Start−TAG Open)。この区切り子は,開始タグの始まりを示す。参考3図

1では, “<” がこのstagoである。 

(2) TAGC タグの終了 (TAG Close)。stagoからtagcまでの文字列を開始タグという。開始タグには,共

通識別子とその属性とを指定する。参考3図1では, “quote” が共通識別子であり, “>” がこのtagc

である。 

(3) ETAGO 終了タグの開始 (End−TAG Open)。この2文字からできた区切り子は,終了タグの始まり

を示す。参考3図1では, “</” がこのetagoである。開始タグのtagcと終了タグのetagoの間が,

その要素の内容である。内容には,データ文字及び部分要素が現れる[非文字のデータは扱いが異な

る(4.2.7参照)。]。終了タグには,その要素の共通識別子を再び書いてマークを読みやすくする。 

ここで述べたものは,要素を区切る最も一般的なやり方である。SGMLには,マーク最小化と呼ぶ幾つ

もの技法があり,タグを短くしたり省略したりすることもできるようになっている。これらの技法につい

ては,その他のSGMLの機構ともども,参考4で解説する。 

参考3図1 要素のマーク 

3.2 

その他のマーク 実体参照は,“実体参照の開始 (entity reference open)”区切り子eroで始まり,“実

体参照の終了 (entity reference close)”区切り子refcで終わる。例1.では,eroは “&”,refcは “;” である。 

93 

X 4151-1992  

例1. &SGML;は,出版システム及び事務システムをその適用分野とする。 

マーク宣言は,“マーク宣言の開始 (mark declaration open)”区切り子mdoで始まり,“マーク宣言の終了 

(mark declaration close)”区切り子mdcで終わる。処理指令は,“処理指令の開始 (processing instruction open)”

区切り子pioで始まり,“処理指令の終了 (processing instruction close)”区切り子picで終わる。 

例2. これは,<!マーク宣言>と<?処理指令> 

とを組み込んだ例である。 

タグ以外のマークについての区切り子を,次にまとめておく。 

文字列 

名前 

働き 

ERO 

名前での実体参照を開始する。 

REFC 

参照を終了する。 

<! 

MDO 

マーク宣言を開始する。 

MDC 

マーク宣言を終了する。 

<? 

PIO 

処理指令を開始する。 

PIC 

処理指令を終了する。 

3.3 記録の境界 すべての文書処理システムが,その記憶実体を記録 (record) の形式に展開しているわけ

ではない。記録を単位とするシステムでは,記録の境界を,機能文字の“記録開始 (record start)”RS及び

“記録終了 (record end)”REと呼ばれるもので表現している。これらの記録の境界は,変形具象構文の下

で一般の区切り子に使うこともできるし,“短縮実体参照”と呼ぶ特殊な区切り子に使うこともできる。

記録の境界が区切り子としてではなく現れたとき,それをどう扱うかは,その現れた文脈による。 

3.3.1 

データの中の記録の境界 属性値(5.参照)及び要素のデータ内容の中では,記録開始は無視する。

一方,記録終了は,データの一部として扱う。これは,その文書を処理するシステムにとって意味をもつ

かもしれないからである。例えば,書式付けシステムでは,普通,記録終了を間隔として解釈している。 

しかしながら,記録終了もマークによってもたらされた場合には,次に示すように,無視する。 

(1) 内容の先頭及び末尾に現れた記録終了は,無視する。 

例 

<P> 

短い段落データ 

</P> 

は,次と同値である。 

<p>短い段落データ</p> 

(2) 処理指令だけの記録及びマーク宣言だけの記録の後では,記録終了を無視する。言い換えれば,デー

タ文字の流れに関する限り,宣言や処理指令は書いてないのと同じ扱いになる。 

例 

<P> 

最初のデータ 

<?処理指令1> 

<?処理指令2> 

最後のデータ 

</P> 

は,次と同値である。 

<p>最初のデータ 

<?処理指令1><?処理指令2>最後のデータ </p> 

94 

X 4151-1992  

備考 この参考3の中の例では,1行を1記録とし,その前後に記録開始と記録終了とがあるものと

考える。 

3.3.2 

マークの中の記録の境界 タグ及び宣言の中では,記録開始も記録終了も間隔として扱う。これら

は,そのマークの中の分離子となる(ついでながら,タブ文字も分離子となる。)。 

処理指令の中の記録の境界をどう扱うかは,その処理システムが決める。 

4. 文書構造 SGMLのタグは,次の(1)〜(2)の役目を果たす。 

(1) その文書での要素の間の構造関係を示す。 

(2) その要素の共通識別子と属性とを指定する。 

構造及び属性を指定する規則は,SGMLがすべての文書に共通のものとして定めている(その幾つかは

既に解説したし,残りのものもいずれ解説する。)。しかしながら,文書の中での要素そのもの及び属性そ

のものは,その文書の文書型定義が定義する。 

4.1 

文書型定義 共通識別子は,その要素がどの種類(“型”)のものであるかを表している。その特定

の型のすべての文書に適用するマーク宣言の集合を,文書型定義という。 

文書型定義に現れる宣言のうち重要なものは,次の(1)〜(3)である。 

(1) 要素宣言 その要素に現れてもよい共通識別子とその順序を定める。 

(2) 属性定義並び宣言 その要素に指定できる属性とそのとり得る値を定める。 

(3) 実体宣言 その型の文書の中で参照できる実体を定める。 

例    <!ENTITY SGML “Standard Generalized Markup Language”> 

この実体は,よく使う長い語句 “Standard Generalized Markup Language” を短い実体参照 

“&SGML;” で済ますためのものである。 

何度も同じことを繰り返さないで済むように,文書型定義は,普通,別個の実体として蓄えてある。そ

れぞれの文書では,その文書型を指定しその実体を参照できるようにした文書型定義を書くことで,その

中に取り込んで利用する。 

4.2 

要素宣言 要素は,文書型定義での規則に従った形でだけ文書に現れることができる。例えば,そ

の定義が段落の中に図を含めることを認めているのでない限り,図を段落の中に入れると誤りとなる。要

素宣言は,こうした規則を定めるのに使う。 

4.2.1 内容モデル 文書のそれぞれの要素に対して,応用設計者がその要素宣言の二つの引数を指定する。

要素の共通識別子とその内容の内容モデルとである。内容モデルの引数は,その要素の中にどんな下位要

素及び文字列が現れてもよいかを定める。 

例えば,教科書 (textbook) が前部 (front matter),本体 (body) 及び後部 (rear matter) でできているとし

たら,その宣言は次のようになる。 

<!ELEMENT textbook (front, body, rear)> 

 “textbook” がその内容を定めようとしている要素の共通識別子であり, “(front, body, rear)” がその内容

を定める内容モデルである。この宣言は,textbookに共通識別子の “front”, “body” 及び “rear” が現れる

ことを述べている(共通識別子は,人間にとってはその意味を体現しているであろうが,SGML構文解析

系にとっては単なる記号にすぎない。)。 

内容モデルは,群の一種である。群は,その成分を接続子でつないで並べたもので,その個々の成分を

字句という。群は,“群の開始 (group open)”区切り子grpoと“群の終了 (group close)”区切り子grpcと

でくくる。この前後の区切り子は,たとえその群が1個の字句しかもたない場合でも,必要である。 

95 

X 4151-1992  

モデル群での字句は,共通識別子である。群に使う区切り子には,その字句をつなぐ接続子のほかに,

出現標識がある。出現標識は,その共通識別子が何回現れることができるかを指定するのに使う。 

4.2.2 

接続子・出現標識 接続子は,共通識別子と共通識別子との間に書いて,それらがどう現れるかを

指定する。教科書の例では,“列 (sequence)”接続子seqが使ってあった。文の中では,カンマ “,” である。

この接続子は,モデルの中に共通識別子が並んでいたとおりの順番で,要素が文書の中に現れなければな

らないことを意味する。 

出現標識は,対象とする共通識別子の直後に書く。教科書の例には,出現標識がなかった。これは,そ

れぞれの要素がちょうど1回現れなければならないことを意味する。例えば,前部 (front matter) と後部 

(rear matter) を省略してもよいことにしたいのであれば,次の例1.のように疑問符 “?” を使えばいい。疑

問符は,“任意選択 (optional)”出現標識optである。 

例1.    <!ELEMENT textbook (front?, body, rear?)> 

ここまでで,教科書の最上位の構造だけを定め終わった。文書型定義には, “front”, “body” 及び “rear” 

の構造も定めておかなければならないし,更にそれらの下位の構造も,文字データの階層に至るまで,き

ちんと定めておかなければならない。 

例を簡単にするため,本体は,段落 (paragraph) を並べたものであるとしておこう。すると,本体に現

れてもよい共通識別子は “p” だけということになるが,これは何回現れてもよい。そこで,複数の段落が

あることを示すために,この共通識別子には例2.に示すように正符号 “+” を付けておく。正符号は,“必

す反復”出現標識plusである。 

例2.    <!ELEMENT body (p+)> 

この正符号は,本体の中に少なくとも1個の段落がなければならないことを示す。何かの理由で本体に

段落が1個もないものも認めたいのであれば,例3.に示すように正符号に代えてアステリスク “*” を付け

てやればよい。アステリスクは,“任意選択反復”出現標識repである。 

例3.    <!ELEMENT body (p*)> 

さて,教科書の例で,本体に段落に加えて例 (example) もあってよいことにしてみよう。例に対する共

通識別子を “xmp” とすると,“幾つもの段落や例”は,例4.のように指定できる。 

例4.    <!ELEMENT body (p|xmp) +> 

ここで,縦棒 “|” は“又は”接続子 (or) であり, “p|xmp” は“段落又は例”を表している。 

モデル群は,幾つもの字句を含んでいるものの,それ自身1個の字句として扱うことができ,出現標識

を付けることもできる。例4.での群のかっこは,不可欠である。出現標識(“?”, “+” 及び “*”)は,接

続子(“,” 及び “|”)よりも優先順位が高いからである。 

したがって,例4.を例5.のようにしたのでは意味が違ってしまう。 

例5.    <!ELEMENT body (P+|xmp+)> 

こちらは“幾つもの段落又は幾つもの例”を意味するので,望む“幾つもの段落や例が混じったもの”

とはならないからである。 

接続子には,もう一つある。いま,教科書の前部には表扉 (title page) があって,そこには表題 (title),

著者 (author) 及び出版社 (publisher) を記載するものだとしてみよう。ただし,記載の順番は問わないこ

とにしたい。すると,接続子seqは使えない。特定の順番を要求してしまうからである。もちろん,接続

子orも使えない。三つの中から一つだけを選ぶことになってしまうからである。 

そこで,例6.に示すようにアンパーサンド “&” を使う。アンパーサンドは,“及び”を意味する接続子

andであり,モデル群の中のすべての共通識別子が現れなければならないことを示すが,その順番を問わ

96 

X 4151-1992  

ない。 

例6.    <!ELEMENT titlepage (title & author & publisher)> 

4.2.3 

モデルでの実体参照 二つの要素が,例1.に示すように,同じではないものの,ほとんど同じ内容

モデルをもっている場合を考えてみよう。 

例1. 

<!ELEMENT body (p|xmp|h1|h2|h3|h4) +> 

<!ELEMENT rear (p |h1|h2|h3|h4) +> 

本体にも後部にも,段落と見出し (heading) の “h1”, “h2”, “h3” 及び “h4” とがあるが,例が書ける

のは本体だけになっている。 

このようにマーク宣言の引数に繰り返して現れる部分は,文書の文の中での繰返しと同じで,実体参照

を使うとうまくさばくことができる。違うのは,宣言の引数で使う実体参照(これを,“引数実体参照”と

いう。)には,その前にパーセント記号 “%” を付ける点だけである。このパーセント記号は,“引数実体

参照の開始 (parameter entity reference open)”区切り子peroである。peroは,実体宣言のときにも,その定

義しようとする実体が引数実体であることを示すために,付けなければならない(ただし,単独の引数と

して分けて書く。これは,参照と誤解されないためである。)。すると,例1.の宣言は,例2.のようにも書

くことができる。 

例2. 

<!ENTITY %h1to4 ”h1|h2|h3|h4”> 

<!ELEMENT body 

 (p|xmp|%h1to4) +> 

<!ELEMENT rear 

 (p 

|%h1to4) +> 

4.2.4 

名前群 群の別の使い方を示そう。本体と後部とが,例1.のように同じ構造をもっていたとしよう。 

例1. 

<!ELEMENT body 

 (p|xmp) +> 

<!ELEMENT rear 

 (p|xmp) +> 

これを例2.のようにすると,書く分量も少なくなるし,その宣言が要素の一群に対するものであること

を強調できることにもなる。 

例2.    <!ELEMENT (body|rear) (p|xmp) +> 

4.2.5 

データ文字 ここまでに示した要素は,いずれも下位の要素だけを成分とするものであった。しか

し,いずれ,応用が実際のデータを扱うところまで,言い換えれば,タグのないところまでたどり着くこ

とになる。 

データを内容モデルに指定するときには,予約名 “#PCDATA” を使う。 “#PCDATA” は,“0個以上の

解析対象データ”を意味する。実質的に出現標識repの意味が込められているので,これには何も付ける

ことができない。例1.の宣言は,段落が0個以上の文字からなる文字列(記録終了及び間隔も含む。)であ

ることをいっている。 

例1.    

<!ELEMENT p (#PCDATA)> 

ところで, “#PCDATA” と大文字で書くのは,この語がSGMLで定めているものであることを強調する

ためである。規格参照具象構文を使っている場合,SGML構文解析系は,実体の名前を除いて,すべての

名前の大文字・小文字の違いを無視する。 

例えば,段落の構造が例2.のようになっていることもあるだろう。 

例2. 

<!ENTITY % phrase “quote|citation|reference”> 

<!ELEMENT p (#PCDATA|%phrase) *> 

この宣言は,段落が文字のほかに成句 (phrase) の要素が入り混じった列になっていることをいっている。

成句としては,引用句 (quote),引用文 (citation) 及び参照 (reference) がある。段落は,これらが幾つ並ん

97 

X 4151-1992  

でいてもよいし,空でもよいことになる。 

さて,シャープ記号 “#” は,“予約名標識 (reserved name indicator)”区切り子rniであり,利用者の定義

した名前も現れ得る文脈で予約名であることを明示するために使う。例えば,rniが付いているので 

“#PCDATA” が共通識別子でないと分かるのである。 

4.2.6 

空の内容 その要素の内容を利用者が書くことがないような要素を定めることもできる。例えば,

図参照 (figure reference) で,その図はいつでも手続きがその内容の処理の際に生成してくれる場合がこれ

に当たる。空の要素を定めるには,普通の括弧でくくったモデル群の代わりに,見出し語 “EMPTY” を指

定する。 

例    <!ELEMENT figref EMPTY> 

内容を空と宣言した要素には,終了タグを書いてはならない(実際,終える内容そのものがないのだか

ら,書くまでもない。)。 

4.2.7 

非SGMLデータ 教科書の本体に,写真 (photograph) も入るのだとしたら,その宣言は例1.のよ

うになる。 

例1.    <!ELEMENT body (p|photo) +> 

写真は,普通,その画像上のそれぞれの点の色を表したビットの列で表現する。このビット組合せは,

文章及びマークに使う文字とは意味が違う。SGMLが定める以外の,約束された記法に従って解釈しなけ

ればならない。 

非SGMLデータは,SGML構文解析系で走査しないのだから,独立した実体として別に蓄え,その名前

は特殊な属性として指定する(詳しくは,13.1.2参照)。その要素の内容は,例2.のとおり空として宣言し

ておかなければならない。 

例2.    <!ELEMENT photo EMPTY> 

4.2.8 

内容モデルでの区切り子 内容モデルに現れる区切り子と,その規格参照区切り子集合での文字列

とを,次にまとめておく。 

−くくり 

文字列 名前 

働き 

GRPO 群を開く。その中に書いたものをまとめて演算の対象にできるようにする。 

GRPC 群を閉じる。 

−出現標識 

文字列 名前 

働き 

OPT 

任意選択(0回又は1回)を指定する。 

+ 

PLUS 必ず反復(1回以上)を指定する。 

REP 

任意選択反復(0回以上)を指定する。 

−接続子 

文字列 名前 

働き 

SEQ 

モデル群に現れたのと同じ順ですべての要素が現れなければならないことを指定す

る。 

| 

OR 

モデル群の中の一つの要素だけが現れなければならないことを指定する。 

&  

AND 

モデル群の中のすべての要素が現れなければならないが,順を問わないことを指定す

る。 

−その他 

background image

98 

X 4151-1992  

文字列 名前 

働き 

RNI 

利用者が定義した名前ではなく,予約名が続くことを示す。 

5. 属性 記述的マークであるタグには,その要素の共通識別子に加えて,属性も書くことができる。普

通,共通識別子は名詞にし,属性はその共通識別子の特性を表す名詞か形容詞にするのがよい(動詞及び

書式付け用語は,記述的でなく手続き的であり,SGMLでのマーク付けの精神に反するから,避けるのが

よい。)。 

要素に認める属性は,文書型定義で定める。そこでは,その属性の値の範囲及び指定を省略したときの

値も定めておく。 

5.1 

属性の指定 2個の属性を書いたタグの例を,参考3図2に示す。 

属性は,開始タグの中で共通識別子に続けて指定する。それぞれの属性に対する指定は,その名前,“値

標識 (value indicator)”区切り子vi及びその指定する値を並べて書く。参考3図2の例では,“security(機

密性)”という名前の属性に“Internal Use(内部使用)”という値を指定し,“sender(発信人)”に “LTG” を

指定している。 

参考3図2 

5.1.2 

属性の値 属性の値は,データ文字や実体参照の列を,その前後に“表記 (literal)”区切り子litを

書いて指定する。litは,通常は引用符号 “”” である。代替の表記区切り子litaを使うこともできる。こち

らは,通常はアポストロフィ “ʼ” である。lit及びlitaは,どちらを使ってもよいが,一方で始めて他方で

終えることはできない。 

空の値は,litを二つ並べて表す。 

例    <listing name=Jones phone= ”555-1234” altphone= ” ”> 

属性の値の中の,記録終了及びタブ文字は,間隔に置き換えられる。記録開始は,無視される(つまり,

取り除かれる。)。 

属性の値を指定するのに使う区切り子機能と,その規格参照区切り子集合での文字列とを,次にまとめ

ておく。 

文字列 

名前 

働き 

= 

V1 

値標識 

” 

LIT 

表記区切り子 

LITA 

表記区切り子(代替) 

5.2 

属性の宣言 それぞれの要素に対して,文書型定義には,その要素の属性を確定する情報を書いて

おかなければならない。要素に対する属性定義並びが書いてないときは,その要素に属性がないことにな

る。 

5.2.1 

属性定義の形式 属性定義並び宣言には,まず,その属性定義並びを結び付けようとする結合要素

型を書く。結合要素型は,1個の共通識別子でもよいし,複数の共通識別子の群でもよい。群の場合には,

その成分となっている共通識別子のすべてが同じ属性をもつことになる。 

99 

X 4151-1992  

属性定義並び宣言には,それぞれの属性についての属性定義を書き並べる。属性定義は,次の(1)〜(3)

からなる。 

(1) その属性の名前。 

(2) その属性に認める値(宣言値)。 

(3) その値を文書の中で指定しなくて,しかもタグ省略のマーク最小化機構(参考4参照)が有効なとき

に想定する省略時値。 

この属性並びには,ここで述べなかった様々な引数も書くことができる。さて,長々しい宣言を読むと

きには,そこに解説的な注釈があると助けになるものである。マーク宣言の中では,注釈をどの引数の間

にも書くことができるし,注釈だけからできた宣言さえ書くことが認められている。 

注釈は,その前後を“注釈 (comment)”区切り子comでくくっておく。comは,通常は2個の負符号 “−

−” である。注釈は,例1.のように,引数についての見出しとして利用することもできる。 

例1.    <!−− 要素   名前   値   省略時値 −−> 

属性定義並びには,それぞれの属性について,幾つかの引数を繰り返して書くことになる。宣言は,一

般に記録の境界をまたがっていてよいから,望むならこれらを表の形にして書くこともできる。例えば,

参考3図2の要素 “memo” に対する宣言を表の形に書くと,例2.のようになる。 

例2. 

<!−− 

要素 

内容 

−−> 

<!ELEMENT 

memo 

(from, to, subject, body, sig, cc?)> 

<!−− 

要素 

名前 

値 

省略時値 

−−>  

<!ATTLIST 

memo 

status 

(final|draft) “final”  

security 

CDATA 

#REQUIRED  

version 

NUMBER 

“01”  

sender 

NAME 

#IMPLIED> 

上の属性定義でのそれぞれの属性の意味は,次の(4)〜(7)のとおりである。 

(4) status 属性 “status” は,値として “final” か “draft” かのいずれかをもたなければならない。参考3

図2の例では,この属性を指定してないから,SGML構文解析系は省略時値 “final” が指定されたも

のとして扱う。 

(5) security 属性 “security” は,値として文字列をとる。省略時値に書いた見出し語 “REQUIRED” は,

この属性を必ず文書中で指定しなければならないことを示している。 

(6) version 属性 “version” は,値として数字の列をとる。省略時値は,列 “01” である。 

(7) sender 属性 “sender” は,値としてSGMLでの構文的に正しい名前をとる。見出し語 “IMPLIED” は,

この属性が任意選択であり,文書中で指定しなかった場合には応用が補充してくれることを示してい

る(参考3図2の例では, “LTG” と指定してある。)。 

値が名前文字ばかりでできているとき,省略時値にその値を指定する場合には,その区切り子を省略し

てもよい(省略時値引数での見出し語には,rniを付けて利用者の定義した名前と区別するからである。)。

例2.でいうと,省略時値の “final” と “01” とは,区切り子なしで書くことができる。 

注釈の話が出てきたので,空のマーク宣言 “<!>” も注釈になることを紹介しておく。この注釈は,文書

の部分部分を区切るのに使うことができる。空の記録(行)を区切りに使うと“短縮参照”(参考4参照)

と間違って構文解析される可能性があるのに対して, “<!>”にはその心配がないからである。 

100 

X 4151-1992  

5.2.2 

複雑な属性の値 属性の値が,論理的に幾つもの成分からできていることもある。例えば,計算機

が表示する画像出力に緑及び黒の二つの色があったとしよう。属性はタグに1度しか指定できないから,

例1.のようにしたのでは誤りとなってしまう。 

例1. 誤例  <display color=black color=green> 

そこで,属性 “color” の値を “NAMES” と宣言することにすると,例2.のように,この二つの色を属性

の1個の値として指定することができる。 

例2.   <!ELEMENT display (P+)> 

 <!ATTLIST display color NAMES ”white black”> 

 <!> 

 <display color= ”black green”> 

見出し語 “NAMES” は,“SGMLでの名前を,間隔,記録終了,記録開始,水平タブ文字などで区切っ

て並べたもの”を意味する。このほかに宣言値の見出し語として使えるものを,次の(1)〜(3)に示しておく。 

(1) NUMBERS 数の並び 

(2) NMTOKENS 名前字句の並び(名前字句は,名前とほぼ同じであるが,名前開始文字で始まってい

なくてもよい。例えば, ”-abc 123 12.3 123a .123”) 

(3) NUTOKENS 数字句の並び(数字句は,数字で始まる名前字句。例えば, ”123 12.3 123a 0.123”。 ”.123 

456” は,数字句の並びではない。) 

それぞれ字句1個だけを値としたいのであれば,単数形の見出し語 “NMTOKEN” 及び “NUTOKEN” を

使えばよい(宣言値引数に書く見出し語には,rniを付ける必要がない。そこに利用者が定義した名前が

書けないからである。)。 

例2.は,例3.のように二つの属性を定義してやることで複雑な値を使わなくても済むことに注意しよう。 

例3. 

<!ELEMENT display (p+)> 

<!ATTLIST display 

bgcolor NAME ”white” −−背景色−− 

fgcolor NAME ”black” −−文字色−−> 

<!> 

<display bgcolor=black fgcolor=green> 

5.2.3 

名前字句群 属性の値として使う名前及び名前字句を限定することもできる。それには,それらを

成分とする群を与える。これを名前字句群という。 

例1. 

<!−− 

要素 

内容 

−−> 

<!ELEMENT 

memo 

 (from, to, subject, body, sig, cc?)> 

<!−− 

要素 名前 

値 

省略時値 −−> 

<!ATTLIST 

memo status 

 (final|draft)   “final”> 

例1.の宣言の下では,次のどちらかだけが指定できる。そのほかの値を属性 “status” に指定することは

できない。 

<memo status= “final”> 

<memo status= “draft”> 

一つの要素型の中で,名前字句は属性定義並びに1度だけ現れることができる。名前の場合と同じで,

名前字句の大文字・小文字の違いは無視される。 

101 

X 4151-1992  

5.2.4 

変化する省略時値 省略時値に “CURRENT” を指定すると,その省略時値には,自動的に最も近

くに指定のあった値が選ばれる。これを使うと,値の指定を省くことで,前に現れた同じ型の要素から属

性の値を“引き継ぐ”ことができる(“CURRENT” 属性をもつタグを書き加えたり取り除いたりするとき

は,このことに気をつけること。)。 

6. 実体 実体参照及び引数実体参照の例は,これまでにも幾つも見てきた。実体は,プログラム言語で

の変数に非常に似てはいるが,あくまで文書の一部分であり,その対比でいえば定数である。参照を利用

して,次のような技法を使うことができる。 

(1) 長い文や文字列を短い名前で参照する。けん盤で楽には入力できないものを参照する。 

(2) システムでの別のファイルに蓄えてある文書を取り込む。 

(3) システムの間での文書交換をしやすくする。システム特有の対象(直接にけん盤から入力できない文

字など)が実体参照の形にしておくことで,受け手のシステムではそこだけを書き直せばいいことに

なるからである。 

(4) 処理指令を実際に実行した結果(例えば,その日の日付)を,文書の中に取り込む。 

6.1 

実体参照の形式 名前による実体参照には,二つの種類がある。一般実体参照は,要素の内容や区

切り子で囲った属性の値の中で自由に使うことができる。引数実体参照は,マーク宣言の区切り子のlit

又はlitaで囲った引数の中に使うことができる。引数実体参照は,完全な引数又は群の字句を分離子で区

切って並べたものへの参照にも使うことができる。 

一般実体参照は,“実体参照の開始”eroと“参照の終了”refcとでくくる。通常,eroはアンパーサン

ド “&” であり,refcはセミコロン “;” である。 

例1.    は,&site;で印刷し 

実体参照の直後に間隔又は記録終了が来るときは,refoを省略することができる。 

例2.    文書は,&site 

  で印刷したもの 

引数実体参照も同様であるが,先頭の区切り子を“引数実体参照の開始”pero(通常は,パーセント記

号 “%”)とする(なお,区切り子の文字列について“通常は”というのは,“規格参照区切り子集合では”

の意味である。)。 

このように一般実体参照と引数実体参照とを区別しているのは,文書を実際に作る人が実体名を使って

マーク付けする際に,その文書型の文書型定義を与えた支援部隊の人が同じ名前をほかの目的に使ってい

たかどうかを気にせずに済むようにするためである。 

実体参照に使う区切り子と,その規格参照具象構文での文字列とを,次にまとめておく。 

文字列 

名前 

働き 

ERO 

実体参照の開始 

PERO 

引数実体参照の開始 

REFC 

参照の終了 

6.2 

実体の宣言 実体を実際に参照するには,その前に,その実体を実体宣言で宣言しておかなければ

ならない。この宣言の主な引数は,実体名及び実体文の二つである。例1.の実体宣言を見てみよう。 

例1. <!ENTITY JSA”(財)日本規格協会”> 

例1.の宣言は,文書の中に現れる名前 “JSA” を使った参照(つまり, “&JSA;”)が,そこに文“(財)

日本規格協会”を書いてあるのと同値であることをいっている。この実体文は,(属性の値のときと同じで)

102 

X 4151-1992  

区切り子のlit又はlitaでくくる。これを“引数表記”という。 

実体であればいつでも記録開始で始まり記録終了で終わる,というわけではない。実体の前後に記録の

境界が欲しい場合には,その参照の前後に記録の境界を置いておくことが望ましい。 

例2.   <p> 特に,&JSA;の貢献が大きい。 </p> 

は,次のように書き換わる。 

 <p> 特に,(財)日本規格協会の貢献が大きい。 </p> 

一方, 

 <p> 賛助団体(予定): 

 &JSA; 

 その他 

 </p> 

は,次のように書き換わる。 

 <p> 賛助団体(予定): 

 (財)日本規格協会 

 その他 

 </p> 

しかしながら,実体参照を閉じるのにrefcでなく記録終了を使った場合は,その直後の記録がその実体

の後ろに追い込まれる。 

例3.   &JSA 

 理事長 

は,次のように書き換わる。 

 (財)日本規格協会理事長 

6.2.1 

処理指令 処理指令も実体として蓄えることができる。処理指令は,その実体を宣言するときには

実行されず,それを参照したときに実行される。 

例   <!ENTITY page PI “newpage; space 3”> 

見出し語 “PI” は,その実体が参照されたとき処理指令として解釈することを指定する。 

6.2.2 

実体参照を含んだ実体 引数実体は,その実体名の前に第1の引数としてperoを書いて宣言する。 

例1.   <!ENTITY % bullet ”o”> 

引数実体は,引数表記の中で参照することもできる。 

例2.   <!ENTITY prefix ”%bullet; ”> 

この参照 “%bullet;” は, “prefix” の宣言のときにその実体に書き換わる。実体 “prefix” を

参照するたびに書き換わるのではない。 

6.2.3 

外部の実体 文書処理システムには,幾つもの記憶形態(ファイル,ライブラリ要素,マクロ定義,

文字列を表す記号など)があるのが普通である。こうしたシステム依存の事柄は,それらを実体として参

照する形として,文書の本体から切り離すことができる。 

例1.   <!ENTITY part2 SYSTEM> 

実体名だけでは,そのシステムで外部の対象を特定できないのであれば,付加的な情報(これを“シス

テム識別子”という。)を指定することもできる。 

例2.   <!ENTITY part2 SYSTEM ”user. sectionX3. textfile”> 

システム識別子は,引数表記と同様の区切り子でくくる。システム識別子の性質や書き方は,SGMLシ

103 

X 4151-1992  

ステムの実体管理系と呼ぶ構成単位に依存する。実体管理系の仕事は,実体参照をそのシステムでの番地

付けに変換することである。 

6.2.4 

公開識別子 個々の文書又はシステムを超えて明らかになっている外部の実体を,“公開の実体”

という。公開の実体には,国際規格,国家規格又は業界規格によって,又はそれを共用しようとする利用

者の団体によって,“公開識別子”が与えられる。 

公開の実体の利用例の一つに,文書型定義の共有がある。実体宣言の組を“実体集合”として共有して,

数学,化学といった専門領域での記号又は用語を定めておくのにも使うことができる。 

公開の実体も,ほかの外部の実体と同様にして,宣言することができるが,見出し語 “SYSTEM” に代

えて“公開識別子指定”を書いておく。 

例   <!ENTITY % ISOgrk1 

  PUBLIC ”ISO 8879-1986//ENTITIES Greek Letters//EN”> 

公開識別子指定には,見出し語 “PUBLIC” 及び表記と同じ区切り子でくくった公開識別子を書き,更に,

システム識別子を書き添えてもよい(上の例では,システム識別子が省略してある。)。公開識別子に使え

るのは,英字,数字,間隔及び記録の区切りと,若干の特殊文字である。これらを,“最小データ”文字と

いう。 

7. 文字 文書に使うそれぞれの文字は,その文書の文字集合の中で特定の位置を占める。この位置の個

数は,その符号集合の大きさによって決まる。つまり,文字を表現するビット列の長さによって決まる。 

例えば,ISO 646の国際参照版 (ISO 646 IRV) は,7ビット集合である。7ビットでは,128個のビット

組合せが可能で,それぞれに0〜127の番号をふる。8ビット集合では,256個のビット組合せが可能であ

る。この位置の番号を,文字番号という。文字番号は,その文字を表現するビット組合せを2進数として

読んだときの値になっている。 

いわゆる“符号拡張法”を使うこともでき,一つのビット組合せで幾つかの文字を表現することができ

る。これらについては,参考6の3.を参照のこと。 

7.1 

文字の種別 文字集合はいろいろあって,それぞれの国の文字又は科学記号,様々なけん盤装置,

表示装置,処理システムなどに対処している。それぞれの文字集合は,そのビット組合せを数字,英字な

どといったいろいろな文字の種別に対応させる。SGML文書には,マーク文字(名前文字,区切り子及び

機能文字)と最小データ文字とが表現できるなら,どんな文字集合でも使うことができる。 

SGMLでは,文字を次のとおりの種別に分類する。 

(1) 名前文字 名前に使う文字。数字0〜9と英字A〜Zの大文字・小文字は,いつでも名前文字とする。

規格参照具象構文では,更にピリオド及び負符号も名前文字に加えている。それぞれの名前文字(数

字及び英大文字を除く。)にはその大文字があり,名前はその大文字に代替した上で扱われる(規格参

照具象構文では,実体名をこの対象外としている。)。名前文字の幾つかは名前開始文字といい,名前

はこの名前開始文字で始めなければならない。大文字・小文字の英字はいつでも名前開始文字であり,

そのほかの名前開始文字は具象構文が定める。 

(2) 区切り子集合 様々な文脈において,マークをデータと区別するために使う文字。 

(3) 非SGML文字 SGML実体には現れないと文書文字集合で定めている文字。その一部は,具象構文が

指定した候補の中から選ばれる。例えば,規格参照具象構文では,制御文字(機能文字として使う少

数の文字を除く。)を非SGML文字としている。非SGML文字は,外部の実体,文書を保存したり転

送したりする際のファイル,データ流などといった“容器”の中の非SGMLデータ(例えば,画像)

104 

X 4151-1992  

に現れる。非SGML文字は,マーク又はデータと混同してしまうおそれがないから,システムがデー

タの区切り又は埋め草などに充てても構わない。 

(4) データ文字 句読点,数学記号など区切り子には使わないそのほかの文字(マーク文字も,マークを

認知しない文脈ではデータ文字となる。こうしたデータを“解析対象文字データ”という。)。 

7.2 

文字参照 文字には,次の(1)〜(4)のように,書くのが大変であったり書けなかったりするものがあ

る。 

(1) 入力装置のキーに対応するものがない文字。 

(2) 表示できない文字。 

(3) マーク又はデータ文字として直接に書けない非SGML文字。 

(4) SGMLの機能文字となっているもののデータとして使いたい制御文字。 

このような文字を間接的に書く方法として,“文字参照”がある(ただし,例1.〜例2.では,目に見える

ことを考えて,直接にでも書くことができる負符号 “−” を対象としてある。)。 

例1.   <!ENTITY hyphen “−”> 

 <!ENTITY hyphen “&#45;”> 

負符号の文字番号が45であれば,この二つの宣言は同値である。 

これまでの例示では,実体文の表記に文字データだけを使っていた。上の例の第2の宣言では,文字参

照を使っている。文字参照は,“文字参照の開始 (character reference open)”区切り子cro (“&#”) で始まり,

区切り子refcで終わる。その中には,名前でなく,文字番号を書く。 

表記には,文字データと文字参照とを混在させてもよい。 

例2.   <!ENTITY finis ”−|−”> 

 <!ENTITY finis ”&#45;|&#45;”> 

負符号の文字番号が45であれば,この二つの宣言は同値である。 

文字参照は,実体参照と同じく,属性の値及びデータ内容にも使うことができる。 

機能文字については, “&#RS;”, “&#RE;”, “&#SPACE;” 及び “&#TAB;” という名前指定文字参照も

できる。名前指定文字参照は,その文字の機能も生かしたいときに使う。番号による文字参照は,その文

字を書くことだけを目的として,その文字の機能を殺したいときに使う。 

文字参照に使う区切り子とその規格参照具象構文での文字列とを,次にまとめておく。 

文字列 

名前 

働き 

&# 

CRO 

文字参照の開始 

REFC 

参照の終了 

7.3 

データとしての区切り子文字 SGMLは,区切り子にどの文字を使うかを強制しない。SGMLは, 

区切り子機能を“抽象構文”で定めるだけで,それらにどんな文字列を割り当てるかは具象構文の定義に

任せている。区切り子機能はたくさんあるが,次の(1)〜(5)の理由から,利用者がデータ文字を自由に書け

ることの本質的な妨げとはならない。 

(1) たいていの区切り子は,マーク宣言又はタグの中にだけ現れる。要素の内容に現れる区切り子はごく

少数である。 

(2) 区切り子機能に割り当ててある文字の種類は多くない。 

(3) 内容の中で意味をもつ区切り子機能は,文脈に依存する。これらは,しかるべき文脈列が直後に続く

場合(又は特別な場合)にだけ区切り子として認知される。例えば,区切り子eroは,その後ろに名

前開始文字がきているときにだけ認知される。 

105 

X 4151-1992  

(4) たいていの区切り子は,複数の文字でできているので,その分だけデータとして現れる可能性が低い。 

(5) 複数文字の区切り子又は文脈依存区切り子は,その途中で実体が始まったり終わったりする場合には

認知されない。 

(5)から,そのデータ文字を参照として書くことであいまいさが回避できる。規格参照区切り子では,多

くの場合に,例1.に示す二つの実体があれば十分である。 

例1.   <!ENTITY amp ”&”> 

 <!ENTITY lt ”<”> 

この実体の参照 “&amp;” 又は “&lt;” は, “&” 又は “<” をデータとして使いたいときに自由に書くこ

とができる。参照は,いつでも文脈依存区切り子を終わらせるからである。 

“]” はマーク区間の終了となるので,場合によって,次の例2.のように実体への参照として書く必要が

ある。 

例2.   <!ENTITY rsqb ”]”> 

斜線 (solidus) “/” は,SHORTTAGの機構(参考4参照)を使っている場合で,しかもその要素に対して

特に許したときに限って,区切り子となる。この区切り子は1文字だけでできているから,特に文脈列を

必要としないので,実体参照にしたことだけでは文字データとしての扱いになるという保証がない。そこ

で,例3.のように,見出し語 “CDATA” を指定して宣言しておく。この見出し語は,その実体文が区切り

子に見えても文字データとして扱え,という指示を表す。 

例3.   <!ENTITY sol CDATA ”/”> 

引用符号 “”” も,一つの表記の中にデータとしてlitもlitaも出てくるような非常にまれな場合には,

例4.に示す実体への参照 “&quote;” として書く必要が生じる。たいていは,その表記にlitが出てくるな

らlitaでくくり,litaが出てくるならlitでくくることで用が済む。 

例4.   <!ENTITY quoteʼ“ʼ> 

8. マーク区間 マーク区間は,マーク区間宣言の引数として文書に現れた区間をいい,その区間での区

切り子を無視する,その区間を特定の処理の際に無視するといった,特別な目的を明記しておく。 

8.1 

無視するマーク区間 文書を二つの処理システムにかける場合,一方の処理システムに対しては処

理指令となるものも,他方の処理システムでは役に立たない。そこで,SGML構文解析系が処理指令の一

方を無視することができるように,例1.のようにして,その処理指令を書いた文書の区間を無視せよと指

定しておく。 

例1.    <! [ IGNORE [<? システムAの処理指令>]]> 

このマーク区間宣言は,次の五つの部分からできている。 

(1) マーク区間開始 区切り子mdoと“宣言部分集合の開始 (declaration subset open)”区切り子dsoからで

きている。dsoは,通常は,左大かっこ “[” である。 

<! [ 

(2) 状態見出し語 例1.では, “IGNORE”。 

IGNORE 

(3) 区切り子dso ここからマーク区間が始まることを示す。 

(4) マーク区間の内容 

<? システムAの処理指令> 

106 

X 4151-1992  

(5) マーク区間終了 “マーク区間終了 (marked section close)”区切り子のmsc及びmdcからできている。

mscは,通常は,2個の右大かっこ “]]” である(2個のdsoに対応させている。)。 

]]> 

他方の処理指令は,例2.のようにして,取り込むべき区間としてマークしておく。 

例2.    <![ INCLUDE [<? システムBの処理指令>]]> 

この文書をシステムAに送るときには,二つのマーク区間の見出し語を逆にする必要がある。これを簡

単に行うには,それぞれの処理システムに対して引数実体を設けて,その参照を使えばよい。例3.のよう

に,一方の実体文を “IGNORE” に,他方の実体文を “INCLUDE” にしておくのである。 

例3.    <!ENTITY % systemA ”IGNORE”> 

  <!ENTITY % systemB ”INCLUDE”> 

それぞれのマーク区間宣言では,直接に “IGNORE” などの見出し語を書くのをやめ,その関係するシ

ステムの引数実体を参照しておく。例3.の宣言の下では,例4.の処理指令のうちの“システムB”のもの

だけが実行され,“システムA”のものは無視される。 

例4.    <![%systemA; [<? システムAの処理指令>]]> 

  <![%systemB; [<? システムBの処理指令>]]> 

同じ文書の中で “%systemA;” 又は “%systemB;” を参照しているマーク区間は,すべて同様の扱いを受

ける。さて,二つの実体宣言の実体文を例5.のとおりに逆にしてみよう。 

例5.    <!ENTITY % systemA ”INCLUDE”> 

  <!ENTITY % systemB ”IGNORE”> 

すると,今度は逆に “%systemB;” を参照しているマーク区間の方が無視される。 

なお,区間の内容を無視する場合も,正しくそのマーク区間の終了を知るために,その中に入れ子にな

っているマーク区間開始又はマーク区間終了はきちんと認知される。 

8.2 

文書の複数の版 文書を出版するとき,その文がわずかに違う幾つもの版ができるものである。

SGMLでは,そうした文書を処理するのに,その共通部分の文を何度も複製しなくて済むようにできる。

これまでに解説してきた技法を応用して,その共通部分を基の文に,それぞれの版に特有の部分をマーク

区間にしてやればいい。 

例   <![ %v1;[第1版の文]> 

 <![ %v2;[第2版の文]> 

両方の版に共通する文 

 <![ %v1;[第1版の別の文]> 

 <![ %v2;[第2版の別の文]> 

ここで,次の宣言を与える。 

 <!ENTITY % v1 ”INCLUDE”> 

 <!ENTITY % v2 ”IGNORE”> 

すると,第1版が処理されて,次のような結果を得る。 

 第1版の文 

 両方の版に共通する文 

 第1版の別の文 

宣言を逆にして,次のように与える。 

 <!ENTITY % v1 ”IGNORE”> 

107 

X 4151-1992  

 <!ENTITY % v2 ”INCLUDE”> 

すると,第2版が処理されて,次のような結果を得る。 

 第2版の文 

 両方の版に共通する文 

 第2版の別の文 

8.3 

解析しないマーク区間 マーク区間は,文字データ (Character DATA) として扱って構文解析しない

ように指定することもできる。 

例1.    <![ CDATA [ 

  <? 処理指令> 

  <p> この段落の参照&JSA; 

  は,参照として認知されない。</p> 

  <? 処理指令> 

  ]]> 

このマーク区間の内容は,文字データとして扱われる。したがって,その二つの処理指令と参照とは,

認知されることもなければ,それらとして処理されることもない。 

ほかの区切り子は無視してほしいものの,実体参照又は文字参照はきちんと処理してほしいときは,そ

のマーク区間を置換可能文字データ (Replaceable CDATA) と指定しておく。 

例2.    <![ RCDATA [ 

  <? 処理指令> 

  <p> この段落の参照&JSA; 

  は,参照として認知される。</p> 

  <? 処理指令> 

  ]]> 

IGNOREと指定するマーク区間は入れ子にできたが,CDATA又はRCDATAと指定するマーク区間は入

れ子にできない。CDATA又はRCDATAと指定したマーク区間では,最初に出会ったマーク区間終了のと

ころで終わりとなる。 

8.4 

一時的なマーク区間 マーク区間は,その区間が一時的 (TEMPorary) なものであると明記しておく

こともできる。そうしておけば,後でそこを取り除く際にもすぐに分かる。 

例   <![ TEMP [ <?newpage> ]]> 

このようなマーク区間は,処理がうまくいかないとき,一時的に検査のための処理指令を入れたり一時

的な手当てをしたりするのに利用することができる。 

8.5 

見出し語の指定 見出し語を実体参照を使って指定するときの便宜を考えて,4種類の状態見出し語

と “TEMP” とは,重複して指定しても,複合して指定しても構わないことになっている。一つのマーク

区間宣言に複数の実体参照を書いておいても一向差し支えはなく,その参照を解消したときに生じる見出

し語の重複又は複合で誤りとなる心配をしないで済む。 

状態見出し語の優先度は,次のとおりである。 

IGNORE 

CDATA 

RCDATA 

INCLUDE 

108 

X 4151-1992  

状態見出し語の指定がない場合には, “INCLUDE” の指定があったものとして扱われる。 

8.6 

実体としてのマーク区間 マーク区間を実体として宣言することで,そのマーク区間を複数の箇所

に取り込むことができる。 

例1.   <!ENTITY phrase1 MS 

 ”RCDATA [ 

 何度も使う<tag>の 

 例を含んだ句 

 ”> 

この宣言の下で,次の文があったとしよう。 

 これは,&phrasel;を使っている。 

すると,次のように書き換わる。 

 これは,<![ RCDATA [ 

 何度も使う<tag>の 

 例を含んだ句 

 ]]>を使っている。 

例1. での “<tag>” は,マークとして解析されることがない。マーク区間宣言に “RCDATA” と指定し

てあるからである。 

なお,マーク区間の前後には記録開始も記録終了も入らないことに注意のこと。それらが必要なら,参

照の前後に記録開始及び記録終了を置いておかなければならない。 

例2.   これは, 

 &phrase1; 

 を使っている。 

このようにマーク区間を実体として宣言しておく場合,宣言の時点では,そのマーク区間は構文解析を

受けないし,処理もされない。マーク区間開始及びマーク区間終了は,それを参照したときに自動的に追

加される。 

9. 識別子属性 識別子属性は,その要素を他の要素と区別するための名前を値とする属性である。SGML

構文解析系は,識別子属性に共通する処理を行い,それぞれの手続きでの処理が軽減できるようにしてい

る。 

識別子属性に値として与える名前は,ある要素から別の要素を参照するのに使う。例えば“図参照”か

ら“図”そのものを参照するのに使う。たいていの場合,その“図”を処理する手続きは,与えられた名

前に何かのデータ(例えばその“図”の番号)を結び付けて返す。“図参照”を処理する手続きは,そのデ

ータを使って印字する。こういう形の受渡しに,識別子属性を使うのである。 

SGML構文解析系は,その属性の本当の意味が何であるかには関与しない。ただ,それが識別子属性で

あるとの指定だけがあればよい。 

例1. 

<!−− 

要素 

内容   −−>  

<!ELEMENT 

figure 

(figbody, figcap)> 

<!−− 

要素 

名前 値 省略時値 

−−> 

<!ATTLIST 

figure 

id 

ID #IMPLIED> 

識別子属性は,要素に一つだけ設けることができる。 

109 

X 4151-1992  

識別子属性に与える値は,名前でなければならず,しかもその文書の識別子属性の値として与えた他の

名前と違ったものでなければならない。ほかの名前の場合と同じで,すべて大文字に変換して扱われる。 

この名前を参照して使う要素には,“識別子参照”属性を設けておかなければならない。それには,その

宣言値に見出し語 “IDREF” を指定すればよい。 

例2. 

<!−− 

要素 

内容 

−−> 

<!ELEMENT 

figref 

EMPTY> 

<!−− 

要素 

名前 値 

省略時値   −−> 

<!ATTLIST 

figref 

refid IDREF 

#IMPLIED> 

識別子参照属性に与える値は,その参照しようとする要素の識別子属性に与えたのと同じ名前でなけれ

ばならない。この場合も,名前は大文字に変換して扱われる。 

10. 内容参照属性 文書が幾つかの章に分かれていて,それぞれの章ごとに書式付け及び印字を行う場合

がある。この場合,それぞれの章の中では“図参照”を自動的に処理できても,章をまたがる“図参照”

が自動処理できなくなってしまう。すると,“図参照”に対する要素宣言では,その内容が空になる(章の

中での参照で自動処理される場合)ことも,直接に与える(ほかの章への参照で自動処理できない場合)

こともあると指定しておかなければならない。 

この空の属性は,その属性定義で“内容参照”属性として指定しておかなければならない(この点を除

けば,普通の属性と変わるところはない。)。その指定には,省略時値として見出し語 “CONREF” を書い

ておく。 

例1. 

<!−− 

要素 

内容 

−−> 

<!ELEMENT 

figref 

 (#PCDATA, fignum)> 

<!−− 

要素 

名前 値 

省略時値 

−−> 

<!ATTLIST 

figref 

refid IDREF 

#CONREF> 

見出し語 “CONREF” は,その属性が内容参照属性であることを指定するとともに,それが補充可能な

属性(省略時値に見出し語 “IMPLIED” を指定したときと同じ)であることも指定している。 

例2.   この例には,自動的に生成される 

 <figref refid=figdavis> への図参照と 

 直接にその内容を与えての 

 <figre> 附属書 <fignum> A-1 </fignum> 

 </figref> への図参照とが現れる。 

例2の最初の “figref” は内容が空であり,2番目の “figref” は内容が文字列と “fignum” の両方になっ

ている。 

その識別子参照属性に名前を与えてその内容が空となる使い方をしたとき,これを“明示内容参照”と

いう。明示内容参照には,終了タグを書いてはならない(その内容が空なのだから,書く必要もない。)。 

内容が空になっている要素でも,その内容モデルが任意選択になっていて,それに従って空にした場合

には,扱いが変わる。このように,たまたま空になった要素には,必ず終了タグを書かなければならない

[マーク最小化機構(参考4参照)を使っているときを除く。]。その開始タグを見ただけでは,その内容

が空になっているかどうかが分からないからである。 

内容を “EMPTY” と指定した要素に内容参照属性を指定することには,意味がない(したがって,指定

することはできない。)。 

110 

X 4151-1992  

要約するとこうなる。内容参照属性は,内容が “EMPTY” でない要素に対してだけ指定することができ

る。開始タグでこれらの属性に値を与えている場合,その要素は空として扱われるので,終了タグを書く

ことはできない。 

11. 内容モデルの例外 内容モデルは,その最高位の水準に現れ得る要素(部分要素)を指定する。しか

しながら,場合によっては,更に下位に位置する要素についても述べる必要が生じることがある。要素宣

言での,“例外”引数とよばれる付加的な引数は,こうした目的のためにある。 

11.1 添加要素 索引の付いた本を考えると,その本文の中には索引項目が混じって現れる。書式付けの

過程では,この索引項目を収集し,整列し,ページ番号とともに索引として印字することになる。 

この“索引項目”を“本”の下位の要素としてきちんと指定するのは,大事になる。ほとんどすべての

モデル群に入れてやらなければならないからである。そこで,例外引数を活用する。 

例 

<!−− 

要素 

内容 

(例外)?−−> 

<!ELEMENT 

textbook 

(front?, body, rear?) + (entry)> 

正符号 “+” は,区切り子plusである。ここでのplusは, “entry” (索引項目)が “textbook” 

のどこにでも,データ文字の水準にでも現れ得ることを意味している。 

なお,注釈の中に書いた “?” は,例外引数が任意選択であることの備忘にすぎない。 

区切り子plusで指定する例外引数を,“添加要素”群という。 

11.2 排除要素 その要素のどの水準にもある種の要素が出てきてはならない,と指定したいこともある。

例えば,例1.は“図 (figure)”の入れ子を禁止しようとするものである。 

例1. 

<!−− 

要素 

内容 

(例外)?−−> 

<!ELEMENT 

fig 

(figbody, figcap?) − (fig)> 

<!ELEMENT 

figbody (artwork|p+)> 

<!ELEMENT 

(#PCDATA|fig)> 

この内容モデルは, “fig” の最上位に “fig” を許してはいない。しかし,その “figbody” として “fig” を

含んだ “p” が出てき得る形になっている。これを禁止しているのが,区切り子minusを付けた例外引数 

“− (fig)” である。この例外引数を,“排除要素”群という。 

排除要素群の中に指定できる共通識別子は,その影響するモデル群の中で,出現標識opt又はrepを付

けたものか,接続子orで結んだ群の成分となっているものか,又は添加要素であるものかのいずれかでな

ければならない。言い換えると,排除要素群の指定によって,モデル群がその文書に必すとしているもの

を除外することはできないのである。この結果として,排除要素群の指定は,字句の必す・任意選択の別

を変えることがない。例えば,必すのモデル群が接続子orで結んだ群であるとき,そのすべての成分を排

除してはならない。そうするとそのモデル群が実質的に空になってしまい,もはや必すとは認められなく

なってしまうからである。 

例外引数として排除要素群と添加要素群の両方を指定することもできるが,このときは,排除要素群を

書いてから添加要素群を書く。 

例2. 

<!−− 

要素 内容 

(例外)?−−> 

<!ELEMENT 

fig 

(figbody, figcap?) − (fig|xmp) + (gloss)> 

同じ共通識別子が排除要素群の中にも添加要素群の中にも現れている場合,それが同じ水準で起きてい

ようと異なった水準にまたがって起きていようと,排除要素の指定を優先して排除要素の対象とする。 

111 

X 4151-1992  

12. 文書型宣言 SGML文書の文書型は,“文書型宣言”としてその文書のデータの前に書く“前書き”

の中に指定しておかなければならない。要素宣言,属性定義並び宣言など,これまでに説明してきた宣言

は,この文書型定義を構成するものであり,“宣言部分集合”と呼ぶ引数としてまとめて書いておかなけれ

ばならない。 

例1.   <!DOCTYPE manual [ 

 <!ELEMENT manual (front?, body, rear?) + (entry)> 

 <!−−以下,この文書型定義を構成する 

 宣言がここに並ぶ。−−> 

 ]> 

“[” は“宣言部分集合の開始 (declaration subset open)”区切り子dsoであり, “]” は“宣言部分集合の終

了 (declaration subset close)”区切り子dsoである。 

SGML文書で前書きの後に続く部分は,データ又は記述的マークからなるが,これをその文書型の“実

現値”という(単に“文書実現値”ということもある。)。 

よくあることだが一つの文書型定義に従う文書が幾つもある場合には,その定義を外部の実体として用

意しておいて,それぞれの文書ではそれを参照するようにするのがよい。こうした実体は,文書型宣言に

その外部識別子を指定するだけで,参照し宣言することができる。 

例2.   <!DOCTYPE manual PUBLIC ”−//Cave Press//DTD Manual//EN”> 

その文書型定義のすべてが外部の実体にある場合には,例2.のように,宣言部分集合を書かないでよい。

多くの場合は,外部の定義とともに,その文書だけに適用する実体宣言などを書いた宣言部分集合も指定

することになる。 

例3.   <!DOCTYPE manual PUBLIC ”−//Cave Press//DTD Manual//EN”>[ 

 <!ENTITY title ”AIBOHPHOBIA : Fear of Palindroms”> 

 <!−−その他,文書型定義を拡充する 

     局所的な宣言を後に続く。−−> 

 ]> 

参照した外部の実体は,技術的な理由から,宣言部分集合の一部として扱われ,しかも,その参照が宣

言部分集合の終わりの直前にあったものとして処理される。これによって,積極的に書き与えた宣言部分

集合の方を先に処理するから,それに外部の実体よりも高い優先順位を与えることができる。 

13. データ内容 文書の中でマークでない部分を,データ内容という。データ内容には,次の(1)〜(2)の二

つの主な特性がある。 

(1) その表現によって,その部分をSGML構文解析系が走査するかどうかが決まる。これには,次の(a)

〜(b)の2種類がある。 

(a) 文字データ そのビット組合せが文字を表現している。 

(b) ビットデータ 普通,そのビット組合せが(単独で,又は幾つかまとめて)2進データを表現して

いる。 

(2) その記法によって,手続きでのその文字列又はビット列の解釈方式が決まる。例えば,英語という記

法の中でなら普通の単語にすぎない “delta” も,数式という記法の中ではギリシア文字1字の記号と

して解釈されるであろう。 

112 

X 4151-1992  

13.1 データ内容の表現 この規格は,2種類のデータ表現を設けている。一つはこの規格で規定する文字

データであり,もう一つは規定対象外としている非SGML文字(ビットデータ)である。 

13.1.1 文字データ (PCDATA・CDATA・RCDATA)  文字データでは,それぞれのビット組合せが文書文

字集合の文字を表現する。 

文字は,まずマークであるかどうかをSGML構文解析系が検査し,その上でデータとして扱われる。こ

のような文字の列は,モデル群で見出し語 “PCDATA” と指定する。 

段落 “p” の構造が例1.のように宣言してあるとすると,段落の中の文字は,データであるか, “phrase” 

又は “quote” のタグの一部となっているかである。 

例1.   <!ELEMENT p (#PCDATA|phrase|quote)> 

もちろん,マーク宣言,処理指令,実体参照など,要素の内容の中に書くことができるマークの一部と

なっていることもある。文字は,タグ又はマークでなかったとき,はじめてデータとして扱い,そのまま

処理の手続きに渡す。 

マークの一部となっている文字は,普通,手続きには渡さない。もっとも, “DATATAG” 機構を使った

場合は別で,この場合にはマークとして扱った上で手続きにデータとして渡す。例えば,間隔を“単語”

の終了タグとして使うとしても,同時にその文章での文字データとしても扱いたいからである。 

文字データを,普通にマーク付けをしたり構文解析してもらったりせずに,直接に書けるようにするこ

ともできる。それには,その要素の宣言の際に,内容モデルに代えて,その指定を表す見出し語を指定し

ておけばよい。 

例2.   <!ELEMENT formula CDATA> 

こうした場合,rniを付ける必要がないことに注意すること。この引数には,直接に利用者の定義した

名前が現れることがない(群の中にしか書けない。)からである。 

このように要素の内容を文字データと宣言した場合,その要素には文字データしか書くことができない。

SGML構文解析系は,etago又はnetに出会うまで,その他のマークをすべて無視する。そして,その正し

い終了タグ(又は,その要素の親要素の終了タグ)だけを認知する。 

この “CDATA” の指定の変形に“置換可能文字データ”がある。こちらは,見出し語 “RCDATA” で指

定する。 “CDATA” を指定した場合と同様であるが,その中の実体参照と文字参照とだけは認知する点が

違っている。 

13.1.2 非SGMLデータ (NDATA)  非SGMLデータは,この規格に従っての構文解析ができないデータ

である。未知の文字集合の文字であることもあれば,ビットデータであることもあるし,又はそれらの混

合したものであるかもしれない。未知の文字集合のデータの場合,そのビット組合せは,やはり文字を表

現しているが,その文字は文書文字集合のものではない。ビットデータの場合,そのビット組合せは,文

字として解釈できるかもしれないもの,いわゆる文字集合を構成しているわけではない。 

非SGMLデータは,SGML構文解析系で解析できないものであるし,その操作系がファイルの終わりと

誤解する可能性を秘めてもいるので,SGML外部の実体として蓄えておかなければならない。その外部の

実体がどこにあるかは,これまでのものと同じく,実体宣言でSGML構文解析系に告げておく。ただし,

非SGMLデータであることを引数に明記しておかなければならない。 

例1.   <!ENTITY japan86 SYSTEM NDATA kanji> 

非SGMLデータは,実体宣言で見出し語 “NDATA” とともにデータ内容記法(13.2参照)が指定してあ

る一般実体の中にだけ書くことができる。こうした実体は,実体参照の認知が行われ,しかも文字データ

が現れ得る内容の中で,一般実体参照によって参照することができる。 

113 

X 4151-1992  

非SGMLデータに属性を与えたい場合には,それに対応する要素を宣言すればよい。このとき,その要

素の宣言内容は “EMPTY” とし,その属性定義には,その値として外部の実体の名前をとる属性として宣

言値を “ENTITY” (“一般実体名”)としたものがなければならない。 

例2. 

<!ELEMENT 

japanese EMPTY> 

<!ATTLIST 

japanese file ENTITY #REQUIRED 

subject (poetry|prose) prose 

この要素 “japanese” を使うマークには,次のように “file” の値として実体名を指定しておか

なければならない。 

<japanese file= ”japan86”> 

この外部の実体を示す属性は,内容モデルが指定あるものを含めて,どんな要素に対しても定義するこ

とができる。その要素の内容をどう処理するかは,与えてある属性すべてを勘案して応用が決める。 

13.2 データ内容記法 非SGMLデータどうしでの種類の違いは,そのデータ内容記法にある(この点で

は,文字データどうしでも同じことがいえる。)。この記法は,SGML構文解析系にとっては意味をもたな

いが,読む人間又は処理を行う手続きにとっては意味をもつものである。 

記法には,実に様々なものがある。しかしながら,それらは,少数の種別に分類することができる。 

13.2.1 文字データに対する記法 文字データに対する記法の種別として,よく使われるものは,次の(1)

〜(3)である。 

(1) 自然言語 記法として自然言語を使った場合,手続きは,その文字列を暗黙のマーク付けのある文と

して扱う。例えば,英語の場合,間隔で区切られた文字の並びを“単語”という要素とし,それぞれ

の句読点で終わっている単語の並びを“句”又は“文”の要素とするなどして処理する。こうした場

合,REは単語を区切る間隔として扱うことが多い。 

自在性を大きくするために,普通には暗黙の解釈に任せている要素でも,特殊な要素(例えば,引

用句,プログラム言語の見出し語,強調句など)は明示的にマーク付けできるようにすることもある。 

従来の文書処理システムでは,こうした暗黙のマーク付け,又は明示的にマーク付けするかしない

かの決定が,システム組込みとなっていた。SGMLでは,データタグ機構(参考4参照)というマー

ク最小化機構を用意して,SGML構文解析系でこうした要素をどこまで認知するか,手続きでどこま

でをそのデータ内容記法に従ったものとして扱うか,といった指定が利用者で行えるようにしてある。 

記法としての自然言語は,段落,箇条書き,見出しなどといった要素に使われる。これらの内容は,

普通,混合内容と呼ぶもので,下位要素と文字データとが混在している。 

(2) 0 科学記法は,自然言語と似ている。ただし,そこでの“単語”又は“句”は,それぞれの応用によ

って決まる。数学記法でなら,例えば “3 over 4” という句は,分数 “43” と解釈される。科学記法は,

数式,化学構造式,形式言語,楽譜などといった要素に使われる。その内容は,普通,CDATAかRCDATA

として,その科学記法が解釈できないシステムでも,それらの要素が自然言語によっているかのよう

に処理できるようにしておく。 

(3) 書式付き文 書式付き文の記法も,自然言語と似ている。この両者を一つの記法にまとめることもで

きるだろう。書式付き文の記法は,既に書式付け応用で処理して作り出した“配置構造”を要素とし

て表すことを目的としている。そこでは,書式付けた行の終わり,整形のための間隔又はハイフン,

字体の切替え,上つき,下つきなどといったものを表す文字列が決めてあるに違いない。 

書式付き文の記法は,自然言語を記法とする要素型(段落,見出しなど)の中にでも見ることがで

114 

X 4151-1992  

きる。文書型併存機構(参考4参照)を使っている場合には,書式付けを終えた文書の配置構造の要

素の中に見ることができる。これらの要素の内容は,普通,混合内容である。 

13.2.2 非SGMLデータに対する記法 NDATAの実体では,そのビット組合せが(単独で,又は幾つかま

とめて)2進データを表現している。又は,その混在したデータとなっている。 

(1) 未知の文字 NDATAの中でも,CDATAの場合と同じように,自然言語の記法又は科学記法,書式付

き文の記法を見ることができるが,そこに使われている文字は,文書文字集合のものではない。その

データは,規格参照具象構文での文書文字集合の場合とは違って,例えば,符号拡張法を採用して,

複数のビット組合せで1文字を表現していたりする。このような方式は,規格参照具象構文での文書

文字集合の大きさでは足りないほどの多数の文字を必要とする言語に対して採用される。 

(2) 2進データ 2進データは,画像の各画素の階調又は色値,量子化音,音楽波形として,若しくは,そ

のほかの数値又は論理値を表したものとして解釈される。文書処理では,挿入図に当たる要素の表現,

例えば,中間階調,写真などの表現に主として使われる。 

(3) 文字・2進データの混在 科学文書又は書式付き文書には,文字と2進データとを混在させて使うこ

ともある。これらは,その2進データ部分のビット組合せが誤ってマークと解釈されることがあるの

で,解析対象外のNDATAとして扱う。 

13.2.3 データ内容記法の指定 文書の中で使うデータ内容記法は,記法宣言によって宣言しておかなけれ

ばならない。記法宣言では,文書で使うデータ内容記法の名前とともに,その記法についての記述的な情

報を指定しておかなければならない。 

例1. 

<!NOTATION 

eqn 

PUBLIC ”−//local//NOTATION EQN Formula//EN”> 

<!NOTATION 

tex 

PUBLIC ”−//local//NOTATION TeX Formula//EN”> 

<!NOTATION 

lowers PUBLIC ”SCAN. MODULE” −−低解像度走査−−> 

要素ごとのデータ内容記法は,記法属性を使って指定する。それには,その要素の宣言値を見出し語 

“NOTATION” で指定し,必要ならば,そのとり得る値を名前群として添えておく。 

例2. 

<!−− 

要素 

内容−−> 

<!ELEMENT 

formula 

RCDATA> 

<!−− 

要素 

名前 値 

省略時値−−> 

<!ATTLIST 

formula 

data 

NOTATION (eqn|tex) #REQUIRED> 

<!> 

<formula data= ”eqn”> 3 over 4 </formula> 

14. 調整 SGMLの多くの機構は,それぞれの必要に合うように仕立てることができる。 

14.1 SGML宣言 文書専用の仕立ては,SGML宣言で記述しておく。SGML宣言は,文書の先頭に置く

マーク宣言である。SGML宣言は,普通,SGML構文解析系が自動的に補充するが,その文書での仕立て

がそこの処理システムの標準的なものと違っているなら,きちんと書いておかなければならない。 

この仕立てには,大きくいって二つの種類がある。SGMLが任意選択としている機構を使うことと,変

形具象構文を定義することである。 

14.1.1 任意選択の機構 任意選択の機構には,次の(1)〜(11)がある。これらについては,参考4を参照の

こと。 

(1) SHORTREF 短縮実体参照区切り子 

(2) CONCUR 

文書型併存実現値 

115 

X 4151-1992  

(3) DATATAG 

データタグ最小化 

(4) OMITTAG 

タグ省略最小化 

(5) RANK 

付番省略最小化 

(6) SHORTTAG 短縮タグ最小化 

(7) SUBDOC 

部分文書の入れ子 

(8) FORMAL 

公的公開識別子 

(9) SIMPLE 

単純連結処理 

(10) IMPLICIT 

暗黙連結処理 

(11) EXPLICIT 

明示連結処理 

14.1.2 変形具象構文 SGMLの中心部分は,共通識別子,属性,実体参照などを使ってどうマークを構成

するかを定めた“抽象構文”である。この参考で解説してきた区切り子,宣言の名前,見出し語長さの制

限などは,この抽象構文を特定の方式で実際の文字又は数値に結び付けたものに従ってきた。この特定の

結び付けは,“規格参照具象構文”と呼ばれている。 

SGMLでは,使用するシステムの環境,自然言語,けん盤などに合わせて変形した具象構文が使えるよ

うにしている。この“変形具象構文”の特性は,次の(1)〜(5)の種類のSGML宣言を使って述べておく。 

(1) 区切り子の割当て 短縮実体参照区切り子の割当ても含む。 

(2) 文字の使用法 機能文字の指定,非SGML文字候補の指定など。 

(3) 命名方法 名前文字の割当て,大文字・小文字の指定など。 

(4) 名前の付け替え 宣言の名前,見出し語,予約名などの付け替え。 

(5) 重的な特性 名前の最大長,属性の最大長など。 

14.2 調整の効果 規格参照具象構文に従い,任意選択の機構を使っていないSGML文書は,“最小SGML

文書”と呼ばれるが,どのSGMLシステムの間ででも交換することができる文書である。しかし,時とと

もに,任意選択の機構や変形具象構文のその他の組合せも,広く使われてくるに違いない。その可能性の

高いものとして,次の(1)〜(4)がある。 

(1) 人間が直接に書いて出版応用にかける文書では,おそらく,SHORTREF,SHORTTAG及びOMITTAG

の機構を使うであろう。これらの機構だけと,規格参照具象構文を使った文書を,“基本SGML文書”

という。 

(2) 言語学の解析対象としたりデータベースとして使ったりする文書では,DATATAGの機構を使うであ

ろう。 

(3) 知的な文書処理系で生成する文書では,マーク最小化機構をあまり使わない。しかし,書式付けのな

い“論理的構造”と書式付けした“配置構造”とを同時に表現しておくために,文書型併存機構を使

うであろう。 

(4) それぞれの利用者組織では,その特殊な要求に合わせた機構の組合せを定めていくであろう。 

15. 規格への適合性 この規格にすべての点で合致する文書を,“適合SGML文書”という。こうした文

書が処理できるシステムを,“適合SGMLシステム”という。この規格は,適合システムについても,そ

の処理方式,具現の方法,誤りへの対処方法などについては別段の要件を設けていない。 

116 

X 4151-1992  

参考4 付加機構 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

備考 この参考では,規格参照具象構文に加えて,SGML文字として漢字・仮名が使えるようになっ

た具象構文を想定して解説する。 

1. 概説 SGMLの付加機構には,次の3種類がある。 

(1) マーク最小化機構 マーク最小化機構は、タグを短縮すること,タグを省略すること,実体参照を短

縮することなどによって,マークを簡略化するための機構である。マーク最小化機構は,文書型定義

に影響を与えることがないので,これらの機構を提供していないシステムに文書を送る場合にも,そ

の簡略化したマークを復元するだけでよい。マーク最小化機構には,SHORTTAG,OMITTAG, 

SHORTREF,DATATAG及びRANKがある。 

(2) 連結型機構 連結型機構を使うと,“連結処理定義”が使えるようになる。連結処理とは,文書を処理

して別の型の文書(例えば,書式付きの文書)を生成することをいう。 

連結処理は,連結型宣言で指定する。連結型宣言は,文書型宣言をはじめとする他のマークとは独

立している。しかしながら,連結処理が行えないシステムに文書を送る場合には,文書から取り除い

ておかなければならない。 

連結型機構には,SIMPLE,IMPLICIT及びEXPLICITの三つがある。これらの違いは,連結処理の

結果を指定する際の制御の仕方にある。 

(3) 他機構 他機構を使うと,要素若しくは実体を定義し直すこと,又は公開識別子を自動処理で解釈す

ることができるようになる。他機構は,文書型定義に影響を与えるので,その機構を提供していない

システムに文書を送る場合には,使わない形に改めるために文書の修正を行う必要がある。 

他機構には,CONCUR,SUBDOC及びFORMALがある。 

これらの拡張機構を使うときは,SGML宣言の機構使用引数で指定する(SHORTREFを除く。SHORTREF

は,具象構文及び“短縮参照対応表”宣言で指定する。)。 

2. マーク最小化機構 マーク最小化機構には,次のものがある。 

(1) SHORTTAG タグの区切り子,属性指定,共通識別子などを省略することで,タグを短縮する。 

(2) OMITTAG 

タグを完全に省略する。 

(3) SHORTREF 完全な実体参照の代わりに短縮参照区切り子を使う。 

(4) DATATAG 

データ文字を同時にタグとしても使う。 

(5) RANK 

要素の付番をタグから省略する。 

2.1 

SHORTTAG−短縮タグ 短縮タグは,その中に書くはずのマークの一部又は全部を省略してしまっ

たタグをいう。 

2.1.1 

閉じない短縮タグ タグの終わりの区切り子tagcは,その直後に別のタグが来る場合,省略する

ことができる。 

例   <chapter><p>短い段落である。</p></chapter> 

これは, “chapter” 開始タグのtagc及び “p” 終了タグのtagcを省略して,次のようにしても

よい。 

117 

X 4151-1992  

 <chapter<p>短い段落である。</p</chapter> 

2.1.2 

空タグ 空タグとは,その中に共通識別子も属性も書いてないタグのことをいう。つまり,区切り

子だけでできたタグのことをいう。空終了タグに対しては,最も直近に開いた要素と同じ共通識別子を,

SGML構文解析系が補う。 

例1. 次の二つは,短縮タグ機構の下で同値になる。 

 これは,<q>引用</q> 語である。 

 これは,<q>引用</> 語である。 

空開始タグに対しては,タグ省略機構を同時に使っていない場合,最も近くで閉じた要素に同じ共通識

別子とその属性の省略時値とを,SGML構文解析系が補う(タグ省略機構も使った場合の空タグについて

は,2.2.6を参照のこと。)。 

例2. 空開始タグ及び空終了タグを一緒に使う。 

<!−− 

要素 内容 

−−> 

<!ELEMENT 

list 

(item+)   > 

<!ELEMENT 

item (p|list)  *> 

<!> 

<list> 

<item>これは,第1のitemである。</> 

<>これは,第2のitemである。</> 

<>これは,第3の,そして最後のitemである。</> 

</list> 

1文字の区切り子net(通常は, “/”)を使うと,更にマークが簡単になる。このnetも,短縮タグ機構

の下で使えるようになる。netは,開始タグの区切り子tagc(の代わり)としてnetを使った要素について,

その要素の空終了タグとして使う。 

例3.   <p>この段落には, 

<q/引用句/もあればデータ 

としての斜線 (/) もある。</p> 

短縮タグ機構で使う区切り子とその規格参照区切り子集合での文字列とを,次にまとめておく。 

文字列 

名前 

働き 

NET 

空終了タグの代用 

2.1.3 

属性指定の簡略化 属性指定並びは,その一部又は全部を次のように省略することができる。 

(1) 値の区切り子 属性の値を指定する場合,その値が名前文字だけでできているならば,その値をくく

る区切り子は省略してもよい。 

例   <standardsecurity=public> 

区切り子を省略したときには,実体参照を書くことはできない。 

(2) 省略時値の利用 宣言で具体的な省略時値が与えられているか,見出し語 “#IMPLIED” 又は 

“#CONREF” の指定があったかする属性については,その属性値指定を完全に省略してしまってもよ

い。このとき,その属性には,省略時値を指定したものとして扱われる。一度その属性の値を指定す

ると,以後は,省略時値ではなく,現属性値を指定したものとして扱われる。 

(3) 名前 属性の宣言値が名前群又は名前字句群で指定してある場合,属性値指定での名前と区切り子vi

とは省略することができる。 

118 

X 4151-1992  

この簡略化は,属性の値からその属性の名前が判定できる場合に使うことができる。 

例 

<!−− 

要素  

内容 

−−> 

<!ELEMENT 

memo  

(from, to, subject, body, sig, cc?)> 

<!−− 

要素 名前 

値 

省略時値 −−> 

<!ATTLIST 

memo status (final|draft) final> 

普通の属性値指定ならば,次のようになる。 

<memo status=”draft”> 

しかし,値 ”draft” を見ればその対象の属性が ”status” と分かるのだから,この指定は相当に冗長であ

る。SHORTTAG機構の下では,次の三つのどの形で書いてもよいことになる。 

<memo status= ”draft”> 

<memo status=draft> 

<memo draft> 

属性の名前を省略すると,文書のマークは紛らわしくなりがちである。これは,属性値の群を大きなも

のにしないこと,それぞれの値をその対象とする属性が分かるような形容詞(例えば, ”new|

revised”, ”secret|internal|pblic” など)とすることなどによって避けられる。 

例 

<!−− 

要素  

内容 

−−> 

<!ELEMENT 

list 

(item*)> 

<!−− 

要素 名前 

値 

省略時値 −−> 

<!ATTLIST 

memo compact (compact)  

#IMPLIED 

emphasis (0|1|2|3)  3 

属性 “compact” の値の選び方のほうが,属性 “emphasis” のものよりも優れている。 

2.2 

OMITTAG−タグ省略 文書型定義は,その型の文書としてどんな構造が起こり得るかを定めてい

る。したがって,個々の実現値では,それほど多くのマークを付けなくても済む。 

2.2.1 

タグ省略の考え方 雑誌の記事が幾つもあったとしよう。それらは,共通識別子 “article” として,

例1.のような要素型定義をもっているものとする。 

例1. 

<!−− 

要素 

内容 

−−> 

<!ELEMENT 

article (title, body)  

<!ELEMENT 

title 

(#PCDATA)  

<!ELEMENT 

body 

(p*)  

<!ELEMENT 

(#PCDATA|list) * > 

<!ELEMENT 

list 

(item+)  

<!ELEMENT 

item 

(#PCDATA, (p|list) *)> 

記事の一つは,完全にマーク付けすると例2.のようであった。 

例2.   <article> 

 <title>猫</title> 

 <body> 

 <p>次の動作ができる。 

 <list> 

 <item>跳ぶ</item> 

119 

X 4151-1992  

 <item>鳴く</item> 

 </list> 

 </p> 

 <p>生存期間は,9年。 

 </p> 

 </body> 

 </article> 

さて,例1.の要素型定義から, “p” の中に直接 “p” が出てくることはない。 “p” には,データ文字と 

“list” とが並ぶだけである。 “list” は “item” を並べたものであるが,同様に,その “item” の中に直接 

“item” が出てくることはない(“list” が出てくることはある)。これらのことを使って,例3.のように,多

くの終了タグを省略してマークの簡略化を図ることができる。 

例3.   <article> 

 <title>猫</title> 

 <body> 

 <p>次の動作ができる。 

 <list> 

 <item>跳ぶ 

 <item>鳴く 

 </list> 

 <p>生存期間は,9年。 

 </article> 

“item” の終了タグは省略しても差し支えない。次の “item” がくることでそれが終わったと分かるから

である(“item” の中に “item” が出てくることはなかったから。)。 “p” の終了タグも同じ理由から省略し

ても差し支えない(“p” の中に “p” が出てくることはなかったから。)。 

もちろん,要素の終わりがその要素のすべての下位の要素の終わりを兼ねるとする方式も,十分に論理

的である。このようにして, “article” の終了タグは,最後の “p” も “body” も終わらせている(気付い

た方もいるだろうが,このマークはもっと簡略化することもできる。)。 

2.2.2 

最小化の指定 マーク最小化は,便利な機構ではあるが,その分,マークの誤りが見つけにくくも

なる。2.2.1の例3.で次の例のようにして “list” の終了タグを省略したとすると, “body” についてと同様

に,その終了タグは “article” の終了タグが代行することになる。 

例   <article> 

 <title>猫</title> 

 <body> 

 <p>次の動作ができる。 

 <list> 

 <item>跳ぶ 

 <item>鳴く 

 <p>生存期間は,9年。 

 </article> 

しかし,これでは著者の意図どおりにはならない。最後の “p” が, “list” の最後の “item” として扱わ

120 

X 4151-1992  

れてしまうからである。 

このように誤った解釈を受けてしまうのを防ぐため,タグ省略による最小化を要素に適用するときには,

その要素宣言に引数を二つ追加する。SGML宣言で “OMITTAG YES” と指定するとタグ省略が使えるよ

うになるが,このときは,すべての要素宣言にこの二つの最小化引数を指定しなければならない。 

2.2.3 

終了タグの省略−直後の開始タグによる場合 要素の終了タグは,その要素の内容に続いて,その

要素には現れ得ない要素の開始タグがくる場合,省略することができる。2.2.1の例で, “p” 又は “item” の

終了タグが省略できたのは,このためであった。そうするには,要素宣言は,例1.のように書いておかな

ければならない。 

例1. 

<!−− 

要素 最小化 内容 

−−> 

<!ELEMENT 

−O 

(#PCDATA|list) * > 

<!ELEMENT 

list 

−− 

(item+)  

<!ELEMENT 

item −O 

(#PCDATA, (p|list) *)> 

例1.の意味は,次の(1)〜(3)のとおりである。 

(1) 見出し“最小化”の位置に,開始タグ及び終了タグの省略の有無を指定する引数を書く。必ず二つと

も指定しなければならない。 

(2) “O” は,そのタグの省略を指定する。ここでは, “p” 及び “item” の終了タグが省略できることを指

定している。 

(3) “−” は,そのタグを省略しないことを指定する。ここでは,開始タグは,省略しないと指定している。 

要素の内容を “EMPTY” と指定したときには,その要素の終了タグを省略しなければならなかったこと

を思い出してほしい。このときは,その要素の開始タグに続くものが,すべて,その親要素の成分となる

からであった。この規則はマーク最小化とは関係のないものであるけれども,その文書ではその要素の終

了タグが出てこないことを思い出させる手だてとして,その要素宣言に “O” と明記しておくのがよい。 

例2.   <!ELEMENT figref−O EMPTY>  

2.2.4 

終了タグの省略−直後の終了タグによる場合 内側の要素の終了タグは,その外側の要素の終了タ

グが直後にくる場合,省略することができる。 

例 

<!−− 

要素 最小化 内容 

−−> 

<!ELEMENT 

list 

−− 

(item+)  

<!ELEMENT 

item −O 

(#PCDATA)  

この宣言から,次のように最後の “item” の終了タグは,その直後に “list” の終了タグがくる

ので,省略することができる。 

<list> 

<item>これは,第1のitemである。</item> 

<item>これは,第2のitemである。</item> 

<item>これは,第3の,そして最後のitemである。 

</list> 

2.2.5 

開始タグの省略−文脈上必すの場合 要素の開始タグは,その要素が文脈上必すであって,しかも,

そこに現れ得る他の要素がいずれも任意選択のものである場合,省略することができる。 

例 

<!−− 

要素 最小化 内容 

−−> 

<!ELEMENT 

list 

−− 

(item+)  

<!ELEMENT 

item O O 

(#PCDATA)  > 

121 

X 4151-1992  

この宣言の下では,次のようにマークが簡略化できる。 

<list> 

これは,第1のitemである。 

<item>これは,第2のitemである。 

<item>これは,第3の,そして最後のitemである。 

</list> 

最初の “item” では,それが必すの要素であるので,その開始タグを省略することができる。

それ以後の “item” では,それらが任意選択であるので,開始タグを省略することはできない。 

その要素が文脈上必すであったとしても,属性の値を指定しなければならなかったり,その要素に宣言

内容があったりする場合,又は,その要素が空である場合には,その開始タグを省略することはできない。 

22.6 短縮タグとの組合せ 短縮タグの最小化とタグ省略の最小化とをともに使う場合,空開始タグは,

空終了タグと同じ扱いを受ける。その共通識別子として,最も近くに開いた要素と同じものが補われるの

である。 

例 短縮タグもタグ省略も使う 

<!−− 

要素 最小化 内容 

−−> 

<!ELEMENT 

−O 

(#PCDATA|item+)  

<!ELEMENT 

list 

−− 

(item+)  

<!ELEMENT 

item O O 

(#PCDATA, (p|list) *)  > 

<!> 

<list> 

<item>これは,第1のitemである。 

< >これは,第2のitemである。 

< >これは,第3の,そして最後のitemである。 

</list> 

最後にある “</list>” を “</>” とはできないことに注意しよう。 “</>” では,最後の “item” の

終了タグとなってしまって, “list” の終了タグとはならないからである。もちろん, “</list>” を 

“</> </>” とすることはできる。 

更に簡略化して,次のようにしても同じ結果が得られる。 

<list> 

これは,第1のitemである。 

<>これは,第2のitemである。 

<>これは,第3の,そして最後のitemである。 

</list> 

最初の簡略開始タグ “<>” のところで最も近くに開いている要素は, “list” ではなく, “item” 

である。 “item” は,直接に書かれていないけれども,最小化引数 “O” の指定から最初のタグ省

略のところで自動的に補われているからである。 

2.2.7 

マーク最小化についての配慮 短縮タグ最小化では,利用者は(そして,SGML構文解析系も),

いま文書の構造の中でどこに位置しているかを知り,その属性定義並び宣言がどうなっているかを理解し

ていなければならない。一方,タグ省略最小化では,更に要素宣言がどうなっているかを知っていること

が必要になる。 

122 

X 4151-1992  

この違いに十分な配慮をして,どのような最小化ならば利用者が正しく利用できるかの判断を下すのが

よい。タグ省略は,ときとして,SGMLの誤りとならないにもかかわらず,利用者の意図しない結果を生

じてしまうことがあるからである。 

2.3 

SHORTREF−短縮参照区切り子での実体参照の代用 短縮参照とは,完全に区切り子でくくった実

体参照を1文字又は短い文字列で代用することをいう。これらは,広く使われているタイプライタでの打

けん法をなぞったり,反復構造をもつ要素の入力を単純化したりするのに使うことができる。 

2.3.1 

タイプライタの打けん−WYSIWYGの一般化 文書処理システムの幾つかは,タイプライタを使

うのと同じような使い方を利用者に提供している。たいていの利用者がタイプライタの訓練を受けている

からである。タイプライタでは,それぞれの制御鍵を叩くと,即座にその書式付けでの効果が得られる。

“復帰”を打けんすると行が改まる,“タブ”を打けんすると横方向に空きができる,などなどである。こ

のタイプライタの特性をなぞった文書処理システムは,ときに “WYSIWYG” (What You See Is What You 

Get−“ウィシウィグ”と発音する。“見たまま”システムとでもいうべきか。)と呼ばれる。 

これらの制御キーが生み出す“文字”は,特定の処理指令となっている。一般の処理指令と同じで,こ

れらは,その文書の書式付けを一つに固定してしまうし,その指令を理解できる機械の上でしか処理でき

ないものにしてしまう。 

しかしながら,SGMLでは,この慣れたタイプライタの打けん法を生かしながら,なお文書の一般性を

失なわないようにすることができる。短縮参照を使うことで,タイプライタの制御キーが生み出す文字を

記述的マークとして解釈してやるのである。 

例 

<!ENTITY 

ptag 

STARTTAG 

”P” 

<!SHORTREF 

wysiwyg ”&#TAB”  

ptag 

”&#RS;&#RE; 

ptag 

この宣言は,タブ文字を段落 “p” の開始タグに割り当て,改行・復帰の列(これは,空の行,

つまり空の記録に当たる。)も,また, “p” の開始タグに割り当てている。実際にこれらの段落

がどう書式付けされるかは,応用手続きによるものの,直接にマークで指定したのと同じ働きを

もつ。一方,入力装置の上では,これらのキーを打けんするとすぐに横方向に空きが生まれたり

空の行が生まれたりするので,利用者は視覚的な反応を即座に得ることができる。これが

WYSIWYGシステムの重要な点なのである。 

マーク宣言を組み合わせることで,タイプライタでの制御文字をマークとして解釈し,しかもその視覚

的な反応を生かした“一般化したWYSIWYG”を作ることができる。もちろん,こうしたWYSIWYGの

下でも,必要とあれば,普通のマークを織り混ぜて使うことができる。このSGMLの能力は,複雑な要素

に対して特に有効に使うことができる。例えば,複数ページにまたがった見出し付きの表がそうである。

タイプライタの制御機能では,便利で一般的な入力方式などは考えることもできない。 

2.3.2 

タイプライタの打けん−短縮参照対応表の定義 短縮参照を使うと,SGML文書が,意識的にマー

ク付けするまでもなく,普通の文書処理システムでの入力方式で作れるようにできる。このために,規格

参照具象構文では,次に示すように,多くの文字列が短縮参照列(区切り子)として定義してある。これ

らの,“見えない”機能文字又は引用符号は,広く使われているタイプライタでの打けん法を生かす上で特

に有用である。 

文字列 

説明 

&#TAB; 

水平タブ 

&#RE; 

記録終了(通常は,“復帰”) 

123 

X 4151-1992  

&#RS; 

記録開始(通常は,“改行”) 

&#RS;B 

先頭の空白(記録開始,1個以上の空白文字又はタブ文字) 

&#RS;&#RE; 

空の記録(記録開始,記録終了) 

&#RS;B;&#RE; 

空白の記録(記録開始,1個以上の空白文字又はタブ文字,記録終了) 

B&#RE; 

末尾の空白(1個以上の空白文字又はタブ文字,記録終了) 

&#SPACE; 

間隔 

BB 

2個以上の空白(2個以上の空白文字又はタブ文字) 

” 

引用符号 

それぞれの短縮参照区切り子には,“短縮参照対応表”と呼ぶ表で実体名を対応付けておくことができる。

実体に“対応付け”されていない短縮参照区切り子は,データとして扱われる。対応付けに使う実体は,

普通に,実体宣言で定義しておく。この対応付けを行うのは,“短縮参照対応表宣言”である。 

例 

<!ENTITY 

ptag 

”<p>”> 

<!SHORTREF 

map1 ”&#RS;&#RE;” 

ptag> 

この “SHORTREF” 宣言は, “map1” という名前の対応表を定義している。その対応表では,

空の記録の実体 “ptap” への対応付けだけを行っている。この対応表が現対応表(本体10.6.3参

照)になったときには,いつでも,空の記録はこの実体への参照に置き換えられる。したがって, 

 これは,段落の最後の文である。 

 これは,次の段落の文である。 

は,こう書き換わる。 

 これは,段落の最後の文である。 

 &ptag; 

 これは,次の段落の文である。 

そして,更にこう書き換わる。 

 これは,段落の最後の文である。 

 <p> 

 これは,次の段落の文である。 

空の記録以外の短縮参照列は,それに対応付けがないので,この対応表が現対応表となっても,

データとして扱われる。 

2.3.3 

タイプライタの打けん−短縮参照対応表の駆動 短縮参照対応表は,普通,その要素型に“短縮参

照使用”宣言で結合してあるものが,現対応表となる。 

例1.   <!USEMAP  map1 

chapter> 

この宣言は,要素chapterに短縮参照対応表map1を結合する。要素chapterが始まると,こ

のmap1が現対応表となる。 

要素に結合した対応表は,その要素が始まったとき,現対応表となる。そして,その要素が開いている

間,結合した対応表をもつ内側の要素の中を除いて,現対応表のままでいる。 

要素に短縮参照対応表を結合しておかなくてもよい。結合した対応表がない要素では,その要素が始ま

った時点での現対応表がそのまま現対応表となる。 

例2. 

<!ENTITY 

ptag 

”<p>”  

−−“段落”の開始タグ−−> 

<!ENTITY 

qtag 

”<quote>”  

−−“引用”の開始タグ−−> 

<!ENTITY 

qendtag 

”</quote>”> 

124 

X 4151-1992  

<!SHORTREF 

chapmap ”&#RS;&#RE; ptag 

ʼ ” ʼ 

qtag  > 

<!SHORTREF 

qmap 

ʼ ” ʼ 

qendtag> 

<!USEMAP 

chapmap chapter > 

<!USEMAP 

qmap 

quote 

<!ELEMENT 

chapter 

(p*) 

<!ELEMENT 

(quote|#PCDATA) * 

<!ELEMENT 

quote 

(#PCDAT)  

要素の “chapter” 及び “quote” には結合した短縮参照対応表があるが, “p” にはない。さて, 

“chapter” の中で “p” が始まったとき, “chapter” に結合した対応表 “chapmap” が現対応表で

あるので “p” でのそのまま現対応表となる。この対応表では引用符号を “quote” の開始タグに

対応付けているので,引用符号がくると要素 “quote” が開く。すると,それに結合した対応表 

“qmap” が現対応表となり,今度は,引用符号は “quote” の終了タグとなる。こうして要素 

“quote” が終わると再び “p” の状態となり,対応表 “chapmap” が現対応表に復帰する。 

したがって, 

 <chapter<p>これが“引用”である。</p> 

は,次と同値である。 

 <chapter<p>これが<quote>引用</quote>である。</p> 

上の宣言によって,引用符号は,データではなく,開始タグとしても終了タグとしても働く。

書式付け手続きは,これによって“と”とで引用をくくることができる。こうでもしないと,

普通のタイプライタでの打けん法をそのまま生かすことはできない。 

さて,実体文がタグであるときには,その実体宣言に特別な形式を使うこともできる。 

例3. 

<!ENTITY 

qtag 

STARTTAG “quote”> 

<!ENITIY 

qendtag ENDTAG 

“quote”> 

見出し語の “STARTTAG” 又は “ENDTAG” を指定することで,その実体文からタグとしての区切り子

を取り除くことができる。このように明示的に指定を与えておけば,システムは,その文がデータとして

ではなくタグとして使われることが分かるので,適切な最適化を図ることもできる。 

短縮実体参照は,その内容をモデルで与えてある要素(つまり,CDATA又はRCDATAでない要素)の

中でだけ使うことができる。短縮参照は,属性の値又は宣言の引数には使えない。 

2.3.4 

表形式 規格参照具象構文では,多くの図形文字列も短縮参照区切り子として割り当てている(本

体表4参照)。これらの文字列は,より長い一般実体参照の代用として使うことができる。これによって,

うまく使えば簡潔で見やすいマークで表などを入力することができる。 

例 

<!ENTITY 

row 

”<row><col>”> 

<!ENTITY 

col 

”</col><col>”> 

<!ENTITY 

endrow 

”</col></row>”> 

<!SHORTREF 

tablemap 

”(”  row 

”|”  col 

”)”  endrow> 

<!USEMAP 

tablemap 

table> 

<!ELEMENT 

table 

(row*)> 

125 

X 4151-1992  

<!ATTLIST 

table 

column NUMBER #REQUIRED> 

<!ELEMENT 

row 

(col+)  

−−行−−> 

<!ELEMENT 

col 

(#PCDATA)  −−列−−> 

<!> 

<table column=3> 

(行1列1|行1列2|行1列3) 

(行2列1|行2列2|行2列3) 

(行3列1|行3列2|行3列3) 

(行4列1|行4列2|行4列3) 

</table> 

<!> 

この例では,括弧と縦棒とを実体参照に使っている(短縮参照は,文脈に依存して認知を受け

るので,縦棒が接続子orと解釈される心配はない。)。この文は,次のとおりに書き換わる。 

<table column=3> 

<row><col>行1列1</col><col>行1列2</col><col>行1列3</col></row> 

<row><col>行2列1</col><col>行2列2</col><col>行2列3</col></row> 

<row><col>行3列1</col><col>行3列2</col><col>行3列3</col></row> 

<row><col>行4列1</col><col>行4列2</col><col>行4列3</col></row> 

</table> 

“tablemap” は, “table” が開いている間だけ現対応表となるので,それ以外のところでは,括

弧も縦棒も普通にデータとして使うことができる。 

2.3.5 

一時の対応 短縮参照対応表は要素型に結合して使うのが普通だが,短縮参照対応表宣言によって

一時的に対応表を選定することもできる。 

例   <figure> 

 要素figureの最初の部分(普通のfigureの対応表を使う) 

 <!USEMAP graphics−−一時的に対応表graphicsを選ぶ−−> 

 要素figureの残りの部分(対応表graphicsを使う) 

 </figure> 

要素の名前を指定していない短縮参照対応表宣言は,最も近くに開いた要素(上の例では “figure”)に

対する現対応表を,そこに指定した対応表(上の例では “graphics”)に置き換えてしまう。しかし,その

効果は,その宣言を書いた実現値の残りの部分にしか及ばない。残りの部分で再び普通の対応表が必要に

なったときには,改めて短縮参照対応表宣言を行って切り替えなければならない。 

短縮参照対応表宣言で,対応表の名前の代わりに見出し語 “#EMPTY” を指定すると,すべての対応付

けを取り消すことができる。つまり, “#EMPTY” で指定した空の対応表が,現対応表となる。 

短縮参照は,非常に強力なものではあるけれども,SGMLでマーク付けしていない既存の勝手な文書の

解釈付けに使うのは適切でない。短縮参照は,利用者が慣れた語処理システムを使ってSGMLの正規のマ

ーク付けできるようにすることを意図したものである。ほかのマーク最小化機構と併せて使うことで,た

とえ“知的”な文書処理システムが使えなくても,意識的なマーク付け作業をしないで済むようにできる

のである。 

126 

X 4151-1992  

2.4 

DATTAG−データとタグの共用 データタグ最小化機構は,内容モデルを使って定義を与えること

で,以下の文でデータ文字をタグとしても使えるようにするものである。 

ここまでに解説してきたマーク最小化の機構は,ほとんどマークらしいマークなしの文が書けるように

するための長い道程でもあった。 

例1. ほとんどマークのない文 

<!ENTITY 

itemtag STARTTAG jobitem> 

<!SHORTREF 

listmap ”&#RS;” 

itemtag> 

<!USEMAP 

listmap joblist> 

<!−− 

要素 

最小化 

内容−−> 

<!ELEMENT 

joblist 

−− 

(jobitem+)> 

<!ELEMENT 

jobitem −− 

(#PCDATA)> 

<joblist> 

Sharon Adler,  

副議長 

Larry Beck,  

事務局 

Anders Berglund,  

公報担当 

</joblist> 

途中の “jobitem” の終了タグは “jobitem” の開始タグ(記録開始)が直後にきているので省

略でき,最後の終了タグは “joblist” の終了タグが兼ねているので省略することができる。それ

ぞれの開始タグは,目には見えないものの,ちゃんと書いてある。印字されない短縮参照区切

り子で実体参照を行っているからである。ここでは,二つだけマークがしてあるように見えて

いるが,実際に利用者は多くのマーク付けを行っているのである。 

例1.の宣言では, “jobitem” は単なる文字の列となっているが,実際には“氏名”と“役職”の二つの

要素があるように見える。カンマと空白とがあたかも開始タグであるかのように“役職”を明確に区分し

ているからである。このような働き,つまり,データが紛れのない形で要素を区分するようにした規約を,

データタグ最小化という。 

SGMLのデータタグ機構は,このような規約を要素宣言のデータタグ形式引数で指定するようにしてい

る。 

例2. 

<!−− 

要素 

最小化 内容 

−−> 

<!ELEMENT 

jobitem −O 

([name, ”, ”, ” ”], job)> 

<!ELEMENT 

name 

O O 

(#PCDATA)> 

<!ELEMENT 

job 

O O 

(#PCDATA)> 

例2.での宣言は,次の(1)〜(4)を(ほかの事柄と共に)いっている。 

(1) “name” の開始タグは,それが “jobitem” の最初の要素であるから省略することができる。 

(2) “name” の終了タグは, “jobitem” の中である限り,そのデータタグ形式が示すとおりカンマと空白と

が兼ねるので,省略することができる。 

(3) “job” の開始タグは, “name” の下位要素として現れ得ないので,省略することができる。 

(4) “job” の終了タグは, “jobitem” の終了タグが兼ねるので,省略することができる。 

“joblist” の宣言を完全に行うと,例3.のようになる。 

例3. 

<!ENTITY 

itemtag STARTTAG jobitem> 

<!SHORTREF 

listmap ”&#RS; ” itemtag> 

127 

X 4151-1992  

<!USEMAP 

listmap joblist>  

<!−− 

要素 

最小化 内容−−> 

<!ELEMENT 

joblist 

−− 

(jobitem+)> 

<!ELEMENT 

jobitem −O 

([name, ”, ”, ” ”], job)> 

<!ELEMENT 

name 

O O 

(#PCDATA)> 

<!ELEMENT 

job 

O O 

(#PCDATA)> 

文字は,普通,データとなるかマークとなるかのいずれかであって,両方にはなれない。データタグ機

構の本質は,文字が同時にデータともマークともなれるようにすることにある。データタグとは,そのタ

グの要素に対するモデルとして与えたデータタグ群の中のデータタグ形式に合致する文字列を終了タグと

しても扱ったものをいう。例3.でいうと, 

[name, ”, ”, ” ”]  

がデータタグ群である。 

データタグ群は,接続子seqを使った群であって,“データタグ群開き (data tag group open)”区切り子

dtgoと“データタグ群閉じ (data tag group close)”区切り子dtgcと(普通は, “[” と “]”)でくくる。こ

れらの区切り子は,その群が普通の群とは違った特別な目的のためのものであることを示している。デー

タタグ群には,次の(5)〜(7)の三つの成分がある。 

(5) 最小化の対象とする要素の共通識別子。 

例   name 

(6) データタグひな形。1個の表記であっても,表記を接続子orで並べた群であってもよい。 

例   ”, ”  

(7) データタグ埋め草ひな形。これは任意選択であり,なくてもよい。 

例   ” ”  

データタグ最小化は,文解析を行う応用システムで使うことができる。 

例4. 英文の段落での文と単語との識別 

<!ENTITY 

% stop ʼ(”.&#RE;” 

|”.” | ”.)&#RE;”  | ”.) ”  

| 

”?&#RE;”  

| ”? ”  | ”?)&#RE;”  | ”?) ”  | 

”!&#RE;”  

| ”! ”  | ”!)&#RE;”  | ”!) ”  )ʼ> 

<!ENTITY 

% pause ʼ(” ” | ”&#RE;”  

| ”, ”  

| ”, &#RE;”  

| 

”; ”  | ”;&#RE;”  

| ”: ”  

| ”:&#RE;”  

| 

”) ”  | ”)&#RE;”  

| ”,) ”  

| ”,)&#RE;”  | 

”;) ” | ”;)&#RE;”  | ”:) ”  

| ”:)&#RE;”  | 

”), ” | ”), &#RE;'  | ”), ”  

| ”);&#RE;”  | 

”): ”  | ”):&#RE;” )ʼ > 

<!ELEMENT 

−O([sentense, %stop;]+)> 

<!ELEMENT 

sentence O O([word, %pause;, ” ”]+)> 

<!ELEMENT 

word 

O O(#PCDATA)> 

<!> 

<P>The first sentence ends here.  

The second sentence ends 

here. 

128 

X 4151-1992  

This is the Third sentence. The 

fourth sentence ends, not here!, but here! 

</p> 

例4.では,単語 (“word”) の終了タグが, “pause” の文字列とそれに続く任意個の空白でできている。

それぞれの文の各単語は,その最後のものを除いて,このひな形に合致したデータタグをもっている。 

文 (“sentence”) の終了タグは, “stop” の文字列と記録終了又は2個の空白とでできている。この終了

タグが認知されると,それは,普通の“外側の要素の終わり”についての規則によって,最後の単語の終

了タグも兼ねることになる。 

データタグ機構を使っているときには,文の入力に注意を払う必要がある。 

例5.   I wonder whether Mrs. G.  

 will read this.  

例4.でのデータタグを使っているとすると, “G.” という略記が間違って文の終了タグと解釈されてし

まう。データタグ機構を使ったときに有効となる区切り子と,その参照具象構文での文字列を,次にまと

めておく。 

文字列 

名前 

働き 

DGTO 

データタグ開き 

DGTC 

データタグ閉じ 

2.5 

RANK−タグでの付番の省略 要素の付番とは,その入れ子の深さをいう。付番は,多くの文書型

では,入れ子の要素[例えば, “list” (2.2.6例参照)]が始まったり終わったりしたときに自動的に決ま

るだけで,マークに明示的に指定することはない。 

しかしながら,マーク付けの設計者の中には,見出し又は段落といった要素に明示的な付番を指定する

ことを好む人もいる。 

例1.   <!−− 

要素 

最小化 内容 

−−> 

 <!ELEMENT p1 

−O 

 (#PCDATA, p2*)> 

 <!ELEMENT p2 

−O 

 (#PCDATA, p3*)> 

 <!ELEMENT p3 

−O 

 (#PCDATA, p4*)> 

 <!ELEMENT p4 

−O 

 (#PCDATA)  > 

 <!> 

 <p1>第1層の段落の文。 

 <p1>別の第1層の段落の文。 

 <p2>入れ子の第2層の段落。 

 <p2>別の第2層の段落。 

 <p1>第1層に戻る。 

SGMLの付番 (“RANK”) 機構は,こうした付番を明示的に指定する際の便宜を与えるものである。要素

宣言の際に共通識別子に代えて付番核と付番とを指定することで,その要素を付番要素とすることができ

る。 

例2.   <!−− 

要素 

最小化 内容 

−−> 

 <!ELEMENT p1 

−O 

 (#PCDATA, p2*)> 

 <!ELEMENT p2 

−O 

 (#PCDATA, p3*)> 

 <!ELEMENT p3 

−O 

 (#PCDATA, p4*)> 

129 

X 4151-1992  

 <!ELEMENT p4 

−O 

 (#PCDATA)  > 

付番機構を使うと,タグには共通識別子の代わりにその付番核だけを指定できるようになる。その付番

核をもつ要素に対して最後に指定した付番を使って,その二つをつないだ完全な共通識別子が自動的に復

元されるのである。 

例3.   <p1>第1層の段落の文。 

 <p>別の第1層の段落の文。 

 <p2>入れ子の第2層の段落。 

 <p>別の第2層の段落。 

 <p1>第1層に戻る。 

同じ付番をもつ要素に,同一の内容モデルをもたせたいのであれば,それらの付番核を成分とする群を

要素宣言に指定してやればよい。 

例4. 普通の段落 “p” とともに,番号をふった (numbered) 段落 “n” と黒丸をふった (bulleted) 段落 

“b” があり,各層のどの段落も,この3種類の段落を下位要素とする。 

 <!−− 

要素 

最小化 内容 

−−> 

 <!ELEMENT  (p|n|b)  

1−O 

 (#PCDATA, 

 (p2|n2|b2) *)> 

 <!ELEMENT  (p|n|b)  

2−O 

 (#PCDATA, 

 (p3|n3|b3) *)> 

 <!ELEMENT  (p|n|b)  

3−O 

 (#PCDATA, 

 (p4|n4|b4) *)> 

 <!ELEMENT  (p|n|b)  

4−O 

 (#PCDATA) 

       > 

 <!> 

 <p1>第1層の段落の文。 

 <n>第1層の番号をふった段落の文。 

 <p2>入れ子の第2層の段落。 

 <b>第2層の黒丸をふった段落の文。 

 <p1>第1層に戻る。 

3. LINK機構−SIMPLE,IMPLICIT及びEXPLICITな連結処理 ここまでの解説では,一つの文書型,

すなわち,処理しようとする原始文書の論理的抽象的な構造に対するマークだけに話を限ってきた。しか

しながら,文書を処理した結果も,文書である。もちろん,その文書型定義が極端に違ったものとなって

いるかもしれないが,やはり文書である。 

例えば,文字,段落,節といった論理的な構造をもった1次元的な原始文書型に従う文書に書式付け処

理を施したとしよう。その結果は,ページ,欄,文区画,行といった“配置”構造をもった2次元的な結

果文書型に従った文書となる。 

この二つの文書は,どこかで一致する。最上層(文書)の水準では,おそらく一致しているであろうし,

もっとほかの層ででも一致していることもあるだろう。例えば,論理的な構造での“章”は,配置構造で

の“ページ集合”に対応する,といった具合である。 

SGMLは,次の二つのやり方で,この複数の文書型の扱いを提供している。 

(1) 連結処理定義 文書型定義を連結して,文書が一つの文書型(“原始”文書型)から他の文書型(“結

果”文書型)へと変形できることを指定する。例えば,結果の配置構造でのデータを表すマークが,

原始文書の論理的な構造からどう生成できるかを指定する。 

(2) 文書型併存実現値 一つの文書の中に,複数の文書型としてのマークが併存できるようにする。 

130 

X 4151-1992  

3.1 

連結型定義 書式付けといった応用では,連結集合宣言を使うことで,原始文書の論理的な要素(例

えば,段落,箇条など)からどうやって結果の配置構造(例えば,文区画)へと変形を行うかを指定する

ことができる。 

例 原始文書型に “para” (paragraph,段落)と “item” (list item,箇条)という要素があり,結果文

書型に属性 “indent” (字下げ)をもった要素 “block” (text block,文区画)があるとしよう。 

 <!LINK docset para block [ident=3]  

    item block [ident=5]  

 > 

という宣言は,段落を字下げ3文字の文区画に,箇条を字下げ5文字の文区画に,それぞれ変形

することを指定する。この宣言の下で,原始文 

 <item>箇条の文。</item> 

は,次のとおりの結果の文となる。 

 <block indent=5>箇条の文。</block> 

これ以外の場合,(SHORTTAG機構を使っているものとして) “block” の残りのすべての属性は, 

“block” の要素宣言に従って,その省略時値をとる。 

連結型機構(LINK機構)については,本体11.にその規定がある。 

4. 他機構 他機構と呼ぶ機構には,次のものがある。 

(1) CONCUR 基本文書型の文書に,指定した個数(1以上)の文書型の実現値を併存させることができ

る。 

(2) SUBDOC SGML文書の中で,指定した個数(1以上)の部分文書実体を入れ子にして開いておくこ

とができる。 

(3) FORMAL 公開識別子を公的公開識別子として解釈する。 

4.1 

CONCUR−複数の文書型の併存 原始文書型及び結果文書型の両方の情報を同じ文書の中に保持

しておくとよい場面がある。例えば,WYSIWYG文書処理システムがそうである。利用者は書式付きの文

を見ながら操作するが,実際には,文書の編集又は変更は原始文書の上で行われ,それが書式付けされて

画面表示されるのである。 

このほかにも,文書に対して二つといわず複数の“視点”が有効な例がある。他の応用のために論理的

な文書型を保持したままで,表示装置用にも印字機用にも書式付けを行ってそれをすぐに表示する,とい

った場合である。 

文書型併存機構は,抽象的な視点に加えて複数の構造的な視点が同時にもてるようにする。利用者は,

複数の文書型を宣言し,それぞれの要素宣言,実体宣言,記法宣言などで望む文書型を組にして結合する。 

これらの文書型名は,タグ又は実体参照のときに使うことができる。こうして,基本文書型での開始タ

グ,終了タグ,実体といったものの組に加えて,幾つもの組が同じ文書の中で使えるようになる。そのほ

かのマーク又はデータは,マーク区間を使って特定の文書型だけに結び付ける。それぞれのマーク区間は,

その型に結び付けた修飾子付き見出し語を使って,その “INCLUDE” と “IGNORE” との状態の別を制御

する。 

例 3.1の例をとろう。その配置構造を与える結果文書型が “layout” であったとするとき,書式付け

を行った後での “item” の要素は,例えば次のようになる(マーク最小化を行わない場合)。 

 <item> 

131 

X 4151-1992  

 <(layout) block ident=5>箇条の文。 

 </item> 

 <(layout) block> 

4.2 

SUBDOC−入れ子の部分文書実体 SGMLでの文書は,幾つかの実体からできている。その文書が

始まった実体は,“SGML文書実体”といい,そこにはその文書全体に適用する機構又は具象構文を指定

したSGML宣言を書いておく。SGML文書実体には,また,文書型定義を与えておき,それに従ってマー

ク付けしておく。 

SGMLの規則に従った実体を,“SGML実体”という。SGML実体には,SGMLで解析することのない

データだけを含んだ“非SGMLデータ実体”への参照,及び“SGML文実体”と呼ぶそれ自身に文書型定

義の書いてないSGML実体への参照が書いてあってもよい。 

部分文書機構を使った場合,SGML実体には,更に,“SGML部分文書実体”と呼ぶそれ自身に文書型

定義が書いてあるSGML実体への参照を書くことができる。SGML部分文書実体は,SGML文書実体の

SGML宣言に従っていなければならないが,その他の点については,それ自身でその環境を設定して差し

支えない。部分文書を参照した実体の文書型又は実体宣言は,その部分文書実体が開いている間は抑えら

れ,それが閉じたとき元に復する。部分文書の中では,現番号も属性としての識別子値も新しいものにな

ってしまうので,SGML文書と部分文書との間での識別子参照を使うことはできない。 

部分文書の参照は,非SGMLデータ実体と同じに,一般実体参照として行う。一般実体参照は,実体参

照が認知される場所ならどこでも,データ文字が出てもよい場所(つまり,混合内容又は置換可能文字デ

ータの中)に,書くことができる。言い換えると,属性としてその部分文書実体のありかを指定する一般

実体名をとる要素を宣言する。 

例   <!ENTITY 

art1 

SYSTEM SUBDOC> 

 <!ELEMENT article −−EMPTY> 

 <!ATTLIST 

article 

file ENTITY#REQUIRED> 

 <!> 

 <p>この点に関しては,次の記事に詳しい。</p> 

 <article file=art1> 

宣言する要素の名前は,その部分文書実体の文書型の名前と同じである必要はない。その文書型の名前

は,部分文書の中で指定されているからである。 

この機構は,別々に作られた幾つもの型の文書を取り込んで,一つの文書(例えば,選集)を作り上げ

ることを可能とする。 

4.3 

FORMAL−公開識別子の公的扱い この機構を使うと,公開識別子は,次の要素からなる公的なも

のとして解釈する。 

(1) 所有者識別子 ISOの出版番号,一意性を保証する登録の規格に合致した識別子又は私的な(“未登録

の”)識別子を示す。 

(2) 公開文種別 登録してある文の種類(SGML文書,実体集合,文書型定義など)を示す。 

(3) 公開文識別子 登録してある文の名称を示す。 

(4) 使用言語 規格に従った2文字で,使っている国語を示す。 

(5) 表示版 公開文に,複数の出力装置向けの装置依存版の用意があるとき,その中のどの版であるかを

指定する。 

この指定は,任意選択である。システムは,使用している装置に合わせて最善の版を自動的に選定

132 

X 4151-1992  

してもよい。 

133 

X 4151-1992  

参考5 公開文 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

SGMLは,共通識別子,属性,実体参照などのマークをどのように認知するかを規定する。しかしなが

ら,特定の共通識別子及び名前そのものは,この言語の外である。これらの語いは,利用者が自らの要求

に合わせて作り出し,文書型定義及び連結処理定義で定義する。 

初期の共通符号化及び一般化マーク付けの言語によったと同様に,SGMLの個々の利用によって利益を

得られる。しかし,商業組織,技術的企業及び文書の内部交換を望む集団で,文書型定義及び他のマーク

構造を共有することによって,より多くの利益を得ることができる。 

SGMLは,公開識別子によって文を参照する構文をもっている。この参考では,公開文の応用の例を示

すとともに,直ちに使える公開実体集合を幾つか定義する。 

1. 要素集合 要素の中には,それ自体が独立した文書となることが普通はないものの,様々な文書型に

現れ得る種類のものがある。これらの要素に対しても,要素宣言の集合を作ることができる。 

1.1 

共通要素型 要素の中には,様々な文書の中に現れ,そこに共通の形式が容易に認識できるものが

ある。中には,専用のデータ内容記法をもつものもある(2.参照)。 

米国での例及びその仕様書の作成者は,次の(1)〜(5)のとおりである。 

(1) 召喚状(ハーバード法律レビュー) 

(2) 数学公式(米国出版協会) 

(3) 化学式(米国化学学会) 

(4) 書籍目録(米国会図書館) 

(5) 住所録(ダイレクトメール組合,住所録出版業者,電話会社) 

1.2 

形式要素型 幾つもの典型的な要素形態が様々な文書や要素の種類の中には見受けられるにもかか

わらず,これらは,普通,共通識別子が違っていたり,細かい差異があったりしている。このような形態

について公開の“形式”記述を設ければ,利用者が必要な特定の記述を構成する際の道標となる。 

このような要素の例としては,次のものがある。 

(1) (典型的な書式付け応用のための)段落 

(2) (詳細な文法又は他の解析のための)段落 

(3) 表 

(4) 入れ子の付番段落の構造 

(5) 一覧 

2. データ内容記述 広く使われているデータ内容記法の中には,SGMLに取り込むことができるものが

ある。これらには,公開識別子を与えておく。 

例えば,数学記法EQNは,次のようにして取り込むことができる。 

(1) EQN文の開始・終了を示す命令は不要となる。数式 (“formula”) 要素を示す開始タグ・終了タグがそ

の機能を兼ねるからである。 

(2) それ以外のEQNをそのままデータ内容記法とする(数学的要素を示す記述的マークを幾つか補足し

てもよい。)。 

134 

X 4151-1992  

例   <p>公式 

 <q><formura notation=EQN>E equals m 

 times c squared</formura></q> 

 は,エネルギEが質量mと速度cの自乗とによることを表している。</p> 

3. 変形具象構文 規格参照具象構文での回避文字番号指定及び機能文字指定の引数は,できる限り広い

範囲のSGMLシステム間で情報交換が間違いなく行われることを目指した設定にしてある。専用の文書処

理装置を除けば,文書処理応用システムの多くは,応用システムから制御しようのない操作系 (operating 

system) の上で稼働する。その操作系は,システム方式や情報交換についてのISO規格に必ずしも適合し

ていないから,SGMLでデータとして扱いたいビット組合せを制御文字として解釈してしまって,結果と

して異常な動作を引き起こすことがある。このような誤りを防ぐため,規格参照具象構文では,原則とし

て,何かの制御に使われ得るビット組合せを文書の中に直接書けないようにしてある。許しているのは,

普遍的な機能文字4種類だけである。 

しかしながら,国語によっては更に幾つかの機能文字が必要になる。それらを使って符号拡張を行い,

文章を入力したり改定したりする際にけん盤及び表示装置が文字集合を切り替えなければならないからで

ある。3.では,SGML実体で符号拡張ができるようにするための機能文字も許して,二つの公開変形具象

構文を定義する。いずれも,その機能文字及び追加になる図形文字が誤ってマークと解釈されるおそれが

ない設定になっている。 

3.1 

多符号具象構文 多符号基本具象構文は,参考5図1に示すSGML宣言の具象構文引数のとおりと

する。その公開識別子は,次のとおりとする。 

”ISO 8879-1986//SYNTAX Multicode Basic//EN”  

多符号核具象構文は,その “SHORTREF” 引数が “NONE” となっていることを除いて,多符号基本具

象構文と同じとする。その公開識別子は,次のとおりとする。 

”ISO 8879-1986//SYNTAX Multicode Core//EN”  

これらの構文では,G0集合にあるときだけマークを認知する。G1集合,G2集合又はG3集合の呼出し

は,マークの認知を抑制する機能文字(MSOCHAR又はMSSCHAR)で始まるからである。 

LS0機能は,G0集合を呼び出すとともに,MSICHARの機能によってマークの認知を再開させる。マー

クの認知を再開させるには,LS0は,エスケープシーケンスに続けて書いておかなければならない。 

備考 JIS X 0202 (ISO 2022) を支援する装置及びJIS X 0202 (ISO 2022) を支援しない装置を混合し

て使うことのできる装置独立符号拡張の方法は,参考6の3.で述べる。 

参考 マークの再開は,MSOCHARのLS1,又はLS1R,LS2,LS2R,LS3及びLS3Rのようにエスケ

ープで行われる。 

参考5図1 多符号基本具象構文 

SYNTAX 

SHUNCHAR 

CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 

18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 255 

BASESET 

”ISO 646-1983//CHARSET 
International Reference Version (IRV) //ESC 2/5 4/0” 

DESCSET 

0

14 0 

14

1 ”LS0 in ISO 2022” 

15

1 ”LS1 in ISO 2022” 

135 

X 4151-1992  

16112 16 

128

14 UNUSED 

142

1 ”SS2 in ISO 2022”  

143

1 ”SS3 in ISO 2022”  

144112 UNUSED 

FUNCTION 

RE 

13 

RS 

10 

SPACE  

32 

TAB 

SEPCHAR 

 9 

−−図形種目符号拡張機能−− 

−−G0集合を列マークへ呼び出した状態でだけマークを認識する。−− 

ESC 

MSOCHAR 

27−−エスケープ−− 

LS0 

MSICHAR 

15−−ロッキングシフト0(G0集合の呼出し)−− 

LS1 

MSOCHAR 

141−−ロッキングシフト1(G1集合の呼出し)−− 

−−LS1R,LS2,LS2R,LS3及びLS3Rは,−− 

−−エスケープシーケンスから始まる。−− 

SS2 

MSSCHAR 

142−−シングルシフト2(G2集合の呼出し)−− 

SS3 

MSSCHAR 

143−−シングルシフト3(G3集合の呼出し)−− 

NAMING 

LCNMSTRT  ” ” 

UCNMSTRT 

” ” 

LCNMCHAR ”−.” −−英小文字のハイフン及びピリオドは,−− 

UCNMCHAR ”−.” −−英大文字 (45 46) と同じとする。 

−− 

NAMECASE 

GENERAL YES 

ENTITY 

NO 

DELIM 

GENERAL 

SGMLREF  

SHORTREF 

SGMLREF  

NAMES 

SGMLREF 

QUANTITY 

SGMLREF 

備考 参考5図1において,注釈の部分は,ISO 646の文字で記述すべきであるが,読者の理解を助

けるために,ここでは日本文字を使用している。 

4. 実体集合 何万種類もの図形文字が出版に用いられているが,そのうちの比較的少数のものが規格と

しての符号化文字集合に取り入れられているにすぎない。符号化表現の規格があっても,けん盤から入力

しにくかったり,その文字の望む図形表示を表示装置に出せなかったりすることもある。 

これらの障壁を乗り越えてSGML文書を間違いなく交換する一助として,4.では,広く使われている特

殊文字の幾つかのための文字実体を定義する。これらの文字集合は,符号化文字集合の国際規格として制

定されたり提案されたりしているもの及び産業界・専門分野で使用されているものに基づいている。 

備考 実体集合は,文字集合に比べると,一般に高位の構成体を扱うから,どうしても大きくなり反

復的になる。例えば,実体集合では,アクセント記号付きのラテン文字それぞれに固有の実体

を設けているが,文字集合ではこれらを文字とアクセント記号との組合せで表現する。これら

の実体集合は,新しい文字集合規格への要求としてしてはならない。 

4.1 

設計方針 この参考に定義する公開実体集合についての設計方針を示す。 

4.1.1 

宣言の書式 それぞれの実体の定義は,その主旨だけを定める。その実体文は,実体名を大括弧で

くくったものだけからなる。その後には,その記号を解説した注釈があるだけで,装置に依存した符号化

表現は書いていない。 

例 <!ENTITY frac78 SDATA ”[frac78]” −−=fraction seven-eights−−> 

background image

136 

X 4151-1992  

上の例のように,注釈の中に等号があるときは,その解説はISO 6937によるものである。ISO 6937に

は,その文字の図形表現がある。 

次のように,注釈の中に斜線に続けて名前(長さは問わない。)が書いてある例のときは,その名前は,

米国数学会出版のMathSci(1)の中の図形表現の名前である。 

例   <!ENTITY frown SDATA ”[frown]” −−/frown R : down curve−−> 

注(1) MathSci-an expansion of mathfile, the American Mathematical Society, 201 Charles St., Providence, RI 

02940, USA (1985-04-26).  

注釈には,ISO 6937による解説及び1個以上のMathSciによる名前が任意個並ぶ。 

備考 MathSciでは,名前の前にくるのは斜線ではなく,逆斜線である。 

直前の例のように,注釈の中にコロンを付けた英大文字(1字)を書くことがある。この英字は,実体

の表す文字が数学の版組で普通の文字とは違った,次のとおりの扱いを受けることを示す。 

活字 

扱い 

矢印関係 [Relation (arrow)]  

二値演算子 (Binary operator)  

終了区切り子 (Closing delimiter)  

多数演算子 (Large operator)  

否定関係 [Relation (negated)]  

開始区切り子 (Opening delimiter)  

句読点 (Punctuation)  

関係 (Relation)  

4.1.2 

対応する表示実体集合 システムは,その対象とする出力装置用の表示実体集合を提供する。この

とき,それぞれの実体文を,望む図形をもたらす処理指令又は文字列で置き換える。もちろん,実体名と

注釈とは,そのまま残す。 

例 ISO 6937/2の機能をもたない出力装置用の表示実体 

 <!ENTITY frac78 SDATA ”7/8” −−=fraction seven-eighths−−> 

ISO 6937/2の機能をもつ8単位符号出力用の表示実体 

 <!ENTITY frac78 SDATA ”&#223;” −−=fraction seven-eighths−−> 

写植機を使った書式付けシステムでの表示実体 

 <!ENTITY frac78 SDATA ”?bf pi;&#14;?pf” −−=fraction seven-eighths−−> 

備考 実体宣言は,すべて見出し語 “SDATA” を使う。これは,その実体文にシステム固有の文字デ

ータがあって他の出力装置又は応用を対象とする場合に書換えがいる可能性があることを示唆

するためである。 

4.1.3 

実体名 実体名は,英語に基づいている。覚えやすいことを第一義として,論理的・系統的な省略

法を一貫して用いている。 

備考 他の言語向きには,翻訳してもよい。 

実体名は,大文字・小文字を区別する。名前の中の大文字・小文字は,その表す文字の大文字・小文字

の別,二重線にするかしないかの別など,幾つかの約束を示す。 

実体名は,どれも6文字以下であり,英字・数字だけしか使っていない。したがって,様々な具象構文

にそのまま使うことができる。 

備考 頻繁に使うことからもっと短い名前が望ましい場合には,その文書の中で短い名前を定義すれ

ばよい。 

137 

X 4151-1992  

文字の中には,応用によって別の意味合いをもつものがある。こうしたものについては,複数の実体が

宣言してある。 

備考 特定の文書の中で,別な名前にしたほうが意味が通りやすいのであれば,その文書の中で定義

し直せばよい。 

4.1.4 

実体集合の組織 実体集合は,原理的には,ISO 6937の文字集合の構成を反映する形に組織して

ある。つまり,似通った文字をできるだけまとめてある。この組織の仕方は,多くの応用にとって最適と

はいえない。それぞれの応用では,幾つもの集合から実体を組み合わせることが必要になるからである。

適合SGMLシステム及び適合SGML応用は,ここで定義する公開実体集合の全部又は一部を,いかなる

形で複製して利用しても差し支えない。ただし,その複製物には,すべて,ISOの著作権表示(複製許諾

表示を含む。)を行わなければならない。特に,公開集合の幾つかから複製して新しい集合を作った場合に

は,その新しい集合にISOの著作権表示を行わなければならない。 

備考 複数の公開集合から同じ実体名をもつものをもってきて文書に使う必要があるときは,その文

書の中で別の名前を宣言して与えることが望ましい。 

4.2 

アルファベット文字 ここでの文字実体集合では,実体名の命名に次の一貫した方式をとる。文字

そのもの又はその字訳に続けて,必要に応じてアクセントの略記及び非ラテン文字の指示を置く。実体名

での文字を大文字としたときは,その実体が表す文字が大文字形であることを示す。 

4.2.1 

ラテン文字 次の実体集合は,UC Letter及びLC Letterに入っていない,西欧言語でのラテン文字

からなる。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOlat1 PUBLIC 

    ”ISO 8879-1986//ENTITIES Added Latin 1//EN”> 

   %ISOlat1; 

−−> 

<!ENTITY aacute 

SDATA ”[aacute 

]” −−=small a, acute accent−−> 

<!ENTITY Aacute 

SDATA ”[Aacute 

]” −−=capital A, acute accent−−> 

<!ENTITY acirc 

SDATA ”[acirc  

]” −−=small a, circumflex accent−−> 

<!ENTITY Acirc 

SDATA ”[Acirc  

]” −−=capital A, circumflex accent−−> 

<!ENTITY agrave 

SDATA ”[agrave  

]” −−=small a, grave accent−−> 

<!ENTITY Agrave 

SDATA ”[Agrave  

]” −−=capital A, grave accent−−> 

<!ENTITY aring 

SDATA ”[aring  

]” −−=small a, ring−−> 

<!ENTITY Aring 

SDATA ”[Aring  

]” −−=capital A, ring−−> 

<!ENTITY atilde 

SDATA ”[atilde  

]” −−=small a, tilde−−> 

<!ENTITY Atilde 

SDATA ”[Atilde  

]” −−=capital A, tilde−−> 

<!ENTITY auml 

SDATA ”[auml  

]” −−=small a, dieresis or umlaut mark−−> 

<!ENTITY Auml 

SDATA ”[Auml  

]” −−=capital A, dieresis or umlaut mark−−> 

138 

X 4151-1992  

<!ENTITY aelig 

SDATA ”[aelig  

]” −−=small ae diphthong (ligature) −−> 

<!ENTITY AElig 

SDATA ”[AElig  

]” −−=capital AE diphthong (ligature) −−> 

<!ENTITY ccedil 

SDATA ”[ccedil  

]” −−=small c, cedilla−−> 

<!ENTITY Ccedil 

SDATA ”[Ccedil  

]” −−=capital C, cedilla−−> 

<!ENTITY eth 

SDATA ”[eth  

]” −−=small eth, Icelandic−−> 

<!ENTITY ETH 

SDATA ”[ETH  

]” −−=capital Eth, Icelandic−−> 

<!ENTITY eacute 

SDATA ”[eacute  

]” −−=small e, acute accent−−> 

<!ENTITY Eacute 

SDATA ”[Eacute  

]” −−=capital E, acute accent−−> 

<!ENTITY ecirc 

SDATA ”[ecirc  

]” −−=small e, circumflex accent−−> 

<!ENTITY Ecirc 

SDATA ”[Ecirc  

]” −−=capital E, circumflex accent−−> 

<!ENTITY egrave 

SDATA ”[egrave 

]” −−=small e, grave accent−−> 

<!ENTITY Egrave 

SDATA ”[Egrave  

]” −−=capital E, grave accent−−> 

<!ENTITY euml 

SDATA ”[euml  

]” −−=small e, dieresis or umlaut mark−−> 

<!ENTITY Euml 

SDATA ”[Euml  

]” −−=capital E, dieresis or umlaut mark−−> 

<!ENTITY iacute 

SDATA ”[iacute  

]” −−=small i, acute accent−−> 

<!ENTITY Iacute 

SDATA ”[Iacute  

]” −−=capital I, acute accent−−> 

<!ENTITY icirc 

SDATA ”[icirc  

]” −−=small i, circumflex accent−−> 

<!ENTITY Icirc 

SDATA ”[Icirc  

]” −−=capital I, circumflex accent−−> 

<!ENTITY igrave 

SDATA ”[igrave  

]” −−=small i, grave accent−−> 

<!ENTITY Igrave 

SDATA ”[Igrave  

]” −−=capital I, grave accent−−> 

<!ENTITY iuml 

SDATA ”[iuml  

]” −−=small i, dieresis or umlaut mark−−> 

<!ENTITY Iuml 

SDATA ”[Iuml  

]” −−=capital I, dieresis or umlaut mark−−> 

<!ENTITY ntilde 

SDATA ”[ntilde  

]” −−=small n, tilde−−> 

<!ENTITY Ntilde 

SDATA ”[Ntilde  

]” −−=cacpital N, tilde−−> 

<!ENTITY oacute 

SDATA ”[oacute  

]” −−=small o, acute accent−−> 

<!ENTITY Oacute 

SDATA ”[Oacute  

]” −−=capital O, acute accent−−> 

<!ENTITY ocirc 

SDATA ”[ocirc  

]” −−=small o, circumflex accent−−> 

<!ENTITY Ocirc 

SDATA ”[Ocirc  

]” −−=capital O, circumflex accent−−> 

<!ENTITY ograve 

SDATA ”[ograve  

]” −−=small o, grave accent−−> 

<!ENTITY Ograve 

SDATA ”[Ograve  

]” −−=capital O, grave accent−−> 

<!ENTITY oslash 

SDATA ”[oslash  

]” −−=small o, slash−−> 

<!ENTITY Oslash 

SDATA ”[Oslash  

]” −−=Capital O, slash−−> 

<!ENTITY otilde 

SDATA ”[otilde  

]” −−=small o, tilde−−> 

<!ENTITY Otilde 

SDATA ”[Otilde  

]” −−=capital O, tilde−−> 

<!ENTITY ouml 

SDATA ”[ouml  

]” −−=small o, dieresis or umlaut mark−−> 

<!ENTITY Ouml 

SDATA ”[Ouml  

]” −−=capital O, dieresis or umlaut mark−−> 

<!ENTITY szlig 

SDATA ”[szlig  

]” −−=small sharp s, German (sz ligature) −−> 

<!ENTITY thorn 

SDATA ”[thorn  

]” −−=small thorn, Icelandic−−> 

<!ENTITY THORN 

SDATA ”[THORN  ]” −−=capital THORN, Icelandic−−> 

<!ENTITY uacute 

SDATA ”[uacute  

]” −−=sma11 u, acute accent−−> 

139 

X 4151-1992  

<!ENTITY Uacute 

SDATA ”[Uacute  

]” −−=capital U, acute accent−−> 

<!ENTITY ucirc 

SDATA ”[ucirc  

]” −−=small u, circumflex accent−−> 

<!ENTITY Ucirc 

SDATA ”[Ucirc  

]” −−=capital U, circumflex accent−−> 

<!ENTITY ugrave 

SDATA ”[ugrave  

]” −−=small u, grave accent−−> 

<!ENTITY Ugrave 

SDATA ”[Ugrave  

]” −−=capital U, grave accent−−> 

<!ENTITY uuml 

SDATA ”[uuml  

]” −−=smal1 u, dieresis or umlaut mark−−> 

<!ENTITY Uuml 

SDATA ”[Uuml  

]” −−=capital U, dieresis or umlaut mark−−> 

<!ENTITY yacute 

SDATA ”[yacute  

]” −−=small y, acute accent−−> 

<!ENTITY Yacute 

SDATA ”[Yacute  

]” −−=capital Y, acute accent−−> 

<!ENTITY yuml 

SDATA ”[yuml  

]” −−=small y, dieresis or umlaut mark−−> 

次の実体集合は,ラテン文字の追加分からなる。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOlat2 PUBLIC 

    ”ISO 8879-1986//ENTITIES Added Latin 2//EN”> 

   %ISOlat2; 

−−> 

<!ENTITY abreve 

SDATA ”[abreve  

]” −−=small a, breve−−> 

<!ENTITY Abreve 

SDATA ”[Abreve  

]” −−=capital A, breve−−> 

<!ENTITY amacr 

SDATA ”[amacr  

]” −−=small a, macron−−> 

<!ENTITY Amacr 

SDATA ”[Amacr  

]” −−=capital A, macron−−> 

<!ENTITY aogon 

SDATA ”[aogon  

]” −−=small a, ogonrk−−> 

<!ENTITY Aogon 

SDATA ”[Aogon  

]” −−=capital A, ogonrk−−> 

<!ENTITY cacute 

SDATA ”[cacute  

]” −−=small c, acute accent−−> 

<!ENTITY Cacute 

SDATA ”[Cacute  

]” −−=capital C, acute accent−−> 

<!ENTITY ccaron 

SDATA ”[ccaron  

]” −−=small c, caron−−> 

<!ENTITY Ccaron 

SDATA ”[Ccaron  

]” −−=capital C, caron−−> 

<!ENTITY ccirc 

SDATA ”[ccirc  

]” −−=small c, circumflex accent−−> 

<!ENTITY Ccirc 

SDATA ”[Ccirc  

]” −−=capital C, circumflex accent−−> 

<!ENTITY cdot 

SDATA ”[cdot  

]” −−=small c, dot above−−> 

<!ENTITY Cdot 

SDATA ”[Cdot  

]” −−=capital C, dot above−−> 

<!ENTITY dcaron 

SDATA ”[dcaron  

]” −−=small d, caron−−> 

<!ENTJTY Dcaron 

SDATA ”[Dcaron  

]” −−=capital D, caron−−> 

<!ENTITY dstrok 

SDATA ”[dstrok  

]” −−=small d, stroke−−> 

<!ENTITY Dstrok 

SDATA ”[Dstrok  

]” −−=capital D, stroke−−> 

<!ENTITY ecaron 

SDATA ”[ecaron  

]” −−=small e caron−−> 

140 

X 4151-1992  

<!ENTITY Ecaron 

SDATA ”[Ecaron  

]” −−=capital E, caron−−> 

<!ENTITY edot 

SDATA ”[edot  

]” −−=small e, dot above−−> 

<!ENTITY Edot 

SDATA ”[Edot  

]” −−=capital E, dot above−−> 

<!ENTITY emacr 

SDATA ”[emacr  

]” −−=small e macron−−> 

<!ENTITY Emacr 

SDATA ”[Emacr  

]” −−=capital E, macron −−> 

<!ENTITY eogon 

SDATA ”[eogon  

]” −−=small e, ogonek−−> 

<!ENTITY Eogone 

SDATA ”[Eogon  

]” −−=capital E, ogonek−−> 

<!ENTITY gacute 

SDATA ”[gacute  

]” −−=small g, acute accent−−> 

<!ENTITY gbreve 

SDATA ”[gbreve  

]” −−=small g, breve−−> 

<!ENTITY Gbreve 

SDATA ”[Gbreve  

]” −−=capital G, breve −−> 

<!ENTITY Gcedil 

SDATA ”[Gcedil  

]” −−=capital G, cedilla−−> 

<!ENTITY gcirc 

SDATA ”[gcirc  

]” −−=small g, circumflex accent−−> 

<!ENTITY Gcirc 

SDATA ”[Gcirc  

]” −−=capital G, circumflex accent−−> 

<!ENTITY gdot 

SDATA ”[gdot  

]” −−=small g, dot above−−> 

<!ENTITY Gdot 

SDATA ”[Gdot  

]” −−=capital G, dot above−−> 

<!ENTITY hcirc 

SDATA ”[hcirc  

]” −−=small h, circumflex accent−−> 

<!ENTITY Hcirc 

SDATA ”[Hcirc  

]” −−=capital H, circumflex accent−−> 

<!ENTITY hstrok 

SDATA ”[hstrok  

]” −−=small h, stroke−−> 

<!ENTITY Hstrok 

SDATA ”[Hstrok  

]” −−=capital H, stroke−−> 

<!ENTITY Idot 

SDATA ”[Idot  

]” −−=capital I, dot above−−> 

<!ENTITY Imacr 

SDATA ”[Imacr  

]” −−=capital I, macron−−> 

<!ENTITY imacr 

SDATA ”[imacr  

]” −−=small i, macron−−> 

<!ENTITY ijlig 

SDATA ”[ijlig  

]” −−=small ij ligature−−> 

<!ENTITY IJlig 

SDATA ”[IJlig  

]” −−=capital IJ ligature −−> 

<!ENTITY inodot 

SDATA ”[inodot  

]” −−=small i without dot−−> 

<!ENTITY iogon 

SDATA ”[iogon  

]” −−=small i, ogonek−−> 

<!ENTITY Iogon 

SDATA ”[Iogon  

]” −−=capiital I, ogonek−−> 

<!ENTITY itilde 

SDATA ”[itilde  

]” −−=small i, tilde−−> 

<!ENTITY Itilde 

SDATA ”[Itilde  

]” −−=capital I, tilde−−> 

<!ENTITY jcirc 

SDATA ”[jcirc  

]” −−=small j, circumflex accent−−> 

<!ENTITY Jcirc 

SDATA ”[Jcirc  

]” −−=capital J, circumflex accent−−> 

<!ENTITY kcedil 

SDATA ”[kcedil  

]” −−=small k, cedilla−−> 

<!ENTITY Kcedil 

SDATA ”[Kcedil  

]” −−=canital K. cedilla−−> 

<!ENTITY kgreen 

SDATA ”[kgreen  

]” −−=small k, Greenlandic−−> 

<!ENTITY lacute 

SDATA ”[lacute  

]” −−=small l, acute accent−−> 

<!ENTITY Lacute 

SDATA ”[Lacute  

]” −−=capital L, acute accent−−> 

<!ENTITY lcaron 

SDATA ”[lcaron  

]” −−=small l, caron−−> 

<!ENTITY Lcaron 

SDATA ”[Lcaron  

]” −−=capital L, caron−−> 

<!ENTITY lcedil 

SDATA ”[lcedil  

]” −−=small l, cedilla−−> 

<!ENTITY Lcedil 

SDATA ”[Lcedil  

]” −−=capital L, cedilla−−> 

141 

X 4151-1992  

<!ENTITY lmidot 

SDATA ”[lmidot  

]” −−=small l, middle dot−−> 

<!ENTITY Lmidot 

SDATA ”[Lmidot  

]” −−=capital L, middle dot−−> 

<!ENTITY lstrok 

SDATA ”[lstrok  

]” −−=small l, stroke−−> 

<!ENTITY Lstrok 

SDATA ”[Lstrok  

]” −−=capital L, stroke−−> 

<!ENTITY nacute 

SDATA ”[nacute  

]” −−=small n, acute accent−−> 

<!ENTITY Nacute 

SDATA ”[Nacute  

]” −−=capital N, acute accent−−> 

<!ENTITY eng 

SDATA ”[eng  

]” −−=small eng, Lapp−−> 

<!ENTITY ENG 

SDATA ”[ENG  

]” −−=capital ENG, Lapp−−> 

<!ENTITY napos 

SDATA ”[napos  

]” −−=small n, apostrophe−−> 

<!ENTITY ncaron 

SDATA ”[ncaron  

]” −−=small n, caron−−> 

<!ENTITY Ncaron 

SDATA ”[Ncaron  

]” −−=capital N,caron−−> 

<!ENTITY ncedil 

SDATA ”[ncedil  

]” −−=small n, cedilla−−> 

<!ENTITY Ncedil 

SDATA ”[Ncedil  

]” −−=capital N, cedilla−−> 

<!ENTITY odblac 

SDATA ”[odblac  

]” −−=small o, double acute accent−−> 

<!ENTITY Odblac 

SDATA ”[Odblac  

]” −−=capital O, double acute accent−−> 

<!ENTITY Omacr 

SDATA ”[Omacr  

]” −−=capital O, macron−−> 

<!ENTITY omacr 

SDATA ”[omacr  

]” −−=small o, macron−−> 

<!ENTITY oelig 

SDATA ”[oelig  

]” −−=small oe ligature−−> 

<!ENTITY OElig 

SDATA ”[OElig  

]” −−=capital OE ligature−−> 

<!ENTITY racute 

SDATA ”[racute  

]” −−=small r, acute accent−−> 

<!ENTITY Racute 

SDATA ”[Racute  

]” −−=capital R, acute accent−−> 

<!ENTITY rcaron 

SDATA ”[rcaron  

]” −−=small r, caron−−> 

<!ENTITY Rcaron 

SDATA ”[Rcaron  

]” −−=capital R, caron−−> 

<!ENTITY rcedil 

SDATA ”[rcedil  

]” −−=small r, cedilla−−> 

<!ENTITY Rcedil 

SDATA ”[Rcedil  

]” −−=capital R, cedilla−−> 

<!ENTITY sacute 

SDATA ”[sacute  

]” −−=small s, acute accent−−> 

<!ENTITY Sacute 

SDATA ”[Sacute  

]” −−=capital S, acute accent−−> 

<!ENTITY scaron 

SDATA ”[scaron  

]” −−=small s, caron−−> 

<!ENTITY Scaron 

SDATA ”[Scaron  

]” −−=capital S, caron−−> 

<!ENTITY scedil 

SDATA ”[scedil  

]” −−=small s, cedilla−−> 

<!ENTITY Scedil 

SDATA ”[Scedil  

]” −−=capital S, cedilla −−> 

<!ENTITY scirc 

SDATA ”[scirc  

]” −−=small s, circumflex accent−−> 

<!ENTITY Scirc 

SDATA ”[Scirc  

]” −−=capital S, circumflex accent−−> 

<!ENTITY tcaron 

SDATA ”[tcaron  

]” −−=small t, caron−−> 

<!ENTITY Tcaron 

SDATA ”[Tcaron  

]” −−=capital T, caron−−> 

<!ENTITY tcedil 

SDATA ”[tcedil  

]” −−=small t, cedilla−−> 

<!ENTITY Tcedil 

SDATA ”[Tcedil  

]” −−=capital T, cedilla−−> 

<!ENTITY tstrok 

SDATA ”[tstrok  

]” −−=small t, stroke−−> 

<!ENTITY Tstrok  

SDATA ”[Tstrok  

]” −−=capital T, stroke−−> 

<!ENTITY ubreve 

SDATA ”[ubreve  

]” −−=small u, breve−−> 

142 

X 4151-1992  

<!ENTITY Ubreve 

SDATA ”[Ubreve  

]” −−=capital U, breve−−> 

<!ENTITY udblac 

SDATA ”[udblac  

]” −−=small u, double acute accent−−> 

<!ENTITY Udblac 

SDATA ”[Udblac  

]” −−=capital U, double acute accent−−> 

<!ENTITY umacr 

SDATA ”[umacr  

]” −−=small u macron−−> 

<!ENTITY Umacr 

SDATA ”[Umacr  

]” −−=capital U, macron−−> 

<!ENTITY uogon 

SDATA ”[uogon  

]” −−=small u, ogonek−−> 

<!ENTITY Uogon 

SDATA ”[Uogon  

]” −−=capital U, ogonek−−> 

<!ENTITY uring 

SDATA “[uring  

]” −−=small u, ring−−> 

<!ENTITY Uring 

SDATA ”[Uring  

]” −−=capital U, ring−−> 

<!ENTITY utilde 

SDATA ”[utilde  

]” −−=small u, tilde−−> 

<!ENTITY Utilde 

SDATA ”[Utilde  

]” −−=capital U, tilde−−> 

<!ENTITY wcirc 

SDATA ”[wcirc  

]” −−=small w circumflex accent−−> 

<!ENTITY Wcirc 

SDATA ”[Wcirc  

]” −−=capital W, circumflex accent−−> 

<!ENTITY ycirc 

SDATA ”[ycirc  

]” −−=small y, circumflex accent−−> 

<!ENTITY Ycirc 

SDATA ”[Ycirc  

]” −−=capital Y, circumflex accent−−> 

<!ENTITY Yuml 

SDATA ”[Yuml  

]” −−=capital Y, dieresis or umlaut mark−−> 

<!ENTITY zacute 

SDATA ”[zacute  

]” −−=small z, acute accent−−> 

<!ENTITY Zacute 

SDATA ”[Zacute  

]” −−=capital Z, acute accent−−> 

<!ENTITY zcaron 

SDATA ”[zcaron  

]” −−=small z caron−−> 

<!ENTITY Zcaron 

SDATA ”[Zcaron  

]” −−=capital Z, caron−−> 

<!ENTITY zdot 

SDATA ”[zdot  

]” −−=small z, dot above−−> 

<!ENTITY Zdot 

SDATA ”[Zdot  

]” −−=capital Z, dot above−−> 

4.2.2 

ギリシア文字 次の実体集合は,ギリシア文字からなる。これらは,ギリシア語を書くためのもの

であって,数式での記号として使うことを意図したものではない(技術文書用のギリシア文字は,別に定

義する。)。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOgrkl PUBLIC 

    ”ISO 8879- 1986//ENTITIES Greek Letters//EN”> 

   %ISOgrkl;  

−−> 

<!ENTITY agr 

SDATA ”[agr  

]” −−=small alpha, Greek−−> 

<!ENTITY Agr 

SDATA ”[Agr  

]” −−=capital Alpha, Greek−−> 

<!ENTITY bgr 

SDATA ”[bgr  

]” −−=small beta, Greek−−> 

<!ENTITY Bgr 

SDATA ”[Bgr  

]” −−=capital Beta, Greek−−> 

<!ENTITY ggr 

SDATA ”[ggr  

]” −−=small gamma, Greek−−> 

143 

X 4151-1992  

<!ENTITY Ggr 

SDATA ”[Ggr  

]” −−=capital Gamma, Greek−−>  

<!ENTTTY dgr 

SDATA ”[dgr  

]” −−=small delta, Greek−−> 

<!ENTITY Dgr 

SDATA ”[Dgr  

]” −−=capital Delta, Greek−−> 

<!ENTITY egr 

SDATA ”[egr  

]” −−=small epsilon, Greek−−> 

<!ENTITY Egr 

SDATA ”[Egr  

]” −−=capital Epsilon, Greek−−> 

<!ENTITY zgr 

SDATA ”[zgr  

]” −−=small zeta, Greek−−> 

<!ENTITY Zgr 

SDATA ”[Zgr  

]” −−=capital Zeta, Greek−−> 

<!ENTITY eegr 

SDATA ”[eegr  

]” −−=small eta, Greek−−> 

<!ENTITY EEgr 

SDATA ”[EEgr  

]” −−=capital Eta, Greek−−> 

<!ENTITY thgr 

SDATA ”[thgr  

]” −−=small theta, Greek−−>  

<!ENTITY THgr 

SDATA ”[THgr  

]” −−=capital Theta, Greek−−>  

<!ENTITY igr 

SDATA ”[igr  

]” −−=small iota, Greek−−> 

<!ENTITY Igr 

SDATA ”[Igr  

]” −−=capital Iota, Greek−−−> 

<!ENTITY kgr 

SDATA ”[kgr  

]” −−=small kappa, Greek−−> 

<!ENTITY Kgr 

SDATA ”[Kgr  

]” −−=capital Kappa, Greek−−> 

<!ENTITY lgr 

SDATA ”[lgr  

]” −−=small lambda, Greek−−>  

<!ENTITY Lgr 

SDATA ”[Lgr  

]” −−=capital Lambda, Greek−−> 

<!ENTITY mgr 

SDATA ”[mgr  

]” −−=small mu, Greek−−> 

<!ENTITY Mgr 

SDATA ”[Mgr  

]” −−=capital Mu, Greek−−> 

<!ENTITY ngr 

SDATA ”[ngr  

]” −−=small nu, Greek−−> 

<!ENTITY Ngr 

SDATA ”[Ngr  

]” −−=capital Nu, Greek−−> 

<!ENTITY xgr 

SDATA ”[xgr  

]” −−=small xi, Greek−−> 

<!ENTITY Xgr 

SDATA ”[Xgr  

]” −−=capital Xi, Greek−−> 

<!ENTITY ogr 

SDATA ”[ogr  

]” −−=small omicron, Greek−−> 

<!ENTITY Ogr 

SDATA ”[Ogr  

]” −−=capital Omicron, Greek−−> 

<!ENTITY pgr 

SDATA ”[pgr  

]” −−=small pi, Greek−−> 

<!ENTITY Pgr 

SDATA ”[Pgr  

]” −−=capital Pi, Greek−−> 

<!ENTITY rgr 

SDATA ”[rgr  

]” −−=small rho, Greek−−> 

<!ENTITY Rgr 

SDATA ”[Rgr  

]” −−=capital Rho, Greek−−> 

<!ENTITY sgr 

SDATA ”[sgr  

]” −−=small sigma, Greek−−> 

<!ENTITY Sgr 

SDATA ”[Sgr  

]” −−=capital Sigma, Greek−−> 

<!ENTITY sfgr 

SDATA ”[sfgr  

]” −−=final small sigma, Greek−−> 

<!ENTITY tgr 

SDATA ”[tgr  

]” −−=small tau, Greek−−> 

<!ENTITY Tgr 

SDATA ”[Tgr  

]” −−=capital Tau, Greek−−> 

<!ENTITY ugr 

SDATA ”[ugr  

]” −−=small upsilon, Greek−−> 

<!ENTITY Ugr 

SDATA ”[Ugr  

]” −−=capital Upsilon, Greek−−>  

<!ENTITY phgr 

SDATA ”[phgr  

]” −−=small phi, Greek−−> 

<!ENTITY PHgr 

SDATA ”[PHgr  

]” −−=capital Phi, Greek−−> 

<!ENTITY khgr 

SDATA ”[khgr  

]” −−=small chi, Greek−−> 

<!ENTITY KHgr 

SDATA ”[KHgr  

]” −−=capital Chi, Greek−−> 

144 

X 4151-1992  

<!ENTITY psgr 

SDATA ”[psgr  

]” −−=small psi, Greek−−> 

<!ENTITY PSgr 

SDATA ”[PSgr  

]” −−=capital Psi, Greek−−> 

<!ENTITY ohgr 

SDATA ”[ohgr  

]” −−=small omega, Greek−−> 

<!ENTITY OHgr 

SDATA ”[OHgr  

]” −−=canital Omega Greek−−> 

次の実体集合は,モノトニコギリシア語に必要となる追加分からなる。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in  

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOgrk2 PUBLIC 

    ”ISO 8879-1986//ENTITIES Monotoniko Greek//EN”> 

   %ISOgrk2;  

−−> 

<!ENTITY aacgr 

SDATA ”[aacgr 

]” −−=small alpha, accent, Greek−−> 

<!ENTITY Aacgr 

SDATA ”[Aacgr 

]” −−=capital Alpha, accent, Greek−−> 

<!ENTITY eacgr 

SDATA ”[eacgr 

]” −−=small epsilon accent, Greek−−> 

<!ENTITY Eacgr 

SDATA ”[Eacgr 

]” −−=capital Epsilon, accent, Greek−−> 

<!ENTITY eEacgr 

SDATA ”[eEacgr 

]” −−=small eta, accent, Greek−−> 

<!ENTITY Eeacgr 

SDATA ”[Eeacgr 

]” −−=capital Eta, accent, Greek−−> 

<!ENTITY idigr 

SDATA ”[idigr 

]” −−=small iota, dieresis, Greek−−> 

<!ENTITY Idigr 

SDATA ”[Idigr 

]” −−=capital Iota, dieresis, Greek−−> 

<!ENTITY iacgr 

SDATA ”[iacgr 

]”−−=small iota, accent, Greek−−> 

<!ENTITY Iacgr 

SDATA ”[Iacgr 

]”−−=capital Iota, accent, Greek−−> 

<!ENTITY idiagr 

SDATA ”[idiagr 

]”−−=small iota, dieresis, accent, Greek−−> 

<!ENTITY oacgr 

SDATA ”[oacgr 

]”−−=small omicron, accent, Greek−−> 

<!ENTITY Oacgr 

SDATA ”[Oacgr 

]”−−=capital Omicron, accent, Greek−−> 

<!ENTITY udigr 

SDATA ”[udigr 

]”−−=small upsilon, dieresis, Greek−−> 

<!ENTITY Udigr 

SDATA ”[Udigr 

]”−−=capital Upsilon, dieresis, Greek−−> 

<!ENTITY uacgr 

SDATA ”[uacgr 

]”−−=small upsilon, accent, Greek−−> 

<!ENTITY Uacgr 

SDATA ”[Uacgr 

]”−−=capital Upsilon, accent, Greek−−> 

<!ENTITY udiagr 

SDATA ”[udiagr 

]”−−=small upsilon, dieresis, accent, Greek−−> 

<!ENTITY ohacgr 

SDATA ”[ohacgr 

]”−−=small omega, accent, Greek−−> 

<!ENTITY OHacgr 

SDATA ”[OHacgr 

]”−−=capital Omega, accent, Greek−−> 

4.2.3 

キリル文字 次の実体集合は,ロシア語で使うキリル文字からなる。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

145 

X 4151-1992  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOcyr1 PUBLIC  

    ”ISO 8879-1986//ENTITIES Russian Cyrillic//EN”> 

   %ISOcyr1;  

−−> 

<!ENTITY acy 

SDATA ”[acy  

]” −−=small a, Cyrillic−−> 

<!ENTITY Acy 

SDATA ”[Acy  

]” −−=capital A, Cyrillic−−> 

<!ENTITY bcy 

SDATA ”[bcy  

]” −−=small be, Cyrillic−−> 

<!ENTITY Bcy 

SDATA ”[Bcy  

]” −−=capital BE, Cyrillic−−> 

<!ENTITY vcy 

SDATA ”[vcy  

]” −−=small ve, Cyrillic−−> 

<!ENTITY Vcy 

SDATA ”[Vcy  

]” −−=capital VE, Cyrillic−−> 

<!ENTITY gcy 

SDATA ”[gcy  

]” −−=small ghe, Cyrillic−−> 

<!ENTITY Gcy 

SDATA ”[Gcy  

]” −−=capital GHE, Cyrillic−−> 

<!ENTITY dcy 

SDATA ”[dcy  

]” −−=small de, Cyrillic−−> 

<!ENTITY Dcy 

SDATA ”[Dcy  

]” −−=capital DE, Cyrillic−−> 

<!ENTITY iecy 

SDATA ”[iecy  

]” −−=small ie, Cyrillic−−> 

<!ENTITY IEcy 

SDATA ”[IEcy  

]” −−=capital IE, Cyrillic−−> 

<!ENTITY iocy 

SDATA ”[iocy  

]” −−=small io, Russian−−> 

<!ENTITY IOcy 

SDATA ”[IOcy  

]” −−=capital IO, Russian−−> 

<!ENTITY zhcy 

SDATA ”[zhcy  

]” −−=small zhe, Cyrillic−−> 

<!ENTITY ZHcy 

SDATA ”[ZHcy  

]” −−=capital ZHE, Cyrillic−−> 

<!ENTITY zcy 

SDATA ”[zcy  

]” −−=small ze, Cyrillic−−> 

<!ENTITY Zcy 

SDATA ”[Zcy  

]” −−=capital ZE, Cyrillic−−> 

<!ENTITY icy 

SDATA ”[icy  

]” −−=small i, Cyrillic−−> 

<!ENTITY Icy 

SDATA ”[Icy  

]” −−=capital I, Cyrillic−−> 

<!ENTITY jcy 

SDATA ”[jcy  

]” −−=small short i, Cyrillic−−> 

<!ENTITY Jcy 

SDATA ”[Jcy  

]” −−=capital short I, Cyrillic−−> 

<!ENTITY kcy 

SDATA ”[kcy  

]” −−=small ka, Cyrillic−−> 

<!ENTITY Kcy 

SDATA ”[Kcy  

]” −−=capital KA, Cyrillic−−> 

<!ENTITY lcy 

SDATA ”[lcy  

]” −−=small el, Cyrillic−−> 

<!ENTITY Lcy 

SDATA ”[Lcy  

]” −−=capital EL, Cyrillic−−> 

<!ENTITY mcy 

SDATA ”[mcy  

]” −−=small em, Cyrillic−−> 

<!ENTITY Mcy 

SDATA ”[Mcy  

]” −−=capital EM, Cyrillic−−> 

<!ENTITY ncy 

SDATA ”[ncy  

]” −−=small en, Cyrillic−−> 

<!ENTITY Ncy 

SDATA ”[Ncy  

]” −−=capital EN, Cyrillic−−> 

<!ENTITY ocy 

SDATA ”[ocy  

]” −−=small o, Cyrillic−−> 

<!ENTITY Ocy 

SDATA ”[Ocy  

]” −−=capital O, Cyrillic−−> 

<!ENTITY pcy 

SDATA ”[pcy  

]” −−=small pe, Cyrillic−−> 

<!ENTITY Pcy 

SDATA ”[Pcy  

]” −−=capital PE, Cyrillic−−> 

146 

X 4151-1992  

<!ENTITY rcy 

SDATA ”[rcy  

]” −−=small Cr, Cyrillic−−> 

<!ENTITY Rcy 

SDATA ”[Rcy  

]” −−=capital ER, Cyrillic−−> 

<!ENTITY scy 

SDATA ”[scy  

]” −−=small es, Cyrillic −−> 

<!ENTITY Scy 

SDATA ”[Scy  

]” −−=capital ES, Cyrillic−−> 

<!ENTITY tcy 

SDATA ”[tcy  

]” −−=small te, Cyrillic −−> 

<!ENTITY Tcy 

SDATA ”[Tcy  

]” −−=capital TE, Cyrillic−−> 

<!ENTITY ucy 

SDATA ”[ucy  

]” −−=small u, Cyrillic−−> 

<!ENTITY Ucy 

SDATA ”[Ucy  

]” −−=capital U, Cyrillic−−> 

<!ENTITY fcy 

SDATA ”[fcy  

]” −−=small ef, Cyrillic−−> 

<!ENTITY Fcy 

SDATA ”[Fcy  

]” −−=capital EF, Cyrillic−−> 

<!ENTITY khcy 

SDATA ”[khcy  

]” −−=small ha, Cyrillic−−> 

<!ENTITY KHcy 

SDATA ”[KHcy  

]” −−=capital HA, Cyrillic−−> 

<!ENTITY tscy 

SDATA ”[tscy  

]” −−=small tse, Cyrillic−−> 

<!ENTITY TScy 

SDATA ”[TScy  

]” −−=capital TSE, Cyrillic−−> 

<!ENTITY chcy 

SDATA ”[chcy  

]” −−=small che, Cyrillic−−> 

<!ENTITY CHcy 

SDATA ”[CHcy  

]” −−=capital CHE, Cyrillic−−> 

<!ENTITY shcy 

SDATA ”[shcy  

]” −−=small sha, Cyrillic−−> 

<!ENTITY SHcy 

SDATA ”[SHcy  

]” −−=capital SHA, Cyrillic−−> 

<!ENTITY shchcy 

SDATA ”[shchcy  

]” −−=small shcha, Cyrillic−−> 

<!ENTITY SHCHcy 

SDATA ”[SHCHcy  ]” −−=capital SHCHA, Cyrillic−−> 

<!ENTITY hardcy 

SDATA ”[hardcy  

]” −−=small hard sign, Cyrillic−−> 

<!ENTITY HARDcy 

SDATA ”[HARDcy  ]” −−=capital HARD sign, Cyrillic−−> 

<!ENTITY ycy 

SDATA ”[ycy  

]” −−=small yeru, Cyrillic−−> 

<!ENTITY Ycy 

SDATA ”[Ycy  

]” −−=capital YERU, Cyrillic−−> 

<!ENTITY softcy 

SDATA ”[softcy  

]” −−=small soft sign, Cyrillic−−> 

<!ENTITY SOFTcy 

SDATA ”[SOFTcy  ]” −−=capital SOFT sign, Cyrillic−−> 

<!ENTITY ecy 

SDATA ”[ecy  

]” −−=small e, Cyrillic−−> 

<!ENTITY Ecy 

SDATA ”[Ecy  

]” −−=capital E, Cyrillic−−> 

<!ENTITY yucy 

SDATA ”[yucy  

]” −−=small yu, Cyrillic−−> 

<!ENTITY YUcy 

SDATA ”[YUcy  

]” −−=capital YU, Cyrillic−−> 

<!ENTITY yacy 

SDATA ”[yacy  

]” −−=small ya, Cyrillic−−> 

<!ENTITY YAcy 

SDATA ”[YAcy  

]” ̲−−=capital YA, Cyrillic−−> 

<!ENTITY numero 

SDATA ”[numero  ]” −−=numero sign−−> 

次の実体集合は,ロシア語で使わないキリル文字からなる。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGMLsystems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

147 

X 4151-1992  

   <!ENTITY % ISOcyr2 PUBLIC  

    ”ISO 8879- 1986//ENTITIES Non−Russian Cyrillic//EN”> 

   % ISOcyr; 

−−> 

<!ENTITY djcy 

SDATA ”[djcy  

]” −−=small dje, Serbian−−> 

<!ENTITY Dicy 

SDATA ”[Djcy  

]” −−=capital DJE, Serbian−−> 

<!ENTITY gjcy 

SDATA ”[gjcy  

]” −−=sma1l gje, Macedonian−−> 

<!ENTITY GJcy 

SDATA ”[GJcy  

]” −−=capita1 GJE, Macedonian−−> 

<!ENTITY jukcy 

SDATA ”[jukcy  

]” −−=small je, Ukrainian−−> 

<!ENTITY Jukey 

SDATA ”[Jukcy  

]” −−=capital JE, Ukrainian−−> 

<!ENTITY dscy 

SDATA ”[dscy  

]” −−=small dse, Macedonian−−> 

<!ENTITY DScy 

SDATA ”[DScy  

]” −−=capital DSE, Macedonian−−> 

<!ENTITY iukcy 

SDATA ”[iukcy  

]” −−=small i, Ukrainian−−> 

<!ENTITY Iukcy 

SDATA ”[Iukcy  

]” −−=capital I, Ukrainian−−> 

<!ENTITY yicy 

SDATA ”[yicy  

]” −−=small yi, Ukrainian−−> 

<!ENTITY YIcy 

SDATA ”[YIcy  

]” −−=capital YI, Ukrainian−−> 

<!ENTITY jsercy 

SDATA ”[jsercy  

]” −−=small je, Serbian−−> 

<!ENTITY Jsercy 

SDATA ”[Jsercy  

]” −−=capital JE, Serbian−−> 

<!ENTITY ljcy 

SDATA ”[ljcy  

]” −−=small lje, Serbian−−> 

<!ENTITY LJcy 

SDATA ”[LJcy  

]” −−=capital LJE, Serbian−−> 

<!ENTITY njcy 

SDATA ”[njcy  

]” −−=small nje, Serbian−−> 

<!ENTITY NJcy 

SDATA ”[NJcy  

]” −−=capital NJE, Serbian−−> 

<!ENTITY tshcy 

SDATA ”[tshcy  

]” −−=small tshe, Serbian−−> 

<!ENTITY TSHcy 

SDATA ”[TSHcy  

]” −−=capital TSHE, Serbian−−> 

<!ENTITY kjcy 

SDATA ”[kjcy  

]” −−=small kje, Macedon ian−−> 

<!ENTITY KJcy 

SDATA ”[KJcy  

]” −−=capital KJE, Macedonian−−> 

<!ENTITY ubrcy 

SDATA ”[ubrcy  

]” −−=small u, Byelorussian−−> 

<!ENTITY Ubrcy 

SDATA ”[Ubrcy  

]“ −−=capital U, Byelorussian−−> 

<!ENTITY dzcy 

SDATA ”[dzcy  

]” −−=small dze, Serbian−−> 

<!ENTITY DZcy 

SDATA ”[DZcy  

]” −−=capital dze. Serbian−−> 

4.3 

一般用 

4.3.1 

数字・特殊文字 次の実体集合には一般的な数字・特殊文字のほかに,最小データ文字及び規格参

照具象構文でのマーク文字が入れてある。これらの文字は,普通,直接にけん盤から入力できるものであ

るが,区切り子機能に割り当てた場合にはデータとして入力するのに実体参照が必要となることがある。 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

148 

X 4151-1992  

   <!ENTITY % ISOnum PUBLIC 

    ”ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN”> 

   %ISOnum;  

−−> 

<!ENTITY half 

SDATA ”[half  

]” −−=fraction one-half−−> 

<!ENTITY frac12 

SDATA ”[frac12  

]” −−=fraction one-half−−> 

<!ENTITY frac14 

SDATA ”[frac14  

]” −−=fraction one-quarter−−> 

<!ENTITY frac34 

SDATA ”[frac34  

]” −−=fraction three-quarters−−> 

<!ENTITY frac18 

SDATA ”[frac18  

]” −−=fraction one-eighth−−> 

<!ENTITY frac38 

SDATA ”[frac38  

]” −−=fraction three-eighths−−> 

<!ENTITY frac58 

SDATA ”[frac58  

]” −−=fraction five-eighths−−> 

<!ENTITY frac78 

SDATA ”[frac78  

]” −−=fraction seven-eighths−−> 

<!ENTITY sup1 

SDATA ”[sup1  

]” −−=superscript one−−> 

<!ENTITY sup2 

SDATA ”[sup2  

]” −−=superscript two−−> 

<!ENTITY sup3 

SDATA ”[sup3  

]” −−=superscript three−−> 

<!ENTITY plus 

SDATA ”[plus  

]” −−=plus sign B: −−> 

<!ENTITY plusmn 

SDATA ”[plusmn  

]” −−/pm B: =plus-or-minus sign−−> 

<!ENTITY lt 

SDATA ”[lt  

]” −−=less-than sign R: −−> 

<!ENTITY equals 

SDATA ”[equals  

]” −−=equals sign R: −−> 

<!ENTITY gt 

SDATA ”[gt  

]” −−=greater-than sign R: −−> 

<!ENTITY divide 

SDATA ”[divide  

]” −−/div B: =divide sign−−> 

<!ENTITY times 

SDATA ”[times  

]” −−/times B: =multiply sign−−> 

<!ENTITY curren 

SDATA ”[curren  

]” −−=general currency sign−−> 

<!ENTITY pound 

SDATA ”[pound  

]” −−=pound sign−−> 

<!ENTITY dollar 

SDATA ”[dollar  

]” −−=dollar sign−−> 

<!ENTITY cent 

SDATA ”[cent  

]” −−=cent sign−−> 

<!ENTITY yen 

SDATA ”[yen  

]” −−/yen=yen sign 

<!ENTITY num 

SDATA ”[num  

]” −−=number sign−−> 

<!ENTITY percnt 

SDATA ”[percnt  

]” −−=percent sign−−> 

<!ENTITY amp 

SDATA ”[amp  

]” −−=ampersand−−> 

<!ENTITY ast 

SDATA ”[ast  

]” −−/ast B: =asterisk−−> 

<!ENTITY commat 

SDATA ”[commat  ]” −−=commercial at−−> 

<!ENTITY lsqb 

SDATA ”[lsqb  

]” −−/lbrack O: =left square bracket−−> 

<!ENTITY bsol 

SDATA ”[bsol  

]” −−/backslash=reverse solidus−−> 

<!ENTITY rsqb 

SDATA ”[rsqb  

]” −−/rbrack C: =right square bracket−−> 

<!ENTITY lcub 

SDATA ”[lcub  

]” −−/lbrace O: =left curly bracket−−> 

149 

X 4151-1992  

<!ENTITY horbar 

SDATA ”[horbar  

]” −−=horizontal bar−−> 

<!ENTITY verbar 

SDATA ”[verbar  

]” −−/vert=vertical bar−−> 

<!ENTITY rcub 

SDATA ”[rcub  

]” −−/rbrace C: =right curly bracket−−> 

<!ENTITY micro 

SDATA ”[micro  

]” −−=micro sign−−> 

<!ENTITY ohm 

SDATA ”[ohm  

]” −−=ohm sign−−> 

<!ENTITY deg 

SDATA ”[deg  

]” −−=degree sign−−> 

<!ENTITY ordm 

SDATA ”[ordm 

]” −−=ordinal indicator, masculine−−> 

<!ENTITY ordf 

SDATA ”[ordf 

]” −−=ordina1 indicator, feminine−−> 

<!ENTITY sect 

SDATA ”[sect 

]” −−=sectoin sign−−> 

<!ENTITY para 

SDATA ”[para  

]” −−=pilcrow (paragraph sign) −−> 

<!ENTITY middot 

SDATA ”[middot  

]” −−/centerdot B: =middle dot−−> 

<!ENTITY larr 

SDATA ”[larr  

]” −−/leftarrow /gets A: =leftward arrow−−> 

<!ENTITY rarr 

SDATA ”[rarr  

]” −−/rightarrow /to A: =rightward arrow−− 

<!ENTITY uarr 

SDATA ”[uarr  

]” −−/uparrow A: =upward arrow−−> 

<!ENTITY darr 

SDATA ”[darr  

]” −−/downarrow A: =downward arrow−−> 

<!ENTITY copy 

SDATA ”[copy  

]” −−=copyright sign−−> 

<!ENTITY reg 

SDATA ”[reg  

]” −−/circledR =registered sign−−> 

<!ENTITY trade 

SDATA ”[trade  

]” −−=trade mark sign−−> 

<!ENTITY brvbar 

SDATA ”[brvbar  

]” −−=broken (vertical) bar−−> 

<!ENTITY not 

SDATA ”[not  

]” −−/neg /lnot =not sign−−> 

<!ENTITY sung 

SDATA ”[sung  

]” −−=music note (sung text sign) −−> 

<!ENTITY excl 

SDATA ”[excl  

]” −−=exclamation mark−−> 

<!ENTITY iexcl 

SDATA ”[iexcl  

]” −−=inverted exclamation mark−−> 

<!ENTITY quot,  

SDATA ”[quot  

]” −−=quotation mark−−> 

<!ENTITY apos 

SDATA ”[apos  

]” −−=apostrophe−−> 

<!ENTITY lpar,  

SDATA ”[lpar  

]” −−O: =left parenthesis−−> 

<!ENTITY rpar 

SDATA ”[rpar  

]” −−C: =right parenthesis−−> 

<!ENTITY comma 

SDATA ”[comma  

]” −−P: =comma−−> 

<!ENTITY lowbar 

SDATA ”[lowbar  

]” −−=low line−−> 

<!ENTITY hyphen 

SDATA ”[hyphen  

]” −−=hyphen−−> 

<!ENTITY period 

SDATA ”[period  

]” −−=full stop, period−−> 

<!ENTITY sol 

SDATA ”[sol  

]” −−=solidus−−> 

<!ENTITY colon 

SDATA ”[colon  

]” −−/colon P: −−> 

<!ENTITY semi 

SDATA ”[semi  

]” −−=semicolon P: −−> 

<!ENTITY quest 

SDATA ”[quest  

]” −−=question mark−−> 

<!ENTITY iquest 

SDATA ”[iquest  

]” −−=inverted question mark−−> 

<!ENTITY laquo 

SDATA ”[laquo 

]” −−=angle quotation mark, left−−> 

<!ENTITY raquo 

SDATA ”[raquo  

]” −−=angle quotation mark, right−−> 

<!ENTITY lsquo 

SDATA ”[lsquo 

]” −−=single quotation mark, left−−> 

<!ENTITY rsquo 

SDATA ”[rsquo  

]” −−=single quotation mark, right−−> 

150 

X 4151-1992  

<!ENTITY ldquo 

SDATA ”[ldquo  

]” −−=double quotation mark, left−−> 

<!ENTITY rdquo 

SDATA ”[rdquo 

]” −−=double quotation mark, right−−> 

<!ENTITY nbsp 

SDATA ”[nbsp 

]” −−=no break (required) space−−> 

<!ENTITY shy 

SDATA ”[shy 

]” −−=soft hyphen−−> 

4.3.2 

アクセント記号 次の実体は,それぞれ独立した文字として扱うためのものである。 

<!−− (C) Internatlonal Organlzation for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in an copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOdia PUBLIC 

    ”ISO 8879-1986//ENTITIES Diacritical Marks//EN”> 

   %ISOdia;  

−−> 

<!ENTITY acute 

SDATA ”[acute  

]” −−=acute accent−−> 

<!ENTITY breve 

SDATA ”[breve 

]” −−=breve−−> 

<!ENTITY caron 

SDATA ”[caron  

]” −−=caron−−> 

<!ENTITY cedil 

SDATA ”[cedil  

]” −−=cedilla−−> 

<!ENTITY circ 

SDATA ”[circ  

]” −−=circumflex accent−−> 

<!ENTITY dblac 

SDATA ”[dblac  

]” −−=double acute accent−−> 

<!ENTITY die 

SDATA ”[die  

]” −−=dieresis−−> 

<!ENTITY dot 

SDATA ”[dot  

]” −−=dot above−−> 

<!ENTITY grave 

SDATA ”[grave  

]” −−=grave accent−−> 

<!ENTITY macr 

SDATA ”[macr  

]” −−=macron−−> 

<!ENTITY ogon 

SDATA ”[ogon  

]” −−=ogonek−−> 

<!ENTITY ring 

SDATA ”[ring 

]” −−=ring−−> 

<!ENTITY tilde 

SDATA ”[tilde  

]” −−=tilde−−> 

<!ENTITY uml 

SDATA ”[uml  

]” −−=umlaut mark−−> 

4.3.3 

出版用文字 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOpub PUBLIC  

    ”ISO 8879- 1986//ENTITIES Publishing//EN”> 

   %ISOpub;  

−−> 

151 

X 4151-1992  

<!ENTITY emsp 

SDATA ”[emsp  

]” −−=em space−−> 

<!ENTITY ensp 

SDATA ”[ensp  

]” −−=en space (1/2−em) −−> 

<!ENTITY emsp13 

SDATA ”[emsp3  

]” −−=1/3-em space−−> 

<!ENTITY emsp14 

SDATA ”[emsp4  

]” −−=1/4-em space−−> 

<!ENTITY numsp 

SDATA ”[numsp  

]” −−=digit space (width of a number) −−> 

<!ENTITY puncsp 

SDATA ”[puncsp  

]” −−=punctuation space (width of comma) −−> 

<!ENTITY thinsp 

SDATA ”[thinsp 

]” −−=thin space (1/6-em) −−> 

<!ENTITY hairsp 

SDATA ”[hairsp 

]” −−=hair space−−> 

<!ENTITY mdash 

SDATA ”[mdash  

]” −−=em dash−−> 

<!ENTITY ndash 

SDATA ”[ndash  

]” −−=en dash−−> 

<!ENTITY dash 

SDATA ”[dash  

]” −−=hyphen (true graphic) −−> 

<!ENTITY blank 

SDATA ”[blank  

]” −−=significant blank symbol−−> 

<!ENTITY hellip 

SDATA ”[hellip  

]” −−=elllipsis (horizontal) −−> 

<!ENTITY nldr 

SDATA ”[nldr  

]” −−=double baseline dot (en leader) −−> 

<!ENTITY frac13 

SDATA ”[frac13  

]” −−=fraction one-thirds−−> 

<!ENTITY frac23 

SDATA ”[frac23  

]” −−=fraction two-thirds−−> 

<!ENTITY frac15 

SDATA ”[frac15 

]” −−=fraction one-fifth−−> 

<!ENTITY frac25 

SDATA ”[frac25  

]” −−=fraction two-fifths−−> 

<!ENTITY frac35 

SDATA ”[trac35  

]” −−=fraction three-fifths−−> 

<!ENTITY frac45 

SDATA ”[frac45  

]” −−=fraction four-fifths−−> 

<!ENTITY frac16 

SDATA ”[frac16  

]” −−=fraction one-sixth−−> 

<!ENTITY frac56 

SDATA ”[frac56  

]” −−=fraction five-sixths−−> 

<!ENTITY incare 

SDATA ”[incare  

]” −−=in-care-of symbol−−> 

<!ENTITY block 

SDATA ”[block  

]” −−=full block −−> 

<!ENTITY uhblk 

SDATA ”[uhblk  

]” −−=upper half block−−> 

<!ENTITY lhblk 

SDATA ”[lhblk  

]” −−=lower half block−−> 

<!ENTITY blk14 

SDATA ”[blk14 

]” −−=25% shaded block−−> 

<!ENTITY blk12 

SDATA ”[blk12  

]” −−=50% shaded block−−> 

<!ENTITY blk34 

SDATA ”[blk34  

]” −−=75% shaded block−−> 

<!ENTITY marker 

SDATA ”[marker  

]” −−=histogram marker−−> 

<!ENTITY cir 

SDATA ”[cir  

]” −−/circ B: =circ1e, open−−> 

<!ENTITY squ 

SDATA ”[squ  

]” −−=square, open−−> 

<!ENTITY rect 

SDATA ”[rect  

]” −−=rectangle, open−−> 

<!ENTITY utri 

SDATA ”[utri  

]” −−/triangle =up trianlge, open−−> 

<!ENTITY dtri 

SDATA ”[dtri  

]” −−/triangledown =down triangle, open−−> 

<!ENTITY star 

SDATA ”[star  

]” −−=star, open−−> 

<!ENTITY bull 

SDATA ”[bull  

]” −−/bullet B: =round bullet, filled−−> 

<!ENTITY squf 

SDATA ”[squf  

]” −−/blasksquare =sq bullet, filled−−> 

<!ENTITY utrif 

SDATA ”[utrif  

]” −−/blasktriangle =up tri, filled−−> 

<!ENTITY dtrif 

SDATA ”[dtrif  

]” −−/blasktriangledown =dn tri, filled−−> 

152 

X 4151-1992  

<!ENTITY ltrif 

SDATA ”[ltrif  

]” −−/blasktriangleleft R: =l tri, filled−−> 

<!ENTITY rtrif 

SDATA ”[rtrif  

]” −−/blasktriangleright R: =r tri, filled−−> 

<!ENTITY clubs 

SDATA ”[clubs  

]” −−/clubsuit =club suit symbol−−> 

<!ENTITY diams 

SDATA ”[diams  

]” −−/diamondsuit=diamond suit symbol−−> 

<!ENTITY hearts 

SDATA ”[hearts  

]” −−/heartsuit =heart suit symbol−−> 

<!ENTITY spades 

SDATA ”[spades  

]” −−/spadesuit =spades suit symbol−−> 

<!ENTITY malt 

SDATA ”[malt  

]” −−/maltese =maltese cross−−> 

<!ENTITY dagger 

SDATA ”[dagger  

]” −−/dagger B: =dagger−−> 

<!ENTITY Dagger 

SDATA ”[Dagger  

]” −−/ddagger B: =double dagger−−> 

<!ENTITY check 

SDATA ”[check  

]” −−/checkmark =tick, check mark−−> 

<!ENTITY cross 

SDATA ”[ballot  

]” −−=ballot cross−−> 

<!ENTITY sharp 

SDATA ”[sharp  

]” −−/sharp =musical sharp−−> 

<!ENTITY flat 

SDATA ”[flat  

]” −−/flat =musical flat−−> 

<!ENTITY male 

SDATA ”[male  

]” −−=male symbol−−> 

<!ENTITY female 

SDATA ”[female  

]” −−=female symbol−−> 

<!ENTITY phone 

SDATA ”[phone  

]” −−=telephone symbol−−> 

<!ENTITY telrec 

SDATA ”[telrec  

]” −−=telephone recorder symbol−−> 

<!ENTITY copysr 

SDATA ”[copysr  

]” −−=sound recording copyright sign−−> 

<!ENTITY caret 

SDATA ”[caret  

]” −−=caret (insertion mark) −−> 

<!ENTITY lsquor 

SDATA ”[lsquor  

]” −−=rising single quote, left (low) −−> 

<!ENTITY ldquor 

SDATA ”[ldquor  

]” −−=rising dbl quote, left (low) −−> 

<!ENTITY fflig 

SDATA ”[fflig  

]” −−small ff ligature−−> 

<!ENTITY filig 

SDATA ”[filig  

]” −−small fi ligature−−> 

<!ENTITY fjlig 

SDATA ”[fjlig  

]” −−small fj ligature−−> 

<!ENTITY ffilig 

SDATA ”[ffilig  

]” −−small ffi ligature−−> 

<!ENTITY ffllig 

SDATA ”[ffllig  

]” −−small ffl ligature−−> 

<!ENTITY fllig 

SDATA ”[filig  

]” −−small fl ligature−−> 

<!ENTITY mldr 

SDATA ”[mldr  

]” −−em leader−−> 

<!ENTITY rdquor 

SDATA ”[rdquor  

]” −−rising dbl quote, right (high) −−> 

<!ENTITY rsquor 

SDATA ”[rsquor  

]” −−rising single quote, right (high) −−> 

<!ENTITY vellip 

SDATA ”[vellip  

]” −−vertical ellipsis−−> 

<!ENTITY hybull 

SDATA ”[hybull  

]” −−rectangle, filled (hyphen bullet) −−> 

<!ENTITY loz 

SDATA ”[loz  

]” −−/lozenge−lozenge or total mark−−> 

<!ENTITY lozf 

SDATA ”[lozf  

]” −−/blacklozenge−lozenge, filled−−> 

<!ENTITY ltri 

SDATA ”[ltri  

]” −−/triangleleft B: 1 triangle, open−−> 

<!ENTITY rtri 

SDATA ”[rtri  

]” −−/triangleright b: r triangle, open−−> 

<!ENTITY starf 

SDATA ”[starf  

]” −−/bigstar−star, filled−−> 

153 

X 4151-1992  

<!ENTITY natur 

SDATA ”[natur  

]” −−/natural−music natural−−> 

<!ENTITY rx 

SDATA ”[rx  

]” −−pharmaceutical prescription (Rx) −−> 

<!ENTITY sext 

SDATA ”[sext  

]” −−sextile (6-pointed star) −−> 

<!ENTITY target 

SDATA ”[target  

]” −−register mark or target−−> 

<!ENTITY dlcrop 

SDATA ”[dlcrop  

]” −−downward left crop mark−−> 

<!ENTITY drcrop 

SDATA ”[drcrop  

]” −−downward right crop mark−−> 

<!ENTITY ulcrop 

SDATA ”[ulcrop  

]” −−upward left drop mark−−> 

<!ENTITY urcrop 

SDATA ”[urcrop  

]” −−upward right drop mark−−> 

4.3.4 

箱及び線描画文字 

<!−− (C) International Organization for Standardization 1986 

    Permission to copy in any form is granted for use with 

    conforming SGML systems and applications as defined in 

    ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISObox PUBLIC  

    ”ISO 8879-1986//ENTITIES Box and Line Drawing//EN”> 

   %ISObox;  

−−> 

<!−−すべての名前は,形式box1234となっている。 

   box=箱の描画実体を識別する定数 

   1&2=以下のようなv,V,u,U,d,D,Ud又はuD 

   v=全高の垂直線 

   u=上半分の垂直線 

   d=下半分の垂直線 

   3&4=以下のようなh,H,1,L,r,R,Lr又はlR 

   h=全幅の水平線 

   l=左半分の水平線 

   r=右半分の水平線 

   すべての場合において,大文字は,二重又は太線を意味する。 

−−> 

<!ENTITY boxh 

SDATA ”[boxh  

]” −−horizontal line−−> 

<!ENTITY boxy 

SDATA ”[boxy  

]” −−vertical line−−> 

<!ENTITY boxur 

SDATA ”[boxur  

]” −−upper right quadrant−−> 

<!ENTITY boxul 

SDATA ”[boxul  

]” −−upper left quadrant−−> 

<!ENTITY boxdl 

SDATA ”[boxdl  

]” −−lower left quadrant−−> 

<!ENTITY boxdr 

SDATA ”[boxdr  

]” −−lower right quadrant−−> 

<!ENTITY boxvr 

SDATA ”[boxvr  

]” −−upper and lower right quadrants−−> 

154 

X 4151-1992  

<!ENTITY boxhu 

SDATA ”[boxhu  

]” −−upper left and right quadrants−−> 

<!ENTITY boxvl 

SDATA ”[boxvl  

]” −−upper and lower left quadrants−−> 

<!ENTITY boxhd 

SDATA ”[boxhd  

]” −−lower left and right quadrants−−> 

<!ENTITY boxvh 

SDATA ”[boxvh  

]” −−all four quadrants−−> 

<!ENTITY boxvR 

SDATA ”[boxvR  

]” −−upper and lower right quadrants−−> 

<!ENTITY boxhU 

SDATA ”[boxhU  

]” −−upper left and right quadrants−−> 

<!ENTITY boxvL 

SDATA ”[boxvL  

]” −−upper and lower left quadrants−−> 

<!ENTITY boxhD 

SDATA ”[boxhD  

]” −−lower left and right quadrants−−> 

<!ENTITY boxvH 

SDATA ”[boxvH  

]” −−all four quadrants−−> 

<!ENTITY boxH 

SDATA ”[boxH  

]” −−horizontal line −−> 

<!ENTITY boxV 

SDATA ”[boxV  

]” −−vertical line−−> 

<!ENTITY boxUR 

SDATA ”[boxUR  

]” −−upper right quadrant−−> 

<!ENTITY boxUL 

SDATA ”[boxUL  

]” −−upper left quadrant−−> 

<!ENTITY boxDL 

SDATA ”[boxDL  

]” −−lower left quadrant−−> 

<!ENTITY boxDR 

SDATA ”[boxDR  

]” −−lower right quadrant−−> 

<!ENTITY boxVR 

SDATA ”[boxVR  

]” −−upper and lower right quadrants−−> 

<!ENTITY boxHU 

SDATA ”[boxHU  

]” −−upper left and right quadrants−−> 

<!ENTITY boxVL 

SDATA ”[boxVL  

]” −−upper and lower left quadrants−−> 

<!ENTITY boxHD 

SDATA ”[boxHD  

]” −−lower left and right quadrants−−> 

<!ENTITY boxVH 

SDATA ”[boxVH  

]” −−all four quadrants−−> 

<!ENTITY boxVr 

SDATA ”[boxVr  

]” −−upper and lower right quadrants−−> 

<!ENTITY boxHu 

SDATA ”[boxHu  

]” −−upper left and right quadrants−−> 

<!ENTITY boxVl 

SDATA ”[hoxVl  

]” −−upper and lower left quadrants−−> 

<!ENTITY boxHd 

SDATA ”[boxHd  

]” −−lower left and right quadrants−−> 

<!ENTITY boxVh 

SDATA ”[boxVh  

]” −−all four quadrants−−> 

<!ENTITY boxuR 

SDATA ”[boxuR  

]” −−upper right quadrant−−> 

<!ENTITY boxUl 

SDATA ”[boxUl  

]” −−upper left quadrant−−> 

<!ENTITY boxdL 

SDATA ”[boxdL  

]” −−lower left quadrant−−> 

<!ENTITY boxDr 

SDATA ”[boxDr  

]” −−lower right quadrant−−> 

<!ENTITY boxUr 

SDATA ”[boxUr  

]” −−upper right quadrant−−> 

<!ENTITY boxuL 

SDATA ”[boxuL  

]” −−upper left quadrant−−> 

<!ENTITY boxDl 

SDATA ”[boxDl  

]” −−lower left quadrant−−> 

<!ENTITY boxdR 

SDATA ”[boxdR  

]” −−lower right quadrant−−> 

4.4 

技術用 多くの技術記号は,一つ以上の文脈で使うことが可能なため,この種別の実体名は,それ

に関連する意味的内容を伝えるのではなく,通常,視覚的に図形を記述する。 

次の短縮形は,一貫性をもって使われる。 

接頭群: 

l=左 (left),r=右 (right),u=上 (up),d=下 (down),h=横 (horizontal),v=縦 (vertical)  

b=後退,反転 (back, reversed)  

cu=ねじれた (curly)  

155 

X 4151-1992  

g=より大きい (grater than),l=より小さい (less than)  

n=否定 (negated)  

o=円内 (in circle)  

s=小さい,短い (small, short)  

sq=四角形 (square shaped)  

thk=厚い (thick)  

x=拡張,長い,大きい (extended, long, big)  

本文: 

ap=約 (approx)  

arr=矢 (arrow),har=もり (harpoon)  

pr=先行 (precedes),sc=後続 (succeeds)  

sub=部分集合 (subset),sup=上位集合 (superset)  

接尾群: 

b=囲み (boxed)  

f=塗りつぶし (filled),黒 (black),べた塗り (solid)  

e=等号 (single equals),E=二重等号 (double equals)  

hk=鍵状 (hook)  

s=斜線 (slant)  

t=末尾 (tail)  

w=波状 (wavy,squiggly)  

2=二つの (two of)  

大文字は,2重(又は二つ)を意味する。 

備考 ほとんどの技術的に使用する実体の視覚的描写は,次の中にあるそれらの実体名によって識別

される。 

Association of American Publishers Electronic Manuscript Series :  

Markup of Methematical Formulas,  

Published by the Association of American Publishers, Inc. ,  

2005 Massachusetts Avenue, N.W., Washington, DC 20036, U. S. A.  

4.4.1 一般 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOtech PUBLIC 

    ”ISO 8879-1986//ENTITIES General Technical//EN”> 

   %ISOtech;  

−−> 

<!ENTITY aleph 

SDATA ”[aleph  

]” −−/aleph =aleph, Hebrew−−> 

156 

X 4151-1992  

<!ENTITY and 

SDATA ”[and  

]” −−/wedge /land B: =logical and−−> 

<!ENTITY ang90 

SDATA ”[ang90  

]” −−=right (90 degree) angle−−> 

<!ENTITY angsph 

SDATA ”[angsph  

]” −−/sphericalangle=angle-spherical−−> 

<!ENTITY ap 

SDATA ”[ap  

]” −−/approx R: =approximate−−> 

<!ENTITY becaus 

SDATA ”[becaus  

]” −−/because R: =because−−> 

<!ENTITY bottom 

SDATA ”[bottom  

]” −−/bot B: =perpendicular−−> 

<!ENTITY cap 

SDATA ”[cap  

]” −−/cap B: =intersection−−> 

<!ENTITY cong 

SDATA ”[cong  

]” −−/cong R: =congruent with−−> 

<!ENTITY conint 

SDATA ”[conint  

]” −−/oint L: =contour integral operator−−> 

<!ENTITY cup 

SDATA ”[cup  

]” −−/cup B: =union or logical sum−−> 

<!ENTITY equiv 

SDATA ”[equiv  

]” −−/equiv R: =identical with−−> 

<!ENTITY exist 

SDATA ”[exist  

]” −−/exists =at least one exists−−> 

<!ENTITY forall 

SDATA ”[forall  

]” −−/forall =for all−−> 

<!ENTITY fnof 

SDATA ”[fnof  

]” −−=function of (italic small f) −−> 

<!ENTITY ge 

SDATA ”[ge  

]” −−/geq /ge R: =greater-than-or-equal−−> 

<!ENTITY iff 

SDATA ”[iff  

]” −−/iff =if and only if−−> 

<!ENTITY infin 

SDATA ”[infin  

]” −−/infty =infinity−−> 

<!ENTITY int 

SDATA ”[int  

]” −−/int L: =integral operator−−> 

<!ENTITY isin 

SDATA ”[isin  

]” −−/in R: =set membership−−> 

<!ENTITY lang 

SDATA ”[lang  

]” −−/langle O: =left angle bracket−−> 

<!ENTITY lArr 

SDATA ”[lArr  

]” −−/Leftarrow A: =is implied by−−> 

<!ENTITY le 

SDATA ”[le  

]” −−/leq /le R: z =less-than-or-equal−−> 

<!ENTITY minus 

SDATA ”[minus  

]” −−B: =minus sign−−> 

<!ENTITY mnplus 

SDATA ”[mnplus  

]” −−/mp B: =minus-or-plus sign−−> 

<!ENTITY nabla 

SDATA ”[nabla  

]” −−/nabla =del, Hamilton operator−−> 

<!ENTITY ne 

SDATA ”[ne  

]” −−/ne /neq R: =not equal−−> 

<!ENTITY ni 

SDATA ”[ni  

]” −−/ni /owns R: =contains−−> 

<!ENTITY or 

SDATA ”[or  

]” −−/vee /lor B: =logical or−−> 

<!ENTITY par 

SDATA ”[par  

]” −−/parallel R: =parallel−−> 

<!ENTITY part 

SDATA ”[part  

]” −−/partial =partial differential−−> 

<!ENTITY permil 

SDATA ”[permil  

]” −−=per thousand−−> 

<!ENTITY perp 

SDATA ”[perp  

]” −−/perp R: =perpendicular−−> 

<!ENTITY prime 

SDATA ”[prime  

]” −−/prime =prime or minute−−> 

<!ENTITY Prime 

SDATA ”[Prime  

]” −−=double prime or second−−> 

<!ENTITY prop 

SDATA ”[prop  

]” −−/propto R: =is proportional to−−> 

<!ENTITY radic 

SDATA ”[radic  

]” −−/surd =radical−−> 

<!ENTITY rang 

SDATA ”[rang  

]” −−/rangle C: =right angle bracket−−> 

<!ENTITY rArr 

SDATA ”[rArr  

]” −−/Rightarrow A: =implies−−> 

<!ENTITY sim 

SDATA ”[sim  

]” −−/sim R: =similar−−> 

<!ENTITY sime 

SDATA ”[sime  

]” −−/simeq R: =similar, equals−−> 

157 

X 4151-1992  

<!ENTITY square 

SDATA ”[square  

]” −−/square B: =rsquare−−> 

<!ENTITY sub 

SDATA ”[sub  

]” −−/subset R: =subset or is implied by−−> 

<!ENTITY sube 

SDATA ”[sube  

]” −−/subseteq R: =subset, equals−−> 

<!ENTITY sup 

SDATA ”[sup  

]” −−/supset R: =superset or implies−−> 

<!ENTITY supe 

SDATA ”[supe  

]” −−/supseteq R: =superset, equals−−> 

<!ENTITY there4 

SDATA ”[there4  

]” −−/therefore R: =therefore−−> 

<!ENTITY Verbar 

SDATA ”[Verbar  

]” −−/Vert =dbl vertical bar−−> 

<!ENTITY angst 

SDATA ”[angst  

]” −−Angstrom =capital A, ring−−> 

<!ENTITY bernou 

SDATA ”[bernou  

]” −−Bernoulli function (script capital B) −−> 

<!ENTITY compfn 

SDATA ”[compfn  ]” −−B: composite function (small circle) −−> 

<!ENTITY Dot 

SDATA ”[Dot  

]” −−=dieresis or umlaut mark−−> 

<!ENTITY DotDot 

SDATA ”[DotDot  ]” −−four dots above−−> 

<!ENTITY hamilt 

SDATA ”[hamilt  

]” −−Hamiltonian (script capital H) −−> 

<!ENTITY lagran 

SDATA ”[lagran  

]” −−Lagrangian (script capital L) −−> 

<!ENTITY lowast 

SDATA ”[lowast  

]” −−low asterisk−−> 

<!ENTITY notin 

SDATA ”[notin  

]” −−N: negated set membership−−> 

<!ENTITY order 

SDATA ”[order  

]” −−order of (script small o) −−> 

<!ENTITY phmmat 

SDATA ”[phmmat  ]” −−physics M-matrix (script capital M) −−> 

<!ENTITY tdot 

SDATA ”[tdot  

]” −−three dots above−−> 

<!ENTITY tprime 

SDATA ”[tprime  

]” −−triple prime−−> 

<!ENTITY wedgeq 

SDATA ”[wedgeq  ]” −−R: corresponds to (wedge, equals) −−> 

4.4.2 

ギリシア記号 この実体集合は,技術的な応用の中で可変の名前として使うためのギリシア文字名

を定義する。 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOgrk3 PUBLIC  

    ”ISO 8879-1986//ENTITIES Greek Symbols//EN”> 

   %ISOgrk3;  

−−> 

<!ENTITY alpha 

SDATA ”[alpha  

]” −−=small alpha, Greek−−> 

<!ENTITY beta,  

SDATA ”[beta  

]” −−=small beta, Greek−−> 

<!ENTITY gamma 

SDATA ”[gamma  

]” −−=small gamma, Greek−−> 

<!ENTITY Gamma 

SDATA ”[Gamma  ]” −−=capital Gamma, Greek−−> 

<!ENTITY gammad 

SDATA ”[gammad  ]” −−/digamma−−> 

<!ENTITY delta 

SDATA ”[delta  

]” −−=small delta, Greek−−> 

<!ENTITY Delta 

SDATA ”[Delta  

]” −−=capital Delta, Greek−−> 

158 

X 4151-1992  

<!ENTITY epsi 

SDATA ”[epsi  

]” −−=small epsilon, Greek−−> 

<!ENTITY epsiv 

SDATA ”[epsiv  

]” −−/varepsilon−−> 

<!ENTITY epsis 

SDATA ”[epsis  

]” −−/straightepsilon−−> 

<!ENTITY zeta 

SDATA ”[zeta  

]” −−=small zeta, Greek−−> 

<!ENTITY eta 

SDATA ”[eta  

]” −−=small eta, Greek−−> 

<!ENTITY thetas 

SDATA ”[thetas  

]” −−=straight theta−−> 

<!ENTITY Theta 

SDATA ”[Theta  

]” −−=capital Theta, Greek−−> 

<!ENTITY thetav 

SDATA ”[thetav  

]” −−/vertheta−curly or open theta−−> 

<!ENTITY iota 

SDATA ”[iota  

]” −−=small iota, Greek−−> 

<!ENTITY kappa 

SDATA ”[kappa  

]” −−=small kappa, Greek−−> 

<!ENTITY kappav 

SDATA ”[kappav 

] “−−/verkappa−−> 

<!ENTITY lambda 

SDATA ”[lambda  

]” −−=small lambda Greek−−> 

<!ENTITY Lambda 

SDATA ”[Lambda  ]” −−=capital Lambda, Greek−−> 

<!ENTITY mu 

SDATA ”[mu  

]” −−=small mu, Greek−−> 

<!ENTITY nu 

SDATA ”[nu  

]” −−=small nu, Greek−−> 

<!ENTITY xi 

SDATA ”[xi  

]” −−=small xi, Greek−−> 

<!ENTITY Xi 

SDATA ”[Xi  

]” −−=capital Xi, Greek−−> 

<!ENTITY pi 

SDATA ”[pi  

]” −−=small pi, Greek−−> 

<!ENTITY piv 

SDATA ”[piv 

]” −−/verpi−−> 

<!ENTITY Pi 

SDATA ”[Pi  

]” −−=capital Pi, Greek−−> 

<!ENTITY rho 

SDATA ”[rho  

]” −−=small rho, Greek−−> 

<!ENTITY rhov 

SDATA ”[rhov  

]” −−/verrho−−> 

<!ENTITY sigma 

SDATA ”[sigma  

]” −−=small sigma, Greek−−> 

<!ENTITY Sigma 

SDATA ”[Sigma  

]” −−=capital Sigma, Greek−−> 

<!ENTITY sigmav 

SDATA ”[sigmav  

]” −−/versigma−−> 

<!ENTITY tau 

SDATA ”[tau  

]” −−=small tau, Greek−−> 

<!ENTITY upsi 

SDATA ”[upsi  

]” −−=small upsilon, Greek−−> 

<!ENTITY Upsi 

SDATA ”[Upsi  

]” −−=capital Upsilon, Greek−−> 

<!ENTITY phis 

SDATA ”[phis  

]” −−/straightphi, straight phi−−> 

<!ENTITY Phi 

SDATA ”[Phi  

]” −−=capital Phi, Greek−−> 

<!ENTITY phiv 

SDATA ”[phiv  

]” −−/verphi, curly or open phi−−> 

<!ENTITY chi 

SDATA ”[chi  

]” −−=small chi, Greek−−> 

<!ENTITY psi 

SDATA ”[psi  

]” −−=small psi, Greek−−> 

<!ENTITY Psi 

SDATA ”[Psi  

]” −−=capital Psi, Greek−−> 

<!ENTITY omega 

SDATA ”[omega  

]” −−=small omega, Greek−−> 

<!ENTITY Omega 

SDATA ”[Omega  

]” −−=capital Omega, Greek−−> 

4.4.3 

代用のギリシア記号 この実体集合中の文字は,変数の分割したクラスが要求されるとき,先行し

た文字と一緒に使うことができる。慣習によって,それらは,違った字体又は形式で(通常,強調で)表

示する。 

<!−− (C) International Organization for Standardization 1986 

159 

X 4151-1992  

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOgrk4 PUBLIC  

    ”ISO 8879- 1986//ENTITIES Alternative Greek Symbols//EN”> 

   %ISOgrk4; 

−−> 

<!ENTITY b. alpha 

SDATA ”[b. alpha  ]” −−=small alpha, Greek−−> 

<!ENTITY b. beta 

SDATA ”[b. beta  

]” −−=small beta, Greek−−> 

<!ENTITY b. gamma SDATA ”[b. gamma  ]” −−=small gamma, Greek−−> 

<!ENTITY b. Gamma SDATA ”[b. Gamma  ]” −−=capital Gamma, Greek−−> 

<!ENTITY b. gammad SDATA ”[b. gammad  ]” −−/digamma−−> 

<!ENTITY b. delta 

SDATA ”[b. delta  

]” −−=small delta, Greek−−> 

<!ENTITY b. Delta 

SDATA ”[b. Delta  ]” −−=capital Delta, Greek−−> 

<!ENTITY b. epsi 

SDATA ”[b. epsi  

]” −−=small epsilon, Greek−−> 

<!ENTITY b. epsiv 

SDATA ”[b. epsiv  ]” −−/varepsilon−−> 

<!ENTITY b. epsis 

SDATA ”[b. epsis  ]” −−/straightepsilon−−> 

<!ENTITY b. zeta 

SDATA ”[b. zeta  

]” −−=small zeta, Greek−−> 

<!ENTITY b. eta 

SDATA ”[b. eta  

]” −−=small eta, Greek−−> 

<!ENTITY b. thetas 

SDATA ”[b. thetas  ]” −−straight theta−−> 

<!ENTITY b. Theta 

SDATA ”[b. Theta  ]” −−=capital Theta, Greek−−> 

<!ENTITY b. thetav 

SDATA ”[b. thetav  ]” −−/vertheta−curly or open theta−−> 

<!ENTITY b. iota 

SDATA ”[b. iota  

]” −−=small iota, Greek−−> 

<!ENTITY b. kappa 

SDATA ”[b. kappa  ]” −−=small kappa, Greek−−> 

<!ENTITY b. kappav 

SDATA ”[b. kappav  ]” −−/verkappa−−> 

<!ENTITY b. lambda SDATA ”[b. lambda  ]” −−=small lambda Greek−−> 

<!ENTITY b. Lambda SDATA ”[h. Lambda  ]” −−=capital Lambda, Greek−−> 

<!ENTITY b. mu 

SDATA ”[b. mu  

]” −−=small mu, Greek−−> 

<!ENTITY b. nu 

SDATA ”[b. nu  

]” −−=small nu, Greek−−> 

<!ENTITY b. xi 

SDATA ”[bxi  

]” −−=small xi Greek−−> 

<!ENTITY b. Xi 

SDATA ”[b. Xi  

]” −−=capital Xi, Greek−−> 

<!ENTITY b. pi 

SDATA ”[b. pi  

]” −−=small pi, Greek−−> 

<!ENTITY b. Pi 

SDATA ”[b. Pi  

]” −−=capital Pi, Greek−−> 

<!ENTITY b. piv 

SDATA ”[b. piv 

]” −−/verpi−−> 

<!ENTITY b. rho 

SDATA ”[b. rho  

]” −−=small rho, Greek−−> 

<!ENTITY b. rhov 

SDATA ”[b. rhov  

]” −−/verrho−−> 

<!ENTITY b. sigma 

SDATA ”[b. sigma  ]” −−=small sigma, Greek−−> 

<!ENTITY b. Sigma 

SDATA ”[b. Sigma  ]” −−=capital Sigma, Greek−−> 

160 

X 4151-1992  

<!ENTITY b. sigmav 

SDATA ”[b. sigmav  ]” −−/versigma−−> 

<!ENTITY b. tau 

SDATA ”[b. tau  

]” −−=small tau, Greek−−> 

<!ENTITY b. upsi 

SDATA ”[b. upsi  

]” −−=small upsilon, Greek−−> 

<!ENTITY b. Upsi 

SDATA ”[b. Upsi  

]” −−=capital Upsilon, Greek−−> 

<!ENTITY b. phis 

SDATA ”[b. phis  

]” −−/straightphi, straight phi−−> 

<!ENTITY b. Phi 

SDATA ”[b. Phi  

]” −−=capital Phi, Greek−−> 

<!ENTITY b. phiv 

SDATA ”[b. phiv  

]” −−/verphi, curly or open phi−−> 

<!ENTITY b. chi 

SDATA ”[b. chi  

]” −−=small chi, Greek−−> 

<!ENTITY b. psi 

SDATA ”[b. psi  

]” −−=small psi, Greek−−> 

<!ENTITY b. Psi 

SDATA ”[b. Psi  

]” −−=capital Psi, Greek 

<!ENTITY b. omega 

SDATA ”[b. omega  ]” −−=small omega, Greek−−> 

<!ENTITY b. Omega 

SDATA ”[b. Omega  ]” −−=capital Omega, Greek−−> 

4.5 

追加の数学記号 

4.5.1 

普通の記号 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in  

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOasmo PUBLIC  

    ”ISO 8879-1986//ENTITIES Added Math Symbols : Ordinary//EN”> 

   %ISOamso; 

−−> 

<!ENTITY ang 

SDATA ”[ang  

]” −−/angle−angle−−> 

<!ENTITY angmsd 

SDATA ”[angmsd  ]” −−/measuredangle−angle-measured−−> 

<!ENTITY beth 

SDATA ”[beth  

]” −−/beth-beth, Hebrew−−> 

<!ENTITY bprime 

SDATA ”[bprime  

]” −−/backprime−reverse prime−−> 

<!ENTITY comp 

SDATA ”[comp  

]” −−/complement−complement sign−−> 

<!ENTITY daleth 

SDATA ”[daleth  

]” −−/daleth−daleth, Hebrew−−> 

<!ENTITY ell 

SDATA ”[ell  

]” −−/ell−cursive small l−−> 

<!ENTITY empty 

SDATA ”[empty  

]” −−/emptyset /vernothing =small o, slash−−> 

<!ENTITY image 

SDATA ”[image  

]” −−/Im−imaginary−−> 

<!ENTITY inodot 

SDATA ”[inodot  

]” −−/imath =small i, no dot−−> 

<!ENTITY jnodot 

SDATA ”[jnodot  

]” −−/jmath−small j, no dot−−> 

<!ENTITY nexist 

SDATA ”[nexist  

]” −−/nexists−negated exists−−> 

<!ENTITY o 

SDATA ”[oS  

]” −−/circledS−capital S in circle−−> 

<!ENTITY planck 

SDATA ”[planck  

]” −−/hbar /hslach−Planckʼs over 2pi−−> 

<!ENTITY real 

SDATA ”[real  

]” −−/Re−real−−> 

<!ENTITY sbsol 

SDATA ”[sbsol  

]” −−/sbs-short reverse solidus−−> 

161 

X 4151-1992  

<!ENTITY vprime 

SDATA ”[vprime  

]” −−/verprime−prime, variant−−> 

<!ENTITY weierp 

SDATA ”[weierp 

]” −−/wp−Weierstrass p−−> 

4.5.2 

二値及び大きな演算子 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOasmb PUBLIC  

    ”ISO 8879-1986//ENTITIES Added Math Symbols : Binary Operators//EN”> 

   %ISOamsb;  

−−> 

<!ENTITY amalg 

SDATA ”[amalg  

]” −−/amalg B: amalgamation or coprduct−−> 

<!ENTITY Barwed 

SDATA ”[Barwed  ]” −−/doublebarwedge B: log and, dbl bar−−> 

<!ENTITY barwed 

SDATA ”[barwed  

]” −−/barwedge B: logical and, bar above−−> 

<!ENTITY Cap 

SDATA ”[Cap  

]” −−/Cap /doublecap B: dbl intersection−−> 

<!ENTITY Cup 

SDATA ”[Cup  

]” −−/Cup /doublecup B: dbl union−−> 

<!ENTITY cuvee 

SDATA ”[cuvee  

]” −−/curlyvee B: curly logical or−−> 

<!ENTITY cuwed 

SDATA ”[cuwed  

]” −−/curlywedge B: curly logical and−−> 

<!ENTITY daim 

SDATA ”[daim  

]” −−/daimond B: open daimond−−> 

<!ENTITY divonx 

SDATA ”[divonx 

]” −−/divideontimes B: division on times−−> 

<!ENTITY intcal 

SDATA ”[intcal  

]” −−/intercal B: intercal−−> 

<!ENTITY lthree 

SDATA ”[ lthree 

] “ −−/leftthreetimes B: −−> 

<!ENTITY ltimes 

SDATA ”[ltimes  

]” −−/ltimes B: times sign, left closed−−> 

<!ENTITY minusb 

SDATA ”[minusb  

]” −−/boxminus B: minus sign in box−−> 

<!ENTITY oast 

SDATA ”[oast  

]” −−/circledast B: asterisk in circle−−> 

<!ENTITY ocir 

SDATA ”[ocir  

]” −−/circledcirc B: open dot in circle−−> 

<!ENTITY odash 

SDATA ”[odash  

]” −−/circleddash B: hyphen in circle−−> 

<!ENTITY odot 

SDATA ”[odot  

]” −−/odot B: middle dot in circle−−> 

<!ENTITY ominus 

SDATA ”[ominus  

]” −−/ominus B: minus sign in circle−−> 

<!ENTITY oplus 

SDATA ”[oplus  

]” −−/oplus B: plus sign in circle−−> 

<!ENTITY osol 

SDATA ”[osol  

]” −−/osol B: solidus in circle−−> 

<!ENTITY otimes 

SDATA ”[otimes  

]” −−/otimes B: multiply sign in circle−−> 

<!ENTITY plusb 

SDATA ”[plusb  

]” −−/boxplus B: plus sign in box−−> 

<!ENTITY plusdo 

SDATA ”[plusdo  

]” −−/dotplus B: plus sign, dot above−−> 

<!ENTITY rthree 

SDATA ”[rthree  

]” −−/rightthreetimes B: −−> 

<!ENTITY rtimes 

SDATA ”[rtimes  

]” −−/rtimes B: times sign, right closed−−> 

<!ENTITY sdot 

SDATA ”[sdot  

]” −−/cdot B: small middle dot−−> 

<!ENTITY sdotb 

SDATA ”[sdotb  

]” −−/dotsquare /boxdot B: small dot in box−−> 

162 

X 4151-1992  

<!ENTITY setmn,  

SDATA ”[setmn  

]” −−/setminus B: reverse solidus−−> 

<!ENTITY sqcap 

SDATA ”[sqcap  

]” −−/sqcap B: square intersection−−> 

<!ENTITY sqcup 

SDATA ”[sqcup  

]” −−/sqcup B: square union−−> 

<!ENTITY ssetmn 

SDATA ”[ssetmn  

]” −−/smallsetminus B: sm reverse solidus−−> 

<!ENTITY sstarf 

SDATA ”[sstarf  

]” −−/star B: small star, filled−−> 

<!ENTITY timesb 

SDATA ”[timesb  

]” −−/boxtimes B: multiply sigh in box−−> 

<!ENTITY top 

SDATA ”[top  

]” −−/top B: inverted perpendicular−−> 

<!ENTITY uplus 

SDATA ”[uplus  

]” −−/uplus B: plus sign in union−−> 

<!ENTITY wreath 

SDATA ”[wreath  

]” −−/wr B: wreath product−−> 

<!ENTITY xcirc 

SDATA ”[xcirc  

]” −−/bigcirc B: large circle−−> 

<!ENTITY xdtri 

SDATA ”[xdtri  

]” −−/bigtriangledown B: big dn tri, open−−> 

<!ENTITY xutri 

SDATA ”[xutri  

]” −−/bigtriangleup B: big up tri, open−−> 

<!ENTITY coprod 

SDATA ”[coprod  

]” −−/coprod L: coproduct operator−−> 

<!ENTITY prod 

SDATA ”[prod  

]” −−/prod L: product operator−−> 

<!ENTITY sum 

SDATA ”[sum  

]” −−/sum L: summation operator−−> 

4.5.3 

関係 

<!−− (C) 0International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY %ISOasmr PUBLIC  

    ”ISO 8879-1986//ENTITIES Added Math Symbols : Realtions//EN”> 

   %ISOamsr;  

−−> 

<!ENTITY ape 

SDATA ”[ape  

]” −−/approxeq R: approximate, equals−−> 

<!ENTITY asymp 

SDATA ”[asymp  

]” −−/asymp R: asymptotically equal to−−> 

<!ENTITY bcong 

SDATA ”[bcong  

]” −−/backcong R: reverse congruent−−> 

<!ENTITY bepsi 

SDATA ”[bepsi  

]” −−/backepsilon R: such that−−> 

<!ENTITY bowtie 

SDATA ”[bowtie  

]” −−/bowtie R: −−> 

<!ENTITY bsim 

SDATA ”[bsim  

]” −−/backsim R: reverse similar−−> 

<!ENTITY bsime 

SDATA ”[bsime  

]” −−/backsimeq R: reverse similar, eq−−> 

<!ENTITY bump 

SDATA ”[bump  

]” −−/Bumpeq R: bumpy equals−−> 

<!ENTITY bumpe 

SDATA ”[bumpe  

]” −−/bumpeq R: bumpy equals, equals−−> 

<!ENTITY cire 

SDATA ”[cire  

]” −−/circeq R: circle, equals−−> 

<!ENTITY colone 

SDATA ”[colone  

]” −−/coloneq R: colon, equals−−> 

<!ENTITY cuepr 

SDATA ”[cuepr  

]” −−/curlyeqprec R: curly eq, precedes−−> 

<!ENTITY cuesc 

SDATA ”[cuesc  

]” −−/curlyeqsucc R: curly eq, succeeds−−> 

<!ENTITY supre 

SDATA ”[supre  

]” −−/curlypreceq R: curly precedes, eq−−> 

163 

X 4151-1992  

<!ENTITY dashv 

SDATA ”[dashv  

]” −−/dashv R: dash, vertical−−> 

<!ENTITY ecir 

SDATA ”[ecir  

]” −−/eqcirc R: circle on equals sign−−> 

<!ENTITY ecolon 

SDATA ”[ecolon  

]” −−/eqcolon R: equals, colon−−> 

<!ENTITY eDot 

SDATA ”[eDot  

]” −−/doteqdot /Doteq R: eq, even dots−−> 

<!ENTITY esdot 

SDATA ”[esdot  

]” −−/doteq R: equals, single dot above−−> 

<!ENTITY efDot 

SDATA ”[efDot  

]” −−/fallingdotseq R: eq, falling dots−−> 

<!ENTITY egs 

SDATA ”[egs  

]” −−/eqslantgtr R: equal-or-gtr, slanted−−> 

<!ENTITY els 

SDATA ”[els  

]” −−/eqslantless R: eq-or-less, slanted−−> 

<!ENTITY erDot 

SDATA ”[erDot  

]” −−/risingdotseq R: eq, rising dots−−> 

<!ENTITY fork 

SDATA ”[fork  

]” −−/pitchfork R: pitchfork−−> 

<!ENTITY frown 

SDATA ”[frown  

]” −−/frown R: down curve−−> 

<!ENTITY gap 

SDATA ”[gap  

]” −−/gtrapprox R: greater, approximate−−> 

<!ENTITY gsdot 

SDATA ”[gsdot  

]” −−/gtrdot R: greater than, single dot−−> 

<!ENTITY gE 

SDATA ”[gE  

]” −−/geqq R: greater, double equals−−> 

<!ENTITY gel 

SDATA ”[gel  

]” −−/gtreqless R: greater, equals, less−−> 

<!ENTITY gEl 

SDATA ”[gEl  

]” −−/gtreqqless R: gt, dbl equals, less−−> 

<!ENTITY ges 

SDATA ”[ges  

]” −−/geqslant R: gt-or-equal, slanted−−> 

<!ENTITY Gg 

SDATA ”[Gg  

]” −−/ggg/Gg/gggtr R: triple gtr-than−−> 

<!ENTITY gl 

SDATA ”[gl  

]” −−−/gtrless R: greater, less−−> 

<!ENTITY gsirn 

SDATA ”[gsim  

]” −−/gtrsim R: greater, similar−−> 

<!ENTITY Gt 

SDATA ”[Gt  

]” −−/gg R: dbl greater-than sign−−> 

<!ENTITY lap 

SDATA ”[lap  

]” −−/lessapprox R: less, appoximate−−> 

<!ENTITY ldot 

SDATA ”[ldot  

]” −−/lessdot R: less than, with dot−−> 

<!ENTITY lE 

SDATA ”[lE  

]” −−/leqq R: less, double equals−−> 

<!ENTITY lEg 

SDATA ”[lEg  

]” −−/lesseqqgtr R: less, dbl eq, greater−−> 

<!ENTITY leg 

SDATA ”[leg  

]” −−/lesseqgtr R: less, eq, greater−−> 

<!ENTITY les 

SDATA ”[les  

]” −−/leqslant R: less-than-or-eq, slant−−> 

<!ENTITY lg 

SDATA ”[lg  

]” −−/lessgtr R: less, greater−−> 

<!ENTITY Ll 

SDATA ”[Ll  

]” −−/Ll /lll /llless R: triple less-than−−> 

<!ENTITY lsim 

SDATA ”[lsim  

]” −−/lesssim R: less, similar−−> 

<!ENTITY Lt 

SDATA ”[Lt  

]” −−/ll R: double less-than sign−−> 

<!ENTITY ltrie 

SDATA ”[ltrie  

]” −−/trianglelefteq R: left triangle, eq−−> 

<!ENTITY mid 

SDATA ”[mid  

]” −−/mid R: −−> 

<!ENTITY models 

SDATA ”[models  

]” −−/models R: −−> 

<!ENTITY pr 

SDATA ”[pr  

]” −−/prec R: precedes−−> 

<!ENTITY prap 

SDATA ”[prap  

]” −−/precapprox R: precedes, approximate−−> 

<!ENTITY pre 

SDATA ”[pre  

]” −−/preceq R: precedes, equals−−> 

<!ENTITY prsim 

SDATA ”[prsim  

]” −−/precsim R: precedes, similar−− 

<!ENTITY rtrie 

SDATA ”[rtrie  

]” −−/trianglerighteq R: right tri, eq−−> 

<!ENTITY samagl 

SDATA ”[samagl  

]” −−/smallmalg R: small amalg−−> 

164 

X 4151-1992  

<!ENTITY sc 

SDATA ”[sc  

]” −−/succ R: succeeds−−> 

<!ENTITY scap 

SDATA ”[scap  

]” −−/succapprox R: succeeds, approximate−−> 

<!ENTITY sccue 

SDATA ”[sccue  

]” −−/succcurlyeq R: succeeds, curly eq−−> 

<!ENTITY sce 

SDATA ”[sce  

]” −−/succeq R: succeeds, equals−−> 

<!ENTITY scsim 

SDATA ”[scsim  

]” −−/succsim R: succeeds, similar−−> 

<!ENTITY sfrown 

SDATA ”[sfrown  

]” −−/smallfrown R: small down curve−−> 

<!ENTITY smid 

SDATA ”[smid  

]” −−/shortmid R: −−> 

<!ENTITY smile 

SDATA ”[smile  

]” −−/smaile R: up curve−−> 

<!ENTITY spar 

SDATA ”[spar  

]” −−/shortparallel R: short parallel−−> 

<!ENTITY sqsub 

SDATA ”[sqsub  

]” −−/sqsubset R: square subset−−> 

<!ENTITY sqsube 

SDATA ”[sqsube  

]”−− /sqsubseteq R: square subset, equals−−> 

<!ENTITY sqsup 

SDATA ”[sqsup  

]” −−/sqsupset R: square superset−−> 

<!ENTITY sqsupe 

SDATA ”[sqsupe  

]” −−/sqsupseteq R: square superset, eq−−> 

<!ENTITY ssmile 

SDATA ”[ssmile  

]” −−/smallsmile R: small up curve−−> 

<!ENTITY Sub 

SDATA ”[Sub  

]” −−/Subset R: double subset−−> 

<!ENTITY subE 

SDATA ”[subE  

]” −−/subseteqq R: subset, dbl equals−−> 

<!ENTITY Sup 

SDATA ”[Sup  

]” −−/Supset R: dbl superset−−> 

<!ENTITY supE 

SDATA ”[supE  

]” −−/supseteqq R: superset, dbl equals−−> 

<!ENTITY thkap 

SDATA ”[thkap  

]” −−/thickapprox R: thick approximate−−> 

<!ENTITY thksim 

SDATA ”[thksim  

]” −−/thicksim R: thick similar−−> 

<!ENTITY trie 

SDATA ”[trie  

]” −−/triangleq R: riangle, equals−−> 

<!ENTITY twixt 

SDATA ”[twixt  

]” −−/between R: between−−> 

<!ENTITY vdash 

SDATA ”[vdash  

]” −−/vdash R: vertical, dash−−> 

<!ENTITY Vdash 

SDATA ”[Vdash  

]” −−/Vdash R: dbl vertical, dash−−> 

<!ENTITY vDash 

SDATA ”[vDash  

]” −−/vDash R: vertical, dbl dash−−> 

<!ENTITY veebar 

SDATA ”[veebar  

]” −−/veebar R: logical or, bar below−−> 

<!ENTITY vltri 

SDATA ”[vltri  

]” −−/vartrianleleft R: l tri, open, var−−> 

<!ENTITY vprop 

SDATA ”[vprop  

]” −−/varpropto R: proportional, variant−−> 

<!ENTITY vrtri 

SDATA ”[vrtri  

]” −−/vartriangleright R: r tri, open, var−−> 

<!ENTITY Vvdash 

SDATA ”[Vvdash  ]” −−/Vvdash R: triple vertical. dash−−> 

4.5.4 

否定関係 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し 

   <!ENTITY % ISOasmn PUBLIC  

    ”ISO 8879- 1986//ENTITIES Added Math Symbols : Negated Realtions//EN”> 

   %ISOamsn;  

165 

X 4151-1992  

−−> 

<!ENTITY gnap 

SDATA ”[gnap  

]” −−/gnapprox N: greater, not approximate−−> 

<!ENTITY gne 

SDATA ”[gne  

]” −−/gneq N: greater, not equals−−> 

<!ENTITY gnE 

SDATA ”[gnE  

]” −−/gneqq N: greater, not dbl equals−−> 

<!ENTITY gnsim 

SDATA ”[gnsim  

]” −−/gnsim N: greater, not similar−−> 

<!ENTITY gvn 

SDATA ”[gvn  

]” −−/gvertneqq N: gt, vert, not dbl eq−−> 

<!ENTITY lnap 

SDATA ”[lnap  

]” −−/lnapprox N: less, not approximate−−> 

<!ENTITY lnE 

SDATA ”[lnE  

]” −−/lneqq N: less, not double equals−−> 

<!ENTITY lne 

SDATA ”[lne  

]” −−/lneq N: less, not equals−−> 

<!ENTITY lnsim 

SDATA ”[lnsim  

]” −−/lnsim N: less, not similar−−> 

<!ENTITY lvnE 

SDATA ”[lvnE  

]” −−/lvertneqq N: less, vert, not dbl eq−−> 

<!ENTITY nap 

SDATA ”[nap  

]” −−/napprox N: not approximate−−> 

<!ENTITY ncong 

SDATA ”[ncong  

]” −−/ncong N: not songruent with−− 

<!ENTITY nequiv 

SDATA ”[nequiv  

]” −−/nequiv N: not identical with−−> 

<!ENTITY ngE 

SDATA ”[ngE  

]” −−/ngeqq N: not greater, dbl equals−−> 

<!ENTITY nge 

SDATA ”[nge  

]” −−/ngeq N: not greater-than-or-equal−−> 

<!ENTITY nges 

SDATA ”[nges  

]” −−/ngeqslant N: not gt-or-eq, slanted−−> 

<!ENTITY ngt 

SDATA ”[ngt  

]” −−/ngtr N: not greater-than−−> 

<!ENTITY nle 

SDATA ”[nle  

]” −−/nleq N: not less-than-or-equal−−> 

<!ENTITY nlE 

SDATA ”[nlE  

]” −−/nleqq N: not less, dbl equals−−> 

<!ENTITY nles 

SDATA ”[nles 

]” −−/nleqslant N: not less-or-eq, slant−−> 

<!ENTITY nlt 

SDATA ”[nlt 

]” −−/nless N: not less-than−−> 

<!ENTITY nltri 

SDATA ”[nltri  

]” −−/ntriangleleft N: not left triangle−−> 

<!ENTITY nltrie 

SDATA ”[nltrie  

]” −−/ntrianglelefteq N: not l tri, eq−−> 

<!ENTITY nmid 

SDATA ”[nmid  

]” −−/nmid−−> 

<!ENTITY npar 

SDATA ”[npar  

]” −−/naprallel N: not parallel−−> 

<!ENTITY npr 

SDATA ”[npr  

]” −−/nprec N: not precedes−−> 

<!ENTITY npre 

SDATA ”[npre  

]” −−/npreceq N: not precedes, equals−−> 

<!ENTITY nrtri 

SDATA ”[nrtri  

]” −−/ntriangleright N: not rt triangle−−> 

<!ENTITY nrtrie 

SDATA ”[nrtrie  

]” −−/ntrianglerighteq N: not r tri, eq−−> 

<!ENTITY nsc 

SDATA ”[nsc  

]” −−/nsucc N: not succeeds−−> 

<!ENTITY nsce 

SDATA ”[nsce  

]” −−/nsucceq N: not succeeds, equals−−> 

<!ENTITY nsim 

SDATA ”[nsim  

]” −−/nsim N: not similar−−> 

<!ENTITY nsime 

SDATA ”[nsime  

]” −−/nsimeq N: not similar, equals−−> 

<!ENTITY nsmid 

SDATA ”[nsmid  

]” −−/nshortmid−−> 

<!ENTITY nspar 

SDATA ”[nspar  

]” −−/nshortparalieN: not short par−−> 

<!ENTITY nsub 

SDATA ”[nsub  

]” −−/nsubset N: not subset−−> 

<!ENTITY nsube 

SDATA ”[nsube  

]” −−/nsubseteq N: not subset, equals−−> 

<!ENTITY nsubE 

SDATA ”[nsubE 

]” −−/nsubseteqq N: not subset, dbl eq−−> 

<!ENTITY nsup 

SDATA ”[nsup  

]” −−/nsupset N: not superset−−> 

166 

X 4151-1992  

<!ENTITY nsupE 

SDATA ”[nsupE  

]” −−/nsupseteqq N: not superset, dbl eq−−> 

<!ENTITY nsupe 

SDATA ”[nsupe  

]” −−/nsupseteq N: not superset, equals−−> 

<!ENTITY nvdash 

SDATA ”[nvdash  

]” −−/nvdash N: not vertical, dash−−> 

<!ENTITY nvDash 

SDATA ”[nvDash  ]” −−/nDash N: not vertical, dbl dash−−> 

<!ENTITY nVDash 

SDATA ”[nVDash  ]” −−/nVDash N: not dbl vert, dbl dash−−> 

<!ENTITY nVdash 

SDATA ”[nVdash  ]” −−/nVdash N: not dbl vertical, dash−−> 

<!ENTITY prnap 

SDATA ”[prnap  

]” −−/precnapprox N: precedes, not approx−−> 

<!ENTITY prnE 

SDATA ”[prnE  

]” −−/precneqq N: precedes, not dbl eq−−> 

<!ENTITY prnsim 

SDATA ”[prnsim  

]” −−/precnsim N: precedes, not similar−−> 

<!ENTITY scnap 

SDATA ”[scnap  

]” −−/succnapprox N: succeeds, not approx−−> 

<!ENTITY scnE 

SDATA ”[scnE  

]” −−/succneqq N: succeeds, not dbl eq−−> 

<!ENTITY scnsim 

SDATA ”[scnsim  

]” −−/succnsim N: succeeds, not similar−−> 

<!ENTITY subne 

SDATA ”[subne  

]” −−/subsetneq N: subset, not equals−−> 

<!ENTITY subnE 

SDATA ”[subnE 

]” −−/subsetneqq N: subset, not dbl eq−−> 

<!ENTITY supne 

SDATA ”[supne  

]” −−/supsetneq N: superset, not equals−−> 

<!ENTITY supnE 

SDATA ”[supnE  

]” −−/supsetneqq N: superset, not dbl eq−−> 

<!ENTITY vsubnE 

SDATA ”[vsubnE  ]” −−/subsetneqq N: subset not dbl eq, var−−> 

<!ENTITY vsubne 

SDATA ”[vsubne  

]” −−/subsetneq N: subset, not eq, var−−> 

<!ENTITY vsupne 

SDATA ”[vsupne  

]” −−/supsetneq N: superset, not eq, var−−> 

<!ENTITY vsupnE 

SDATA ”[vsupnE  ]” −−/supsetneqq N: super not dbl eq, var−−> 

4.5.5 

矢印関係 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し 

   <!ENTITY % ISOasma PUBLIC  

    ”ISO 8879- 1986//ENTITIES Added Math Symbols : Arrow Realtions//EN”> 

   % ISOamsa;  

−−> 

<!ENTITY cularr 

SDATA ”[cularr  

]” −−/curvearrowleft A: left curved arrow 

<!ENTITY curarr 

SDATA ”[curarr  

]” −−/curvearrowright A: rt curved arrow−−> 

<!ENTITY dArr 

SDATA ”[dArr  

]” −−/Downarrow A: down dbl arrow−−> 

<!ENTITY idarr2 

SDATA ”[idarr2  

]” −−/downdownarrows A: two down arrows−−> 

<!ENTITY dharl 

SDATA ”[dharl  

]” −−/downleftharpoon A: dn harpoon-left −−> 

<!ENTITY dharr 

SDATA ”[dharr  

]” −−/downrightharpoon A: down harpoon-rt−−> 

<!ENTITY lAarr 

SDATA ”[lAarr  

]” −−/Lleftarrow A: left triple arrow−−> 

<!ENTITY Larr 

SDATA ”[Larr  

]” −−/twoheadleftarrow A: −−> 

<!ENTITY larr2 

SDATA ”[larr2  

]” −−/leftleftarrows A: two left arrows−−> 

167 

X 4151-1992  

<!ENTITY larrhk 

SDATA ”[larrhk  

]” −−/hookleftarrow A: left arrow-hooked−−> 

<!ENTITY larrlp 

SDATA ”[larrlp  

]” −−/looparrowleft A: left arrow-looped−−> 

<!ENTITY larrtl 

SDATA ”[larrtl  

]” −−/leftarrowtail A: left arrow-tailed−−> 

<!ENTITY lhard 

SDATA ”[lhard  

]” −−/leftharpoondown A: l harpoon-down−−> 

<!ENTITY lharu 

SDATA ”[lharu  

]” −−/leftharpoonup A: left harpoon-up−−> 

<!ENTITY hArr 

SDATA ”[hArr  

]” −−/Leftrightarrow A: l&r dbl arrow−−> 

<!ENTITY harr 

SDATA ”[harr  

]” − /leftrightarrow A: l&r arrow−−> 

<!ENTITY lrarr2 

SDATA ”[lrarr2  

]” −−/leftrightarrows A: l arr over r arr−−> 

<!ENTITY rlarr2 

SDATA ”[rlarr2  

]” −−/rightleftarrows A: r arr over l arr−−> 

<!ENTITY harrw 

SDATA ”[harrw  

]” − /leftrightsquigarrow A: l&r arr-wavy−−> 

<!ENTITY rlhar2 

SDATA ”[rlhar2  

]” −−/rightleftharpooons A: r harp over l−−> 

<!ENTITY lrhar2 

SDATA ”[lrhar2  

]” −−/leftrightharpooons A: l harp over r−−> 

<!ENTITY lsh 

SDATA ”[lsh  

]” −−/Lsh A:−−> 

<!ENTITY map 

SDATA ”[map  

]” −−/mapsto A:−−> 

<!ENTITY mumap 

SDATA ”[mumap  ]” −−/multimap A:−−> 

<!ENTITY nearr 

SDATA ”[nearr  

]” −−/nearrow A: NE pointing arrow−−> 

<!ENTITY nlArr 

SDATA ”[nlArr  

]” −−/nLeftarrow A: not implied by−−> 

<!ENTITY nlarr 

SDATA ”[nlarr  

]” −−/nleftarrow A: not left arrow−−> 

<!ENTITY nhArr 

SDATA ”[nhArr  

]” −−/nLeftrightarrow A: not l&r dbl arr−−> 

<!ENTITY nharr 

SDATA ”[nharr  

]” −−/nleftrightarrow A: not l&r arrow−−> 

<!ENTITY nrarr 

SDATA ”[nrarr  

]” −−/nrightarrow A: not right arrow−−> 

<!ENTITY nrArr 

SDATA ”[nrArr  

]” −−/nRightarrow A: not implies−−> 

<!ENTITY nwarr 

SDATA ”[nwarr  

]” −−/nwarrow A: NW pointing arrow−−> 

<!ENTITY olarr,  

SDATA ”[olarr  

]” −−/circlearrowleft A: l arr in circle−−> 

<!ENTITY orarr 

SDATA ”[orarr  

]” −−/circlearrowright A: r arr in circle−−> 

<!ENTITY rAarr 

SDATA ”[rAarr  

]” −−/Rrightarrow A: right triple arrow−−> 

<!ENTITY Rarr 

SDATA ”[Rarr  

]” −−/twoheadrightarrow A:−−> 

<!ENTITY rarr2 

SDATA ”[rarr2  

]” −−/rightrightarrows A: two rt arrows−−> 

<!ENTITY rarrhk 

SDATA ”[rarrhk  

]” −−/hookrightarrow A: rt arrow-hooked−−> 

<!ENTITY rarrlp 

SDATA ”[rarrlp  

]” −−/hookarrowright A: rt arrow-looped−−> 

<!ENTITY rarrtl 

SDATA ”[rarrtl  

]” −−/rightarrowtail A: rt arrow-tailed−−> 

<!ENTITY rarrw 

SDATA ”[rarrw  

]” −−/squigarrowright A: rt arrow-wavy−−> 

<!ENTITY rhead 

SDATA ”[rhead  

]” −−/rightharpoondown A: rt harpoon-down−−> 

<!ENTITY rheau 

SDATA ”[rheau  

]” −−/rightharpoonup A: rt harpoon-up−−> 

<!ENTITY rsh 

SDATA ”[rsh  

]” −−/Rsh A: −−> 

<!ENTITY drarr 

SDATA ”[drarr  

]” −−/searrow A: downward rt arrow−−> 

<!ENTITY dlarr 

SDATA ”[dlarr  

]” −−/swarrow A: downward l arrow−−> 

<!ENTITY uArr 

SDATA ”[uArr  

]” −−/Uparrow A: up dbl arrow−−> 

<!ENTITY uarr2 

SDATA ”[uarr2  

]” −−/upuparrows A: two up arrows−−> 

<!ENTITY vArr,  

SDATA ”[vArr  

]” −−/Updownarrow A: up&down dbl arrow−−> 

168 

X 4151-1992  

<!ENTITY varr 

SDATA ”[varr  

]” −−/updownarrow A: up&down arrow−−> 

<!ENTITY uharl 

SDATA ”[uharl  

]” −−/upleftharpoon A: up harpoon-left−−> 

<!ENTITY uharr 

SDATA ”[uharr  

]” −−/uprightharpoon A: up harpoon-r−−> 

<!ENTITY xlArr 

SDATA ”[xlArr  

]” −−/Longleftarrow A: long l dbl arrow−−> 

<!ENTITY xhArr 

SDATA ”[xhArr  

]” −−/Longleftrightarrow A: long l&r dbl arr−−> 

<!ENTITY xharr 

SDATA ”[xharr  

]” −−/longleftrightarrow A: long l&r arr−−> 

<!ENTITY xrArr 

SDATA ”[xrArr  

]” −−/Longrightarrow A: long rt dbl arr−−> 

4.5.6 

開始区切り子及び終了区切り子 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

−−> 

<!−−文字実体集合の典型的な呼出し: 

   <!ENTITY % ISOasmc PUBLIC  

    ”ISO 8879- 1986//ENTITIES Added Math Symbols : Delimiters//EN”> 

   % ISOamsc;  

−−> 

<!ENTITY rciel 

SDATA ”[rciel  

]” −−/rciel C: right ceiling−−> 

<!ENTITY rfloor 

SDATA ”[rfloor  

]” −−/rfloor C: right floor−−> 

<!ENTITY rpargt 

SDATA ”[rpargt  

]” −−/rightparengtr C: right paren, gt−−> 

<!ENTITY urcorn 

SDATA ”[urcorn  

]” −−/urcorner C: upper right corner−−> 

<!ENTITY drcorn 

SDATA ”[drcon  

]” −−/Ircorner C: downard right corner−−> 

<!ENTITY lciel 

SDATA ”[lciel  

]” −−/lciel O: left cieling−−> 

<!ENTITY lfloor 

SDATA ”[lfloor  

]” −−/lfloor O: left floor−−> 

<!ENTITY lpargt 

SDATA ”[lpargt  

]” −−/leftparengtr O: left parenthesis, gt−−> 

<!ENTITY ulcorn 

SDATA ”[ulcorn  

]” −−/ulcorner O: upper left corner−−> 

<!ENTITY dlcorn 

SDATA ”[dlcorn  

]” −−/llcorner O: downward left corner−−> 

169 

X 4151-1992  

参考6 応用例 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

1. 文書型定義 ここに,実際的な文書型宣言の実例を示す。主にマーク宣言の正しい使用法を示すこと

を意図し,よい設計例を示す。 

<!−− (C) International Organization for Standardization 1986 

Permission to copy in any form is granted for use with 

conforming SGML systems and applications as defined in 

ISO 8879, provided this notice is included in all copies.  

<!−−公開文書型宣言の典型的な宣言: 

<!DOCTYPE general PUBLIC “ISO 8879-1986//DTD General Document//EN” [ 

<!ENTITY % ISOnum PUBLIC 

 ”ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN”> 

<!ENTITY % ISOpub PUBLIC 

 ”ISO 8879-1986//ENTITIES Publishing//EN”> 

%ISOnum;%ISOpub; 

(引数実体及び付加要素をこの部分で定義する。) 

]> 

−−> 

<!ENTITY % doctype ”general” −−文書型共通識別子−−> 

<!−−”general” 文書の文書型宣言である。 

 これは,多数の応用で使用するために必要な要素とし,その他の要素を文書型宣言の部分集合に付

加することができるように構成する。−−> 

<!−−実体の命名法−−> 

<!−− 

接頭語 

= 使用場所 

p.  

= 段落の中(接尾語が.phの場合は句でも使用) 

s.  

= 節の中(すなわち,段落中で) 

ps.  

= 段落又は節の中 

i.  

= 含有例外によって許される部分 

m.  

= 内容モデル又は宣言済み内容 

a.  

= 属性定義 

NONE = モデルで定義された特定使用 

接尾語 

= 許される内容: 

.ph 

= 内容が%m.phである要素 

.d 

= 内容が同じ定義をもつ要素 

NONE = 一意の定義をもつ要素 

−−> 

170 

X 4151-1992  

<!−−要素つづり−−> 

<!ENTITY % p.em.ph 

”hp1|hp2|hp3|hp0|cit” −−強調句−−> 

<!ENTITY % p.rf.ph 

”hdref|figref” −−参照句−−> 

<!ENTITY % p.rf.d 

”fnref|liref” −−参照(空)−−> 

<!ENTITY % p.zz.ph 

”q|(%p.em.ph;)|(%p.rfph;)|(%p.rfd;)” −−すべての句−−> 

<!ENTITY % ps.ul.d 

”ol|sl|ul|nl” −−単位項目リスト−−> 

<!ENTITY % ps.list 

”%ps.ul.d;|dl|gl” −−全リスト−−> 

<!ENTITY % ps.elem 

”xmp|lp|lines|tbl|address|artwork” −−その他の要素−−> 

<!ENTITY % ps.zz 

”(%ps.elem;)|(%ps.list;)” −−段落又は節部分要素−−> 

<!ENTITY % s.p.d 

”p|note”−−簡単な段落−−> 

<!ENTITY % s.top 

”top1|top2|top3|top4”−−話題−−> 

<!ENTITY % s.zz 

”(%s.p.d;)|(%ps.zz;)|(%s.top;)” −−選択部分要素−−> 

<!ENTITY % i.float 

”fig|fn” −−浮動要素−−> 

<!ENTITY % fm.d 

”abstract|preface” −−最初の部分−−> 

<!ENTITY % bm.d 

”glossary|bibliog” −−最後の部分−−> 

<!−−モデル群−−> 

<!ENTITY % m.ph  

”(#PCDATA|(%p.zz.ph;)) *” −−句の型−−> 

<!ENTITY % m.P  

”(#PCDATA|(%P.zz.ph;) | (%ps・zz;)) *” −−段落の型−−> 

<!ENTITY % m.pseq  

”(p, ((%s.p.d;)|(%ps.zz;)) *)” −−段落列−−> 

<!ENTITY % m.top  

”(th?, p, (%s.zz;) *)” −−話題の型−−> 

<!−−文書構造−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

%doctype; 

− − (frontm?, body, appendix?backm?)  

 + (ix|%i.float;)> 

<!ELEMENT 

frontm 

− O 

(titlep, (%fm.d;|h1) *, toc?, figlist?)> 

<!ELEMENT 

body 

− O 

(h0+|h1+)> 

<!ELEMENT 

appendix 

− O 

(h1+)> 

<!ELEMENT 

backm 

− O 

((%bm.d;|h1) *, index?> 

<!ELEMENT 

(toc |figlist |index) −−内容の表,図のリスト−− 

− O 

EMPTY−−及び索引は生成された内容をもつ−−> 

<!−−表題ページ要素−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

titlep 

− O 

(title & docnum? & data? & abstract? & 

 (author|address|%s.zz;) *)> 

<!ELEMENT  (docnum|date|author)  

− O 

(#PCDATA) −−文書番号など−−> 

<!ELEMENT 

title 

− O 

(tline+) −−文書の題名−−> 

<!ELEMENT 

tline 

O O 

%m.ph; −−題名行−−> 

<!−−先頭部分−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

171 

X 4151-1992  

<!ELEMENT 

h0 

− O 

(h0t, (%s.zz;) *, h1+)  −−部−−> 

<!ELEMENT (h1|%bm.d;|%fm.d;)  

− O 

(h1t, (%s.zz;) *, h2*)  

−−章−−> 

<!ELEMENT 

h2 

− O 

(h2t, (%s.zz;) *, h3*)  

−−節−−> 

<!ELEMENT 

h3 

− O 

(h3t, (%s.zz;) *, h4*)  

−−小節−−> 

<!ELEMENT 

h4 

− O 

(h4t, (%s.zz;) *)  

−−項−−> 

<!ELEMENT (h0t|hlt|h2t|h3t|h4t)  

O  O 

%m.ph;  

−−先頭部分の題−−> 

<!−−話題(見出し付き小節)−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

top1 

− O 

%m.top; −(top1)  −−話題1−−> 

<!ELEMENT 

top2 

− O 

%m.top; −(top2)  −−話題2−−> 

<!ELEMENT 

top3 

− O 

%m.top; −(top3)  −−話題3−−> 

<!ELEMENT 

top4 

− O 

%m.top; −(top4)  −−話題4−−> 

<!ELEMENT 

th 

− O 

%m.ph;  

−−話題の見出し−−> 

<!−−節又は段落の要素−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

address 

− − (aline+)> 

<!ELEMENT 

aline 

O  O 

%m.ph;  

−−Address line−−> 

<!ELEMENT 

artwork 

− O 

EMPTY> 

<!ELEMENT 

dl 

− − ((dthd+, ddhd)?, (dt+, dd) *)> 

<!ELEMENT 

dt 

− O 

%m.ph;  

−−定義項目−−> 

<!ELEMENT 

(dthd|ddhd)  

− O 

(#PCDATA)  

−−dt及びddの見出し−−> 

<!ELEMENT 

dd 

− O 

%m.pseq;  

−−定義記述−−> 

<!ELEMENT 

gl 

− − (gt, (gd|gdg)) * 

−−用語集リスト−−> 

<!ELEMENT 

gt 

− O 

(#PCDATA)  

−−用語集項目−−> 

<!ELEMENT 

gdg 

− O 

(gd+)  

−−用語集定義群−−> 

<!ELEMENT 

gd 

− O 

%m.pseq;  

−−用語集定義−−> 

<!ELEMENT 

(%ps.ul.d;)  

− − (li*)  

−−単位項目リスト−−> 

<!ELEMENT 

li 

− O 

%m.pseq;  

−−リスト項目−−> 

<!ELEMENT 

lines 

O  O 

%m.pseq;  

−−行要素−−> 

<!ELEMENT 

(lq|xmp)  

− − %m.pseq; -(%i.float,)  

−−長い引用−−> 

<!ELEMENT 

(%s.P.d;)  

O  O 

%m.p;  

−−段落−−> 

<!−−表−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

tbl 

− − (hr*, fr*, r+)> 

<!ELEMENT 

hr 

− O 

(h+)  

−−見出し列−−> 

<!ELEMENT 

fr 

− O 

(f+)  

−−浮動列−−> 

<!ELEMENT 

O  O 

(c+)  

−−列(表の本体)−−> 

<!ELEMENT 

O  O 

%m.pseq;  

−−本体列のセル−−> 

172 

X 4151-1992  

<!ELEMENT 

(flh)  

O  O (#PCDATA)  

−−fr又はhrのセル−−> 

<!−−句−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

(%p.em.ph;)  

− − %m.ph;  

−−強調句−−> 

<!ELEMENT 

− − %m.ph;  

−−引用−−> 

<!ELEMENT 

(%p.rf.ph;)  

− − %m.ph;  

−−参照句−−> 

<!ELEMENT 

(%p.rf.d;)  

− O 

EMPTY  

−−生成された参照−−> 

<!−−添加小節−−> 

<!−− 

要素 

MIN 

内容(例外)−−> 

<!ELEMENT 

fig 

− − (figbody, (figcap, flgdesc?) ?)−(%i.float;)> 

<!ELEMENT 

figbody 

O  O 

%m.pseq;  

−−図の本体−−> 

<!ELEMENT 

figcap 

− O 

%m.ph;  

−−図の見出し−−> 

<!ELEMENT 

figdesc 

− O 

%m.pseq;  

−−図の記述−−> 

<!ELEMENT 

fn 

− − %m.pseq; −(%i.float;)  

−−脚注−−> 

<!ELEMENT 

ix 

− O 

(#PCDATA)  

−−索引項目−−> 

<!−−属性定義リスト−−> 

<!−−この文書型宣言は,基本SGML文書を意図しているので,この中では連結機構を支援していな

いが,定義の中に結合属性を含む必要がある。 

−−> 

<!−− 

ELEMENTS 

NAME 

VALUE 

DEFAULT−−> 

<!ATTLIST 

%doctype; 

security 

CDATA 

#IMPLIED 

status 

CDATA 

” ” 

version 

CDATA 

#IMPLIED> 

<!ATTLIST 

title 

stitle 

CDATA 

#IMPLIED> 

<!ATTLIST 

(h0|h1|h2 |%bm.d;|%fm.d;)  

id 

ID 

#IMPLIED 

stitle 

CDATA 

#IMPLIED> 

<!ATTLIST 

(h3|h4)  

id 

ID 

#IMPLIED> 

<!ATTLIST 

artwork 

sizex 

NMTOKEN 

textsize 

−−省略時値は,その段の現在の文の幅とする。−− 

sizey   NUTOKEN   #REQUIRED 

−−(大きさは,この宣言の示されている応用によって支援されている単位の中で特定

する。;sizeXに対しては,見出し語 “textsize” を“前の文に設定された幅”という意味

として使用することができる。) 

−−> 

<!ATTLIST 

gl 

compact 

(compact)  

#IMPLIED 

termhi 

NUMBER 

2> 

<!ATTLIST 

dl 

compact 

(compact)  

#IMPLIED 

headhi 

NUMBER 

termhi 

NUMBER 

173 

X 4151-1992  

tsize 

NUMBERS 

−−個々のddの要素dtの数は,tsize(ここでは1)に対して指定されている数と等し

くなければならない。 

dthd要素の数は,等しくなければならない。 

−−> 

<!ATTLIST 

gd 

source 

CDATA 

#IMPLIED> 

<!ATTLIST 

(%ps.ul.d;)  

compact 

(compact)  

#IMPLIED> 

<!ATTLIST 

li 

id 

ID 

#IMPLIED> 

<!ATTLIST 

xmp 

depth 

NUTOKEN 

#IMPLIED 

keep 

NMTOKEN 

all 

lines 

(flow|lines) lines> 

<!ATTLIST 

tbl 

cols 

NUMBERS 

#REQUIRED 

−−個々のrの要素cの数は,colsに対して指定された数と等しくなければならない。

(個々のhrの要素h及び個々のfrの要素fについても同様とする。) 

−−> 

<!ATTLIST 

heading 

(h)  

#IMPLIED 

−−hが指定されているならば,セルは列の見出しである。 

−−> 

<!ATTLIST 

(%p.rf.ph;)  

refid 

IDREF 

#CONREF 

page 

(yes|no)  

yes> 

<!ATTLIST 

fnref 

refid 

IDREF 

#REQUIRED> 

<!ATTLIST 

liref 

refid 

IDREF 

#REQUIRED 

page 

(yes|no)  

yes> 

<!ATTLIST 

fig 

id 

ID 

#IMPLIED 

frame 

(box| rule |none)  

none 

place 

(top|fixed|bottom)  

top 

width 

(column|page)  

page 

align 

(left|center|right)  

center 

lines 

(flow|lines)  

lines> 

<!ATTLIST 

ix 

id 

ID 

#IMPLIED 

print 

CDATA 

#IMPLIED 

see 

CDATA 

#IMPLIED 

seeid 

IDREF 

#IMPLIED> 

<!ATTLIST 

fn 

id 

ID 

#IMPLIED> 

<!−−短縮参照に対する実体−−> 

<!ENTITY 

ptag  

STARTTAG ”p”  −−段落の開始タグ−−> 

<!ENTITY 

qtag  

STARTTAG ”q”  −−引用された句の開始タグ−−> 

<!ENTITY 

qetag  ENDTAG ”q”  

−−引用された句の終了タグ−−> 

<!ENTITY 

endtag  ENDTAG ” ”  

−−任意の要素に対する終了タグ−−> 

174 

X 4151-1992  

<!SHORTREF docmap  

−−一般的使用のための対応表−− 

”&#RS;&#RE;” ptag 

−−空行は<p>−− 

ʼ ” ʼ  

qtag  

−−”は<q>−−> 

<!USEMAP 

docmap %doctype;> 

<!SHORTREF qmap   

−−引用された句に対する対応表−− 

ʼ ” ʼ  

qetag 

−−”は<q>−−> 

<!USEMAP 

qmap q> 

<!SHORTREF ixmap   

−−索引項目に対する対応表−− 

”&#RE;”  

endtag 

−−記録終了は</>−−> 

<!USEMAP 

ixmap ix> 

この文書型宣言に対する容量計算は,次のとおりとする。 

文の732文字で宣言された23個の実体。 

696個のモデルつづり及び13個の名前をもつ8個の例外群で宣言された78個の要素型群。 

23個の群要素及び省略時値文の80文字で宣言された39個の属性。 

指定された0個の識別子及び0個の識別子参照 

0個の文字をもつ0個のデータ内容記法 

3個の宣言された短縮参照対応表 

必す(須)の8 644個の容量指標(許容値35 000の24%) 

備考 この文書型宣言において,注釈の部分はISO 646で規定する図形文字を使用するべきであるが,

読者の理解を助けるため,ここではJIS X 0208に従った漢字,仮名などを使用した。 

2. コンピュータグラフィクスメタファイル コンピュータグラフィクスのプログラムによって生成され

たピクチャは,参考6図12及び参考6図13で規定した手法によってSGML文書に含むことができる。 

規定された記法は,コンピュータグラフイクスメタファイル (CGM) の符号化である。SGML区切り子

はこのようなファイル内に存在できるが,SGML構文解析系によって解析されないように,内容参照と結

合させることが望ましい。それは,置換可能文字データの中で認識される区切り子を含んでいないことを

検査及び確認されている場合か,又は実体参照に対する区切り子に変換する前処理済みの場合にだけ安全

にSGML実体に混合させることができる。 

ピクチャ要素は,位置付け又はそれを参照するための属性を含まないことに注意されたい。その要素は,

書式付き文書,又ははり込む挿絵のための空白の枠と類似しており(1.の文書型定義の “artwork” 要素の

ように),通常それが取り扱われるのと同じ論理文書の位置に割り当てられる。その要素を何処かに移動し

たり,枠を付けたり,それを参照できるように識別子を付けるためには,ピクチャ要素の本体にそれを含

む必要がある。 

図形に対する要素宣言がファイル “graph.c.etd” にある場合,次の宣言は文書 “general” の図の中にグラ

フィクスメタファイルを入れることを可能にする。 

<!DOCTYPE general PUBLIC “ISO 8879-1986//DTD General Document//EN” [ 

 <!ENTITY % ps.elem ”graphic|xmp|lq|lines|tbl|address|artwork”> 

 <!ENTITY % graphic SYSTEM ”graphic-etd”> 

 %graphic;  

]> 

175 

X 4151-1992  

参考6図12 グラフィクスメタファイル属性(2の1):符号化及び視点 

<!NOTATION 

cgmchar 

PUBLIC 

    ”ISO 8632/2//NOTATION Character encoding//EN”> 

<!NOTATION 

cgmclear 

PUBLIC 

    ”ISO 8632/4//NOTATION Clear text encoding//EN”> 

<!ELEMENT graphic 

−O RCDATA> 

<!ATTLIST graphic 

−− 

名前 

値 

省略時値−− 

file 

ENTITY 

#CONREF 

−−メタファイルを含む外部実体 

  特に指定されていなければ,メタファイルは,要素の構文内容とする。 

−− 

coding NOTATION (cgmclear|cgmchar) cgmclear 

−−メタファイルが外部ファイルでないときは,データ内容記法。 

  記法は,実体宣言で指定されているので,メタファイルが外部ファイルの場合は無視 

  する。 

−− 

picnum 

NUMBER 

−−メタファイルがピクチャを一つ以上含むときピクチャの連続番号 

−− 

x0 

CDATA−−左下の角−− 

#IMPLIED 

x1 

CDATA 

#IMPLIED 

y0 

CDATA−−右上の角−− 

#IMPLIED 

y1 

CDATA 

#IMPLIED 

−−ピクチャに対する表示域の座標であり仮想装置座標内にある 

  (書式−n.nEnで表される実数)。省略時値は,VDC領域に関連し 

  た数値である。 

−− 

参考6図13 グラフィクスメタファイル属性(2の2):寸法及び角度 

sizex 

NMTOKEN 

#IMPLIED 

sizey 

NMTOKEN 

#IMPLIED 

−−sizex若しくはsizey,又は両方を指定できる(この宣言の現れるDTDによって支援されて

いる単位において;sizexに対して,見出し語 ”textsize” は,前の文に設定された幅である

ことを意味する。)。 

どちらか一方だけが指定されているときは,scaling,alignx,及びaligny属性は,縮尺は,

必然的に統一されているものとみなされるので無視される。 

−− 

scaling 

(uniform|nonunif)  

uniform 

alignx 

(left|center|right)  

center 

176 

X 4151-1992  

aligny 

(top|middle|bottom)  

middle 

−−sizex及びsizeyの両方が指定されており,更に縮尺が非統一であるときは,alignx及びaligny

は,実際のx及びyは指定されたsizex及びsizeyと同じであるとして無視される。さもな

くば,現実のx及びyは一方が指定された寸法と同じになり他方が指定された寸法より小

さくなる。alignx又はaligny属性は,その指定された寸法より小さいものに適合する。 

−− 

−−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−− 

−−次の表は,寸法,縮尺及び整列属性の間の関係を要約する。 

SizeX SizeY 

Scaling 

AlignX 

AlignY 

(yes) 

(no) 

(no) 

(yes) 

(yes) 

(yes) 

nonunif 

(yes) 

(yes) 

uniform  

if x=SizeX  

if y=SizeY−− 

−−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−*−− 

orient 

(0|90|180|270) 

 −−回転の角度(単位は,度とする)。−− 

備考 SGMLで使用するCGMのテキストに,JIS X 0208を使用する場合には,G1集合へ指示して,

列10-15へ呼び出すのがよい。 

3. 装置独立の符号拡張 SGML文書は,JIS X 0202の符号拡張方法を用いることによって複数の図形文

字符号を含むことができる。更に,これらの方法は,SGML実体参照及び装置独立性を満たすための短縮

参照及び符号拡張だけでは不可能な符号依存部分を補足する。 

符号拡張の背後にある基本的な原則は,ビット組合せが一つ以上の文字(その文字は制御文字及びそれ

に先行するエスケープシーケンスに依存する。)を表すことができるということである。SGMLで符号拡

張を使用するときは,拡張符号,拡張文字及び区切り子を混同しないように,SGML実体の中で符号拡張

制御文字を可能にする必要がある。 

備考 ここでは,SGMLを用いてJIS X 0202を例示することだけを意図しており,すべての技術の組

合せ及びそれらに対して必要な完全な設計を示さない。読者は,JIS X 0202,ISO 4873及びISO 

6937についての知識があるものと仮定する。 

3.1 

符号拡張横構 マーク抑止が使用されないとき,区切り子との混同を避けるために,使用者の努力

及び解析負担を最小にすることが要求されるような機構では,すべての図形マーク文字をG0集合の中に

おく。G0集合は,符号表の左側に呼び出され,その符号構成は次の(1)〜(3)のとおりとする。 

(1) G1集合が常に8ビットの符号表の右に呼び出される場合は,G1集合の文字符号は,指示エスケープ

シーケンスによって,必要に応じて換えることができる。ただし,ロッキングシフトは,使用しない。 

(2) G1集合,G2集合及びG3集合の三つ以上の追加集合が必要な場合は,G1集合,G2集合及びG3集合

文字符号は適当にエスケープシーケンスを指示することによって換え,ロッキングシフトによって8

ビットの符号表の右側に呼び出すことができる。 

(3) シングルシフトによって7又は8ビットの符号表の左側に1文字呼び出す場合は,G2及びG3集合の

文字。G2集合及びG3集合の文字符号は必要に応じて換えることができる。8ビット符号構成では,

177 

X 4151-1992  

この方法では,他の二つの拡張方法のいずれかと組み合わせることができる。 

この符号拡張方法を使用する場合,多符号基本具象構文を置き換える機能マーク文字識別パラメタを参

考6図14に示す。 

参考6図14 装置独立の多符号具象構文のための機能マーク文字 

FUNCTION RE 

 13  

RS 

 10  

SPACE 

 32  

TAB 

SPACECAHR   9  

−−図形文字符号拡張のための機能−− 

−−マークは,使用中に認識される−− 

ESC 

FUNCHAR 

 27 −−符号拡張−− 

LSO 

FUNCHAR 

 15 −−ロッキングシフト0−− 

−−(G0集合を列2〜7へ呼び出し固定する。)−− 

−−LS1R,LS2R及びLS3Rの,−− 

−−呼出しシーケンスもある。 −− 

SS2 

FUNCHAR 

142 −−シングルシフト2 

(G2集合の1字を列2〜7へ呼び出す。)−− 

SS3 

FUNCHAR 

143 −−シングルシフト3 

(G3集合の1字を列2〜7へ呼び出す。)−− 

3.1.1 

区切り子誤認の回避 ISO 4873に適合するG1集合だけに符号拡張が行われている場合,区切り子

誤認の可能性はない。他の符号拡張方法では,誤認の可能性が高くなるが,実現者及び,(又は)使用者が

次のとおりに注意を払えば,それを避けることができる。 

(1) 短縮参照及び実体参照を含むすべてのマークは,G0集合を列2〜7に呼び出して行う。 

(2) もし実体が追加文字集合にシフトしたなら,左に呼び出したG0集合に(実体がシフトに影響を与え

ることを意図していない限り)戻さなければならない。 

(3) シフト機能(例えば,指示シーケンス及びアナウンサシーケンス)以外のエスケープシーケンスは注

釈宣言の中に入れる。 

com区切り子文字列には非シフトエスケープシーケンスのいずれの中にも現れないものを割り当てる。

例えば,規格参照区切り子を用いて,5文字までのすべての公開エスケープシーケンス,及び3文字まで

の非公開エスケープシーケンスは,区切り子誤認の可能性がなく注釈宣言の中に入れることができる。 

非シフトエスケープシーケンスも混成された内容に入れることができる。しかしそれらが次に説明する

ように認識可能な区切り子文字列を含まない場合,又は短縮参照が誤認を起こさないように定義されてい

る場合に限る。 

(4) シフト機能の中にある文字列は,短縮参照が誤認を避けるように定義されていない限り,CON認識モ

ードで認識される区切り子機能に割り当ててはならない。 

例えば,規格参照区切り子集合において,右中括弧,チルダ及び縦棒は,短縮参照区切り子である

が,G2及びG3集合が使用されるとき,必要なLS1R,LS2R及びLS3Rシフトシーケンスに見いださ

れる。それらが短縮参照区切り子であれば,それらを単に実体に対応付けないことによって簡単に無

効にすることができる。しかしもしそれらが必要であるなら,実体に対応付けされていない短縮参照

178 

X 4151-1992  

になるようにLS2Rシーケンス及びLS3Rシーケンスを定義することによって有効な状態に保つこと

ができる。 

次に示す引数は,SGML宣言の短縮参照区切り子引数に付加するものである。 

SHORTREF SGMLREF 

−−ESCが前にあるとき,単一文字SHORTREFの−− 

−−誤認を避けるためにSHORTREFを追加する−− 

 ”&#ESC;&#124;” −−LS3Rは,SHORTREF”&#124;” を含む。−−  

 ”&#ESC;&#125;” −−LS2Rは,SHORTREF”&#125;” を含む。−− 

 ”&#ESC;&#126;” −−LS1Rは,SHORTREF”&#126;” を含む。−− 

備考 対応国際規格では, “|”,“}” 及び “〜” で表記してあったがJISでは,&#124;,&#125;及

び&#126;のように符号値で示した。 

長い区切り子文字列は,常に(長い区切り子が何にも対応付けられていない短縮参照である

ときでさえ)それに含まれる短いものに優先して認識されるので,図形文字縦棒及び右中括弧

と誤認されやすい符号は,シフトシーケンスにあるとき,区切り子として間違って認識されな

い。 

(5) もしシングルシフトが使われるときは,CONモード認識される区切り子列の最初の文字のビット組合

せに続くSS2又はSS3から成るシーケンスを,前述の方法で,区切り子の誤認を避けるように定義し

なければならない。 

規格参照区切り子集合では,影響を受ける文字は,アンバーサンド (&#38;),小記号 (&#60;),右大

括弧 (&#93;),斜線 (&#47;),及び図形文字で始まる短縮参照区切り子の最初の文字である。 

3.1.2 

装置及び符号依存の排除 JIS X 0202の符号拡張方法を使用しているSGML文書は,同じ機構を

使用している他のシステム又は装置に対して送信することができる。このような場合においては,参考5

の3.1に記述した具象構文を使用することができ,ここに記述されている手法は必要ない。しかしながら,

SGML文書が送信されたすべてのシステム又は装置がJIS X 0202の符号拡張方法のすべてを支援している

わけではない。例えば,多くの体裁及び写植プログラムでは,エスケープシーケンス及びシフトを用いた

符号拡張によって作成された文書を完成するため,指定された字体交換及び位置付け命令が必す(須)と

なる。 

出力からの独立性を達成するために,通常のSGMLの手法では,G0集合及び構文参照文字集合のいず

れにもない文字に対しても実体参照を使用する。実体名が一定のまま残されている間,その定義は参考5

の4.で説明した方法で出力システムに依存して変化する。そこで定義された公開実体集合は,この目的の

ために使用することができる。それらは特にISO 6937で規定されている現在の文字符号に対する実体名を

含む。 

符号拡張を文書作成のために使用するときは,補足集合文字が短縮参照として定義され,かつ適切な実

体に対応付けることができるとき,実体参照を入力する負荷を大いに軽減することができる。しかしなが

ら,このような手法は,文字が短縮参照を認識しない内容の中,例えば文字データ要素,マーク指定区域,

又はマーク認識が機能文字で抑制されている所にあるとき使用不可能である。 

179 

X 4151-1992  

参考7 実現についての考察 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

SGMLシステムには二つの面がある。一つはマーク付き文書に対するものであり,もう一つはそれらを

処理する応用プログラムに対するものである。 

文書に対する面として許容する異同については,この規格の本体に規定がある。応用プログラムに対す

る面は,規格となっていないが,この参考で,SGMLシステムが提供する機能として,その利用者の開発

したプログラムからSGML構文解析系及び実体管理系が利用できるようにしておくための有用なものを

幾つか示す。 

この参考は,一般的ものであり,実現のすべての面を扱うものではない。実現項目の幾つかについて,

その感触を与えることを意図したものであって,実現についての仕様だと誤解してはならない。 

1. SGML構文解析の模型 機能についての議論を行うには,まずSGML構文解析の模型を頭に描いてお

くことが必要になる。 

備考 これは,SGML構文解析について特定の設計方式及び実現技法を要求するものではない。一見

そのように見える用語(例えば“手続き”,“スタック”,“サービスルーチン”など)も,単に

機能を説明する手段として使っているにすぎない。 

ここに示す模型は,SGMLの開発者の設計に当たっての議論で有効であったものである。これ以外にも

模型はあるだろうし,必ずしも最善のものともいえない。不完全なところもあるし,内部的に矛盾を含ん

でいるかもしれない。しかしながら,この模型は,SGML構文解析系がシステムの他の構成要素とどのよ

うに結び付いているかを理解する助けとなるものであり,そのためにだけ提示するものである。 

1.1 

物理的入力 SGML構文解析系は,物理的な入力流を直接に読むことがない。すべての入力は,実

体管理系が取り仕切る。構文解析系は,システムから呼び出される際に,解析対象の文字列が渡される。 

1.1.1 

実体 構文解析系は,実体参照を認知すると,実体管理系にそのことを告げる。実体管理系は,そ

の新しい実体が終わるまでそれを物理的な入力源とし,それが終わると構文解析系に知らせる(つまり,

Eeを生成する。)。実体管理系は,その後,再び元の実体に戻って入力を続ける。 

構文解析系が実体の境界を考慮するのは,複数文字の区切り子や文脈依存区切り子の認知を行う場合及

び区切り子で囲まれた文の中での実体参照が規格の要件を満たしていることを確認する場合だけである。

構文解析系は,それ以外の場合には,どの実体から得たものであるかに無関係に,連続した文字の列だけ

を扱う。 

1.1.2 

記録の境界 文書が記録の境界を含む場合の処理は,本体に規定がある。記録の境界を含む区切り

子文字列の認知は,入力の初期解析の段階で行う。データとしてREを無視する(本体6.6.1参照)かどう

かの判定は,すべての参照を解決し,マーク最小化を正規の形に復元し終えてからでないと行えない。 

1.2 

認識様相 SGMLの際立った特徴の一つに,複数の区切り子認知様相(本体8.6.1参照)をもつこと

がある。前書きが終わると,文書は,CON様相で走査される。この様相では,本体6.6に従って文の文字

が処理される。この様相は,次のいずれかが現れて様相が切り替わるまで続く。 

(1) 記述的マーク(開始タグ又は終了タグ) 構文解析は,TAG様相になる。 

共通識別子を見つけ,その属性及び属性値を検査・確認してとっておく。このとき,指定のない属

性に対しては省略時値を補う。その共通識別子に結合している手続きに,とっておいた属性名及び属

180 

X 4151-1992  

性値への指標を渡して,制御を移す。 

応用によって,その手続きは,その要素の内容のすべてをとっておいた上でないと処理を行うこと

ができないこともあれば,応用内部の状態を書き換えるだけで直ちに制御を返してくることもある。

その要素の手続きが内容のすべてをとっておくのであれば,その中に入れ子になった要素の手続きは,

それぞれその内容を処理した後で,それをこのとってある文に返してくる必要がある。 

備考 システムが解析前の文をとっておき,後になってからあたかもそれが文書の別の場所に書いて

あったかのように解析するのは,規格違反である。文書は,書いてあった位置で解析しなけれ

ばならない。解析してしまった文(共通識別子,属性などの情報を含む。)を内部形式でとって

おき,その後の処理に使うようにするのが望ましい。 

システムが制御を返してくると,構文解析は,tagc(又はそれと同等なもの)の後,CON様相で再

開される。 

(2) 処理指令 指令そのものは,CDATAとして(PI様相で)構文解析し,その結果の文字列を,区切り

子を取り除いた上で応用プログラムに渡す。応用プログラムは,その指令を実行し,制御を返してく

る。構文解析は,picの後,CON様相で再開される。 

(3) マーク宣言 マーク宣言の開始とその名前とを見つけると,MD様相に移り,個々の引数と宣言の終

わりとを見つけていく。それぞれの宣言に呼応する意味解析ルーチンを呼び出して宣言を処理させる。 

(4) 参照 参照の構文解析では,REF様相で,その名前(又は文字番号)を判定し,その参照の終了を見

つける。 

それが文字参照の場合,構文解析系は,その参照をその実体の中で正当な文字に置換する。非SGML

文字又はデータとしての機能文字への参照であれば,その文字には,印を付けて,通常の文字と間違

えないようにしておく。 

実体参照の場合,その実体名を実体管理系に渡す。実体管理系は,入力バッファの指標を更新した

上で制御を返してくる。実体に対応付けられていない短縮参照の場合は,本体8.4.6に従って処理する。 

(5) データ データ文字は,1文字ずつ手続きに渡してもよいし,何かのマークがくるまでためておいて

から手続きに渡してもよい。後者の場合は,そのデータの出現位置と長さとを手続きに渡し,構文解

析はそのマークから再開する。 

渡すデータ文字列の中には,文字参照で生じた印の付いた文字が入っていることがある。システム

は,これらを正しく処理できなければならない。 

1.3 

マーク最小化 マーク最小化によって,利用者は,要素の開始タグ・終了タグの一部又は全部を省

略することができる。 

SHORTTAG最小化に対しては,システムは要素構造での現在位置をいつも押さえていなければならない。

普通,このために開いている要素の共通識別子の記録を保持しておく。更に,属性定義を解釈することも

必要となる。検定機構を提供しているのでなければ,内容モデルを知る必要はない。 

しかしながら,OMITTAG機構及びDATATAG機構に対しては,内容モデルの知識が,不可欠となる。 

備考 マーク最小化を,利用者の書いた応用プログラムでも処理できるようにするのは,規格違反で

ある。同じ文書が応用によって異なって構文解釈されてしまう可能性が生じるからである。 

1.4 

変換 SGMLでは,文書文字集合とシステム文字集合とが同一であるものと想定している。言い換

えれば,SGML構文解析系は,いかなる変換も関知しない。変換が必要な場合は,システムが処理に先立

って行うか,処理の最中にSGML構文解析系に透過な方法で行うかする。 

181 

X 4151-1992  

1.5 

プログラム言語の対比 SGMLの記述的タグは,手続き言語の命令と対立するものである。特に,

文書型の設計者は,この両者が類似のものだと考えるのを避けることが望ましい。しかしながら,要素の

属性と命令の引数との間には,次のとおりの類似性を見ることができる。これは,処理系設計者の理解の

一助になるであろう。 

SGMLでの用語 

プログラム言語での用語 

属性定義並び 

仮引数並び 

属性定義 

仮引数 

属性仕様並び 

実引数並び 

属性仕様 

実引数 

多くの仮引数並びとは違って,属性定義を並べた順序には,属性指定を並べる順序を決めてしまう働き

がないことに注意すること。 

2. 初期設定 システムは,利用者がその実行の開始に当たって幾つかの情報を指定できるようになって

いなければならない。その情報のうち,例えば,活性文書型,活性連結型などは,SGML構文解析系にも

伝わるようになっていなければならない。どのような形で情報を与えるかは,システムにゆだねられてい

る。 

2.1 

手続きの初期対応付け 利用者は,要素型とその要素型を処理する手続きとの対応付けを指定しな

ければならない。 

この指定は,単一の手続き(例えば,文書型に対する手続き)の名前を与え,その手続きがその他の要

素についての手続きの対応付けを行う,という形にすることもできる。構文解析系は,この情報を必要と

はしないが,渡してもらっておけば,記述的タグの情報を返す際に適切な手続きの名前も一緒に返すこと

が可能になる。 

2.2 

連結処理指定 書式付け作業においては,その書式付け前の文書の文書型を“論理構造”といい,

書式付け後の文書の文書型を,“割付け構造”ということが多い。書式付けを施そうとするSGML文書は,

いつでも,論理構造(普通は,基本文書型)を含む。明示連結処理を使う場合,その文書は,割付け構造

についての文書型定義(“共通割付け構造”という。)を含み,更にその実現値も含むこともある。 

書式付け応用では,利用者は,処理を開始するに当たって,論理構造から望む割付け構造の実現値を生

成する連結型を指定するとともに,その応用が必要とする引数を指定しなければならない。これらの情報

は,文書のマークには入れない。その応用を使うたびに違い得るからである。しかしながら,論理構造の

どの要素から割付け構造のどの要素が生成されるかを指定する連結型宣言は,マークの中に含めておく。 

2.3 

文書実現値の併存 完全に書式付けできた文書の実現値は,何かの応用の結果できるものであり,

普通,これを書式付け応用に使うことはない。しかし,索引処理及びカタログ処理に使うことはある。こ

れらでは,論理構造に基づく情報とともに,割付け構造に基づく行番号及びページ番号を利用するからで

ある。このとき,この二つの構造の最上位での関連及び下位要素間の関連は,その文書の恒久的な特性の

一つであり,二つの文書型のタグを併置して表現する。初期設定に際して,利用者は,処理しようとする

実現値の二つの文書型を指定しなければならない。 

182 

X 4151-1992  

3. 手続きの動的な対応付け システムは,手続きの対応付けを,それぞれの手続きからも行える動的な

ものにしておくのが望ましい。応用によっては,ある要素型に対する手続きが,その下位要素の処理を指

定することがあるからである。例えば,書式付け応用で,“body(本体)”型の要素の手続きでは,“heading

(見出し)”型の要素をローマン体に指定し,共通識別子“appendix(付録)”に対する手続きではその中

に現れる “heading” の要素をイタリック体に指定する,ということがある。 

言い換えれば,この見出し要素は,どこに現れたかによって修飾を受ける。これは,姓名になぞらえる

ことができる。“見出し”は,他の“見出し”と何かを共有する(“名”は同じ。)が,“本体”の一部であ

ったか,“付録”の一部であったかによって修飾を受ける(“姓”が異なる。)。 

4. 誤りの処理 規格は,マーク誤りを,その性質及び位置を含めて報告するように求めている。そのシ

ステム,環境,利用者界面などに応じて,この要件をどう満足させるかは,処理系作成者の裁量に任され

ている。 

次の事柄に留意するとよい。 

(1) 実体構造内の位置は,実体名と,その中での記録番号及び文字番号とで示すことができる。これに次

の(a)〜(c)を加えて示してもよい。 

(a) 開いている実体の一覧 

(b) 開いている実体への参照の,実体構造での位置 

(c) 短縮参照で参照している実体についての,対応表名及び短縮参照文字列 

(2) 要素構造での位置も,実体構造での位置と同様に有用である。要素構造での位置は,その時点で開い

ている要素の一覧で示すことができる。 

(3) 誤りの性質を報告するについては,利用者にとってその誤りを理解するのに影響を与え得る,使用中

の機能(マーク最小化など)を十分に配慮することが望ましい。 

background image

183 

X 4151-1992  

参考8 適合性の類別及び検定 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

この規格は,SGMLシステムに様々な規格への適合の仕方を規定している。適合性を検定する機関にと

っては,検定すべき項目について適切な選択が必要となる。更に,検定済みシステムについて,そのシス

テムがどの機構を提供し,どういう構文を提供しているのかを類別する簡便な手段も必要となる。 

この参考は,これらの目的にかなう類別方式を示すとともに,検定証明に対する要請を示す。 

1. 類別符号 提示する類別方式の要約を,参考8図1に示す。この方式では,SGMLシステムに機構 

(Feature) ・構文 (Syntax) ・検定 (Validation) の3部分からなる適合性類別符号をふる。この類別符号を,

その頭文字を並べて “FSV” と略称する。 

例えば,FSV “0768RS064” は,機構符号 “0768”,構文符号 “RS” 及び検定符号 “064” からなる。この

類別符号は,各種機構を使っていない基本SGML文書について,特定検定なしの検定ができるシステムを

表す。 

その類別名は,参考8図1に従うと,“基本・検定”となる。検定符号部分だけを “000” に変えると,

その類別名は“基本・非検定”となる。 

適合システムが機構・具象構文・検定能力のそれぞれを独立に選択できることから,適合性を一通りの

類別階層に収めることはできない。そこで,参考8図1に示すとおりに,機能符号に基づく階層及び検定

符号に基づく階層の二つを設けてある。 

1.1 

機能符号 機能符号は,システムが提供する機構について,次に示す重みを加えて定める。 

機構 

重み 

FORMAL 

CONCUR 

EXPLICIT 

IMPLICIT 

SIMPLE 

16 

SUBDOC 

32 

RANK 

64 

DATATAG 

128 

OMITTAG 

256 

SHORTTAG 

512 

その符号は,必要に応じて先頭に0を補って,最大の符号 (1023) と同じ長さ(4けた)に合わせる。 

機構それぞれの重みが2のべき乗になっているから,どの機構を提供しているかは,機構符号から一意

的に復元できる。例えば,機構符号 “0384” は,DATATAG及びOMITTAGだけを提供していることを示

す。 

備考 この手法は,それぞれの機構について独立に提供するしないが指定できる場合,つまり,それ

ぞれの機構についての値が2値(0:提供しない,1:提供する)である場合に成立する。より

一般には,値VはN個の値V=0〜V=N−1をとる。このときは,それぞれの項目について係

数Fを,直前の項目の係数GのN倍にとる(最初の項目の係数Gは1とする。)。項目の値V

に対して,その項目の重みW (V) は,VとGの積とする(まとめると,F=N*G,W (V) =V*G

となる。ただし, “*” は乗算とする。)。 

background image

184 

X 4151-1992  

1.2 

検定符号 検定符号は,システムがもつ検定能力について,次に示す重みを加えて定める。 

検定対象 

重み 

CAPACITY 

EXCLUDE 

SGML 

MODEL 

FORMAL 

16 

NONSGML 

32 

GENERAL 

64 

その符号は,必要に応じて先頭に0を補って,最大の符号 (127) と同じ長さ(3けた)に合わせる。 

検定能力GENERAL(マークの誤りの検定)だけをもつシステムの検定符号は064となる。この規格で

はGENERALを他の検定能力の前提としているので,検定符号として現れるのは,000及び064〜127だけ

となる。 

備考 この方式を改定する際にも,GENERALには最高の重みを与え,どの検定符号も,0を除いて,

GENERALの重み未満になることがないように定める。 

1.3 

構文符号 具象構文に対する符号は,次のいずれかとする。 

符号 

具象構文 

CS 

核具象構文 

RS 

規格参照具象構文 

MC 

多符号核具象構文 

MB 

多符号基本具象構文 

上のそれぞれの構文は,この規格で定めた構文を指す。 

この類別方式では,前書きにも文書要素にも同一の具象構文を使う場合の適合性だけを検定対象とする。 

2. 検定 この適合性類別方式が検定機関及び処理系作成者の双方を縛るものではないことに注意するこ

と。適合性は,本体14.によって,正式にシステム宣言に明記しなければならない。適合性類別符号は,そ

の部分的な簡便な表記にすぎない。 

処理系作成者は,その利用者の要求するところに合わせて,幾つもの機構及び具象構文を提供して差し

支えない。検定機関は,その望むところに合わせて,検定範囲を広くとっても狭くとっても差し支えない。

この結果として,検査を受けたシステムが提供していると主張する機能全部に対して検定証明が得られな

いことも起きる。しかし,これは,そのシステムがこの規格に適合していないことを意味しない。単に,

そのシステムの幾つかの機能について,検定機関が適合しているかどうかの判断をしなかったにすぎない。 

検定機関は,その必要に応じて,ここでの類別方式を変更しても構わないし,すべて無視しても構わな

い。しかしながら,検定機関は,どんな類別方式を採用しているにしても,この規格に規定してある基準

以外によってシステムの適合・不適合を宣してはならない。特に,その機関での類別方式以外の機能の組

合せをシステムがとっているからという理由だけで,そのシステムを不適合としてはならない。検定機関

は,そこで検定しようとする機能についてだけ検定証明(又は,検定結果によっては検定不合格)を与え,

それ以外については判断しないと明示しなければならない。 

background image

185 

X 4151-1992  

参考8図1 FSV適合性の分類 

適合性類別名 

機構符号 

構文符号 

検定符号 

検定 

添え字 

最小 

0000 

CS 

000 

非 
検 
定 

選択付最小 

0001-0767 

CS 

000 

基本 

0768 

RS 

000 

選択付基本 

0769-1022 

RS 

000 

全部 

1023 

RS 

000 

多符号最小 

0000 

MC 

000 

多符号選択付最小 

0001-0767 

MC 

000 

多符号基本 

0768 

MB 

000 

多符号選択付基本 

0769-1022 

MB 

000 

多符号全部 

1023 

MB 

000 

最小 

0000 

CS 

064 

 
検 
定 

選択付最小 

0001-0767 

CS 

064 

基本 

0768 

RS 

064 

選択付基本 

0769-1022 

RS 

064 

全部 

1023 

RS 

064 

多符号最小 

0000 

MC 

064 

多符号選択付最小 

0001-0767 

MC 

064 

多符号基本 

0768 

MB 

064 

多符号選択付基本 

0769-1022 

MB 

064 

多符号全部 

1023 

MB 

064 

最小 

0000 

CS 

065-127 

 
選 
択 
付 
検 
定 

選択付最小 

0001-0767 

CS 

065-127 

基本 

0768 

RS 

065-127 

選択付基本 

0769-1022 

RS 

065-127 

全部 

1023 

RS 

065-127 

多符号最小 

0000 

MC 

065-127 

多符号選択付最小 

0001-0767 

MC 

065-127 

多符号基本 

0768 

MB 

065-127 

多符号選択付基本 

0769-1022 

MB 

065-127 

多符号全部 

1023 

MB 

065-127 

186 

X 4151-1992  

参考9 SGML内容モデルの理論的基礎 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

SGML内容モデル群の記法は,オートマトン理論の正規表現に似せて設計された。オートマトン理論は,

内容モデルに適合した記法の幾つかの面で理論的基礎を提供する。この参考では,モデル群の記法と正規

表現との関係を示し,モデル群とオートマトンとの近似性について記述する。 

1. モデル群の記法 SGMLモデル群の記法は,オートマトン理論の正規表現に対応しており,次の(1)

〜(2)の方法で正規表現に変換される。 

(1) and群は,seq群の置換に対するor群に変換される。例えば式(1)は,式(2)の正規表現(又はSGMLモ

デル群)に等しい。 

 (a&b)  

−(1) 

 ((a, b) | (ba))  

−(2) 

(2) 出現標識optをもつ字句は,空の字句をもつor群内の同じ字句に変換される。 

例えば,式(3)は,式(4)の正規表現に等しい。 

 (a?)  

−(3) 

 (a|)  

−(4) 

備考 これは,正当なSGMLモデル群ではない。 

2. オートマトン理論の適用 内容モデルに適合しているかどうかの検査は,正規表現の承認(受け入れ

たり,又は退けたりすること)の問題と本質的に等しい。それゆえ,正規表現は,SGMLの文脈検査の点

で有用な理論的基礎を与える。 

正規表現は,(Kleeneの理論によって)決定有限オートマトン (DFA) と等しいことを示すことができる。

それゆえ,構文解析系は,モデル群を扱うのに理論上,それを正規表現に還元した上で,モデル群の字句

に対応した状態遷移の経路をもつDFAを構築すればよい。しかし,実際には,幾つかの問題がある。 

一つの問題は,and群の変換において出現する。要求されるseq群の置換の数は,階乗関数となるので,

小さいand群であっても対応するseq群の数は膨大なものになる。例えば,6個の要素をもつand群では,

6!つまり720のseq群が必要になる。 

もう一つの問題は,DFAの構成にある。一つの方法は,まず,正規表現から直接に非決定有限オートマ

トン (NFA) を構成し,それを決定有限オートマトンに還元するものである。DFAを構成するこれらのア

ルゴリズムは,多項式オーダを超えており,SGMLで表された読みやすい内容モデルを対象とすれば,ほ

とんど手に負えないものとなる。したがって,資源集約的にすぎて,実現には使えないことにもなる。 

この規格は,DFAを構成する必要をなくすことによってこれらの問題を避けている。これは,あいまい

な内容モデルを禁止し,“先読み”が必要な内容モデルを禁止することでなされる。すなわち,モデル群を

制限することで,どんな文脈にあっても,文書中の要素(又は文字列)が唯一の素内容字句にだけ対応す

るようにしている。結果として,許容される正規表現は,対応するNFAが決定的になぞれるものに限定さ

れてしまう。これは,次の(1)〜(2)の理由による。 

(1) 与えられた節(ノード)から出ている弧の中には,内容に対応したマークが付いた弧で始まる弧の列

への出口は一つしかない。 

187 

X 4151-1992  

(2) 節を出ることができる弧の列が二つ以上あるならば,SGMLの規則による優先順位に従ってそれらの

一つに入ることができる。 

その結果,内容の検査は,単にNFAを用いる単純なアルゴリズムで行うことができる。 

この制限は,方針として正しい。なぜなら,人間は,文書を作るときに,その内容の検査を行わなけれ

ばならず,正規表現を単純に保つことで,それがより満足にできることになるからである。更に,このよ

うな制限された望ましい文書の構造は,中間要素を導入することによって,常に得られるので実用上でも

正当化できるからである。 

3. オートマトン理論との違い オートマトン理論を内容モデルに一般的に適用できると思うべきではな

い。例えば,内容モデルを還元した正規表現が他の目的においては必ずしも等価なものではないことに注

意すること。特に,開始タグが技術的に省略できるかどうかの決定は,内容モデルの表現の形式に依存す

る。式(5)におけるbに対する最小化は許されるが,式(6)では許されない。 

例    (a?, b)  

−(5) 

    ((a, b) |b) 

−(6) 

これら両方の内容モデルは,同じ正規表現に変換される。 

188 

X 4151-1992  

参考10 規格外の変形 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

歴史的には,一般化マーク付けの多くの利益は,手続き的文書処理言語を用いることで得られてきた。

その方法は,記述的文書のために特別に設計されたSGMLを用いるよりは効果が少ない。 

この参考では,手続き的言語が記述的マークに用いられる場合に生じる規格外のことについて述べる。 

1. 固定長の共通識別子 共通識別子を固定長とする言語では,どのような属性も指定できないし,tagc

も存在しない。内容モデルは,開始タグの共通識別子の後の最初の文字で始まる。 

次の例では,2文字の共通識別子が用いられている。 

 <paThis is a paragraph with 

 a <sqshort quotation</sqin it.</pa 

 ここで,paは段落,sqは引用符を表す共通識別子 

固定長共通識別子には,次の(1)〜(3)の欠点がある。 

(1) 人間が原文書を読むのは難しい(ただし,計算機では問題がない。)。 

(2) ある自然なタグの略記が,その長さの組合せ上,利用できない(例えば,段落に対するp及び大見出

しに対するh1は,一緒に用いることはできない。)。 

(3) 属性をもつ文書型は,処理することができない。 

固定長の共通識別子をもつ文書は,タグ終了tagcを挿入することによってSGML文書(ほかに違いが

なければ)に変換することができる。 

2. 単一区切り子 単一区切り子言語では,同じ文字がstago,etago,ero,mdo及びpioの区切り子のた

めに用いられる。 

2.1 

制約 この方法には,次の(1)〜(2)の制約がある。 

(1) 共通識別子,実体名,宣言名,処理指令名及び処理マクロ名は,それらを区別する方法がないので,

互いに異ならなければならない。 

(2) 終了タグは,文脈によって開始タグと混同しない場合にだけ,入れられる。 

2.2 

欠点 単一区切り子を用いることには,次の(1)〜(4)の欠点がある。 

(1) 記述的マークは,簡単に処理指令,マーク宣言及び実体参照を区別することができないので,人間の

読者には文書の構造がよく分からない。 

(2) 一つの応用及びシステムだけに適用される処理指令が,文書が異なった応用及びシステムにも用いら

れるならば,簡単に修正することができない。 

(3) 文書型の設計者は,すべての処理指令及びマクロ名が共通識別子と同じ名前にならないように注意し

なければならない。同様に,文書作成者は,共通識別子と同じ名前が存在しないように新しいマクロ

を作らなければならない。 

(4) 文書交換は,受信系のマクロ名及び文書の共通識別子との競合を防ぐことが困難なため,厳しく制限

される。 

これらの欠点に対する明白な解決は,名前の型を区別するための命名方法を用いることである。例えば,

宣言名は感嘆符で始め,処理指令名は疑問符で始める。 

189 

X 4151-1992  

 <!ENTITY abc SYSTEM> 

 <?NEWPAGE> 

SGMLの規格参照具象構文では,区切り子として複数の文字を用いることによって,単一区切り子での

この命名方法と同じ視覚的な効果をもたらしている。 

190 

X 4151-1992  

参考11 SGML構文式一覧 

この参考は,規定の一部ではないが,読者の理解を助けるために付ける。 

この参考は,文書記述言語SGMLの構文式をまとめ,一覧としたものであり,三段組で構成する。左の

段は,この規格の本体で規定したとおりの式であり,中央の段は,対応する英文を載せている。右の段は,

各構文式の参照関係を示している。 

なお,構文式の記述方法は,本体4.の式の表記法を参照のこと。参照関係の記述方法は,次のとおりで

ある。 

 ← [nn] は,この構文式が,式番号nnの構文式から参照されていること。 

 → [mm] は,この構文変数の定義が,式番号mmにあること。 

 → “xx” は,この区切り子機能が,規格参照区切り子集合ではxxであること。 

 →xxx (nn) は,この文字クラスxxxが,規格参照具象構文では,文字番号nnであること。 

[1]SGML文書= 

[1]SGML̲document= 

←[[]] 

SGML文書実体, 

SGML̲document̲entity,  

→[2] 

(SGML部分文書実体 

(SGML̲subdocument̲entity 

→[3] 

|SGML文実体 

|SGML̲text̲entity 

→[4] 

|文字データ実体 

|character̲data̲entity 

→[5.1] 

|特定文字データ実体 

|specific̲character̲data̲entity 

→[5.2] 

|非SGMLデータ実体)* 

|non−SGML̲data̲entity) * 

→[6] 

[2]SGML文書実体= 

[2]SGML̲document̲entity= 

←[1] 

s*, 

s*,  

→[5] 

SGML宣言, 

SGML̲declaration,  

→[171] 

前書き, 

Prolog,  

→[7] 

文書実現値集合, 

document̲instance̲set,  

→[10] 

Ee 

Ee 

[3]SGML部分文書実体= 

[3]SGML̲subdocument̲entity= 

←[1] 

前書き, 

Prolog,  

→[7] 

文書実現値集合, 

document̲instance̲set,  

→[10] 

Ee 

Ee 

[4]SGML文実体= 

[4]SGML̲text̲entity= 

←[1] 

SGML文字*, 

SGML̲character*,  

→[50] 

Ee 

Ee 

[5]s= 

[5]s= 

←[2, 8, 14, 17, 18,] 

[19, 22, 26, 32,] 

191 

X 4151-1992  

[65, 70, 71, 91,] 

[149.2, 166, 168] 

SPACE 

SPACE 

→SPACE(32) 

|RE 

|RE 

→CR(13) 

|RS 

|RS 

→LF(10) 

|SEPCHAR 

|SEPCHAR 

→HT(9) 

[5.1]文字データ実体= 

[5.1]character̲data̲entity= 

←[1] 

SGML文字*, 

SGML̲character*,  

→[50] 

Ee 

Ee 

[5.2]特定文字データ実体= 

[5.2]specific̲character̲data̲entity= 

←[1] 

SGML文字*, 

SGML̲character*,  

→[50] 

Ee 

Ee 

[6]非SGMLデータ実体= 

[6]non−SGML̲data̲entity= 

←[1] 

文字*, 

character*,  

→[49] 

Ee 

Ee 

[7]前書き= 

[7]prolog= 

←[2, 3] 

他の前書き*, 

other̲prolog*,  

→[8] 

基本文書型宣言, 

base̲document̲type̲declaration,  

→[9] 

(文書型宣言 

 (document̲type̲declaration 

→[110] 

|他の前書き)*, 

|other̲prolog) *,  

→[8] 

(連結型宣言 

 (link̲type̲declaration 

→[154] 

|他の前書き)* 

|other̲prolog) * 

→[8] 

[8]他の前書き= 

[8]other̲prolog= 

←[7, 10] 

注釈宣言 

comment̲declaration 

→[91] 

|処理命令 

|processing̲instruction 

→[44] 

|s 

|s 

→[5] 

[9]基本文書型宣言= 

[9]base̲document̲type̲declaration= 

←[7] 

文書型宣言 

document̲type̲declaration 

→[110] 

[10]文書実現値集合= 

[10]document̲instance̲set= 

←[2, 3] 

基本文書要素, 

base̲document̲element,  

→[11] 

他の前書き* 

other̲prolog* 

→[8] 

[11]基本文書要素= 

[11]base̲document̲element= 

←[10] 

192 

X 4151-1992  

文書要素 

document̲element 

→[12] 

[12]文書要素= 

[12]document̲element= 

←[11] 

要素 

element 

→[13] 

[13]要素= 

[13]element= 

←[12, 25, 26] 

開始タグ?, 

start-tag?,  

→[14] 

内容, 

content,  

→[24] 

終了タグ? 

end-tag? 

→[19] 

[14]開始タグ= 

[14]start-tag= 

←[13] 

(stago, 

 (stago,  

→”<” 

文書型指定, 

document̲type̲specification,  

→[28] 

共通識別子指定, 

generic̲identifier̲specification,  

→[29] 

属性指定並び, 

attribute̲specification, ̲list,  

→[31] 

s*, 

s*,  

→[5] 

tagc) 

tagc) 

→”>” 

|最小化開始タグ 

|minimized̲start-tag 

→[15] 

[15]最小化開始タグ= 

[15]minimized̲start-tag= 

←[14] 

空開始タグ 

empty̲start-tag 

→[16] 

|閉じない開始タグ 

|unclosed̲start-tag 

→[17] 

|net可能開始タグ 

|net-enabling̲start-tag 

→[18] 

[16]空開始タグ= 

[16]empty̲start-tag= 

←[15] 

stago, 

stago,  

→”<” 

tagc 

tagc 

→”>” 

[17]閉じない開始タグ= 

[17]unclosed̲start-tag= 

←[15] 

stago, 

stago,  

→”<” 

文書型指定, 

document̲type̲specification,  

→[28] 

共通識別子指定, 

generic̲identifier̲specification,  

→[29] 

属性指定並び, 

attribute̲specification̲list,  

→[31] 

s* 

s* 

→[5] 

[18]net可能開始タグ= 

[18]net-enabling̲start-tag= 

←[15] 

stago, 

stago,  

→”<” 

共通識別子指定, 

generic̲identifier̲specification,  

→[29] 

属性指定並び, 

attribute̲specification̲list,  

→[31] 

s*,  

s*,  

→[5] 

193 

X 4151-1992  

net 

net 

→”/” 

[19]終了タグ= 

[19]end-tag= 

←[13] 

(etago, 

 (etago,  

→”</” 

文書型指定, 

document̲type̲specification,  

→[28] 

共通識別子指定, 

generic̲identifier̲specification,  

→[29] 

s*, 

s*,  

→[5] 

tagc) 

tagc)  

→”>” 

|最小化終了タグ 

|minimized̲end-tag 

→[20] 

[20]最小化終了タグ= 

[20]minimized̲end-tag= 

←[19] 

空終了タグ 

empty̲end-tag 

→[21] 

|閉じない終了タグ 

|unclosed̲end-tag 

→[22] 

|簡略終了タグ 

|null̲end-tag 

→[23] 

[21]空終了タグ= 

[21]empty̲end-tag= 

←[20] 

etago, 

etago,  

→”</” 

tagc 

tagc 

→”>” 

[22]閉じない終了タグ= 

[22]unclosed̲end-tag= 

←[20] 

etago, 

etago,  

→”</” 

文書型指定, 

document̲type̲specification,  

→[28] 

共通識別子指定, 

generic̲identifier̲specification,  

→[29] 

s* 

s* 

→[5] 

[23]簡略終了タグ: 

[23]null̲end-tag= 

←[20] 

net 

net 

→”/” 

[24]内容= 

[24]content= 

←[13] 

混合内容 

mixed̲content 

→[25] 

|要素内容 

|element̲content 

→[26] 

|置換可能文字データ 

|replaceable̲character̲data 

→[46] 

|文字データ 

|character̲data 

→[47] 

[25]混合内容= 

[25]mixed̲content :  

←[24] 

(データ文字 

 (data̲character 

→[48] 

|要素 

|element 

→[13] 

|他の内容)* 

|other̲content) * 

→[27] 

[26]要素内容= 

[26]element̲content= 

←[24] 

194 

X 4151-1992  

(要素 

 (element 

→[13] 

|他の内容 

|other̲content 

→[27] 

|s)* 

|s) * 

→[5] 

[27]他の内容= 

[27]other̲content= 

←[25, 26] 

注釈宣言 

comment̲declaration 

→[91] 

|短縮参照使用宣言 

|short̲reference̲use̲declaration 

→[152] 

|連結集合使用宣言 

|link̲set̲use̲declaration 

→[169] 

|処理指令 

|processing̲instruction 

→[44] 

|shortref 

|shortref 

|文字参照 

|character̲reference 

→[62] 

|一般実体参照 

|general̲entity̲reference 

→[59] 

|マーク区間宣言 

|marked̲section̲declaration 

→[93] 

|Ee 

|Ee 

[28]文書型指定= 

[28]document̲type̲specification= 

←[14, 17, 19, 22] 

名前群? 

name̲group? 

→[69] 

[29]共通識別子指定= 

[29]generic̲identifier̲specification= 

←[14, 17, 18, 19,] 

[22] 

共通識別子 

generic̲identifier 

→[30] 

|付番核 

|rank̲stem 

→[120] 

[30]共通識別子= 

[30]generic̲identifier= 

←[29, 72, 111, 117,] 

[130, 133, 167] 

名前 

name 

→[55] 

[31]属性指定並び= 

[31]attribute̲specification̲list= 

←[14, 17, 18,] 

[149.2, 166,] 

[168] 

属性指定* 

attribute̲specification* 

→[32] 

[32]属性指定= 

[32]attribute̲specification= 

←[31] 

s*, 

s*,  

→[5] 

(名前, 

 (name,  

→[55] 

s*, 

s*,  

→[5] 

Vi, 

vi,  

→”=” 

s*)?, 

s*) ?,  

→[5] 

属性値指定 

attribute̲value̲specification 

→[33] 

195 

X 4151-1992  

[33]属性値指定= 

[33]attribute̲value̲specification= 

←[32, 147] 

属性値 

attribute̲value 

→[35] 

|属性値表記 

|atttibute̲value̲literal 

→[34] 

[34]属性値表記= 

[34]attribute̲value̲literal= 

←[33] 

(lit, 

 (lit,  

→” ʼ ” 

置換可能文字データ, 

replaceable̲character̲data,  

→[46] 

lit) 

lit)  

→” ʼ ” 

|(lita, 

| (lita,  

→” ʼ ” 

置換可能文字データ, 

replaceable̲character̲data,  

→[46] 

lita) 

lita)  

→” ʼ ” 

[35]属性値= 

[35]attribute̲value= 

←[33] 

文字データ 

character̲data 

→[47] 

|一般実体名 

|general̲entity̲name 

→[103] 

|一般実体名並び 

|general̲entity̲name̲list 

→[35.1] 

|識別子値 

|id̲value 

→[36] 

|識別子参照値 

|id̲reference̲value 

→[38] 

|識別子参照並び 

|id̲reference̲list 

→[37] 

|名前 

|name 

→[55] 

|名前並び 

|name̲list 

→[39] 

|名前字句 

|name̲token 

→[57] 

|名前字句並び 

|name̲token̲list 

→[40] 

|記法名 

|notation̲name 

→[41] 

|数 

|number 

→[56] 

|数並び 

|number̲list 

→[42] 

|数字句 

|number̲token 

→[58] 

|数字句並び 

|number̲token̲list 

→[43] 

[35.1]一般実体名並び= 

[35.1]general̲entity̲name̲list= 

←[35] 

名前並び 

name̲list 

→[39] 

[36]識別子値= 

[36]id̲value= 

←[35] 

名前 

name 

→[55] 

[37]識別子参照並び= 

[37]id̲reference̲list= 

←[35] 

名前並び 

name̲list 

→[39] 

[38]識別子参照値= 

[38]id̲reference̲value= 

←[35] 

名前 

name 

→[55] 

196 

X 4151-1992  

[39]名前並び= 

[39]name̲list= 

←[35, 35.1, 37] 

名前, 

name,  

→[55] 

(SPACE, 

 (SPACE,  

→SPACE(32) 

名前)* 

name) * 

→[55] 

[40]名前字句並び= 

[40]name̲token-list= 

←[35] 

名前字句, 

name̲token,  

→[57] 

(SPACE, 

 (SPACE,  

→SPACE(32) 

名前字句)* 

name̲token) * 

→[57] 

[41]記法名= 

[41]notation̲name= 

←[35, 109, 148,] 

[149.1] 

名前 

name 

→[55] 

[42]数並び= 

[42]number̲list= 

←[35] 

数, 

number,  

→[56] 

(SPACE, 

 (SPACE,  

→SPACE(32) 

数)* 

number) * 

→[56] 

[43]数字句並び= 

[43]number̲token̲list= 

←[35] 

数字句, 

number̲token,  

→[58] 

(SPACE, 

 (SPACE,  

→SPACE(32) 

数字句) 

number̲token) * 

→[58] 

[44]処理指令= 

[44]processing̲instruction= 

←[8, 27, 71] 

pio, 

pio,  

→”<?” 

システムデータ, 

system̲data,  

→[45] 

pic 

pic 

→”>” 

[45]システムデータ= 

[45]system̲data= 

←[44, 75] 

文字データ 

character̲data 

→[47] 

[46]置換可能文字データ= 

[46]replaceable̲character̲data= 

←[24, 34] 

(データ文字 

 (data̲character 

→[48] 

|文字参照 

|character̲reference 

→[62] 

|一般実体参照 

|general̲entity̲reference 

→[59] 

|Ee)* 

|Ee) * 

[47]文字データ= 

[47]character̲data= 

←[24, 35, 45] 

197 

X 4151-1992  

データ文字* 

data̲character* 

→[48] 

[48]データ文字= 

[48]data̲character= 

←[25, 46, 47, 67] 

SGML文字 

SGML̲character 

→[50] 

[49]文字= 

[49]character= 

←[6] 

SGML文字 

SGML̲character 

→[50] 

|NONSGML 

|NONSGML 

[50]SGML文字= 

[50]SGML̲character= 

←[4, 5.1, 5.2, 48,] 

[49, 92, 96] 

マーク文字 

markup̲character 

→[51] 

|DATACHAR 

|DATACHAR 

[51]マーク文字= 

[51]markup̲character= 

←[50] 

名前文字 

name̲character 

→[52] 

|機能文字 

|function̲character 

→[54] 

|DELMCHAR 

|DELMCHAR 

[52]名前文字= 

[52]name̲character= 

←[51, 55, 57, 58] 

名前開始文字 

name̲start̲character 

→[53] 

|Digit 

|Digit 

|LCNMCHAR 

|LCNMCHAR 

|UCNMCHAR 

|UCNMCHAR 

[53]名前開始文字= 

[53]name̲start̲character= 

←[52, 55] 

LC Letter 

LC Letter 

|UC Letter 

|UC Letter 

|LCNMSTRT 

|LCNMSTRT 

|UCNMSTRT 

|UCNMSTRT 

[54]機能文字= 

[54]function̲character= 

←[51] 

RE 

RE 

→CR(13) 

|RS 

|RS 

→LF(10) 

|SPACE 

|SPACE 

→SPACE(32) 

|SEPCHAR 

|SEPCHAR 

→HT(9) 

|MSOCHAR 

|MSOCHAR 

|MSICHAR 

|MSICHAR 

|MSSCHAR 

|MSSCHAR 

|FUNCHAR 

|FUNCHAR 

198 

X 4151-1992  

[55]名前= 

[55]name= 

←[30, 32, 35, 36,] 

[38, 39, 41, 59,] 

[60, 63, 69, 86,] 

[88, 103, 104,] 

[120, 144, 150,] 

[151, 155, 164,] 

[168.1, 180, 187,] 

[191, 193, 194] 

名前開始文字, 

name̲start̲character,  

→[53] 

名前文字* 

name̲character* 

→[52] 

[56]数= 

[56]number= 

←[35, 42, 64, 121,] 

[179, 180, 194,] 

[197, 198, 202] 

Digit+ 

Digit+ 

[57]名前字句= 

[57]name̲token= 

→[35, 40, 68] 

名前文字+ 

name̲character+ 

→[52] 

[58]数字句= 

[58]number̲token= 

←[35, 43] 

Digit, 

Digit,  

名前文字* 

name̲character* 

→[52] 

[59]一般実体参照= 

[59]general̲entity̲reference= 

←[27, 46] 

ero, 

ero,  

→”&” 

名前群?, 

name̲group?,  

→[69] 

名前, 

name,  

→[55] 

参照終了 

reference̲end 

→[61] 

[60]引数実体参照= 

[60]parameter̲entity̲reference= 

←[65, 67, 70, 71] 

pero,  

pero,  

→”%” 

名前群?, 

name̲group?,  

→[69] 

名前, 

name,  

→[55] 

参照終了 

reference̲end 

→[61] 

[61]参照終了= 

[61]reference̲end= 

←[59, 60, 62] 

 (refc 

 (refc 

→”;” 

|RE)? 

|RE) ? 

→CR(13) 

199 

X 4151-1992  

[62]文字参照= 

[62]character̲reference= 

←[27, 46, 67] 

cro, 

cro,  

→”&#” 

(機能名 

 (function̲name 

→[63] 

|文字番号), 

|character̲number),  

→[64] 

参照終了 

reference̲end 

→[61] 

[63]機能名= 

[63]function̲name= 

←[62] 

”RE” 

”RE” 

|”RS” 

|”RS” 

|”SPACE” 

|”SPACE” 

|名前 

|name 

→[55] 

[64]文字番号= 

[64]character̲number= 

←[62, 177, 178,] 

[183, 184, 186] 

数 

number 

→[56] 

[65]ps= 

[65]ps= 

←[73, 97, 101, 104,] 

[106, 107, 108,] 

[109, 110, 116,] 

[118, l19, 122,] 

[126, 138, 141,] 

[142, 143, 146,] 

[147, 148, 149.1,] 

[149.2, 150, 152,] 

[154, 156, 157,] 

[158, 163, 165,] 

[166, 166.1,] 

[168, 168.1, 169,] 

[171, 172, 173,] 

[174, 175, 176,] 

[180, 181, 182,] 

[183, 184, 186,] 

[189, 190, 191,] 

[192, 193, 194,] 

[195, 196, 197,] 

[198, 199, 200,] 

[201, 202, 203,] 

[204] 

→[5] 

|Ee 

|Ee 

200 

X 4151-1992  

|引数実体参照 

|parameter̲entity̲reference 

→[60] 

|注釈 

|comment 

→[92] 

[66]引数表記= 

[66]parameter̲literal= 

←[105, 106, 107,] 

[136, 137, 150,] 

[189, 191, 192] 

(lit, 

 (lit,  

→” ʼ ” 

置換可能引数データ, 

replaceable̲parameter̲data,  

→[67] 

lit) 

lit)  

→” ʼ ” 

|(lita, 

| (lita,  

→” ʼ ” 

置換可能引数データ, 

replaceable̲parameter̲data,  

→[67] 

lita) 

lita)  

→” ʼ ” 

[67]置換可能引数データ= 

[67]replaceable̲parameter̲data= 

←[66] 

(データ文字 

 (data̲character 

→[48] 

|文字参照 

|character̲reference 

→[62] 

|引数実体参照 

|parameter̲entity̲reference 

→[60] 

|Ee)* 

|Ee) * 

[68]名前字句群= 

[68]name̲token̲group= 

←[145] 

grpo, 

grpo,  

→”(” 

ts*, 

ts*, 

→[70] 

名前字句, 

name̲token,  

→[57] 

(ts*, 

 (ts*,  

→[70] 

接続子, 

connector,  

→[131] 

ts*, 

ts*,  

→[70] 

名前字句)*, 

name̲token) *,  

→[57] 

ts*, 

ts*,  

→[70] 

grpc 

grpc 

→”)” 

[69]名前群= 

[69]name̲group= 

←[28, 59, 60, 72,] 

[117, 139, 140,] 

[146, 149.1] 

grpo, 

grpo,  

→”(” 

ts*, 

ts*,  

→[70] 

名前, 

name,  

→[55] 

(ts*, 

 (ts*,  

→[70] 

接続子, 

connector,  

→[131] 

ts*, 

ts*,  

→[70] 

名前)*, 

name) *,  

→[55] 

201 

X 4151-1992  

ts*, 

ts*,  

→[70] 

grpc 

grpc 

→”)” 

[70]ts= 

[70]ts= 

←[68, 69, 119, 127,] 

[133, 134, 135] 

→[5] 

|Ee 

|Ee 

|引数実体参照 

|parameter̲entity̲reference 

→[60] 

[71]ds= 

[71]ds= 

←[113, 114, 115] 

→[5] 

|Ee 

|Ee 

|引数実体参照 

|parameter̲entity̲reference 

→[60] 

|注釈宣言 

|comment̲declaration 

→[91] 

|処理命令 

|processing̲instruction 

→[44] 

|マーク区間宣言 

|marked̲section̲declaration 

→[93] 

[72]結合要素型= 

[72]associated̲element̲type= 

←[141, 152, 165] 

共通識別子 

generic̲identifier 

→[30] 

|名前群 

|name̲group 

→[69] 

[73]外部識別子= 

[73]external̲identifier= 

←[108, 110, 149,] 

[154] 

(”SYSTEM” 

 (”SYSTEM” 

|(”PUBLIC”, 

| (”PUBLIC”,  

ps+, 

ps+,  

→[65] 

公開識別子)), 

public̲identifier)),  

→[74] 

(ps+, 

 (ps+,  

→[65] 

システム識別子)? 

system̲identifier)? 

→[75] 

[74]公開識別子= 

[74]public̲identifier= 

←[73, 174, 180, 183] 

最小表記 

minimum̲literal 

→[76] 

[75]システム識別子= 

[75]system̲identifier= 

←[73] 

(lit, 

 (lit,  

→” ” ” 

システムデータ, 

system̲data,  

→[45] 

lit) 

lit)  

→” ” ” 

|(lita, 

| (lita,  

→” ʼ ” 

システムデータ, 

system̲data,  

→[45] 

lita) 

lita)  

→” ʼ ” 

202 

X 4151-1992  

[76]最小表記= 

[76]minimum̲literal= 

←[74, 171, 176,] 

[199, 200] 

(lit, 

 (lit,  

→” ” ” 

最小データ, 

minimum̲data,  

→[77] 

lit) 

lit)  

→” ” ” 

|(lita, 

| (lita,  

→” ʼ ” 

最小データ, 

minimum̲data,  

→[77] 

lita) 

lita)  

→” ʼ ” 

[77]最小データ= 

[77]minimum̲data= 

←[76, 81, 82, 83,] 

[87, 87.1, 89, 90] 

最小データ文字* 

minimum̲data̲character* 

→[78] 

[78]最小データ文字= 

[78]minimum̲data̲character= 

←[77] 

RS 

RS 

→LF(10) 

|RE 

|RE 

→CR(13) 

|SPACE 

|SPACE 

→SPACE(32) 

|LC Letter 

|LC Letter 

|UC Letter 

|UC Letter 

|Digit 

|Digit 

|Special 

|Special 

[79]公的公開識別子= 

[79]formal̲public̲identifier= 

←[73(1), 174(1),] 

[180(1), 183(1)] 

所有者識別子, 

owner̲identifier,  

→[80] 

”//”, 

”//”,  

文識別子 

text̲identifier 

→[84] 

[80]所有者識別子= 

[80]owner̲identifier= 

←[79] 

ISO所有者識別子 

ISO̲owner̲identifier 

→[81] 

|登録所有者識別子 

|registered̲owner̲identifier 

→[82] 

|未登録所有者識別子 

|unregistered̲owner̲identifier 

→[83] 

[81]ISO所有者識別子= 

[81]ISO̲owner̲identifier= 

←[80] 

最小データ 

minimum̲data 

→[77] 

[82]登録所有者識別子= 

[82]registered̲owner̲identifier= 

←[80] 

”+//”, 

”+//”,  

最小データ 

minimum̲data 

→[77] 

203 

X 4151-1992  

[83]未登録所有者識別子= 

[83]unregistered̲owner̲identifier= 

←[80] 

”−//”, 

”−//”,  

最小データ 

minimum̲data 

→[77] 

[84]文識別子= 

[84]text̲identifier= 

←[79] 

公開文種別, 

public̲text̲class,  

→[86] 

SPACE, 

SPACE,  

→SPACE(32) 

入手不能標識?, 

unavailable̲text̲indicator?,  

→[85] 

公開文記述, 

public̲text̲description,  

→[87] 

”//”, 

”//”,  

注(1) 構文式番号79の公的公開識別子についてSGML宣言の他機構の指定で ”FORMAL YES” が設定

されている場合には,構文式番号74の公開識別子は,公的公開識別子と解釈する。 

(公開文言語 

 (public̲text̲ianguage 

→[88] 

|公開文指示シーケンス), 

|public̲text̲designating̲sequence),  

→[89] 

(”//”, 

 (”//”,  

公開文表示版)? 

public̲text̲display̲version) ? 

→[90] 

[85]入手不能標識= 

[85]unavailable̲text̲indicator= 

←[84] 

”−//” 

“−//” 

[86]公開文種別= 

[86]public̲text̲class= 

←[84] 

名前 

name 

→[55] 

[87]公開文記述= 

[87]public̲text̲description= 

←[84] 

ISO文記述 

ISO̲text̲description 

→[87.1] 

|最小データ 

|minimum̲data 

→[77] 

[87.1]ISO文記述= 

[87.1]ISO̲text̲description= 

←[87] 

最小データ 

minimum̲data 

→[77] 

[88]公開文言語= 

[88]public̲text̲language= 

←[84] 

名前 

name 

→[55] 

[89]公開文指示シーケンス= 

[89]public̲text̲designating̲sequence= 

←[84] 

最小データ 

minimum̲data 

→[77] 

[90]公開文表示版= 

[90]public̲text̲display̲version= 

←[84] 

最小データ 

minimum̲data 

→[77] 

204 

X 4151-1992  

[91]注釈宣言= 

[91]comment̲declaration= 

←[8, 27, 71] 

mdo, 

mdo,  

→”<!” 

(注釈, 

 (comment,  

→[92] 

(s 

 (s 

→[5] 

|注釈)*)?,  

|comment) *) ?,  

→[92] 

mdc 

mdc 

→”>” 

[92]注釈= 

[92]comment= 

←[65, 91] 

com, 

com,  

→”−−” 

SGML文字*, 

SGML̲character*,  

→[50] 

com 

com 

→”−−” 

[93]マーク区間宣言= 

[93]marked̲section̲declaration= 

←[27, 71] 

マーク区間開始, 

marked̲section̲start,  

→[94] 

状態見出し語指定, 

status̲keyword̲specification,  

→[97] 

dso, 

dso,  

→”[” 

マーク区間, 

marked̲section,  

→[96] 

マーク区間終了 

marked̲section̲end 

→[95] 

[94]マーク区間開始= 

[94]marked̲section̲start= 

←[93] 

mdo, 

mdo,  

→”<!” 

dso 

dso 

→”[” 

[95]マーク区間終了= 

[95]marked̲section̲end= 

←[93] 

msc, 

msc,  

→”]]” 

mdc 

mdc 

→“>” 

[96]マーク区間= 

[96]marked̲section= 

←[93] 

SGML文字* 

SGML̲character* 

→[50] 

[97]状態見出し語指定= 

[97]status̲keyword̲specification= 

←[93] 

(ps+, 

 (ps+,  

→[65] 

(状態見出し語 

 (status̲keyword 

→[100] 

|”TEMP”))*, 

|”TEMP”)) *,  

ps* 

ps* 

→[65] 

[98]***削除*** 

[98]***deleted*** 

[99]***削除*** 

[99]***deleted*** 

205 

X 4151-1992  

[100]状態見出し語= 

[100]status̲keyword= 

←[97] 

”CDATA” 

”CDATA” 

|”IGNORE” 

|”IGNORE” 

|”INCLUDE” 

|”INCLUDE” 

|”RCDATA” 

|”RCDATA” 

[101]実体宣言= 

[101]entity̲declaration= 

←[113, 115] 

mdo, 

mdo,  

→”<!” 

”ENTITY”, 

“ENTITY”,  

ps+, 

ps+,  

→[65] 

実体名, 

entity̲name,  

→[102] 

ps+, 

ps+,  

→[65] 

実体文, 

entity̲text,  

→[105] 

ps*,  

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[102]実体名= 

[102]entity̲name= 

←[101] 

一般実体名 

general̲entity̲name 

→[103] 

|引数実体名 

|parameter̲entity̲name 

→[104] 

[103]一般実体名= 

[103]general̲entity̲name= 

←[35, 102] 

名前 

name 

→[55] 

| (rni, 

| (rni,  

→”#” 

”DEFAULT”) 

“DEFAULT”) 

[104]引数実体名= 

[104] parameter̲entity̲name= 

←[102]  

pero, 

pero,  

→”%” 

ps+, 

ps+,  

→[65] 

名前 

name 

→[55] 

[105]実体文= 

[105]entity̲text= 

←[101] 

引数表記 

parameter̲literal 

→[66] 

|データ文 

|data̲text 

→[106] 

|くくった文 

|bracketed̲text 

→[107] 

|外部実体指定 

|external̲entity̲specification 

→[108] 

[106]データ文= 

[106]data̲text= 

←[105] 

 (”CDATA” 

 (”CDATA” 

|”SDATA” 

|”SDATA” 

|”PI”), 

|”PI”),  

206 

X 4151-1992  

ps+,  

ps+,  

→[65] 

引数表記 

parameter̲literal 

→[66] 

[107]くくった文= 

[107]bracketed̲text= 

←[105] 

 (”STARTTAG” 

 (”STARTTAG” 

|”ENDTAG” 

|”ENDTAG” 

|”MS” 

|”MS” 

|”MD”), 

|”MD”),  

ps+, 

ps+,  

→[65] 

引数表記 

parameter̲literal 

→[66] 

[108]外部実体指定= 

[108]external̲entity̲specification= 

←[105] 

外部識別子, 

external̲identifier,  

→[73] 

(ps+, 

 (ps+,  

→[65] 

実体型)? 

entity̲type) ? 

→[109] 

[109]実体型= 

[109]entity̲type= 

←[108] 

”SUBDOC” 

”SUBDOC” 

|((”CDATA” 

| ((”CDATA” 

|”NDATA” 

|”NDATA” 

|”SDATA”), 

|”SDATA”),  

ps+, 

ps+,  

→[65] 

記法名, 

notation̲name,  

→[41] 

データ属性指定?) 

data̲attribute̲specification?)  

→[149.2] 

[110]文書型宣言= 

[110]document̲type̲declaration= 

←[7, 9] 

mdo, 

mdo,  

→”<!” 

”DOCTYPE”, 

”DOCTYPE”,  

ps+, 

ps+,  

→[65] 

文書型名, 

document̲type̲name,  

→[111] 

(ps+, 

 (ps+,  

→[65] 

外部識別子)?, 

external̲identifier) ?,  

→[73] 

(ps+, 

 (ps+,  

→[65] 

dso, 

dso,  

→”[” 

文書型宣言部分集合, 

document̲type̲declaration̲subset,  

→[112] 

dsc)?, 

dsc) ?,  

→”]” 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[111]文書型名= 

[111]document̲type̲name= 

←[110, 159, 160] 

207 

X 4151-1992  

共通識別子 

generic̲identifier 

→[30] 

[112]文書型宣言部分集合= 

[112]document̲type̲declaration̲subset= 

←[110] 

(実体集合 

 (entity̲set 

→[113] 

|要素集合 

|element̲set 

→[114] 

|短縮参照集合)* 

|short reference̲set) * 

→[115] 

[113]実体集合= 

[113]entity̲set= 

←[112, 162] 

(実体宣言 

 (entity̲declaration 

→[101] 

|ds)* 

|ds) * 

→[71] 

[114]要素集合= 

[114]element̲set= 

←[112] 

(要素宣言 

 (element̲declaration 

→[116] 

|属性定義並び宣言 

|attribute̲definition̲list̲declaration 

→[141] 

|記法宣言 

|notation̲declaration 

→[148] 

|ds)* 

|ds) * 

→[71] 

[115]短縮参照集合= 

[115]short̲reference̲set= 

←[112] 

(実体宣言 

 (entity̲declaration 

→[101] 

|短縮参照対応表宣言 

|short̲reference̲mapping̲declaration 

→[150] 

|短縮参照使用宣言 

|short̲reference̲use̲declaration 

→[152] 

|ds)* 

|ds) * 

→[71] 

[116]要素宣言= 

[116]element̲declaration= 

←[114] 

mdo, 

mdo,  

→”<!” 

”ELEMENT” , 

”ELEMENT”,  

ps+, 

ps+,  

→[65] 

要素型, 

element̲type,  

→[117] 

(ps+, 

 (ps+,  

→[65] 

タグ省略最小化)? , 

omitted̲tag̲minimization) ?,  

→[122] 

ps+, 

ps+,  

→[65] 

(宣言内容 

 (declared̲content 

→[125] 

|内容モデル), 

|content-model),  

→[126] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[117]要素型= 

[117]element̲type= 

←[116] 

共通識別子 

generic̲identifier 

→[30] 

|名前群 

|name̲group 

→[69] 

|付番要素 

|ranked̲element 

→[118] 

208 

X 4151-1992  

|付番群 

|ranked̲group 

→[119] 

[118]付番要素= 

[118]ranked̲element= 

←[117] 

付番核, 

rank̲stem,  

→[120] 

ps+, 

ps+,  

→[65] 

付番 

rank̲suffix 

→[121] 

[119]付番群= 

[119]ranked̲group= 

←[117] 

grpo, 

grpo,  

→”(” 

ts*, 

ts*,  

→[70] 

付番核, 

rank̲stem,  

→[120] 

(ts*, 

 (ts*,  

→[70] 

接続子, 

connector,  

→[131] 

ts*, 

ts*,  

→[70] 

付番核)*, 

rank̲stem) *,  

→[120] 

ts*, 

ts*,  

→[70] 

grpc, 

grpc,  

→”)” 

ps+, 

ps+,  

→[65] 

付番 

rank̲suffix 

→[121] 

[120]付番核= 

[120]rank̲stem= 

←[29, 118, 119] 

名前 

name 

→[55] 

[121]付番= 

[121]rank̲suffix= 

←[118, 119] 

数 

number 

→[56] 

[122]タグ省略最小化= 

[122]omitted̲tag̲minimization= 

←[116] 

開始タグ最小化, 

start-tag̲minimization,  

→[123] 

ps+, 

ps+,  

→[65] 

終了タグ最小化 

end-tag̲minimization 

→[124] 

[123]開始タグ最小化= 

[123]start-tag̲minimization= 

←[122] 

”O” 

”O” 

|minus 

|minus 

→”−” 

[124]終了タグ最小化= 

[124]end-tag̲minimization= 

←[122] 

”O” 

”O” 

|minus 

|minus 

→”−” 

[125]宣言内容= 

[125]declared̲content= 

←[116] 

209 

X 4151-1992  

”CDATA” 

”CDATA” 

|”RCDATA” 

|”RCDATA” 

|”EMPTY” 

|”EMPTY” 

[126]内容モデル= 

[126]content̲model= 

←[116] 

(モデル群 

 (model̲group 

→[127] 

|”ANY”), 

|”ANY”),  

(ps+, 

 (ps+,  

→[65] 

例外)? 

exceptions) ? 

→[138] 

[127]モデル群= 

[127]model̲group= 

←[126, 128] 

grpo, 

grpo,  

→”(” 

ts*, 

ts*,  

→[70] 

内容字句, 

content̲token,  

→[128] 

(ts*, 

 (ts*,  

→[70] 

接続子, 

connector,  

→[131] 

ts*, 

ts*,  

→[70] 

内容字句)*, 

content̲token) *,  

→[128] 

ts*, 

ts*,  

→[70] 

grpc, 

grpc,  

→”)” 

出現標識? 

occurrence̲indicator? 

→[132] 

[128]内容字句= 

[128]content̲token= 

←[127] 

素内容字句 

primitive̲content̲token 

→[129] 

|モデル群 

|model̲group 

→[127] 

[129]素内容字句= 

[129]primitive̲content̲token= 

←[128] 

 (rni, 

 (rni,  

→”#” 

”PCDATA”)  

”PCDATA”)  

|要素字句 

|element̲token 

→[130] 

|データタグ群 

|data-tag̲group 

→[133] 

[130]要素字句= 

[130]element̲token= 

←[129] 

共通識別子, 

generic̲identifier,  

→[30] 

出現標識? 

occurrence̲indicator? 

→[132] 

[131]接続子= 

[131]connector= 

←[68, 69, 119, 127] 

and 

and 

→”&” 

|or 

|or 

→”|” 

|seq 

|seq 

→”,” 

210 

X 4151-1992  

[132]出現標識= 

[132]occurrence̲indicator= 

←[127, 130, 133] 

opt 

opt 

→”?” 

|plus 

|plus 

→”+” 

|rep 

|rep 

→”*” 

[133]データタグ群= 

[133]data̲tag̲group= 

←[129] 

dtgo, 

dtgo,  

→”[” 

ts*, 

ts*,  

→[70] 

共通識別子, 

generic̲identifier,  

→[30] 

ts*, 

ts*,  

→[70] 

seq, 

seq,  

→”,” 

ts*, 

ts*,  

→[70] 

データタグ形式, 

data̲tag̲pattern,  

→[134] 

ts*, 

ts*,  

→[70] 

dtgc, 

dtgc,  

→”]” 

出現標識? 

occurrence̲indicator? 

→[132] 

[134]データタグ形式= 

[134]data̲tag̲pattern= 

←[133] 

(データタグひな形群 

 (data̲tag̲template̲group 

→[135] 

|データタグひな形), 

|data̲tag̲template),  

→[136] 

(ts*, 

 (ts*,  

→[70] 

seq, 

seq,  

→”,” 

ts*, 

ts*,  

→[70] 

データタグ埋め草ひな形)? 

data̲tag̲padding̲template) ? 

→[137] 

[135]データタグひな形群= 

[135]data̲tag̲template̲group= 

←[134] 

grpo, 

grpo,  

→”(” 

ts*, 

ts*,  

→[70] 

データタグひな形, 

data̲tag̲template,  

→[136] 

(ts*, 

 (ts*,  

→[70] 

or, 

or,  

→”|” 

ts*, 

ts*,  

→[70] 

データタグひな形)*, 

data̲tag̲template) *,  

→[136] 

ts*, 

ts*,  

→[70] 

grpc 

grpc 

→”)” 

[136]データタグひな形= 

[136]data̲tag̲template= 

←[134, 135] 

引数表記 

parameter̲literal 

→[66] 

211 

X 4151-1992  

[137]データタグ埋め草ひな形= 

[137]data̲tag̲padding̲template= 

←[134] 

引数表記 

parameter̲literal 

→[66] 

[138]例外= 

[138]exceptions= 

←[126] 

(排除要素, 

 (exclusions,  

→[140] 

(ps+, 

 (ps+,  

→[65] 

添加要素)?) 

inclusions) ?)  

→[139] 

|添加要素 

|inclusions 

→[139] 

[139]添加要素= 

[139]inclusions= 

←[138] 

plus, 

plus,  

→”+” 

名前群 

name̲group 

→[69] 

[140]排除要素= 

[140]exclusions= 

←[138] 

minus, 

minus,  

→”−” 

名前群 

name̲group 

→[69] 

[141]属性定義並び宣言= 

[141]attribute̲definition, list̲declaration= 

←[114, 162] 

mdo, 

mdo,  

→”<!” 

”ATTLIST”, 

”ATTLIST”,  

ps+, 

ps+,  

→[65] 

(結合要素型 

 (associated̲element̲type 

→[72] 

|結合記法名), 

|associated̲notation̲name),  

→[149.1] 

ps+, 

ps+,  

→[65] 

属性定義並び, 

attribute̲definition̲list,  

→[142] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[142]属性定義並び= 

[142]attribute̲definition̲list= 

←[141] 

属性定義, 

attribute̲definition,  

→[143] 

(ps+, 

 (ps+,  

→[65] 

属性定義)* 

attribute̲definition) * 

→[143] 

[143]属性定義= 

[143]attribute̲definition= 

←[142] 

属性名, 

attribute̲name,  

→[144] 

ps+, 

ps+,  

→[65] 

宣言値, 

declared̲value,  

→[145] 

ps+, 

ps+,  

→[65] 

省略時値 

default̲value 

→[147] 

212 

X 4151-1992  

[144]属性名= 

[144]attribute̲name= 

←[143] 

名前 

name 

→[55] 

[145]宣言値= 

[145]declared̲value= 

←[143] 

”CDATA” 

”CDATA” 

|”ENTITY” 

|”ENTITY” 

|”ENTITIES” 

|”ENTITIES” 

|”ID” 

|”ID” 

|”IDREF” 

|”IDREF” 

|”IDREFS” 

|”IDREFS” 

|”NAME” 

|”NAME” 

|”NAMES” 

|”NAMES” 

|”NMTOKEN” 

|”NMTOKEN” 

|”NMTOKENS” 

|”NMTOKENS” 

|”NUMBER” 

|”NUMBER” 

|”NUMBERS” 

|”NUMBERS” 

|”NUTOKEN” 

|”NUTOKEN” 

|”NUTOKENS” 

|”NUTOKENS” 

|記法 

|notation 

→[146] 

|名前字句群 

|name̲token̲group 

→[68] 

[146]記法= 

[146]notation= 

←[145] 

”NOTATION”, 

”NOTATION”,  

ps+, 

ps+,  

→[65] 

名前群 

name̲group 

→[69] 

[147]省略時値= 

[147]default̲value= 

←[143] 

((rni, 

 ((rni,  

→”#” 

”FIXED”, 

”FIXED”,  

ps+) ?, 

ps+) ?,  

→[65] 

属性値指定) 

attribute̲value̲specification)  

→[33] 

| (rni, 

| (rni,  

→”#” 

 (”REQUIRED” 

 (”REQUIRED” 

|”CURRENT” 

|”CURRENT” 

|”CONREF” 

|”CONREF” 

|”IMPLIED”))  

|”IMPLIED”))  

[148]記法宣言= 

[148]notation̲declaration= 

←[114] 

mdo, 

mdo,  

→”<!” 

”NOTATION”, 

”NOTATION”,  

213 

X 4151-1992  

ps+, 

ps+,  

→[65] 

記法名, 

notation̲name,  

→[41] 

ps+, 

ps+,  

→[65] 

記法識別子, 

notation̲identifier,  

→[149] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[149]記法識別子= 

[149]notation̲identifier= 

←[148] 

外部識別子 

external̲identifier 

→[73] 

[149.1]結合記法名= 

[149.1]associated̲notation̲name= 

←[141] 

rni, 

rni,  

→”#” 

”NOTATION”, 

”NOTATION”,  

ps+, 

ps+,  

→[65] 

(記法名 

 (notation̲name 

→[41] 

|名前群) 

|name̲group)  

→[69] 

[149.2]データ属性指定= 

[149.2]data attribute̲specification= 

←[l09] 

ps+, 

ps+,  

→[65] 

dso, 

dso,  

→”[” 

属性指定並び, 

attribute̲specification̲list,  

→[31] 

s*, 

s*,  

→[5] 

dsc 

dsc 

→”]” 

[150]短縮参照対応表宣言= 

[150]short̲reference̲mapping̲declaration= 

←[115] 

mdo, 

mdo,  

→”<!” 

”SHORTREF”, 

”SHORTREF”,  

ps+, 

ps+,  

→[65] 

対応表名, 

map̲name,  

→[151] 

(ps+, 

 (ps+,  

→[65] 

引数表記, 

parameter̲literal,  

→[66] 

ps+, 

ps+,  

→[65] 

名前)+, 

name) +,  

→[55] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[151]対応表名= 

[151]map̲name= 

←[150, 153] 

名前 

name 

→[55] 

[152]短縮参照使用宣言= 

[152]short̲reference̲use̲declaration= 

←[27, 115] 

mdo, 

mdo,  

→”<!” 

214 

X 4151-1992  

”USEMAP”, 

”USEMAP”,  

ps+, 

ps+,  

→[65] 

対応表指定, 

map̲specification,  

→[153] 

(ps+, 

 (ps+,  

→[65] 

結合要素型)?, 

associated̲element̲type) ?,  

→[72] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[153]対応表指定= 

[153]map̲specification= 

←[152] 

対応表名 

map̲name 

→[151] 

| (rni, 

| (rni,  

→”#” 

“EMPTY”)  

“EMPTY”)  

[154]連結型宣言= 

[154]link̲type̲declaration= 

←[7] 

mdo, 

mdo,  

→”<!” 

”LINKTYPE”, 

”LINKTYPE”,  

ps+, 

ps+,  

→[65] 

連結型名, 

link̲type̲name,  

→[155] 

ps+, 

ps+,  

→[65] 

(単純連結指定 

 (simple̲link̲specification 

→[156] 

|暗黙連結指定 

|implicit̲link̲specification 

→[157] 

|明示連結指定), 

|explicit̲link̲specification),  

→[158] 

(ps+, 

 (ps+,  

→[65] 

外部識別子)?, 

external̲identifier) ?,  

→[73] 

(ps+, 

 (ps+,  

→[65] 

dso, 

dso,  

→”[” 

連結型宣言部分集合, 

link̲type̲declaration̲subset,  

→[161] 

dsc)?, 

dsc) ?,  

→”]” 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[155]連結型名= 

[155]link̲type̲name= 

←[154, 169] 

名前 

name 

→[55] 

[156]単純連結指定= 

[156]simple, link̲specification= 

←[154] 

rni, 

rni,  

→”#” 

”SIMPLE”, 

”SIMPLE”,  

ps+, 

ps+,  

→[65] 

rni, 

rni,  

→”#” 

”IMPLIED” 

”IMPLIED” 

215 

X 4151-1992  

[157]暗黙連結指定= 

[157]implicit̲link̲specification= 

←[154] 

原始文書型名, 

source̲document̲type̲name,  

→[159] 

ps+, 

ps+,  

→[65] 

rni, 

rni,  

→”#” 

”IMPLIED” 

”IMPLIED” 

[158]明示連結指定= 

[158]explicit̲link̲specification= 

←[154] 

原始文書型名, 

source̲document̲type̲name,  

→[159] 

ps+, 

ps+,  

→[65] 

結果文書型名 

result̲document̲type̲name 

→[160] 

[159]原始文書型名= 

[159]source̲document̲type̲name= 

←[157, 158] 

文書型名 

document̲type̲name 

→[111] 

[160]結果文書型名= 

[160]result̲document̲type̲name= 

←[158] 

文書型名 

document̲type̲name 

→[111] 

[161]連結型宣言部分集合= 

[161]link̲type̲declaration̲subset= 

←[154] 

(連結属性集合 

 (link̲attribute̲set 

→[162] 

|連結集合宣言)*, 

|link̲set̲declaration) *,  

→[163] 

識別子連結集合宣言?, 

ID̲link̲set̲declaration?,  

→[168.1] 

(連結属性集合 

 (link̲attribute̲set 

→[162] 

|連結集合宣言)* 

|link̲set̲declaration) * 

→[163] 

[162]連結属性集合= 

[162]link̲attribute̲set= 

←[161] 

(属性定義並び宣言 

 (attribute̲definition̲list̲declaration 

→[141] 

|実体集合)* 

|entity̲set) * 

→[113] 

[163]連結集合宣言= 

[163]link̲set̲declaration= 

←[161] 

mdo, 

mdo,  

→”<!” 

”LINK”, 

”LINK”,  

ps+, 

ps+,  

→[65] 

連結集合名, 

link̲set̲name,  

→[164] 

(ps+, 

 (ps+,  

→[65] 

連結規則)+, 

link̲rule) +,  

→[163.1] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[163.1]連結規則= 

[163.1]link̲rule= 

←[163, 168.1] 

216 

X 4151-1992  

原始要素指定 

source̲element̲specification 

→[165] 

|明示連結規則 

|explicit̲link̲rule 

→[166.1] 

[164]連結集合名= 

[164llink̲set̲name= 

←[163, 165, 170] 

名前 

name 

→[55] 

| (rni, 

| (rni,  

→”#” 

”INITIAL”)  

“INITIAL”)  

[165]原始要素指定= 

[165]source̲element̲specification= 

←[163.1, 166.1] 

結合要素型, 

associated̲element̲type,  

→[72] 

 (ps+, 

 (ps+,  

→[65] 

rni, 

rni,  

→”#” 

”USELINK”, 

”USELINK”,  

ps+, 

ps+,  

→[65] 

(連結集合名 

 (link̲setname 

→[164] 

|(rni, 

| (rni,  

→”#” 

”EMPTY”)))?, 

”EMPTY”))) ?,  

(ps+, 

 (ps+,  

→[65] 

rni, 

rni,  

→”#” 

”POSTLINK”, 

“POSTLINK”,  

ps+, 

ps+,  

→[65] 

連結集合指定)?, 

link̲set̲specification) ?,  

→[170] 

連結属性指定? 

link̲attribute̲specification? 

→[166] 

[166]連結属性指定= 

[166]link̲attribute̲specification= 

←[165] 

ps+, 

ps+,  

→[65] 

dso, 

dso,  

→”[“ 

属性指定並び, 

attribute̲specification̲list,  

→[31] 

s*, 

s*,  

→[5] 

dsc 

dsc 

→”]” 

[166.1]明示連結規則= 

[166.1]explicit̲link̲rule= 

←[163.1] 

(原始要素指定, 

 (source̲element̲specification,  

→[165] 

ps+, 

ps+,  

→[65] 

結果要素指定) 

result̲element̲specification)  

→[167] 

|(原始要素指定, 

| (source̲element̲specification,  

→[165] 

ps+, 

ps+,  

→[65] 

rni, 

rni,  

→”#” 

”IMPLIED”) 

”IMPLIED”)  

|(rni, 

| (rni,  

→”#” 

217 

X 4151-1992  

”IMPLIED”, 

”IMPLIED”,  

ps+, 

ps+,  

→[65] 

結果要素指定) 

result̲element̲specification)  

→[167] 

[167]結果要素指定= 

[167]result̲element̲specification= 

←[166.1] 

共通識別子, 

generic̲identifier,  

→[30] 

結果属性指定? 

result̲attribute̲specification? 

→[168] 

[168]結果属性指定= 

[168]result̲attribute̲specification= 

←[167] 

ps+, 

ps+,  

→[65] 

dso, 

dso,  

→”[” 

属性指定並び, 

attribute̲specification̲list,  

→[31] 

s*, 

s*,  

→[5] 

dsc 

dsc 

→”]” 

[168.1]識別子連結集合宣言= 

[168.1]ID̲link̲set̲declaration= 

←[161] 

mdo, 

mdo,  

→”<!” 

”IDLINK”, 

”IDLINK”,  

(ps+, 

 (ps+,  

→[65] 

名前, 

name,  

→[55] 

ps+, 

ps+,  

→[65] 

連結規則)+, 

link̲rule) +,  

→[163.1] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[169]連結集合使用宣言= 

[169]link̲set̲use̲declaration= 

←[27] 

mdo, 

mdo,  

→”<!” 

”USELINK”, 

”USELINK”,  

ps+, 

ps+,  

→[65] 

連結集合指定, 

link̲set̲specification,  

→[170] 

ps+, 

ps+,  

→[65] 

連結型名, 

link̲type̲name,  

→[155] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[170]連結集合指定= 

[170]link̲set̲specification= 

←[165, 169] 

連結集合名 

link̲set̲name 

→[164] 

| (rni, 

| (rni,  

→”#” 

”EMPTY”)  

”EMPTY”)  

| (rni, 

| (rni,  

→”#” 

218 

X 4151-1992  

”RESTORE”)  

“RESTORE”)  

[171]SGML宣言= 

[171]SGML̲declaration= 

←[2] 

mdo, 

mdo,  

→”<!” 

”SGML”, 

”SGML”,  

ps+, 

ps+,  

→[65] 

最小表記, 

minimum̲literal,  

→[76] 

”ISO8879-1986” 

ps+, 

ps+,  

→[65] 

文書文字集合, 

document̲character̲set,  

→[172] 

ps+, 

ps+,  

→[65] 

容量集合, 

capacity̲set,  

→[180] 

ps+, 

ps+,  

→[65] 

具象構文範囲, 

concrete̲syntax̲scope,  

→[181] 

ps+, 

ps+,  

→[65] 

具象構文, 

concrete̲syntax,  

→[182] 

ps+, 

ps+,  

→[65] 

機構使用, 

feature̲use,  

→[195] 

ps+, 

ps+,  

→[65] 

応用特有情報, 

application-specific̲information,  

→[199] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[172]文書文字集合= 

[172]document̲character̲set= 

←[171, 200] 

”CHARSET”, 

”CHARSET”,  

ps+, 

ps+,  

→[65] 

文字集合記述 

character̲set̲description 

→[173] 

[173]文字集合記述= 

[173]character̲set̲description= 

←[172, 185] 

基本文字集合, 

base̲character̲set,  

→[174] 

ps+, 

ps+,  

→[65] 

文字集合区分, 

described̲character̲set̲portion,  

→[175] 

(ps+, 

 (ps+,  

→[65] 

基本文字集合, 

base̲character̲set,  

→[174] 

ps+, 

ps+,  

→[65] 

文字集合区分)* 

described̲character̲set̲portion) * 

→[175] 

[174]基本文字集合= 

[174]base̲character̲set= 

←[173] 

”BASESET”, 

”BASESET”,  

ps+, 

ps+,  

→[65] 

219 

X 4151-1992  

公開識別子 

public̲identifier 

→[74] 

[175]文字集合区分= 

[175]described̲character̲set̲portion= 

←[173] 

”DESCSET”, 

”DESCSET”,  

(ps+, 

 (ps+,  

→[65] 

文字記述)+ 

character̲description) + 

→[176] 

[176]文字記述= 

[176]character̲description= 

←[175] 

先頭文字番号, 

described̲set̲character̲number,  

→[177] 

ps+, 

ps+,  

→[65] 

文字個数, 

number̲of̲characters,  

→[179] 

ps+, 

ps+,  

→[65] 

(基本集合文字番号 

 (base̲set̲character̲number 

→[178] 

|最小表記 

|minimum̲literal 

→[76] 

|”UNUSED”) 

|”UNUSED”)  

[177]先頭文字番号= 

[177]described̲set̲character̲number= 

←[176] 

文字番号 

character̲number 

→[64] 

[178]基本集合文字番号= 

[178]base̲set̲character̲number= 

←[176] 

文字番号 

character̲number 

→[64] 

[179]文字個数= 

[179]number̲of̲characters= 

←[176] 

数 

number 

→[56] 

[180]容量集合= 

[180]capacity̲set= 

←[171, 200] 

”CAPACITY”, 

”CAPACITY”,  

ps+, 

ps+,  

→[65] 

((”PUBLIC”, 

 ((”PUBLIC”,  

ps+, 

ps+,  

→[65] 

公開識別子) 

public̲identifier)  

→[74] 

|(”SGMLREF”, 

| (”SGMLREF”,  

(ps+, 

 (ps+,  

→[65] 

名前, 

name,  

→[55] 

ps+, 

ps+,  

→[65] 

数)+)) 

number) +))  

→[56] 

[181]具象構文範囲= 

[181]concrete̲syntax̲scope= 

←[171, 200] 

”SCOPE”, 

”SCOPE”,  

ps+, 

ps+,  

→[65] 

220 

X 4151-1992  

 (”DOCUMENT” 

 (”DOCUMENT” 

|”INSTANCE”)  

|”INSTANCE”)  

[182]具象構文= 

[182]concrete̲syntax= 

←[171, 201] 

”SYNTAX”, 

”SYNTAX”,  

ps+, 

ps+,  

→[65] 

(公開具象構文 

 (public̲concrete̲syntax 

→[183] 

|(回避文字番号指定, 

| (shunned̲character̲number̲identification, →[184] 

ps+, 

ps+,  

→[65] 

構文参照文字集合, 

syntax-reference̲character̲set,  

→[185] 

ps+, 

ps+,  

→[65] 

機能文字指定, 

function̲character̲identification,  

→[186] 

ps+, 

ps+,  

→[65] 

命名方法, 

naming̲rules,  

→[189] 

ps+, 

ps+,  

→[65] 

区切り子集合, 

delimiter̲set,  

→[190〕 

ps+, 

ps+,  

→[65] 

予約名使用, 

reserved̲name̲use,  

→[193] 

ps+, 

ps+,  

→[65] 

量集合)) 

quantity̲set))  

→[194] 

[183]公開具象構文= 

 [183]public̲concrete̲syntax= 

←[182] 

”PUBLIC”, 

”PUBLIC”,  

ps+, 

ps+,  

→[65] 

公開識別子, 

public̲identifier,  

→[74] 

 (ps+, 

 (ps+,  

→[65] 

”SWITCHES”, 

“SWITCHES”,  

(ps+, 

 (ps+,  

→[65] 

文字番号, 

character̲number,  

→[64] 

ps+, 

ps+,  

→[65] 

文字番号)+) ? 

character̲number) +) ? 

→[64] 

[184]回避文字番号指定= 

[184]shunned̲character̲number̲identification= ←[182] 

”SHUNCHAR”, 

”SHUNCHAR”,  

ps+, 

ps+,  

→[65] 

(”NONE” 

 (“NONE” 

|((”CONTROLS” 

| ((“CONTROLS” 

|文字番号), 

|character̲number),  

→[64] 

(ps+, 

 (ps+,  

→[65] 

文字番号)*)) 

character̲number) *))  

→[64] 

221 

X 4151-1992  

[185]構文参照文字集合= 

[185]syntax-reference̲character̲set= 

←[182] 

文字集合記述 

character̲set̲description 

→[173] 

[186]機能文字指定= 

[186]function̲character̲identification= 

←[182] 

”FUNCTION”, 

”FUNCTION”,  

ps+, 

ps+,  

→[65] 

”RE”, 

”RE”,  

ps+, 

ps+,  

→[65] 

文字番号, 

character̲numbcr,  

→[64] 

ps+, 

ps+,  

→[65] 

”RS”, 

”RS”,  

ps+, 

ps+,  

→[65] 

文字番号, 

character̲number,  

→[64] 

ps+, 

ps+,  

→[65] 

”SPACE”, 

”SPACE”,  

ps+, 

ps+,  

→[65] 

文字番号, 

character̲number,  

→[64] 

(ps+, 

 (ps+,  

→[65] 

追加機能, 

added̲function,  

→[187] 

ps+, 

ps+,  

→[65] 

機能種別, 

function̲class,  

→[188] 

ps+, 

ps+,  

→[65] 

文字番号)* 

character̲number) * 

→[64] 

[187]追加機能= 

[187]added̲function= 

←[186] 

名前 

name 

→[55] 

[188]機能種別= 

[188]function̲class= 

←[186] 

”FUNCHAR” 

”FUNCHAR” 

|”MSICHAR” 

|”MSICHAR” 

|”MSOCHAR” 

|”MSOCHAR” 

|”MSSCHAR” 

|”MSSCHAR” 

|”SEPCHAR” 

|”SEPCHAR” 

[189]命名方法= 

[189]naming̲rules= 

←[182] 

”NAMING”, 

”NAMING”,  

ps+, 

ps+,  

→[65] 

”LCNMSTRT”, 

”LCNMSTRT”,  

ps+, 

ps+,  

→[65] 

222 

X 4151-1992  

引数表記, 

parameter̲literal,  

→[66] 

ps+, 

ps+,  

→[65] 

”UCNMSTRT”, 

”UCNMSTRT”,  

ps+, 

ps+,  

→[65] 

引数表記, 

parameter̲literal,  

→[66] 

ps+, 

ps+,  

→[65] 

”LCNMCHAR”, 

”LCNMCHAR”,  

ps+, 

ps+,  

→[65] 

引数表記, 

parameter̲literal,  

→[66] 

ps+, 

ps+,  

→[65] 

”UCNMCHAR”, 

”UCNMCHAR”,  

ps+, 

ps+,  

→[65] 

引数表記, 

parameter̲literal,  

→[66] 

ps+, 

ps+,  

→[65] 

”NAMECASE”, 

”NAMECASE”,  

ps+, 

ps+,  

→[65] 

”GENERAL”, 

”GENERAL”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”ENTITY”, 

”ENTITY”,  

ps+, 

ps+, 

→[65] 

 (“NO” 

 (”NO” 

|”YES”)  

|”YES”)  

[190]区切り子集合= 

[190]delimiter̲set= 

←[182] 

”DELIM”, 

”DELIM”,  

ps+, 

ps+,  

→[65] 

一般区切り子, 

general̲delimiters,  

→[191] 

ps+, 

ps+,  

→[65] 

短縮参照区切り子 

short̲reference̲delimiters 

→[192] 

[191]一般区切り子= 

[191]general̲delimiters= 

←[190] 

”GENERAL”, 

”GENERAL”,  

ps+, 

ps+,  

→[65] 

”SGMLREF”, 

”SGMLREF”,  

(ps+, 

 (ps+,  

→[65] 

名前, 

name,  

→[55] 

ps+, 

ps+,  

→[65] 

223 

X 4151-1992  

引数表記)* 

parameter̲literal) * 

→[66] 

[192]短縮参照区切り子= 

[192]short̲reference̲delimiters= 

←[190] 

”SHORTREF”, 

”SHORTREF”,  

ps+, 

ps+,  

→[65] 

 (”SGMLREF” 

 (”SGMLREF” 

|”NONE”), 

|”NONE”),  

(ps+, 

 (ps+,  

→[65] 

引数表記)* 

parameter̲literal) * 

→[66] 

[193]予約名使用= 

[193]reserved̲name̲use= 

←[182] 

”NAMES”, 

”NAMES”,  

ps+, 

ps+,  

→[65] 

”SGMLREF”, 

”SGMLREF”,  

(ps+, 

 (ps+,  

→[65] 

名前, 

name,  

→[55] 

ps+, 

ps+,  

→[65] 

名前)* 

name) * 

→[55] 

[194]量集合= 

[194]quantity̲set= 

←[182] 

”QUANTITY”, 

”QUANTITY”,  

ps+, 

ps+,  

→[65] 

”SGMLREF”, 

”SGMLREF”,  

(ps+, 

 (ps+,  

→[65] 

名前, 

name,  

→[55] 

ps+, 

ps+,  

→[65] 

数)* 

number) * 

→[56] 

[195]機構使用= 

[195]feature̲use= 

←[171, 200] 

”FEATURES”, 

”FEATURES”,  

ps+, 

ps+,  

→[65] 

マーク最小化機構, 

markup̲minimization̲features,  

→[196] 

ps+, 

ps+,  

→[65] 

連結型機構, 

link̲type̲features,  

→[197] 

ps+, 

ps+,  

→[65] 

他機構 

other̲features 

→[198] 

[196]マーク最小化機構= 

[196]markup̲minimization̲features= 

←[195] 

”MINIMIZE”, 

”MINIMIZE”,  

ps+, 

ps+,  

→[65] 

224 

X 4151-1992  

”DATATAG”, 

”DATATAG”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”OMITTAG”, 

”OMITTAG”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”RANK”, 

”RANK”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

 |”YES”),  

ps+, 

ps+,  

→[65] 

”SHORTTAG”, 

”SHORTTAG”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”)  

|”YES”)  

[197]連結型機構= 

[197]link̲type̲features= 

←[195] 

”LINK”, 

”LINK”,  

ps+, 

ps+,  

→[65] 

”SIMPLE”, 

”SIMPLE”,  

ps+, 

ps+,  

→[65] 

(”NO” 

 (”NO” 

|(”YES”, 

| (”YES”,  

ps+, 

ps+,  

→[65] 

数)), 

number)),  

→[56] 

ps+, 

ps+,  

→[65] 

”IMPLICIT”, 

”IMPLICIT”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”EXPLICIT”, 

”EXPLICIT”,  

ps+, 

ps+,  

→[65] 

(”NO” 

 (”NO” 

|(”YES”, 

| (”YES”,  

ps+, 

ps+,  

→[65] 

数)) 

number))  

→[56] 

225 

X 4151-1992  

[198]他機構= 

[198]other̲features= 

←[195] 

”OTHER”, 

”OTHER”,  

ps+, 

ps+,  

→[65] 

”CONCUR”, 

”CONCUR”,  

ps+, 

ps+,  

→[65] 

(”NO” 

 (”NO” 

|(”YES”, 

| (”YES”,  

ps+, 

ps+,  

→[65] 

数)), 

number)),  

→[56] 

ps+, 

ps+,  

→[65] 

”SUBDOC”, 

”SUBDOC”,  

ps+, 

ps+,  

→[65] 

(”NO” 

 (”NO” 

|(”YES”, 

| (”YES”,  

ps+, 

ps+,  

→[65] 

数)), 

number)),  

→[56] 

ps+, 

ps+,  

→[65] 

”FORMAL”, 

”FORMAL”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”)  

|”YES”)  

[199]応用特有情報= 

[199]application-specific̲information= 

←[171] 

”APPINFO”, 

”APPINFO”,  

ps+, 

ps+,  

→[65] 

(”NONE” 

 (”NONE” 

|最小表記) 

|minimum̲literal)  

→[76] 

[200]システム宣言= 

[200]system̲declaration= 

←[[]] 

mdo, 

mdo,  

→”<!” 

”SYSTEM”, 

”SYSTEM”,  

ps+, 

ps+,  

→[65] 

最小表記, 

minimum, literal,  

→[76] 

ps+, 

ps+,  

→[65] 

文書文字集合, 

document̲character̲set,  

→[172] 

ps+, 

ps+,  

→[65] 

容量集合, 

capacity̲set,  

→[180] 

ps+, 

ps+,  

→[65] 

機構使用, 

feature̲use,  

→[195] 

226 

X 4151-1992  

ps+, 

ps+,  

→[65] 

具象構文範囲, 

concrete̲syntax̲scope,  

→[181] 

ps+, 

ps+,  

→[65] 

提供具象構文, 

concrete̲syntaxes̲supported,  

→[201] 

ps+, 

ps+,  

→[65] 

検定能力, 

validation̲services,  

→[203] 

ps+, 

ps+,  

→[65] 

SDIF能力, 

SDIF̲support,  

→[204] 

ps*, 

ps*,  

→[65] 

mdc 

mdc 

→”>” 

[201]提供具象構文= 

[201]concrete̲syntaxes̲supported= 

←[200] 

(ps+, 

 (ps+,  

→[65] 

具象構文, 

concrete̲syntax,  

→[182] 

(ps+, 

 (ps+,  

→[65] 

具象構文変更点)?)+ 

concrete̲syntax̲changes) ?) + 

→[202] 

[202]具象構文変更点= 

[202]concrete̲syntax̲changes= 

←[201] 

”CHANGES”, 

”CHANGES”,  

ps+, 

ps+,  

→[65] 

(”SWITCHES” 

 (”SWITCHES” 

|(”DELIMLEN”, 

| (”DELIMLEN”,  

ps+, 

ps+,  

→[65] 

数, 

number,  

→[56] 

ps+, 

ps+,  

→[65] 

”SEQUENCE”, 

”SEQUENCE”,  

ps+, 

ps+,  

→[65] 

 (”YES” 

 (”YES” 

|”NO”), 

|”NO”),  

ps+, 

ps+,  

→[65] 

”SRCNT”, 

”SRCNT”,  

ps+, 

ps+,  

→[65] 

数, 

number,  

→[56] 

”SRLEN”, 

”SRLEN”,  

ps+, 

ps+,  

→[65] 

数)) 

number))  

→[56] 

[203]検定能力= 

[203]validation̲services= 

←[200] 

”VALIDATE”, 

”VALIDATE”,  

ps+, 

ps+,  

→[65] 

227 

X 4151-1992  

”GENERAL” 

”GENERAL” 

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”MODEL”, 

”MODEL”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”EXCLUDE”, 

”EXCLUDE”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”CAPACITY”, 

”CAPACITY”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”NONSGML”, 

”NONSGML”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”SGML”, 

”SGML”,  

ps+, 

ps+,  

→[65] 

 (“NO” 

 (“NO” 

|”YES”), 

|”YES”),  

ps+, 

ps+,  

→[65] 

”FORMAL”, 

”FORMAL”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

|”YES”)  

|”YES”)  

[204]SDIF能力= 

[204]SDIF̲support= 

←[200] 

”SDIF”, 

”SDIF”,  

ps+, 

ps+,  

→[65] 

”PACK”, 

”PACK”,  

ps+, 

ps+,  

→[65] 

228 

X 4151-1992  

 (”NO” 

 (”NO” 

| (”YES”, 

| (”YES”,  

 (ps+, 

 (ps+,  

→[65] 

”ASN1”) ?)), 

”ASN1”) ?)),  

ps+, 

ps+,  

→[65] 

”UNPACK”, 

”UNPACK”,  

ps+, 

ps+,  

→[65] 

 (”NO” 

 (”NO” 

| (”YES”, 

| (”YES”,  

 (ps+, 

 (ps+,  

→[65] 

”ASN1”) ?))  

”ASN1”) ?))  

JIS X 4151の原案作成委員会 構成表 

氏名 

所属 

(主査) 

若 鳥 陸 夫 

日本ユニシス株式会社 

(幹事) 

小 町 祐 史 

松下電送株式会社 

有 賀 英 雄 

株式会社東芝 

小野沢 賢 三 

写研株式会社 

広 沢 祥 泰 

日本電気株式会社 

小 林   茂 

日本ユニシス株式会社 

田 中 洋 一 

凸版印刷株式会社 

坪 倉   孝 

富士通株式会社 

富 岡 政 人 

シャープ株式会社 

松 田 泰 昌 

株式会社日立製作所 

山 崎 俊 一 

ジーク株式会社 

渡 辺 信 一 

大日本印刷株式会社 

内 田 富 雄 

工業技術院標準部情報規格課 

(事務局) 

神 田 芳 数 

財団法人日本規格協会