* 構文 [1] 仕様書: - [[ISO/IEC 10744]]:1997 --[FSIDR] [CSECTION[A.6.4.3 FSI syntax]] [2] 公式システム識別子の構文は次の通りです [SRC[FSIDR NOTE 505 改]]。 - [CODE(ABNF)[[DFN[FSI]] := [ [[実体用法開始タグ]] ] SOS 列 *([CODE(SGML)[[[or]]]] SOS 列)]] -- 実体用法開始タグを指定できるのは実体用法 ([CODE(SGML)[[[entuse]]]]) 蓄積域管理器を使う場合。 -- [CODE(SGML)[or]] を使う時は[[代替SOS列]] ([CODE(SGML)[[[altsor]]]]) 選択子が有効である必要がある。 - [CODE(ABNF)[[DFN[SOS 列]] := 1*SOS]] - [CODE(ABNF)[[DFN[SOS]] := [[SOS開始タグ]] [[SOI]] [ [[SOS終了タグ]] / [CODE(SGML)[[[etago]]]] [CODE(SGML)[[[tagc]]]] ] ]] -- 公式システム識別子を使う場所にかかわらず、[[参照具象構文]]を使います。 -- [CODE(SGML)[[[or]]]] を使う時は終了タグが必須。 [3] 公式システム識別子は主として[[蓄積域物体指定]]の列 (SOS 列) で構成されます。各 SOS を解決して得られた文字列を連結したものが識別される[[実体]]の文字列となります。 [4] - [CODE(ABNF)[[DFN[SOS 開始タグ]] := [CODE(SGML)[[[stago]]]] 蓄積域管理器名 ([CODE(SGML)[[[s]]]] / [CODE(SGML)[[[tagc]]]])]] -- [CODE(ABNF)[蓄積域管理器名]]は、[[公式システム識別子宣言]]で宣言されたもの。 仕様書本文 [SRC[FSIDR]] を ABNF に翻訳するとこうなりますが、 どう考えてもおかしいですよね (>>5 の規定もあるし)。 通常の [[SGML]] の[[開始タグ]]にもっと似た形になっているはずです。 [5] [[属性値表記]]および SOI (SOS タグの間にある[[内容]]) では[[数値文字参照]]が使えます。 [SRC[FSIDR NOTE 503]] [6] SOI では[[記録開始]]と[[記録終了]]が SGML の[[内容]]と同じように扱われます。 (記録開始は削除され、開始タグ直後および SOI 末尾の記録終了は削除されます。) [SRC[FSIDR]] [7] 代替 SOS 列として指定されている各 SOS 列はすべて同一の文字列が得られることが期待されています。 システムは好きなものを選ぶことができます。 [SRC[FSIDR]] [8] 実体用法開始タグは、実体のすべてに適用される[[属性]]を指定できます。 実体用法開始タグは代替 SOS 列のいずれかの一部とはみなしません。 [[実体用法記法]]は蓄積域管理器ではなく、 属性の宣言・指定のためだけに使います。なお、終了タグは存在しません。 [SRC[FSIDR]] [[#comment]] * メモ