#?SuikaWiki/0.9 [1] 【[[SGML]]】 > -[CODE(SGML)[最小表記 = ([[lit]], 最小データ, lit) | ([[lita]], 最小データ, lita) ―(76)]] -[CODE(SGML)[最小データ = 最小データ文字* ―(77)]] -[CODE(SGML)[最小データ文字 = [[RS]] | [[RE]] | [[SPACE]] | [[LCLetter]] | [[UCLetter]] | [[Digit]] | [[Special]] ―(78)]] > 最小表記は、その最小データの中の [CODE(SGML)[RS]] を無視し、2個以上連続する [CODE(SGML)[RE]] 及び [CODE(SGML)[SPACE]] (先頭及び末尾に位置する場合を除く。) を1個の [CODE(SGML)[SPACE]] に置換した上で解釈する。 [INS[(以上 [[JISX4151]]‐1992 9.1.7)]] > '''量的制限''' 解釈を終えた最小表記の長さは、 その[[区切り子]]を除いて、 ([[具象構文]]の定義にかかわらず) [[規格参照量集合]]の中の量 [CODE(SGML)[[[LITLEN]]]] の値以下でなければならない。 [INS[(同 9.1.7.1)]] [2] 最小表記は、例えば[[公開識別子]]を指定するのに使います。 [3] 規格参照量集合の [CODE(SGML)[LITLEN]] の値は [CODE(SGML)[240]] です。従って、 [CODE(SGML)[RE]] 及び [CODE(SGML)[SP]] の[[正規化]]の結果の文字列 (区切子 [CODE(SGML)[lit]] 又は [CODE(SGML)[lita]] を除く。) の長さが 240 以下でなければなりません。 [SAMP(SGML)[" [CODE(SGML)[RE]][CODE(SGML)[RS]] foo [CODE(SGML)[RS]]bar [CODE(SGML)[RS]][CODE(SGML)[RS]]FOO[CODE(SGML)[TAB]] [CODE(SGML)[RS]][CODE(SGML)[RE]] [CODE(SGML)[TAB]][CODE(SGML)[RS]][CODE(SGML)[RS]].[CODE(SGML)[RS]][CODE(SGML)[RE]][CODE(SGML)[RE]]"]] を解釈すると、その値は [SAMP(SGML)[" [CODE(SGML)[RE]] foo bar FOO[CODE(SGML)[TAB]] [CODE(SGML)[TAB]].[CODE(SGML)[RE]][CODE(SGML)[RE]]"]] となります。たぶん。 [4] [[WebSGML]] では [[Special]] が拡張されています。 従って、最小データで使用することが出来る文字は、 :旧来の SGML: [\{[CODE(SGML)[RS]]}\{[CODE(SGML)[RE]]}\{[CODE(SGML)[SPACE]]}A-Za-z0-9'()+,-./:=?] :Web SGML: [\{[CODE(SGML)[RS]]}\{[CODE(SGML)[RE]]}\{[CODE(SGML)[SPACE]]}A-Za-z0-9!#$%'()*+,-./:;=?@_] - [5] 2個以上連続する〜だから、1個だけの [CODE(SGML)[RE]] はそのままなんだ。2個以上連続する ([CODE(SGML)[RE]] 及び [CODE(SGML)[SPACE]]) なのか 2個以上連続する [CODE(SGML)[RE]] 及び2個以上連続する [CODE(SGML)[SPACE]] なのかも実はよく分からん・・・。 - [6] [[XML]] の場合の公開識別子表記の解釈 ([[公開識別子]>>4]) と話がちょっと違いますね。。。 この違いは正しいものなのかなあ? それとも SGML のミス? (でもミスなら 1986 年から今まで誰も気づかないのはおかしいし。。。) - [7] [CODE(SGML)[lita]] ([CODE(SGML)[']]) を使っていると、公開識別子に [CODE(SGML)[']] が使われている場合困ってしまいます。 [CODE(SGML)[']] は公開識別子に使うべきではないでしょう。