/
667.txt
193 lines (157 loc) · 7.64 KB
/
667.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
[3] [DFN[[RUBYB[体系使用宣言処理指令][architecture use declaration processing instruction]]]]
([DFN[[CODE(SGML)[arch]]]] 処理指令) は、
[[体系使用宣言]]の[[処理指令]]版です。[[データ属性指定]]が使用できない [[XML]]
で[[体系]]を使用するために使用されています。
* 仕様
[1]
[REFS[
= [CITE[ISO/IEC JTC 1/WG N1957 ISO/IEC 10744 Amendment 1]]
<http://www.y12.doe.gov/sgml/wg8/document/1957.htm>
(1997年12月4日)
= [CITE[ISO/IEC JTC1/WG4 N1969 Summary of Voting on Document JTC 1 N 5123, Text for PDAM to ISO/IEC 10744, Information technology - Hypermedia/Time-based Structuring Language (HyTime)]] <http://www.y12.doe.gov/sgml/wg8/document/1969.htm>
(1998年4月23日): N1957 の投票結果
= [CITE[ISO/IEC JTC 1/WG N1979 Disposition of comments to HyTime Amendment 1 ballot]]
<http://www.y12.doe.gov/sgml/wg8/document/1979.htm>
(1998年5月15日): N1969 への返答
= [CITE[ISO/IEC JTC 1/WG N1980 Editing Instructions for Ammendment 1 to ISO/IEC 10744:1997 (HyTime):]]
<http://www.y12.doe.gov/sgml/wg8/document/1980.htm>
(1998年5月15日)
= [CITE[ISO/IEC JTC 1/WG N1985 ISO/IEC 10744 Amendment 1]]
<http://www.y12.doe.gov/sgml/wg8/document/1985.htm>
(1998年5月15日): N1957 の改訂版
]REFS]
[2]
- [CITE[HyTime Tutrl]] <http://www.y-adagio.com/public/standards/jis_hytime_r/tutrl.htm>
- [CITE[Secretariat Manager's Interim Report]] <http://www.jtc1sc34.org/document/secretariat_temp.html#is10744a1>
によれば、 Amd.1 の project は cancel されてしまっているようです。
* 構文
[5] 体系使用宣言処理指令は、 N1985 では次のように定義されています。
- [CODE(ABNF)[[DFN[体系使用宣言処理指令]] := [CODE(SGML)[[[pio]]]] 'IS10744' 1*[[ps]] 'arch' [[属性指定並び]] [CODE(SGML)[[[pic]]]]]]
N1957 では、
- [CODE(ABNF)[[DFN[体系使用宣言処理指令]] := [CODE(SGML)[[[pio]]]] 'IS10744' (":" / 1*[[ps]]) 'arch' [[属性指定並び]] [CODE(SGML)[[[pic]]]]]]
と定義されていました。しかし、 [CODE(char)[:]] は [CODE(ABNF)[[[NCName]]]]
で使えないので [[XML名前空間]]的にまずいため (という理由でしょう)、
削除されています。 (ところが実際に使われている文書は [CODE(char)[:]]
のものがかなりあり (例: [[XHTML m12n]])、 [[XML名前空間]]な環境下で問題になっています。)
[6] 体系使用宣言処理指令は、[[記法]]や[[データ属性]]が使用できないときに、
[[体系使用宣言]]の代わりに使うことができます。
[7] 体系使用宣言処理指令は、 [[SGML文書]]の[[前書き]]に書くことができます。
([[文書型宣言]]や[[連結型宣言]]の内部を含みます。)
ある[[体系]]に関する宣言が複数ある場合は、最初のものが使われます。
体系使用宣言処理指令を使う場合は、[[体系基底宣言]]を省略できます。
[12] [CODE[IS10744]] や [CODE[arch]] や属性指定並びの部分は、
使用している[[具象構文]]の影響を受けるのでしょうか?
(そうだとすると、[[規格参照量集合]]などを使っているとすべての属性を指定することができなくなります。)
[[#comment]]
** 属性
[8] 体系使用宣言処理指令には、次の属性を指定します。
[[体系記法宣言]]相当:
:[CODE(SGMLa)[[[name]]]]:[[体系名]]
:[CODE(SGMLa)[[[public-id]]]]:[[体系仕様文書]]の[[公開識別子]]
[[体系実体宣言]]相当:
:[CODE(SGMLa)[[[dtd-public-id]]]]:[[体系的DTD]] の[[公開識別子]]
:[CODE(SGMLa)[[[dtd-system-id]]]]:[[体系的DTD]] の[[システム識別子]]
[[体系支援属性]]相当:
:[CODE(SGMLa)[[[form-att]]]]:[[体系的形式属性名]]
:[CODE(SGMLa)[[[renamer-att]]]]:[[体系的属性改名子属性名]]
:[CODE(SGMLa)[[[suppressor-att]]]]:[[体系抑制子属性名]]
:[CODE(SGMLa)[[[ignore-data-att]]]]:[[体系無視データ属性名]]
:[CODE(SGMLa)[[[doc-elem-form]]]]:[[体系文書要素形式名]]
:[CODE(SGMLa)[[[bridge-form]]]]:[[体系橋梁形式名]]
:[CODE(SGMLa)[[[data-form]]]]:[[体系データ形式名]]
:[CODE(SGMLa)[[[auto]]]]:[[体系自動形式写像]]
:[CODE(SGMLa)[[[options]]]]:[[体系選択肢支援属性名]]
:[CODE(SGMLa)[[[quantity]]]]:[[体系量集合]]
([[属性値]]は[[量名]]と[[数]]の組でなければなりません。)
仕様書上は明確ではありませんが、体系支援属性定義並び宣言同様、
体系ごとの独自の体系支援属性も同様に指定できるようです。
[[#comment]]
* 実装
[4] XML に対応した各種の体系処理器が、体系使用宣言処理指令にも対応しているようです。
[[#comment]]
* 例
[9] [[Topic Maps]] を使用する場合 [SRC[[[ISO/IEC 13250]]:2000]]
[PRE(XML deprecated example)[
<?IS10744:arch
name="TopicMap"
public-id="ISO/IEC 13250:2000//NOTATION AFDR ARCBASE
Topic Maps//EN"
dtd-public-id="ISO/IEC 13250:2000//DTD AFDR Meta-DTD
Topic Maps//EN"
dtd-system-id="/etc/architectures/TM.mtd"
form-att="TopicMap"
renamer-att="TMNames"
suppressor-att="sTopMap"
ignore-data-att="TMIgnD"
doc-elem-form="topicmap"
bridge-form="TMBrid"
auto="nArcAuto"
?>
]PRE]
この例は、次の[[体系使用宣言]]と同等です。
[PRE(SGML example)[
<!-- 体系記法宣言 -->
<!NOTATION TOPICMAP
PUBLIC "ISO/IEC 13250:2000//NOTATION AFDR ARCBASE
Topic Maps//EN"
>
<!-- 体系支援属性 -->
<!ATTLIST #NOTATION TOPICMAP
ArcFormA NAME TopicMap
ArcNamrA NAME TMNames
ArcSuprA NAME sTopMap
ArcIgnDA NAME TMIgnD
ArcDocF NAME #FIXED topicmap
ArcDTD CDATA "TMDTD"
ArcQuant CDATA #FIXED "NAMELEN 12"
ArcDataF NAME #FIXED TMBridN
ArcBridF NAME #FIXED TMBrid
ArcAuto (ArcAuto|nArcAuto) nArcAuto
>
<!NOTATION AFDRMeta
PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN"
>
<!-- 体系的 DTD 実体宣言 -->
<!ENTITY TMDTD
PUBLIC "ISO/IEC 13250:2000//DTD AFDR Meta-DTD
Topic Maps//EN"
CDATA AFDRMeta
>
]PRE]
[10] [[ISO-HTML]] を使用する場合 [SRC[[[ISO/IEC 15445]]:2000]]
[PRE(SGML example)[
<?IS10744
arch name="html"
public-id="ISO/IEC 15445:2000//DTD HyperText Markup Language//EN"
dtd-system-id="ftp://ftp.cs.tcd.ie/isohtml/15445.dtd"
renamer-att="HTMLnames"
doc-elem-form="HTML"
>
]PRE]
[11] [[XHTML 1]] を使用する例 [SRC[[[XHTML m12n]] DTD 実装]]
[PRE(XML illegal example)[
<?IS10744:arch xhtml
public-id = "-//W3C//NOTATION AFDR ARCBASE XHTML 1.1//EN"
dtd-public-id = "-//W3C//DTD XHTML 1.1//EN"
dtd-system-id = "xhtml11.dtd"
doc-elem-form = "html"
form-att = "html"
renamer-att = "htnames"
suppressor-att = "htsupp"
data-ignore-att = "htign"
auto = "ArcAuto"
options = "HtModReq HtModOpt"
HtModReq = "Framework Text Hypertext Lists Structure"
HtModOpt = "Standard"
?>
]PRE]
[CODE(SGMLa)[name]] が[[属性]]になっていませんが、
古い案ではこういう構文だったこともあるのでしょうか?
[CODE(XMLa)[HtModReq]] 属性と [CODE(XMLa)[HtModOpt]] 属性は、
[[体系選択肢支援属性名]] ([CODE(XMLa)[options]]) [[属性]]に書かれている通り、
[[XHTML m12n]] 独自の[[体系選択肢]][[属性]]です。
但し、 [[XHTML m12n]] では [SAMP(SGML)[Text]]
のような[[名前]]の[[引数実体]]を使っていませんから、
こんなので意味があるのかどうか。
[[#comment]]
* メモ