#?SuikaWiki/0.9 - [1] 【[[SGML]]】 [[公開識別子]]から[[システム識別子]]への変換を定義する標準形式。 - [2] ''カタログの作成と修正'' - [3] ''TR 9401:1995 - Entity Management'' - [4] 日本語の情報はほとんどないです。 (自明だからかな?) - [5] [[JIS-TR]] も変な標準情報ばっかり増やさないで、こういうのを翻訳したらいいのに。 [[#comment]] *SGML 型録の形式 [7] [[ABNF]] です。厳密な定義は >>2 の仕様書に載っている [[SGML//生成規則//表記法]]によるものを参照して下さい。 -型録 = *[[ps]] *((拡張外部識別子 / その他の情報) 1*[[ps]]) -その他の情報 = [[見出し語]] *(1*ps [[引数]]) -見出し語 = システム文字列d -引数 = システム文字列d / ([[lit]] 1*システム文字b lit) / ([[lita]] 1*システム文字ba lita) -拡張外部識別子 = (公開識別子見出し語 1*ps 公開識別子 1*ps 保管物体識別子) / (名前見出し語 1*ps 実体名指定 1*ps 保管物体識別子) / (無名見出し語 1*ps 保管物体識別子) -公開識別子見出し語 = 'PUBLIC' / 'DTDDECL' -名前見出し語 = 'ENTITY' / 'DOCTYPE' / 'LINKTYPE' -無名見出し語 = 'SGMLDECL' / 'DOCUMENT' -実体名指定 = 1*拡張名前文字a / (lit 1*拡張名前文字b lit) / (lita 1*拡張名前文字ba lita) --;; 「実体名」には、文書型名及び連結型名を含む。 -保管物体識別子 = 1*システム文字a / (lit 1*システム文字b lit) / (lita 1*システム文字ba lita) -- ;; 現在のファイル・システムで利用可能なファイルの識別子であるべき。 -- ;; 特に、 [CODE(ABNF)[[DFN[[[POSIX]] 可搬ファイル名文字集合]] = ALPHA / DIGIT / "." / "-" / "_"]] のみから構成されるなら、ファイル名とみなさなければならない。 -- ;; [[相対経路]]名である場合は、型録ファイルからの経路を示す。 -ps = [[s]] / [[注釈]] -注釈 = [[com]] システム文字列c com -lit = <"> ;; 二重引用符 -lita = "'" ;; 一重引用符 -com = "--" -公開識別子 = -s = -拡張名前文字a = 拡張名前文字 − ([[NULL]] / lit / lita / s) -拡張名前文字b = 拡張名前文字 − (NULL / lit) -拡張名前文字ba = 拡張名前文字 − (NULL / lita) -拡張名前文字 = <任意の[[文字]]> -システム文字a = システム文字 − (NULL / lit / lita / s) -システム文字b = システム文字 − (NULL / lit) -システム文字ba = システム文字 − (NULL / lita) -システム文字列c = *システム文字 − (*システム文字 com *システム文字) − (NULL) -システム文字列d = 1*システム文字a − (公開識別子見出し語 / 名前見出し語 / 無名見出し語) -システム文字= <任意の[[文字]]> -- ;; システム文字の列は、少なくても1024文字までは扱えることが保証されている。 :[CODE(SGML)[[[PUBLIC]]]]:指定した[[公開識別子]]で識別される実体の[[実体文]]を、指定した保管物体識別子で識別される物体とする。 :[CODE(SGML)[[[ENTITY]]]]:名前が実体名指定と一致する実体の実体文を、指定した保管物体識別子で識別される物体とする。 :[CODE(SGML)[[[DOCTYPE]]]]:[[文書型名]]が実体名指定と一致する[[文書実体]]の[[文書型定義]]の[[外部部分集合]]となる実体文を、指定した保管物体識別子で識別される物体とする。 :[CODE(SGML)[[[LINKTYPE]]]]:[[連結型名]]が実体名指定と一致する[[連結型宣言]]で指定される実体の実体文を、指定した保管物体識別子で識別される物体とする。 :[CODE(SGML)[[[SGMLDECL]]]]:指定した保管物体識別子で識別される物体を[[SGML宣言]]の入った実体として使用する。 :[CODE(SGML)[[[DTDDECL]]]]:公開識別子が文書型宣言のものと一致する文書実体について、指定した保管物体識別子で識別される物体を SGML 宣言の入った実体として使用する。 :[CODE(SGML)[[[DOCUMENT]]]]:指定した保管物体識別子で識別される物体を構文解析を開始する実体として使用する。 (この見出し語を使った指定が複数あることは、禁止はしないが認めもしない。) [8] SGML 宣言は、 =文書に明示されているもの =[CODE(SGML)[DTDDECL]] で指定されたもの =[CODE(SGML)[SGMLDECL]] で指定されたもの という優先順を持ちます。 もちろん、文書型宣言は[[具象構文]]が事前にわかっていないと読めないのですが、 大体の SGML 文書はその辺りは規格参照具象構文と同じでしょうから、 ほとんど問題ないでしょう。