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

X 4151-1992

(1) 

目次

ページ

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


日本工業規格

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


2

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.に規定する。

更に,追加情報を含む

参考 111 があるが,それらはこの規定の一部ではない。

SGML

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

はない。そこで

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

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

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

いる。


3

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)   この規格に従ってその文字がマーク又はデータとして解釈される実体。


4

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)    規格参照具象構文から短縮参照区切り子を除いたもの。


5

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 及び記録


6

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)   その引数によって,対応するマーク宣言の対象と結合されて

いる要素型。


7

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)    提供される装置機能又は使用される符号化方式を記述す

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

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


8

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 システムの文書に含まれる機構,容量集合,具象

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


9

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.  単一の手続きは,一つ以上の要素型と関連付けられ,一つ以上の手続きが文書中の異なる位

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

2

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

(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 データ実体 (nonSGML data entity)   この規格に従って解釈されない文字をもつ実体

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

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

る。

(206)

非 SGML 文字 (nonSGML 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 の抽象構文は,形式的な生成規則によって“構文変数”を定義することで

規定する。生成規則は,次のとおり,定義しようとする構文変数,等号及び定義内容を示す式で構成し,

その右に参照番号をふる。


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)

区切り子機能  区切り子を表す構文字句。区切り子機能は,表 のとおりとする。表 には,一般区

切り子機能に規格参照具象構文で割り当てる文字列も示す。区切り子機能 shortref に規格参照具象構

文で割り当てる文字列は,

表 に示す。

例  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


22

X 4151-1992

区切り子機能

名前

文字列

文字番号

認知様相

制約

機能

rni 

RNI #

35

GRP

MD

予約名の標識

seq 

SEQ ,

44

GRP

接続子 seq

shortref 

SHORTREF

CON

短縮参照(

表 参照)

stago 

STAGO <

60  CON

TAG

開始タグの開始

tagc 

TAGC >

62 CXT

TAG

GI

タグの終了

vi 

VI

= 61

TAG

値標識

表 4  規格参照区切り子集合(短縮参照)

文字列

文字番号

名称

&#TAB; 9

水平タブ

&#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 を除く終端

変数は,

表 のとおりとする。これらの文字種別の文字は,具象構文で割り当てる。

備考  終端変数 NONSGML の文字種別の文字は,文書文字集合で割り当てる(12.1.2 参照)。

例 DATACHAR,NONSGML

表 2  具象構文−終端変数

終端変数

文字

文字番号

名称

DATACHAR

(間接的) (間接的) データ文字

DELMCHAR

(間接的) (間接的) 区切り子文字


23

X 4151-1992

終端変数

文字

文字番号

名称

FUNCHAR

(なし)

(なし)

休止機能文字

LCNMCHAR

−. 45

46

名前文字(小文字)

LCNMSTRT

(なし)

(なし)

名前開始文字(小文字)

MSICHAR

(なし)

(なし)

マーク認知開始文字

MSOCHAR

(なし)

(なし)

マーク認知終了文字

MSSCHAR

(なし)

(なし)

マーク認知抑制文字

RE

13

記録終了文字

RS

10

記録開始文字

SEPCHAR

9

分離子文字

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

=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.16.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.16.8.1.2 を適用する。

6.8.1.1

完全な共通識別子  付番要素に対してその開始タグに完全な共通識別子を指定した場合,その共

通識別子の付番部分は,その付番要素の付番核の現番号となり,更に,その付番核が成分となっている付

番群のすべての付番核の現番号ともなる。

6.8.1.2

付番核  共通識別子指定を付番核としてもよいのは,その付番核が,適用可能な要素宣言の付番

要素又は付番群の成分として指定してある場合に限る。

付番核を指定することは,その後ろにその付番核の現番号をつないでできる共通識別子を指定したのと

同値とする。

付番核の指定は,その付番核に対して現番号を定める要素がその前に現れていなければ,誤りとする。

6.9

属性指定並び

属性指定並び  =属性指定* 

(31)

属性指定

s*,(名前,s*vis*)?,属性値指定 

(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

のとおりとする。一般区切り子については,規格参照区切り子集合として割り当てる文字列及びそれらの

文字の規格参照具象構文の構文参照文字集合での文字番号も,

表 に示す。短縮参照区切り子については,

規格参照区切り子集合として割り当てる文字列を,

表 に示す。

備考  区切り子又は文脈依存区切り子は,その最初の文字に限って,名前指定文字参照(名前による

文字参照)を使って与えることができる。

区切り子又は文脈依存区切り子(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

名前開始文字,comdso 又は 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

容量  文書の大きさ及び複雑さは,その文書の中の個々の対象について,その容量点の合計が文書

容量集合で許容する容量値以下でなければならない。

全容量の名前,個々の容量の名前及びそれらに規格参照容量集合で割り当てる容量値は,

表 のとおり

とする。この集合の公開識別子は,次のとおりとする。

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),


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

1

実体文の文字

ELEMCAP 35

000

NAMELEN

定義した要素

GRPCAP 35

000

NAMELEN

内容モデルの中の内容字句

EXGRPCAP 35

000

NAMELEN

排除要素・添加要素のある群

EXNMCAP 35

000

NAMELEN

排除要素・添加要素のある群の中の名前

ATTCAP 35

000

NAMELEN

定義した属性

ATTCHCAP 35

000

1

属性の省略時値の文字(見出し語は含めない。

AVGRPCAP 35

000

NAMELEN

属性値としての名前群・名前字句群の中の字句

NOTCAP 35

000

NAMELEN

定義したデータ内容記法

NOTCHCAP 35

000

1

記法識別子の文字

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)

マーク区間開始  =mdodso 

(94)

マーク区間終了  =msomdc 

(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

接続子

接続子  =andorseq 

(131)

モデル群の中に複数の内容字句がある場合,対応する要素の出現順序及び選択は,

その接続子に応じて,

次の(1)(3)のとおりでなければならない。

(1)  and

すべてが現れなければならないが,その順序は任意でよい。

(2)  or  

その中の 1 個だけが現れなければならない。


50

X 4151-1992

(3)  seq

すべてが指定の順序で現れなければならない。

1

個のモデル群の中では,1 種類の接続子だけを使わなければならない(入れ子になったモデル群には,

別の接続子を使ってもよい。

モデル群が 1 個の内容字句からなる場合,そのモデル群は,接続子 seq が指定してあるものとして扱う。

10.2.4.2

出現標識

出現標識  =optplusrep 

(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” の前で終わっているかどうかから,あいまいさ

なく決まる(内容モデルについての理論的な基礎付けは,

参考 に示す。)。

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)

容量集合の中に指定する名前は,

表 に示す容量値の名前でなければならない。その名前の容量値には,


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)

一般区切り子の中に指定する名前は,

表 での一般区切り子の名前でなければならない。この一般区切

り子機能に,その引数表記を解釈して得た文字列を割り当てる。

一般区切り子の中に指定しなかった一般区切り子機能には,規格参照区切り子集合での文字列を割り当

てる。

備考  見出し語 “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


65

X 4151-1992

宣言を読む人間に対するこの規則の備忘となっている。

規格参照予約名を置き換える名前は,他の規格参照予約名又は他の置換えに割り当てた名前であっては

ならない。

12.4.8

量集合

量集合  =

 “QUANTITY”

,ps+,“SGMLREF”,

(ps+,名前,ps+,数)* 

(194)

量集合の中に指定する名前は,

表 に示す量の名前でなければならない。その名前の量の値として,指

定した数が表す値を割り当てる。

量集合で割り当てなかった量の値は,規格参照量集合での値を割り当てる。規格参照量集合での値は,

表 のとおりとする。

備考  見出し語 “SGMLREF” は,文脈上必すである(したがって,冗長である。)が,これは SGML

宣言を読む人間に対するこの規則の備忘となっている。

表 6  規格参照量集合

名前

性質

ATTCNT 40

要素の属性定義の中の名前・名前字句

ATTSPLEN 960

開始タグの属性指定の正規の長さ

BSEQLEN 960

短縮参照列の中の空白列の長さ

DTAGLEN 16

データタグの長さ

DTEMPLEN 16

データタグ形式・データタグひな形の長さ(区切り子を除く。

ENTLVL 16

実体の入れ子の深さ(一番外のものは数えない。

GRPCNT 32

群の中の字句の個数

GRPGTCNT 96

モデル群の中の字句の総個数

GRPLVL 16

モデル群の入れ子の深さ(一番外のものも数える。

LITLEN 240

表記の長さ(区切り子を除く。

NAMELEN 8

名前・名前字句・数などの長さ

NORMSEP 2

正規の長さの計算の際に分離子を数えるのに使う。

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.

規格参照具象構文・核具象構文  規格参照具象構文は,表 に示す 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 宣言を,表 及び表 に示す。基本 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 0

9

UNUSED

9

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

0

9 UNUSED

9

2  9

 11

2 UNUSED

 13

1 13

 14 18 UNUSED

 32 95 32

 127

1 UNUSED

BASESET

”ISO Resistration Number 87//CHARSET


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−−


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−−


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−−


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 区域が存在するのは,00

16

∼1F

16

までの区間及び

7F

16

に図形文字を割り当てない性質による。

14.1.2

最小 SGML 文書  適合 SGML 文書であって,その全体にわたって規格参照具象構文を使い,規格

参照容量集合を使っていて,しかも機構使用を行っていない文書を,最小 SGML 文書という。

14.1.3

変形適合 SGML 文書  適合 SGML 文書であって,変形具象構文を使っている文書を,変形適合

SGML

文書という。

14.2

適合 SGML 応用  14.2.114.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.114.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.114.4.3 の要件

を満たすものを,SGML 検定構文解析系という。

備考  適合 SGML システムに SGML 検定構文解析系がなくてもよい。したがって,そのシステムで

検定を行うだけの余分な労力をかけるかどうかは,処理系作成者が判断すればよい。例えば,

SGML

文書の検定又は整形ができる編集システムをもっている利用者にとっては,清書システ

ムでその文書を処理する際に検定ができる必要がない。

14.4.1

誤りの検出  SGML 検定構文解析系は,報告可能マーク誤りを検出してそれに対する報告を出すこ

とができなければならず,誤りがないときに報告を出してはならない。

SGML

検定構文解析系は,選択によって,その他の報告を出してもよい。

備考  この規格は,マークの誤りに対して,その報告についての要件をどう処置するかを規定しない。

特に,誤りのあった文をデータとして扱うべきかどうか,誤りを見つけた後も処理を続けるべ

きかどうかについて,何も規定していない。

SGML

検定構文解析系は,誤りの可能性のある状態を警告するが,誤りとしなくてもよい。

例  モデル群中の選択字句である共通識別子が宣言されていない場合,文書中でその要素が出現すれ

ば,誤りとする。

14.4.2  SGML

報告  SGML マークの誤りに対する報告を,誤りが生じる可能性を検出したときの警告を

含めて,SGML 報告という。SGML 報告は,そのシステムが出す他の報告と明確に区別できるものでなけ

ればならない。

14.4.3  SGML

報告の内容  SGML マークの誤りに対する報告は,この規格で許容する報告を含めて,そ

の誤りが訂正できるに足る位置の情報及び種別の情報を述べていなければならない。

備考  この要件は,処理系作成者に,その利用者及びシステムからの要求に答えられるだけの最大の

自由度を残している。詳しくは,

参考 を参照のこと。

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 の詳細な導入を参考 に示す。

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

)

この機能は,

(明示的な)内容参照と呼ぶものであるが,この参考では解説しない。詳しくは,

参考310.を参照のこと。

言い換えると,文書には情報だけが書いてある。見た目をよくするだけが役割の文字列などは,処理の

際に作り出されるのである。

これまでの分析から,文書処理を次の(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 が目的とするマーク付

けの方針(

参考 参照)又は文字の符号化についての知識を仮定する。

なお,この参考は,あくまで参考であって,規定の一部ではない。

備考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 構文解析系が

存在するといって差し支えない。


92

X 4151-1992

文書の中のマークは,厳格な規則に従わなければならない。その幾つかは,この規格が決めているもの

で,すべての文書型を対象とする。他の規則は,現に処理している文書の型に対する文書型定義が決めて

いるものである。

SGML

構文解析系は,SGML の規則に従って次の(5)(10)を行わなければならない。

(5)

それぞれの要素の内容の文を走査して,そのデータと 4 種類のマークとを見分ける(非文字の内容デ

ータは,走査しない。

(6)

実体参照を,その実体で置換する。

(7)

マーク宣言を解釈する。

(8)

処理システムに制御を渡して,処理指令を実行してもらう。

(9)

記述的マークであるタグを解釈して,その共通識別子と属性を見定めた上で,その文書型の規則に従

って次の(a)(b)のことを行う。

(a)

その共通識別子や属性が正当なものであるかどうかを判断する。

(b)

その文書構造での要素の位置付けを行う。

(10)

処理システムに制御を渡して,その共通識別子に結び付いている手続きを実行してもらう(繰り返す

が,これらのプログラムに対する実際の要件は何も設けられていない。

“制御を渡す”というのは,こ

の規格がその先の処理内容を規定していないということを意味する。

3.

文の中のマークの検出

3.1

記述的マーク  記述的マークであるタグは,要素の始まりと終わりとを示す。これらのうち,重要

な文字列は,次の三つである(

参考 図 参照)。

(1)  STAGO

  開始タグの開始 (Start−TAG Open)。この区切り子は,開始タグの始まりを示す。参考 

1

では, “<” がこの stago である。

(2)  TAGC

  タグの終了 (TAG Close)。stago から tagc までの文字列を開始タグという。開始タグには,共

通識別子とその属性とを指定する。

参考 図 では, “quote” が共通識別子であり, “>” がこの tagc

である。

(3)  ETAGO

  終了タグの開始 (End−TAG Open)。この 2 文字からできた区切り子は,終了タグの始まり

を示す。

参考 図 では, “</” がこの etago である。開始タグの tagc と終了タグの etago の間が,

その要素の内容である。内容には,データ文字及び部分要素が現れる[非文字のデータは扱いが異な

る(4.2.7 参照)

。終了タグには,その要素の共通識別子を再び書いてマークを読みやすくする。

ここで述べたものは,要素を区切る最も一般的なやり方である。SGML には,マーク最小化と呼ぶ幾つ

もの技法があり,タグを短くしたり省略したりすることもできるようになっている。これらの技法につい

ては,その他の SGML の機構ともども,

参考 で解説する。

参考 図 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

備考  この参考 の中の例では,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

モデル群の中のすべての要素が現れなければならないが,順を問わないことを指定す

る。

−その他 


98

X 4151-1992

文字列  名前 

働き 

# RNI

利用者が定義した名前ではなく,予約名が続くことを示す。

5.

属性  記述的マークであるタグには,その要素の共通識別子に加えて,属性も書くことができる。普

通,共通識別子は名詞にし,属性はその共通識別子の特性を表す名詞か形容詞にするのがよい(動詞及び

書式付け用語は,記述的でなく手続き的であり,SGML でのマーク付けの精神に反するから,避けるのが

よい。

要素に認める属性は,文書型定義で定める。そこでは,その属性の値の範囲及び指定を省略したときの

値も定めておく。

5.1

属性の指定  2 個の属性を書いたタグの例を,参考 図 に示す。

属性は,開始タグの中で共通識別子に続けて指定する。それぞれの属性に対する指定は,その名前,

“値

標識 (value indicator)”区切り子 vi 及びその指定する値を並べて書く。

参考 図 の例では,

“security(機

密性)

”という名前の属性に“Internal Use(内部使用)

”という値を指定し,

“sender(発信人)

”に “LTG” を

指定している。

参考 図 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)

その値を文書の中で指定しなくて,しかもタグ省略のマーク最小化機構(

参考 参照)が有効なとき

に想定する省略時値。

この属性並びには,ここで述べなかった様々な引数も書くことができる。さて,長々しい宣言を読むと

きには,そこに解説的な注釈があると助けになるものである。マーク宣言の中では,注釈をどの引数の間

にも書くことができるし,注釈だけからできた宣言さえ書くことが認められている。

注釈は,その前後を“注釈 (comment)”区切り子 com でくくっておく。com は,通常は 2 個の負符号  “−

−”  である。注釈は,

例 1.のように,引数についての見出しとして利用することもできる。

1.        <!−−  要素      名前      値      省略時値  −−>

属性定義並びには,それぞれの属性について,幾つかの引数を繰り返して書くことになる。宣言は,一

般に記録の境界をまたがっていてよいから,望むならこれらを表の形にして書くこともできる。例えば,

参考 図 の要素 “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

図 の例では,この属性を指定してないから,SGML 構文解析系は省略時値 “final” が指定されたも

のとして扱う。

(5)  security

  属性 “security” は,値として文字列をとる。省略時値に書いた見出し語 “REQUIRED” は,

この属性を必ず文書中で指定しなければならないことを示している。

(6)  version

  属性 “version” は,値として数字の列をとる。省略時値は,列 “01” である。

(7)  sender

  属性 “sender” は,

値として SGML での構文的に正しい名前をとる。

見出し語 “IMPLIED” は,

この属性が任意選択であり,文書中で指定しなかった場合には応用が補充してくれることを示してい

る(

参考 図 の例では, “LTG” と指定してある。)。

値が名前文字ばかりでできているとき,省略時値にその値を指定する場合には,その区切り子を省略し

てもよい(省略時値引数での見出し語には,rni を付けて利用者の定義した名前と区別するからである。

例 2.でいうと,省略時値の “final” と “01” とは,区切り子なしで書くことができる。

注釈の話が出てきたので,空のマーク宣言 “<!>” も注釈になることを紹介しておく。この注釈は,文書

の部分部分を区切るのに使うことができる。空の記録(行)を区切りに使うと“短縮参照”

参考 参照)

と間違って構文解析される可能性があるのに対して, “<!>”にはその心配がないからである。


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 進数として

読んだときの値になっている。

いわゆる“符号拡張法”を使うこともでき,一つのビット組合せで幾つかの文字を表現することができ

る。これらについては,

参考 の 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 の機構(

参考 参照)を使っている場合で,しかもその要素に対して

特に許したときに限って,区切り子となる。この区切り子は 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>  への図参照とが現れる。

例 の最初の “figref” は内容が空であり,2 番目の “figref” は内容が文字列と “fignum” の両方になっ

ている。

その識別子参照属性に名前を与えてその内容が空となる使い方をしたとき,これを“明示内容参照”と

いう。明示内容参照には,終了タグを書いてはならない(その内容が空なのだから,書く必要もない。

内容が空になっている要素でも,その内容モデルが任意選択になっていて,それに従って空にした場合

には,扱いが変わる。このように,たまたま空になった要素には,必ず終了タグを書かなければならない

[マーク最小化機構(

参考 参照)を使っているときを除く。]。その開始タグを見ただけでは,その内容

が空になっているかどうかが分からないからである。

内容を “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

p

(#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

文字データ (PCDATACDATARCDATA)    文字データでは,それぞれのビット組合せが文書文

字集合の文字を表現する。

文字は,まずマークであるかどうかを 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 では,データタグ機構(

参考 参照)というマー

ク最小化機構を用意して,SGML 構文解析系でこうした要素をどこまで認知するか,手続きでどこま

でをそのデータ内容記法に従ったものとして扱うか,といった指定が利用者で行えるようにしてある。

記法としての自然言語は,段落,箇条書き,見出しなどといった要素に使われる。これらの内容は,

普通,混合内容と呼ぶもので,下位要素と文字データとが混在している。

(2)  0

  科学記法は,自然言語と似ている。ただし,そこでの“単語”又は“句”は,それぞれの応用によ

って決まる。数学記法でなら,例えば  “3 over 4”  という句は,分数  “

4

3

と解釈される。科学記法は,

数式,化学構造式,形式言語,楽譜などといった要素に使われる。その内容は,普通,CDATA か RCDATA

として,その科学記法が解釈できないシステムでも,それらの要素が自然言語によっているかのよう

に処理できるようにしておく。

(3)

書式付き文  書式付き文の記法も,自然言語と似ている。この両者を一つの記法にまとめることもで

きるだろう。書式付き文の記法は,既に書式付け応用で処理して作り出した“配置構造”を要素とし

て表すことを目的としている。そこでは,書式付けた行の終わり,整形のための間隔又はハイフン,

字体の切替え,上つき,下つきなどといったものを表す文字列が決めてあるに違いない。

書式付き文の記法は,自然言語を記法とする要素型(段落,見出しなど)の中にでも見ることがで


114

X 4151-1992

きる。文書型併存機構(

参考 参照)を使っている場合には,書式付けを終えた文書の配置構造の要

素の中に見ることができる。これらの要素の内容は,普通,混合内容である。

13.2.2

非 SGML データに対する記法  NDATA の実体では,そのビット組合せが(単独で,又は幾つかま

とめて)2 進データを表現している。又は,その混在したデータとなっている。

(1)

未知の文字  NDATA の中でも,CDATA の場合と同じように,自然言語の記法又は科学記法,書式付

き文の記法を見ることができるが,そこに使われている文字は,文書文字集合のものではない。その

データは,規格参照具象構文での文書文字集合の場合とは違って,例えば,符号拡張法を採用して,

複数のビット組合せで 1 文字を表現していたりする。このような方式は,規格参照具象構文での文書

文字集合の大きさでは足りないほどの多数の文字を必要とする言語に対して採用される。

(2)  2

進データ  2 進データは,画像の各画素の階調又は色値,量子化音,音楽波形として,若しくは,そ

のほかの数値又は論理値を表したものとして解釈される。

文書処理では,挿入図に当たる要素の表現,

例えば,中間階調,写真などの表現に主として使われる。

(3)

文字・進データの混在  科学文書又は書式付き文書には,文字と 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)がある。これらについては,参考 を参照の

こと。

(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

p

(#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

p

−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

(#PCDATA

>


121

X 4151-1992

この宣言の下では,次のようにマークが簡略化できる。

<list>

これは,第 1 の item である。

<item>

これは,第 2 の item である。

<item>

これは,第 3 の,そして最後の item である。

</list>

最初の “item” では,それが必すの要素であるので,その開始タグを省略することができる。

それ以後の “item” では,それらが任意選択であるので,開始タグを省略することはできない。

その要素が文脈上必すであったとしても,属性の値を指定しなければならなかったり,その要素に宣言

内容があったりする場合,又は,その要素が空である場合には,その開始タグを省略することはできない。

22.6

短縮タグとの組合せ  短縮タグの最小化とタグ省略の最小化とをともに使う場合,空開始タグは,

空終了タグと同じ扱いを受ける。その共通識別子として,最も近くに開いた要素と同じものが補われるの

である。

例  短縮タグもタグ省略も使う

<!

−−

要素  最小化  内容

−−>

<!ELEMENT p

−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

p

(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

表形式  規格参照具象構文では,多くの図形文字列も短縮参照区切り子として割り当てている(本

体表 参照)。これらの文字列は,より長い一般実体参照の代用として使うことができる。これによって,

うまく使えば簡潔で見やすいマークで表などを入力することができる。

例 <!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

(#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

(#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 p

−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

機構−SIMPLEIMPLICIT 及び 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

多符号具象構文  多符号基本具象構文は,参考 図 に示す 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)  を支援しない装置を混合し

て使うことのできる装置独立符号拡張の方法は,

参考 の 3.で述べる。

参考  マークの再開は,MSOCHAR の LS1,又は LS1R,LS2,LS2R,LS3 及び LS3R のようにエスケ

ープで行われる。

参考 図 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

 16 112

16

 128

14

UNUSED

142

1  ”SS2 in ISO 2022”

143

1  ”SS3 in ISO 2022”

 144 112

UNUSED

FUNCTION RE

13

 RS

10

 SPAC

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

備考  参考 図 において,注釈の部分は,ISO 646 の文字で記述すべきであるが,読者の理解を助

けるために,ここでは日本文字を使用している。

4.

実体集合  何万種類もの図形文字が出版に用いられているが,そのうちの比較的少数のものが規格と

しての符号化文字集合に取り入れられているにすぎない。符号化表現の規格があっても,けん盤から入力

しにくかったり,その文字の望む図形表示を表示装置に出せなかったりすることもある。

これらの障壁を乗り越えて SGML 文書を間違いなく交換する一助として,4.では,広く使われている特

殊文字の幾つかのための文字実体を定義する。これらの文字集合は,符号化文字集合の国際規格として制

定されたり提案されたりしているもの及び産業界・専門分野で使用されているものに基づいている。

備考  実体集合は,文字集合に比べると,一般に高位の構成体を扱うから,どうしても大きくなり反

復的になる。例えば,実体集合では,アクセント記号付きのラテン文字それぞれに固有の実体

を設けているが,文字集合ではこれらを文字とアクセント記号との組合せで表現する。これら

の実体集合は,新しい文字集合規格への要求としてしてはならない。

4.1

設計方針  この参考に定義する公開実体集合についての設計方針を示す。

4.1.1

宣言の書式  それぞれの実体の定義は,その主旨だけを定める。その実体文は,実体名を大括弧で

くくったものだけからなる。その後には,その記号を解説した注釈があるだけで,装置に依存した符号化

表現は書いていない。

例  <!ENTITY frac78 SDATA ”[frac78]”  −−=fraction seven-eights−−>


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 字)を書くことがある。この英字は,実体

の表す文字が数学の版組で普通の文字とは違った,次のとおりの扱いを受けることを示す。

活字

扱い

A

矢印関係 [Relation (arrow)]

B

二値演算子 (Binary operator)

C

終了区切り子 (Closing delimiter)

L

多数演算子 (Large operator)

N

否定関係 [Relation (negated)]

O

開始区切り子 (Opening delimiter)

P

句読点 (Punctuation)

R

関係 (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 Ium