#?SuikaWiki/0.9 - [1] 【[[SGML]]】 Information technology−SGML support facilities−Registration procedures for public text owner identifers。 - [2] SGML で使う[[公開識別子]]とその[[登録所有者識別子]]の部分の[[割当]]てについての国際規格。 - [3] 第1版: '''ISO 9070''':1990 Information technology−SGML support facilities−Registration procedures for public text owner identifers - [4] 第2版: '''ISO/IEC 9070''':1991 Information technology−SGML support facilities−Registration procedures for public text owner identifers - [5] 対応 [[JIS]] は [[JISX4172]] (:1998 : 第2版)。 [6] ISO/IEC 9070 が直接規定している内容は、 そのものは SGML の[[所有者識別子]]ではありません。 簡単な規則により所有者識別子として表現することもできるものです。 具体的に何が違うのかというと、 SGML の所有者識別子は [CODE(SGML)[+//]] (登録所有者識別子であることを表す接頭辞) から始めますが、 ISO/IEC 9070 の規定にはこれはでてきません。 SGML で使うための方法が書かれていないのは不親切ですが、 たぶん自明なこととしてわざわざのせなかったんでしょう。 [7] ISO/IEC 9070 の規定では、[[公開識別子]]には3種類あります。 いずれも等価で、相互に変換可能とされています。 - 正規文字列 (通常定義される、可視表現にも利用出来る形式) - [[SGML公式公開識別子]] - [[構造化名公開識別子]] 但し3つ目は、具体的な形式を規定していません。 ([[SGML]] を使う方法のための [[DTD]] と [[ASN.1]] での使い方が例示されています。) [8] -公開識別子 = 所有者名 "//" オブジェクト名 ;; [1] -所有者名 = 登録済み所有者名 / 未登録所有者名 ;; [2], 120文字以下 -オブジェクト名 ;; 100文字以下 -登録済み所有者名 = 登録済み所有者接頭部 *("::" 所有者名要素) ;; [3] -所有者名要素 = (所有者名文字 *([ [[SP]] ] 所有者名文字)) − (*(所有者名文字 / SP) ("//" / "::") *(所有者名文字 / SP)) ;; [4] -所有者名文字 = [[ALPHA]] / [[DIGIT]] / "'" / "(" / ")" / "+" / "," / "-" / "." / ":" / "=" / "?" / "/" ;; [5] -登録済み所有者接頭部 = ISO出版物主体接頭部 / ISO登録主体接頭部 ISO会員団体主体接頭部 / ISO認定組織主体接頭部 ;; [6] 中央登録済み要素をもたなければならない。 -ISO出版物主体接頭部 = 'ISO' ["/" aaa] SP nnnn ["-" pp] [":" yyyy] ;; [7] -aaa = ;; 例: 'IEC' -nnnn = ;; 例: 9070 -pp = <部番号 (もしあれば)> ;; 例: 1 -yyyy = 4*DIGIT ;; 出版年。改訂を受けることがある[[物体]]の場合に使う -ISO登録主体接頭部 = 全登録主体接頭部 / ISBN接頭部 / ISO2325接頭部 ;; [8] -全登録主体接頭部 = 'ISO' ["/" aaa] SP nnnn ["-" pp] "/RA" ;; [9] nnnn‐pp が登録規格の番号 -ISBN接頭部 = 'ISBN' SP gggg "-" pppp ["-" tttt] ;; [10] -gggg = -pppp = -tttt = -ISO2375接頭部 = 'ISO Registration Number ' ccc ;; [11] -ccc = <[[ISO-IR]] 文字集合番号> ;; 枝番はどうするんだろう? -ISO登録主体接頭部 = aa ;; [12] -aa = <[[ISO3166]] 2文字[[国名符号]]> ;; ISO の構成機関を識別する -ISO認定組織主体接頭部 = 'ICD' iiii "/" oooo ;; [13] -iiii = <[[ISO6523]] 4桁国際符号指示子> -oooo = -未登録所有者名 = 共通所有者接頭部 1*("::" 所有者名要素) -共通所有者接頭部 = 'UNREGISTERED' -オブジェクト名 = オブジェクト名要素 *("::" オブジェクト名要素) ;; [14] --;; オブジェクト名が ISO 出版物を識別する時には、一つのオブジェクト名要素は出版物表題の最後の要素 (部番号を除く。) で構成しなければならない。 ISO 会員団体も同様の制約を課すのが望ましい。 -オブジェクト名要素 = (オブジェクト名文字 *([SP] オブジェクト名文字)) − (*(オブジェクト名文字 / SP) ("::" / "//") *(オブジェクト名文字 / SP)) ;; [15] -オブジェクト名文字 = ALPHA / DIGIT / "'" / "(" / ")" / "+" / "," / "-" / "." / ":" / "=" / "?" / "/" ;; [16] - [9] [10] と [11] は、文字列比較の時には [9] の形式に変換します。 - [10] >>9 [11] は、 [CODE(ABNF)['ISO 2375/RA::' ccc]] と表します。 - [11] >>9 [10] は、 [CODE(ABNF)['ISO 2108/RA::' gggg "-" pppp ["-" tttt] ]] になります。 - [12] [[SGML]] の[[公式公開識別子]]にするときには、 [CODE(SGML)[ISO出版物主体接頭部]]又は [CODE(SGML)[ISO2375接頭部]]が使われている場合を除いて、頭に [CODE(SGML)[+//]] をつけます。 (両者の場合は何もつけずにそのままにします。) - [13] [CODE(SGML)[未登録所有者名]]が使われてているときにそのまま [CODE(SGML)[+//UNREGISTERED::[VAR[name]]]] と出来るのか、それとも [CODE(SGML)[-//[VAR[name]]]] にしないといけないのかは不明です。 - [14] なお、 SGML の世界では ISO/IEC 9070:1991 より後に [[WebSGML]] ができて、そこでは[[公開識別子]]・[[公的公開識別子]]に使える文字が増えて、 [[+//IDN]] という所有者識別子も追加されています。 ISO/IEC 9070 もこれにあわせて改訂されるんでしょうかね? どうなんでしょうか。 - [15] >>12 [SAMP[ISO 9070/RA::[VAR[name]]]] のような場合には [SAMP(SGML)[+//ISO 9070/RA::[VAR[name]]]] になるので注意が必要ですね。