9. グローブ
グローブは,ノードの集合であって,グローブ設計にしたがって構築する。グローブ内の各ノードは,グローブ設計内の名前付きクラスに属する。ノードは,特性割当ての集合であって,各特性割当ては特性名及び特性値からなる。
グローブ設計は,クラスの集合を定義し,各クラスに関して特性の順序集合を定義する。
ノードの各特性割当てに対して,ノードのクラスに対応した特性が一つだけ存在し,その特性の名前は特性割当ての名前部分と同じとする。これを,特性割当ての特性と呼ぶ。特性割当ての値部分は,特性割当の特性の値と呼ぶ。ノードに特性割当てが存在し,その特性がpであって,その値部分がvである場合に,ノードはその特性pに関して値vを開示するという。ノードが値を開示する特性をそのノードの特性と呼ぶ。
クラスの特性の順序は,そのクラスのノードに関して,対応する特性割当ての順序を決定する。
すべての特性値は,データ型をもつ。特性の定義は,特性の値に対して可能になる特定の特性のデータ型を宣言する。このデータ型を,その特性の宣言データ型と呼ぶ。
論理型,文字列型などの単純な抽象データ型に加え,型nodalと呼ぶ三つの特別なデータ型が存在する。それらの値は,複数のノード又はノードのリストとなる。これらは,9.3.3において説明する。
特性の定義は,特定の状況においては,宣言データ型の値ではなく,ヌル値を特性がもつことを許容する。このヌル値は,データ型nullの一意オブジェクトとする。データ型nullは,宣言データ型としては使用できない。
9.1 ノード型特性
クラスの特性は,下位ノード(subnode)特性であってよい。下位ノード(subnode)特性の宣言データ型は型nodalでなければならない。ノードが下位ノード(subnode)特性の値を開示している場合,その特性値のすべてのノードは,その値を開示しているノードと同じグローブに存在する。グローブ中のノードの下位ノード(subnode)特性の値は,グローブのすべてのノードをラベル付きの枝をもつ一本の木に結びつけていると見ることができる。詳細を次に示す。
(1) どのグローブにおいても,グローブ根と呼ぶ一意ノードがあり,それはノードの下位ノード(subnode)特性の値には出現しない。
(2) グローブ根以外のすべてのノードnに対して,一意ノードoがあり,次の両方を満たす一意な特性pが存在する。
(a) 特性pは,下位ノード(subnode)特性と宣言されている。
(b) ノードoは,特性pに関してノードnそのもの又はノードnを含む値を開示する。
ここでノードoをノードnの起点と呼び,特性pをノードnの起点下位ノード関係と呼ぶ。
(3) 根以外のすべてのノードnに関して,m1をグローブ根とし,mkをノードnとした場合に,1 <= i <= k - 1の範囲のすべてのiに関してmiがmi + 1の起点となる,ノード列m1,m2,... mkが存在する。この木を,下位ノード木と呼ぶ。ノードのすべての子供が,そのノードの単一の特性の値の一部として出現する下位ノード木の部分木を,応用が扱うことは有用となる場合が多い。この目的で,クラスの特性の一つを,そのクラスの子ども特性として区別する。これは,特性をそのクラスの内容特性とすることによって,間接的に実現されている。内容特性のデータ型が型nodalの場合,子ども特性となる。その他の場合には,そのデータ型の基本データ型は文字型又は文字列型でなければならず,そのノードのデータ特性となる。ノードに関連して使用した場合,子どもという用語は,子ども特性の値として出現するノードを指す。子ども特性をもつノードのデータは,ノードの各子のデータを,特性data-separatorで区切ったものとなる。あるノードの起点が子ども特性を持ち,その値の中にそのノードが含まれている場合,そのノードは親をもつ。ノードが親をもつ場合,それは,ノードの起点と同一となる。修飾なしの木という用語
は,この親子関係で形成される木を示す。ノードの祖先は,そのノードの親とその祖先とで構成される。ノードxの木根は,ノードxが祖先をもたない場合はそのものであり,その他の場合には,ノードxの祖先であって,それ自体は祖先をもたないノードとなる。ノードの兄弟は,グローブ根に関しては空集合とする。それ以外の場合は,そのノードの起点の起点下位ノード関係特性の値のノード集合からそのノード自身を除いたものとする。
備考 起点下位ノード関係特性はその起点の子供特性である必要はないので,ノードは親がなくても兄弟をもつことがある。
ノードの部分木は,そのノードとその子供の部分木とからなる。ノードの子孫は,そのノードの子供の部分木とする。すべてノードの部分木内のノード集合に関して,木の順序と呼ぶ全順序を定義する。この順序は,ノードをその子供より先に訪れる木の行き掛け順に対応する。
型nodalを宣言データ型にもつ特性であるが,下位ノード(subnode)特性ではない特性には次の二つの可能性がある。
(1) その特性が内部参照ノード(irefnode)の場合。この特性に関しては,その値の中のノードは,その値を開示するノードと同じグローブに存在しなければならない。下位ノード(subnode)特性及び内部参照ノード(irefnode)特性は,グローブ中のすべてのノードを結び,単一の有向グラフとする。その特性の名前は,そのグラフの弧をラベル付けすると見なしてよい。
(2) その特性が無制限参照ノード(urefnode)である場合。この特性に関しては,その値の中のノードは,その値を開示するノードとは別のグローブに存在してもよい。したがって,下位ノード(subnode)特性,内部参照ノード(irefnode)特性及び無制限参照(urefnode)特性は,複数のグローブのノードを結んで,一つのグラフとする。結ばれたグローブの集合をハイパグローブと呼ぶ。
9.2 グローブ設計
グローブ設計は,特性集合からのクラスの選択及び特性の選択を指定する。特性集合は,9.3に示すとおりに,SGMLで表現した特性集合定義を用いて定義する。
グローブへの任意の入力に関して,特性集合は完全グローブを決定する。完全グローブは,特性集合からすべてのクラス及び特性を選択したグローブ設計を使用して作成される。
備考 完全グローブは,構文解析系がグローブの入力に関して入手可能にできるすべての情報を含む。どの特定応用に関しても,この情報の多くは重要ではない。グローブ設計は,応用が必要な情報だけを含むグローブを得る手段を提供する。
グローブ設計から構築されるグローブは,完全グローブを次の方法で修正することによって得られるグローブと同じでなければならない。
(1) ノードの部分グローブに印を付ける。最初にそのノード自体に印を付ける。次に,各下位ノード(subnode)特性に関して,グローブ設計にその下位ノード(subnode)特性が含まれる場合,その値の各ノードのうち,そのクラスがグローブ設計に含まれているノードの部分グローブに印をつける。グローブに含めるノードは,グローブ根の部分グローブに印をつけることで決定できる。この方法で印をつけたノードだけを,構築したグローブに含める。
(2) 構築したグローブの中のノードは,そのグローブに含めると指定した特性の値だけを開示する。
(3) 完全グローブの中のノードが,内在特性の値を開示し,その値の意味が,そのノードの開示する非内在特性の名前であって,その非内在特性がグローブ設計に含まれない場合,構築したグローブのノードは,その内在特性の値に関してヌル値を開示しなければならない。
(4) 完全グローブの中のノードが,内在特性の値を開示し,その内在特性の値の意味が,そのノードが開示する非内在特性の名前リストであって,その非内在特性がグローブ設計に含まれない場合,構築したグローブのノードは,完全グローブの値からグローブ設計に含まれないすべての非内在特性の名前を除外して得られた内在特性の値を開示しなければならない。
(5) 完全グローブのノードが,宣言データ型が型nodalの内部参照ノード(irefnode)特性の値を開示するが,その特性の値に構築するグローブへの取り込みのために印を付けられていない場合,構築したグローブ内のそのノードは,その特性に対してヌル値を開示しなければならない。
(6) 完全グローブのノードが,宣言値が抽象データ型nodelist又は抽象データ型nmndlistをもつ内部参照ノード(irefnode)特性に関して値を開示する場合,構築したグローブに含めると印を付けられていない,すべてのノードを完全グローブから除外することによって,構築したグローブにおける値が得られる。
9.3 特性集合定義
特性集合定義は,ISO/IEC 10744 の特性集合定義に対する要求事項の中で完全に記述している。9.3は,この規格の理解に必要な詳細だけ説明した簡易版を提供する。
最上位レベルの要素を要素propsetとする。属性psn及び属性fullnmは,短いSGML名及び長い記述名を指定する。特性集合の様々な場所で,次の要素が出現可能である。
(1) 要素descは,それが出現する要素が定義するオブジェクトの説明を含む。
(2) 要素noteは,定義するオブジェクトに関する注釈を含む。
9.3.1 共通属性
9.3.1.1 構成要素名
クラス名,特性名,列挙値名は単一の文字列ではなく,三つ組みの文字列とする。その中の各文字列は,それぞれ異なる文脈において適切な名前となっている。
(1) 参照具象構文名(RCS名)は,SGML参照具象構文において有効な名前が必要な文脈での使用にふさわしい。
(2) 応用名は,プログラム言語又はスクリプト言語における識別子としての使用にふさわしい名前を指定する。応用名は空白類文字で分割される複数の語を含んでよい。複数の語から成る識別子について,言語毎の通常の規則にしたがって,その名前は,それを使う言語の有効な識別子に変換されなければならない。例えば,"processing instruction"という応用名は,プログラム言語に対応させた場合,その言語に応じて"ProcessingInstruction","processing-instruction"又は"PROCESSING_INSTRUCTION"となる。
(3) 完全名は,支援文書における使用にふさわしい省略無しの名前とする。
三つの部分から成るこれらの名前を構成要素名と呼ぶ。
これらの三つの名前は次の属性によって指定する。
(1) 属性rcsnmは,特性のRCS名を指定する。
(2) 属性appnmは,特性の応用名を指定する。この無指定時値はRCS名とする。
(3) 属性fullnmは,特性の完全名を指定する。この無指定時値は応用名とする。
9.3.1.2 規格文書
特性集合内で出現する様々な要素は,規格文書の中の構成要素を参照することによって定義を行う。これらの要素は,以下の共通属性を使用する。
(1) 属性sdは,規格文書を指定する。この無指定時値はSGMLとする。公式には,その値は記法名とする。他の指定可能な値には,ISO/IEC 10744の汎用機能を表すGenFac及びDSSSLがある。
(2) 属性clauseは,規格文書における適用可能な節を指定する。SGMLの場合には,これはISO/IEC 13673 の記法を使用する。
9.3.2 モジュール
特性集合定義は,要素psmoduleが記述する名前付きモジュールに分割できる。その属性は以下の意味をもつ。
(1) 属性rcsnmは,モジュールの RCS 名を与える。
(2) 属性fullnmは完全名を与える。
(3) 属性dependonは,このモジュールが依存しているモジュールの名前をリストする。
(4) 属性requiredは,モジュールが必す(須)かどうか,つまり,すべてのグローブ設計に含まれるべきかどうかを指定する。属性値required は,それが必す(須)であること,属性値nrequireは必す(須)ではないことを意味する。無指定時値は属性値nrequireとする。
グローブ設計にあるモジュールを含めることは,グローブ設計に次の(1), (2)を含めることと等価となる。
(1) モジュール内で定義したすべてのクラス及び特性。
(2) モジュールが依存しているすべてのモジュール及び再帰的にそれらが依存しているすべてのモジュール。
特性集合において定義されているモジュールに加え,この規格で定義されている内在モジュールが数多くあり,これらは自動的にすべての特性集合の一部となる。内在モジュールで定義されている特性は,内在特性と呼ぶ。内在モジュールは,すべての非内在モジュールより前に出現するものとして扱う。
9.3.3 データ型定義
すべてのデータ型は,要素datadefで定義する。属性は次の意味をもつ。
(1) 属性rcsnmは,データ型のRCS名を与える。
備考 特性集合を,あるプログラム言語又はスクリプト言語で使用する場合,各抽象データ型は,その言語によって提供されるデータ型の一つに明示的に結びつけられなければならないので,データ型に対する応用名はない。
(2) 属性fullnm は,データ型の完全名を与える。
(3) 属性nodal は,データ型が型nodalか否かを指定する。指定可能な値には属性値nodal又は属性値nonnodalとし,無指定時値を属性値nonnodalとする。
(4) 属性listofは,データ型は他のデータ型の順序リスト又は配列であって,他のデータ型を属性の値として指定する場合に,データ型の意味の公式な指定を可能とする。
(5) 属性superは,定義済みのデータ型の間において,型階層の指定を可能とする。属性値は,上位の型の名前のリストとする。
データ型の基本データ型は,上位の型が無い場合,そのデータ型そのものであり,その他の場合,上位の型の基本データ型とする。
いくつかのデータ型を次の内在モジュールにおいて定義する。
単一ノード
0個以上のノードの順序付きリスト
各ノードが,その特性の一つの値である名前によってそのノードリスト内で一意に識別できるノードリストとする。名前付きのノードリストは,その中のノードの各クラスに対して,文字列をそのデータ型とし,その値がその名前付きノードリスト内でのそのクラスに属するノードの名前として働く特性を識別する。加えて,名前付きノードリストは,その中のノードの各クラスに対して,名前空間所在番地付けの過程でそのクラスのノードの名前と文字列を比較する前に,その文字列に適用する正規化規則をも識別する。
列挙値と呼ぶ,値の列挙集合の一つを表現するデータ型に使用する。使用できる列挙値はデータ型enumが使用される文脈において定義する。
構成要素名。つまり,3つの変数をもつ名前,RCS名,応用名,完全名。
9.3.4 クラス定義
クラスは,要素classdefによって定義する。構成要素名属性及び指定文書属性に加え,
次の属性が指定可能とする。
(1) 属性conpropは,もしあればクラスの内容特性を識別する。
(2) 属性dseppropは,クラスのデータ分離子特性を識別する。クラスは子供特性(つまり,ノード内容特性)をもつ場合にだけデータ分離子識別子を持てる。
(3) 属性mayaddは,変換言語における検証対応の定義に使用されるクラスの区分を識別する。11.4.1を参照のこと。この属性では,属性値mayaddだけを指定可能とする。この属性の属性名は省略可能とする。
9.3.5 特性定義
特性は,要素propdefを用いて定義する。構成要素名属性及び指定文書属性に加え,次の属性を指定可能とする。
(1) 属性cnは,この特性が属するクラスを指定する。要素propdefが要素classdefの中に出現する場合,特性はそのクラスに属する。それ以外の場合,属性cnを用いてクラス名を指定しなければならない。属性値#allは,それがノードのすべてのクラスに属することを意味し,属性値#groveは,グローブ根ノードに属することを意味する。
(2) 属性datatypeは,要素datadefの定義とおり,データ型のRCS名を指定する。
(3) 属性acは,特性の値に出現可能なクラスを指定する。これは,データ型が型nodalである場合にだけ適用する。無指定時値では,任意のクラスが値に出現可能とする。
(4) 属性acnmpropは,データ型が型nmndlistの場合に適用でき,特性値内において出現可能な各クラスに対して,名前付きノードリストにおいてそのクラスのノードの名前として働く特性名を指定する。属性ac内の各クラスに,一つずつ特性名がなければならない。
(5) 属性strnormは,値に適用する文字列正規化規則を指定する。文字列正規化規則は,データ型が文字列,文字列のリスト又は上位型に文字列をもつ場合に適用する。各文字列正規化規則は要素normdefを用いて定義する。
備考 参照具象構文を使用する場合に,SGMLが行う共通名の大文字への代替は,文字列正規化の例である。
(6) 属性noderelは,その特性が下位ノード特性,内部参照ノード特性又は無制限参照ノード特性のいずれであるかを示し,属性値subnode,属性値irefnode,属性値urefnodeでそれぞれ指定する。この属性は,データ型が型nodalである場合にのみ適用する。この属性の属性名は,通常省略する。
(7) 属性vrfytypeは,変換言語の検証対応を定義のために,特性を派生,オプション,その他に区分し,それぞれ属性値derived,属性値optional,属性値otherで表現する。11.4.1を参照のこと。無指定時値は,属性値otherとする。特性集合では,完全グローブの中のノードが,宣言データ型としてnodelist又はnmlistをもち,属性vrfytypeが属性値optionalをもつ特性に関して,空の値を許容してはならない。
備考 ノードがそのような特性に対してnull値を開示する可能性はある。
(8) 属性strlexは,字句解析型を指定する。値は要素lexdefで定義した字句解析型となる。特性の字句解析型は,この規格では使用しない。字句解析型の意味は,ISO/IEC 10744において定義する。
要素propdef は,要素desc及び要素noteに加え,次の型の下位要素を持てる。
(1) 要素whenは,そのノードが値を開示する条件及び宣言データ型を指定する。この条件が満たされない場合,ノードはこの特性に対してnull値を開示しなければならない。
(2) 要素enumdefは,データ型enumの場合に可能な列挙値を定義する。構成要素名属性だけをもつ。
9.3.6 正規化規則定義
文字列正規化規則は,要素normdefによって定義する。要素normdefは,属性rcsnm及び規格文書属性をもつ。
9.4 内在特性
次のモジュールは,すべてのノードに適用する内在特性を定義する。
ノードのクラス名
ノードが開示する,属性noderelが属性値subnodeの特性すべての名前
ノード開示するすべての特性の名前。
子を表す特性の名前
クラスが子を表す特性をもつ場合。
クラスがデータ特性をもつ場合。
クラスがデータ分離特性をもつ場合。
ノードが親をもつ場合。
ノードのこの特性は,そのノードが親をもたない場合には,ノード自身とする。
ノードがグローブ根ではない場合。
ノードがグローブ根ではない場合。
各要素が,次のいずれかとなるリスト。
(1) 整数。
(2) 構成要素名及び文字列からなる対。
(3) 構成要素名及び整数からなる対。
(4) 構成要素名。
グローブ内のノードの位置。
木の中におけるノードの位置を体系形式treelocで表したもの。
その木の中におけるノードの位置を体系形式pathlocで表したもの。
9.5 補助グローブ
応用依存の方法で,ノードをグループ化すると便利な場合がある。これは,グローブ内のノードを入力として用いてさらに解析を行う,補助解析によって実現する。補助解析で生成されたグローブは,補助グローブと呼ぶ。補助グローブの生成に使用したグローブは,補助グローブの入力グローブと呼ぶ。補助グローブの各ノードは,属性noderelの値が属性値urefnodeとなる内在特性sourceを持ち,その特性は入力グローブにおいて派生元となったノードを指す。
9.6 SGML特性集合
SGMLの特性集合は次のとおりとする。
SGML文書を解析して,グローブ構築のために使用するクラス及び特性を定義する。
クラス及び特性を次のとおりに分類する。
(1) 抽象又はSGML文書文字列(SDS)
(2) SGML宣言,文書prolog又は文書インスタンス
(3) データタグ,付番,短縮参照,連結,副文書,公的公開識別子の支持にだけ必要なもの
ESISは,basaabs(基本抽象モジュール),prlgabs0(前書き抽象モジュール0),とおりinsabs(インスタンス抽象モジュール)にほぼ対応する。
解析済みSGML文書又は副文書であって,グローブの根となる。
SGML宣言が提供する応用情報
文書/副文書に適用するSGML文書のAPPINFOパラメタの値として,リテラルが指定された場合。
文書インスタンスに続く他の前書き。
すべてのSGML文書に内在し,選択されたノードを保持しておく器。他の場所で内部参照ノード(irefnode)として必要な可能性がある。
モジュールsrabs(短縮参照抽象)またはモジュールlinkabs(連結抽象)を使用しない場合,特性をもたない。
属性の割当てであって,指定された場合と省略された場合の両方で存在する。
データ属性なので基本モジュールに含まれる。
属性値がトークン化されている場合,子はノードattvaltkとなる。それ以外の場合は,他の許容できる型のノードとなる。
属性指定が無く,暗黙の値指定がなされた属性ではない場合。
属性指定が無く,暗黙の値指定がなされた属性の場合にだけ真となる。
値のトークンの間の分離子。具象構文では常に文字SPACEに等しい。
ノードが,二つ以上のattvaltkクラスを子にもつ場合。
解析系によって応用に渡される文字。
特定の文字データ実体の置換テキストは,参照されている場合にはSDATAとして扱う。
体系形式map-sdata-entityによってSDATA実体に関連付けられた文字。
文字が体系形式map-sdata-entityによってSDATA実体に関連付けられている場合。
処理命令
解析を支配する文書型。複数の"活性"文書が指定されている場合,各活性文書型によって別々の解析が行われ,個別のsgmldocグローブを生成する。
前書きで宣言した文書型及び連結型を宣言順にならべたノード。
文書型を抽象化したノード。
このノードには,その宣言内の実体,そのDTDを入力DTDとする連結型内で出現したためにそこで宣言されているのと同じに扱われている実体及びこの文書が活性状態の場合に参照される可能性のある基本宣言内の実体を含む。
文書型宣言によってDTDと関連付けられた名前。一番外側の要素の型の名前も同様に必要となる。
この文書型が活性状態か又は活性状態の文書型がなく,この文書型が基本文書型であった場合に真となる。
"支配的"文書型が解析系を支配する。複数の文書型が"活性状態"と指定されている場合,各活性文書型において,それぞれ別の解析が行われる。そこでは各活性文書型が支配的文書型となり,それぞれ別個のグローブを生成する。
DTDで宣言されている,文書,副文書の一般実体及び文書型定義で参照する無指定時実体。
このクラスの記述で説明したとおり,明示的には宣言されていない実体も含む。
DTDが宣言されていない一般実体名に対する無指定時の宣言を提供している場合,この宣言に対するリストに項目が無い。また,そのような宣言の無い名前に対する項目は無い。しかし,そのような実体は,sgmldocクラスの実体特性には存在する。後述のノードdfltentの記述を参照のこと。
実体が,内部実体の場合。
実体が,外部実体の場合。
データ属性割当てのリスト。属性定義リスト宣言内の宣言順で,実体に宣言した各属性ごとに存在する。
実体が,外部実体の場合。
実体が,外部実体の場合。
実体が,外部実体の場合。
明示的な公開識別子を含んだ外部識別子。
明示的なシステム公開識別子を含んだ外部識別子。
外部識別子及び処理系が利用できる,その他の情報から生成されたシステム識別子。
外部識別子が,無指定時実体の外部識別子ではない場合。
支配的文書型の文書要素。
文書内において,一意識別子をもつすべての要素。その順序は解析系が認知した順となる。つまり,親が子に先行し,兄弟は左から右の順に出現する。
支配的文書型において明示的に宣言された一般実体。その後に無指定時実体を参照する実体が続く。
これには,内部実体及び外部実体を含むが,名前無し実体は含まれない。
支配的文書型内において無指定時実体を参照している,文書内の各実体名に対応する実体。
属性の宣言値が,ENTITY又はENTITIESの場合。
属性の宣言値が,NOTATIONの場合。
属性の宣言値が,IDREF又はIDREFSの場合。
要素の共通識別子(要素型名)。
固有識別子が,その要素に対して指定された場合。
データ属性割当てのリスト。属性定義リスト宣言内の宣言順で,要素に関して宣言した各属性ごとに存在する。
外部データ実体を参照した結果。
処理命令が,PI実体を参照した結果の場合。
処理命令が,PI実体を参照した結果の場合。
無指定時の実体を参照して生成された場合,真となる。
実体参照のマーク付け。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照の名前グループにおいてだけ出現可能とする。
処理命令が,名前付き実体参照又は短縮参照を伴うPI実体を参照した結果の場合。
処理命令が,PI実体を参照した結果ではない場合。
処理命令が,PI実体を参照した結果ではない場合。
属性が,無指定時指定又は暗黙指定以外ではなく,明示的に指定されている場合。
属性が,暗黙指定ではない場合。
置換された文字。
最小リテラルにおける文字RE又は文字SPACEの列が単一の文字SPACEで置換される場合,最初の文字はおそらく特性intrplchをもつクラスdatacharのノードによって表現され,他の文字はクラスintignchのノードによって表現される。
リテラルを解釈した時に置き換えられたデータ文字の場合。つまり,属性値リテラル内の文字RE又は文字SEPCHAR又は最小リテラル内のREを置き換えた結果の文字SPACEの場合。
データ文字が,名前付き文字参照の置き換えの場合。
データ文字が,数値文字参照の置き換えの場合。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照の名前グループの場合にだけ出現可能とする。
データ文字が,名前付き文字参照の置き換えの場合。
注釈内の文字(区切り子comを除く)。
無視したマーク付け。次の条件のいずれかを満たしているために無視したもの。
(1) 活性文書型の名前を含まない名前グループを文書型指定をもつ,開始タグ又は終了タグ。
(2) 活性文書型又は連結型の名前を含まない名前グループを文書型指定をもつ,一般実体又はパラメタ実体。
(3) 連結型名が活性連結型でない連結集合使用宣言。
(4) 無視した開始タグ内において,属性値内で使用している一般実体参照。
(5) 既に宣言されている実体。
実体の置換テキストの開始。
終了は,クラスentendのノードで印付ける。解析系は,実体参照の結果として置き換える。
実体参照のマーク付け。
解析系が置き換えた実体参照の終了。
マーク付きセクション内で無視した文字。
リテラルを解釈した時に無視したリテラル内の文字。これは,次のいずれかとなる。
(1) 属性値リテラル又は最小リテラル内の文字RS。
(2) 最小リテラル内において,直後に別の文字RE又は文字SPACEが続く,文字RE又は文字SPACE。
(3) 最小リテラルの最初又は最後に存在する,文字RE又は文字SPACE。
文字が,名前付き文字参照の置き換えの場合。
一般区切り子。
親の最初の子である区切り子又は終了区切り子特性の値に対してのみ起こり得る。
区切り子の最初の文字が名前付き文字参照を使って入力された場合。
区切り子の役割の名前。
大文字変換以前の,入力と同じ区切り子。
マーク付け内での名前。
属性値の名前は,名前ではなくクラスattvaltkのノードによって表わす。
大文字変換前の,入力と同じ名前文字列。
予約名として認識する,マーク付け内のトークン。
参照予約名。
大文字変換前の,入力と同じ予約名。
パラメタリテラル,属性値リテラル,最小リテラル又はシステム識別子。
リテラルを解析した値。
リテラルがトークン化されている値の属性値リテラルである場合,そのリテラルの
値はトークン化の前ではあるが,しかし解析の後の属性値を表現する。
マーク付け内の数であって,文字参照の文字番号ではないもの。
属性値の中の数字は,数字ではなく,クラスattvaltkのノードによって表現する。
文字参照内に出現する文字番号。
番号の数値は,クラスdatacharノードの特性charが決定する。
値を指定するための10進数。
参照終了として使用するマーク付けの文字RE。
属性値指定であって,値として属性値リテラルではなく属性値をとるもの。
これとクラスattasgnを混同しないこと。
大文字変換前の値。
マーク付けにおける名前トークン。
宣言した値の名前トークングループの名前トークンに対してだけ使用する。属性値の名前トークンは,クラスnmtokenではなくクラスattvaltkのノードによって表現する。
大文字変換前の,入力と同じ名前トークンの文字列。
マーク済みセクションの直前の,マーク済みセクション宣言部分。
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子dsoのためのクラスgendelmのノードとなる。
マーク済みセクションの有効な状態。
区切り子msc及び区切り子mdcのためのクラスgendelmのノードとなる。
文書又は副文書に適用するSGML宣言の最初のパラメタに指定された最小リテラル。
SGML宣言で使用する参照具象構文及び具象構文の適用範囲がINSTANCEの場合には前書きも含む。
文書文字集合に依存しているので,クラスsgmlcstsの特性ではない。
前書きのための具象構文。
文字記述が基本集合文字番号を含んでいる場合。
基本文字集合の公開識別子。
文字記述が基本集合文字番号を含む場合。
基本集合番号として入力されない文字記述。
この文書の文書文字集合の具象構文を表現する。文字は,構文参照文字集合ではなく文書文字集合の文字となる。
文字クラスSHUNCHARが文字クラスCONTROLSを含んでいたら真。
機構使用項目NAMECASEにおいて,GENERAL YESが指定された場合に真となる。
機構使用項目NAMECASEにおいて,ENTITY YESが指定された場合に真となる。
参照具象構文が行う指定の変更とは関係なく,各一般区切り子の役割ごとに項目がある。項目はその(抽象構文の)役割名のアルファベット順で出現する。
具象構文が指定する構文リテラル/予約名の関係。参照具象構文が行う指定の変更とは関係なく,各一般区切り子の役割ごとに一つの項目がある。項目はその(抽象構文の)役割の名前のアルファベット順で出現する。
機能に割当てられた文字。
具象構文が指定した,文字列と抽象構文の区切り子の役割との関係。
役割名。
文書で使用する文字列。
具象構文が指定する,予約名と抽象構文の構文リテラルの関連。
構文リテラル。(より正確には,二重引用符で括った場合に,構文リテラルとなる名前)
文書内で使用される予約名。
参照具象構文において,構文リテラルは予約名と同一となる。
機構使用項目DATATAGが,YESの場合に真となる。
機構使用項目OMITTAGが,YESの場合に真となる。
機構使用項目RANKが,YESの場合に真となる。
機構使用項目SHORTTAGが,YESの場合に真となる。
機構使用項目SIMPLEが,NOの場合には0となる。
機構使用項目IMPLICITが,YESの場合に真となる。
機構使用項目EXPLICITが,NOの場合には0となる。
機構使用項目CONCURが,NOの場合には0となる。
機構使用項目SUBDOCが,NOだった場合0。
機構使用項目FORMALが,YESの場合に真となる。
SGML宣言を,明示的に指定した場合。
SGML宣言を,明示的に指定した場合。
SGML宣言が,暗黙指定されていた場合。
SGML宣言が,この文書を副文書としてもつSGML文書から得られる場合。
SGML宣言の前の分離子sも含む。最後の子は区切り子mdcのためのクラスgendelmのノードとなる。
DTDが,宣言されていない実体名に対して無指定時値を指定した場合。(そのような宣言されていない各名前は,このノードを一つのパターンとして実体に関連付けられる。しかし,ある場合,処理系は各名前に対して同じ実体を選択しない場合もある。)
要素に名前をつけるのに使用した,総称識別子又は付番核。
このクラスの説明で述べたように,明示的に指定されていない実体を含む。
開始タグ最小化指定が"O"の場合に真となる。
要素型宣言が省略タグ最小化指定をもつ場合。
終了タグ最小化指定が"O"の場合に真となる。
要素型宣言が省略タグ最小化指定をもつ場合。
内容が,CDATAと宣言されている場合。
内容が,RCDATAと宣言されている場合。
内容が,EMPTYと宣言されている場合。
内容が,ANYと宣言されている場合。
内容モデルがモデル群の場合。
要素型宣言が,モデル群をもつ内容モデルを含む場合。
内容型が,列挙値any又は列挙値modelgrpの場合。
内容型が,列挙値any又は列挙値modelgrpの場合。
モデル群又はデータタググループ。
データグループは,結合子seqをを用いて結合したモデル群のノードによって表現し,最初のトークンがクラスelemtk及び二番目のトークンがクラスpcdatatkとなる。
モデル群内で使用した結合子。
モデル群が出現指示子をもつ場合。
要素トークンが出現指示子をもつ場合。
宣言値が,名前トークングループの場合。
使用可能なトークンを指定する文字列のリスト。
宣言値が,名前トークンクグループ又は記法の場合。
無指定時値が,#FIXEDをもたない属性値指定の場合。
無指定時値が,属性値指定を含む場合。
同一の属性定義を表し,同一の現在値を共有するクラスattdefのノードすべて。
この属性定義を宣言する,属性定義リスト宣言内で関連付けた要素型と同じ数だけ存在する。
無指定時値の型がCURRENTの場合。
無指定時型CURRENTを持ち,文書型宣言において先行する属性定義の数。
クラスattdefのノードの特性curgrpの値内のすべてのattdefノードは,特性curattixに関して同じ値を開示する。二つのクラスattdefのノードは,それらが特性curattixに関して同じ値を開示する場合にだけ同じ現在値を共有する。
無指定時値の型が,CURRENTの場合。
無指定時実体宣言が,内部実体を宣言している場合。
無指定時実体宣言が,外部実体を宣言している場合。
データ属性割当てのリスト。属性定義リスト宣言で宣言された順序で,実体の各宣言済み属性に一つずつ存在する。
無指定時実体宣言が,外部実体を宣言している場合。
無指定時実体宣言が,外部実体を宣言している場合。
無指定時実体宣言が,外部実体を宣言している場合。
記法が,関連してATTLISTをもつ場合。
要素型が,関連してATTLISTをもつ場合。
無指定時値が,属性値指定を含む場合。
最初の子は区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのためのクラスgendelmのノードとなる。外部実体がある場合,そのクラスentendのノードは,区切り子dscが存在する場合,区切り子dscのためのクラスgendelmのノードの直前に現れ,存在しなければ区切り子mdcのためのクラスgendelmのノードの前に現れる。
文書型定義が,外部識別子を含む場合。
属性定義リストが適用可能な要素型であって,その名前が属性定義リスト宣言に現れる順序で並べたもの。これには未定義の要素型は含まれない。
無視されなかった実体宣言。
実体宣言で宣言済みの実体。実体が無指定時実体と宣言されている場合には,ヌル値をとる。
宣言済みの記法。
要素が取り込み済み下位要素の場合にだけ真となる。
要素が宣言内容としてEMPTYをもつ場合又は明示的に内容参照をもつ場合であって,要素の終了タグが省略した場合にだけ真となる。
最初の子が区切り子stagoのためのクラスgendelmのノードとなる。クラスentstart,クラスentendのノードは,文書型指定においてだけ出現する。
開始タグをその要素に指定した場合。
最初の子が区切り子etago又は区切り子netのためのクラスgendelmのノードとなる。クラスentstart,クラスentend及びクラスignmrkupのノードは,文書型指定においてだけ出現する。
データタグではなく,終了タグをその要素に対して指定した場合。
文字が文字REであって,実際に生じた位置以外の場所で出現しなければならない場合にだけ真となる。
クラスreposのノードは,実際に文字REが出現した場所を示す。
文字REが,実際に生じた場所。
文字が文字REであって,実際に生じた位置以外の場所で出現しなければならない場合。
実体参照のマーク付け。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照内の名前グループにおいてだけ出現する。
ISO8879の7.6.1の規則にしたがって,無視された文字RS。
文字が,名前付き文字参照の置換の場合。
ISO8879の7.6.1の規則にしたがって,無視された内容の中の文字RE。
文字REが無視された場所ではなく,元々生じた場所で出現する。
文字は,名前付きの文字参照の置換の場合。
ISO 8879の7.6.1の規則によって,本来の出現位置とは異なる位置で出現した文字REの本来の出現位置。
クラスreposの各ノードに関して,特性movedreが真のクラスcharacterのノードが一つある。
クラスreposのための文字。
データタグがその要素の終了タグとして働く場合にだけ真となる。
データタグを構成するデータ文字は,それを含む要素の内容中で要素に続く。
モデル群が,データタグ群の場合。
モデル群が,データタグ群であって,そのデータタグ形式が,データタグ埋め草ひな形を含む場合。
要素型宣言の要素型が,付番を含んでいる場合。
要素型宣言の要素型が,付番要素又は付番群を使用する場合。
ランクグループ内の付番核。
要素型宣言が,付番群を含む場合。
付番核の名前。
付番核となる要素型。
空の短縮参照対応。
宣言値#EMPTYをもつ短縮参照対応は含まない。
要素型に関連付して,短縮参照対応が存在する場合。
要素型に関連付して,短縮参照対応が存在する場合。
対応が,暗黙のうちに宣言値#EMPTYと宣言されていない場合。
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのためのクラスgendelmのノードとなる。
SGMLでは,既に短縮参照対応と関連付けた要素型を含まないと規定している。
短縮参照使用宣言が,関連付けられた要素型を含む場合。
入力と同じ短縮参照区切り子。
区切り子の最初の文字を,名前付き文字参照で入力した場合。
最初の子は区切り子mdoのためのクラスgendelmのノードとなり,最後の子は区切り子mdcのためのクラスgendelmのノードとなる。
現行の連結集合を,無効にするために使用した空の連結集合。
要素は文書要素で,活性単純連結処理がある。
属性割当てのリスト。その要素に関して宣言した各連結属性の々に対して一つずつ存在する。
連結属性の起点は,連結規則となる。
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
属性の起点は,連結規則となる。
適用可能な明示的な連結規則が存在し,その結果要素が暗黙指定でない場合。
原始要素型が,暗黙指定の現在連結集合内の連結規則。
活性状態の明示的な連結処理が存在する場合。
単純連結処理の連結型名。
連結型が,活性状態の場合にだけ真となる。
単純連結型に対して,常に基本文書型となる。
連結型が,明示的な連結型の場合。
連結型が,単純型ではない場合。
連結型宣言部分集合が,ID連結集合宣言を含む場合。
宣言値#INITIAL,宣言値#EMPTY又はID連結集合は含まない。
連結集合が,宣言値#INITIAL,宣言値#EMPTY又はID連結集合のいずれでもない場合。
関連する要素型の名前。
連結規則が,原始要素型が暗黙指定の明示的な連結規則ではない場合。
連結規則が,ID連結集合宣言に出現する場合。
連結規則が,ID連結集合宣言に出現する場合。
連結型が,USELINKパラメタを含む場合。
USELINKパラメタによって名前付けられた連結集合。
連結規則がUSELINKパラメタを含む場合。
連結規則が,POSTLINKパラメタとして宣言値#RESTOREを含む場合に真となる。
連結集合指定が,宣言値#RESTOREを指定しない場合。
POSTLINKに続いて,連結集合指定に指定したトークン。
連結規則がPOSTLINKパラメタを含む場合。
連結規則が,原始要素型に暗黙指定をもつ明示連結規則ではない場合。
連結規則が,原始要素型に暗黙指定をもたない明示連結規則の場合。
連結規則が,結果要素型に暗黙指定をもたない明示連結規則の場合。
連結規則が,結果要素型に暗黙指定をもたない明示連結規則の場合。
連結集合が宣言値#EMPTYではない場合。
連結型定義が,外部識別子を含む場合。
無視しなかった連結集合指定宣言。
最初の子は,区切り子mdoのためのクラスgendelmのノードとなり。最後の子は区切り子mdcのためのクラスgendelmのノードとなる。
連結集合指定に,宣言値#RESTOREを指定した場合に真となる。
連結集合指定に,宣言値#RESTOREを指定しなかった場合に真となる。
連結集合指定に指定したトークン。
副文書実体への参照の結果。
実体参照のマーク付け。
クラスssep,クラスentstart及びクラスentendは,名前付き実体参照内の名前グループにおいてだけ出現可能とする。
SGML宣言において,FORMAL YESを指定した場合。
このクラスが提供する文字列を値にもつ各特性の値文字列は,生成規則で指定された最小化データを含む。これには"//","-//","+//",又は文字sを含まない。
所有者識別子の型。
入手不能標識が指定された場合にだけ真となる。
テキスト識別子が,公開文言語を含む場合。
テキスト識別子が,公開文指定順序を含む場合。
テキスト識別子が,公開文表示版を含む場合。つまり,公開テキスト言語又は公開文指定列のあとに"//"が存在する。
宣言した具象構文の一般大文字小文字置換。
宣言した具象構文の実体大文字小文字置換。
参照具象構文の一般大文字小文字置換。
具象構文で宣言したとおりに区切ったリテラル。SGML文書と同じく,リテラル内で区切り子文字列を入力するために文字参照を使用してよい。
データベース及び表計算プログラムで支持している,いわゆる「カンマ区切りのASCII」形式の文字列リスト。リテラルは,区切り子を除き,各文字列に適用可能な字句型に適合する。
最小化データ。
宣言した具象構文における名前。
宣言した具象構文での名前トークン。
宣言した具象構文の数値。
宣言した具象構文の名前文字。
要素の属性の名前。
属性指定リスト。
一般実体名。
(文書中で指定された)要素のID
(dtd:effectiveが真の場合)要素型名。
区切り子RNIに続く,オプションの名前。
9.7 DSSSL SGML グローブ設計
DSSSLでは,DSSSL指定内の体系形式sgml-grove-planによって指定する単一のグローブ設計を規定する。7.1.2 を参照のこと。