[1] [DFN[[RUBYB[公式システム識別子宣言][FSI declaration]]]]は、 [[公式システム識別子]]で使用する[[蓄積域管理器記法]]を指定します。 [2] 仕様書: -[[ISO/IEC 10744]]:1997 --[FSIDR] [CSECTION[A.6.4.2 FSI declaration]] * 構文 [3] 公式システム識別子宣言は、 [[DTD]] または [[LPD]] に一度だけ記述できます。[SRC[FSIDR]] [4] 公式システム識別子宣言は[[処理指令]]として記述します。[SRC[FSIDR]] 文書で使用している[[具象構文]]によって記述するようです。 [5] 公式システム識別子宣言の構文: - [CODE(ABNF)[[DFN[公式システム識別子宣言]] := [CODE(SGML)[[[pio]]]] '[[IS10744]]' [[SP]] FSIDR [[ts]] SMName-list [ [[ts]] FSIDefDoc ] [[ts]] [CODE(SGML)[[[pic]]]]]] -- 最後の [CODE(SGML)[ts]] の箇所は、明確な規定がない。 -- 宣言名 [CODE(SGML)[FSIDR]] は、 [[SGML宣言]]の [CODE(SGML)[[[APPINFO]]]] の指定によって変更できる。 -- 宣言名 [CODE(SGML)[FSIDR]] は、 [CODE(SGML)[[[NAMECASE]] [[GENERAL]]]] の影響を受ける。 - [CODE(ABNF)[[DFN[SMName-list]] := SMNameA *(s SMNameA)]] -- [CODE(ABNF)[SMNameA]] の区切りは [CODE(SGML)[s]]。 - [CODE(ABNF)[[DFN[SMNameA]] := SMName [ "=" SMNameAlias ] ]] - [CODE(ABNF)[[DFN[SMName]] := <蓄積域管理器名 ([[記法名]])>]] -- システムの[[公式システム識別子定義文書]]が指定された [CODE(SGML)[SMName]] の[[記法]]を定義していないのは、[[報告可能誤り]]。 - [CODE(ABNF)[[DFN[SMNameAlias]] := <別名>]] -- [[非公式システム識別子]]が公式システム識別子の形をしている時には、 別名に替えることができる。 - [CODE(ABNF)[[DFN[FSIDefDoc]] := 'FSIDefDoc' "=" <"> external-id <"> ]] -- この引数を省略すると、システムの既定の公式システム識別子定義文書が使用される。 - [CODE(ABNF)[[DFN[external-id]] := <使用する蓄積域管理器を定義する公式システム識別子定義文書の外部参照>]] 以上が ISO/IEC 10744 の規定本文および雛形 >>6 から推定した構文です。 (構文くらいきちんと定義していただきたいものです。) [6] 雛形 [SRC[FSIDR]]: [PRE(SGML)[ ]PRE]