/
653.txt
357 lines (261 loc) · 16.1 KB
/
653.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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
[52] [DFN[XML]] ([DFN[Extensible Markup Language]]、[DFN[拡張可能マーク付け言語]])
は、ある種の[[木構造]]を表現する[[マーク付け言語]]構文です。
* 仕様書
- [6] ''Extensible Markup Language (XML) 1.0'' <http://www.w3.org/TR/REC-xml>
- [7] ''Extensible Markup Language (XML) 1.0'' <http://www.w3.org/TR/1998/REC-xml-19980210>: First Edition
- [11] ''Errata in REC-xml-20001006'' <http://www.w3.org/XML/xml-V10-2e-errata>
* 標準化
- [5] [[W3C]] XML [[Activity]]: ''Extensible Markup Language (XML)'' <http://www.w3.org/XML/>
* XML の版
[53] 現在までに [[XML]] には大別して3つの[[版]]があります。
:[[XML 1.0]] 第4版以前:[[XML]] の最初の版です。第1版は1998年に [[W3C]] [[勧告]]となりました。
:[[XML 1.1]]:[[名前]]として利用可能な[[文字]]を拡充するなどした [[XML]] の改訂版です。
ほとんど普及せず、 [[XML 1.0 5e]] の出版によって事実上廃止されました (名目上は依然 [[W3C]]
[[勧告]]のままです)。
:[[XML 1.0 5e]] 以降:[[名前]]として利用可能な[[文字]]を拡充するなどした [[XML]]
の改訂版です。 [[XML 1.1]] の失敗を踏まえて[[版番号]]は 1.0 のまま拡張するという暴挙に出ましたw
* XML 関連仕様
[54] [[XML]] はそれ自体でも利用可能ですが、通常は関連仕様と併用されます。
:[[XML名前空間]]: [[XML]] の[[要素]]や[[属性]]を [[URL]] によって[[大域的]]に識別可能とします。
:[[XML情報集合]]: [[XML]] と [[XML情報集合]]が具体的な構文を規定するのに対し、
それに相当する[[データ・モデル]]を規定しています。
:[[XLink]]: [[XML]] で[[ハイパーリンク]]を実現します。元々は [[XML]]
の第2部とされていました。
:[[XPointer]]: [[URL]] の[[素片識別子]]において [[XML]] [[文書]]の一部を識別します。
:[[XPath]]: [[XML]] [[文書]]の一部を識別できる[[式言語]]です。
:[[XML Schema]]: [[XML]] [[文書]]のための[[スキーマ言語]]です。
:[[XQuery]]: [[XML]] [[文書]]を[[データベース]]的に操作する[[照会言語]]です。
:[[XSLT]]: [[XML]] [[文書]]を[[変形]]する[[雛形]]言語です。
:[[XML基底]]: [[XML]] [[文書]]の[[基底URL]] に関する規定です。
:[CODE(XMLa)@en[[[xml:id]]]]: [[XML]] [[要素]]に[[識別子]]を与える[[属性]]です。
[55] [[Webブラウザー]]で [[XML]] を扱う場合には、 [[DOM中核]]、[[DOM XML]]、
[[DOM XPath]] のような仕様が用いられます。
[56] [[XML]] は構文であり、[[語彙]]は含まれません。代表的な [[XML]]
の[[語彙]]としては [[XHTML]]、[[SVG]]、[[MathML]] などがあります。
* XML の部分集合
[71] [[XMLK]] は、 [[XML]] から[[文書型宣言]]を除去したものです。
[19]
'''XMPP の制限付き XML''':
[[XMPP]] では[RUBYB[制限付き] [restricted]] XML
を規定しています [SRC[[[RFC 3920]] 11.1]]。
実装は次の構造を生成しては'''なりません'''し、
受取ったら無視しなければ'''なりません'''。
- [[注釈宣言]]
- [[処理指令]]
- [[文書型宣言]]
- [[定義済実体]]以外への[[実体参照]]
- [[定義済実体]]に相当する生の[[文字]]
([[文字データ]]や[[属性値表記]]で)
[42] [[Open Packaging]] は [[XML]] [[文書]]中の [[DTD宣言]]の使用を禁じています
[SRC[[[ECMA 376]] Part 2 8.1.4]]。
[43] [[WML2]] は [[DTD]] の[[引数実体]]の上書きを禁じています
[SRC@en[[[WML 2.0]] [CSECTION@en[6.17. Document Conformance]]]]。
[29]
[[SHF]] ([[RFC 4194]]) は[[定義済実体]]''以外''の[[実体参照]]の使用を禁止しています。
[30]
[[VoiceXML 2.0]]は[[DTD]]中の[[引数実体]]を上書きする目的で[[宣言部分集合]]を使用することを禁じています。
[51] [[RFC 5485]] は [[Internet-Draft]] の [[XML]] [[文書]]の[[署名]]のための[[正準形]]として、
[[改行]]に [CODE(charname)@en[[[LF]]]] を使わ[['''なければならない''']]と規定しています
[SRC@en[[[RFC 5485]] 2.3.]]。
[73] [[Pingback]] はその [CODE(HTMLe)@en[[[link]]]] [[要素]]の[[文字列]]表現に特別な制約を設けています。
* 無限に長い XML
[58] [[XMPP]] ではプロトコルのデータストリーム自体が [[XML]] になっており、
プロトコル接続の最初に[[根要素]]の[[開始タグ]]があり、
接続が続く限り[[根要素]]が閉じられることがありません。
[59] [[動画]]の[[メタデータ]]を [[XML]] で記述する [[BSDL]] は、
<http://www.w3.org/TR/2010/WD-xslt-21-requirements-20100610/#scenario-mpeg21>
によると、対象となる[[動画]]が「"infinite" live streams」足りえるために
[[BSDL]] 自体もやはり[[要素]]が開いたままずっと閉じないことがあるようです。
* XML 以外の XML と同様なデータ・モデルの直列化方式
[47] [[HTML5]]
[48] [[EXI]]
[74] [[SOX]]
[75] [[xml2]] の行指向フォーマット
[25]
[CITE[XML Alternatives]] <http://www.pault.com/pault/pxml/xmlalternatives.html>
([[名無しさん]])
[26]
[CITE[dW : XML : XMLウォッチ: XML用の代替構文を調査する]] <http://www-6.ibm.com/jp/developerworks/xml/030117/j_x-syntax.html>
([[名無しさん]])
[28]
[CITE[S-expressions for XML documents]] <http://www.w3.org/People/cmsmcq/2001/xs-sexp/xscomp.html>
[77] [[JXON]]
[78] [[E4X]]
[79] [[JSX (Facebook)]]
* XML データモデル
[69] 構文としての [[XML]] に対応するメモリー上のデータ構造および [[API]]
はいくつも存在します。
[FIG(short list)[
- [[XML情報集合]]
- [[PSVI]]
- [[DOM]]
- [[XPath 1.0のデータモデル]]
- [[XDM]]
]FIG]
* XML 応用
[72] [[XML]] を使った[[マーク付け言語]]には、次のものがあります。
[FIG(short list)[
- [[Webで使われているXMLマーク付け言語]]
-- [[XHTML]]
-- [[SVG]]
-- [[MathML]]
-- [[RSS]]
-- [[Atom]]
- [[XSL-FO]]
- [[XSLT]]
- [[XQueryX]]
- [[XLink]]
- [[XML Base]]
- [CODE(XMLa)@en[[[xml:id]]]]
- [[XInclude]]
- [[WML]]
- [[BML]]
- [[DocBook]]
- [[SMIL]]
- [[XUL]]
- [[XAML]]
- [[XML Schema]]
- [[RELAX NG]]
- [[XML Catalog]]
- [[SOAP]]
- [[WS-*]]
- [[SAML]]
- [[RFC 2629]]
- [[XMLSpec]]
- [[OpenSearch]]
- [[OpenDocument]]
- [[OOXML]]
- [[LDML]]
- [[RDF/XML]]
- [[CSL]]
- [[SSML]]
- [[VoiceXML]]
- [[CCXML]]
- [[TTML]]
- [[SWML]]
- [[XML Events]]
- [[XFrames]]
- [[HLink]]
- [[WebDAV]]
- [CODE[[[crossdomain.xml]]]]
- [CODE[[[clientaccesspolicy.xml]]]]
- [[CDF]]
]FIG]
* セキュリティー
[FIG(short list)[
- [[XML Signature]]
- [[XML Encryption]]
- [[XML entity explosion attack]]
- [[外部実体]]
]FIG]
[70] [[XML]] 自体の抱える問題の他に、
[[XML]] を使った語彙によっては、例えば [[XHTML]] の [CODE(HTMLe)@en[[[script]]]]
[[要素]]など、別途[[セキュリティー]]に配慮が必要な[[要素]]などもあったりします。
* 知的財産権に関して
- [4] ''XML'' は機械部品系で[[登録商標]] (登録3334400) の他、出版系の会社?が登録申請中です (商願2001-090297)。後者は謎のロゴを含めた登録で、 [[W3C]] XML に関係する書籍のロゴでないかと思われます。
[27]
[CITE[XMLの利用料金を支払え--特許権を主張する企業 - ZDNet Japan]] <http://japan.zdnet.com/news/ir/story/0,2000054251,20089449,00.htm>
([[名無しさん]] [WEAK[2005-11-09 12:55:37 +00:00]])
* XML 10
[38]
[CITE[Slashdot | Celebrate the XML Decade]] ([CODE[2007-03-19 08:18:01 +09:00]] 版) <http://it.slashdot.org/article.pl?sid=06/11/17/002223&from=rss>
[39]
[CITE@en[Microsoft XML Team's WebLog : People are reflecting on XML after 10 years]] ([CODE[2007-03-19 08:18:09 +09:00]] 版) <http://blogs.msdn.com/xmlteam/archive/2006/11/19/people-are-reflecting-on-xml-after-10-years.aspx>
[40]
[CITE[XML 10 @ W3C]] ([CODE[2008-02-13 09:21:39 +09:00]] 版) <http://www.w3.org/2008/xml10/>
* XML の意義
[44] [CITE[Back to XML - 檜山正幸のキマイラ飼育記]] ([TIME[2008-12-17 07:51:42 +09:00]] 版) <http://d.hatena.ne.jp/m-hiyama/20081216/1229410746>
[46]
[CITE@ja[yohei-y:weblog: 半構造データ、あるいは Web 上のデータ]] ([TIME[2009-01-18 22:12:16 +09:00]] 版) <http://yohei-y.blogspot.com/2008/12/web.html>
* メモ
- [1] ''ToyFish.Net'' <http://www2.airnet.ne.jp/sardine/index.html>
- [2] ''TR List/J_Tpc'' <http://www.y-adagio.com/public/standards/std_lst_jtp.htm>
- [3] ''どら猫本舗のリファレンスカウンター'' <http://www.doraneko.org/>
- [8] XML 氏んじゃの一部の人達って [[SGML]] 的構文 ([[DTD]] とか。) を毛嫌いしている嫌いがありますけど、たしかに XML の実装を作ってみるとわかります。 XML では文書インスタンスは[[完全タグ付き]]だから随分簡単に実装できちゃうんですけど、[[マーク宣言]]や[[マーク区間]]はそれが通用しない茨の道というか。
- [9] SGML から XML にしたときに文書インスタンス本体は完全タグ付きで単純にしたのに、 DTD は SGML 構文で取り残された形だから、 SGML ではどっちも似たようなものだったのに、 XML ではやけに複雑なきがしてしまうんだよね、 DTD とかが。
- [10] もうこうなってしまうと、マーク宣言もマーク区間も、 SGML 的な (XML からみたら) 「特殊」な構文を使うのではなく、 (XML からみたら) 一般的な[[タグ]]の構文にしちまえ、 [[XML名前空間]]だってあるんだしさ〜、という気持ちになってくる。
- [12] ''To XML from HTML'' <http://www.y-adagio.com/public/confs/sgml_xml/dd99/procdg.htm>: [[SGML]] 側からみた [[XML]], というか [[ISO/IEC]] や [[JIS]] の動向。
- [13] ''XMLの現状'' <http://www.y-adagio.com/public/confs/sgml_xml/cif99/s0_0.htm>
- [14] [WEAK[2004-02-05 12:07:54 +00:00]] ''[[名無しさん]]'': XML 1.0 TE, XML 1.1, XML Names 1.1, XML 情報集合 1.1 が一気に W3C 勧告になりました。
- [15] XML 1.0 TE, XML 1.1 は前規格との diff がありますけど、 Names と Infoset はなし。ひどいなあ。 XML も PR と REC の diff がないのは嬉しくない。仕方ないから [[XMLspec]] 版の diff 取ったら、ソース整形が一杯あって嫌になります。。。 で、 diff の結果ですが、 XML 1.1 PR→REC は細々した修正が多々と、 charmod WD への参照をやめて一部抜粋附属書化。技術的には大体 PR と同じでしょう。 (大違いだったら REC にはならんわな。) Names PR→REC も細々が多々。 1.0 TE PER→CR と Infoset は見てませんけど、どうせ同じような感じでしょう。
[16] XML 1.0 TE の変更点: [[XML 1.0//TE]] に移動しました。
[17] XML 1.0 TE から XML 1.1 の変更点:
→ [[XML 1.1]>>17] 参照。
[18]
[CITE[How to validate XML]] <http://www.flightlab.com/~joe/sgml/validate.html>
[20]
[CITE[ASN.1 Site - XML]] <http://asn1.elibel.tm.fr/xml/>
([[名無しさん]])
[21]
[CITE[JavaWorld Online - XMLボキャブラリのアンチ・パターン 第1回 アンチ・パターン抽出のねらいとその記述形式]] <http://www.javaworld.jp/xml/-/10904.html>
[[檜山正幸]]氏の雑誌記事 (2004年6月)。
([[名無しさん]])
[22]
>>21 [[Stricter]] 系過激派批判わろたw
([[名無しさん]])
[23]
[CITE[Collection & Copy - JavaScript、マークアップビルダ、存在しないメソッド]] <http://d.hatena.ne.jp/brazil/20050905/1125896604>
([[名無しさん]])
[24]
[CITE[Collection & Copy - ノードツリー作成、まとめ]] <http://d.hatena.ne.jp/brazil/20050906/1125984538>
[31]
[CITE[A Handy Line-breaking Algorithm for XML (esp XHTML)]] <http://www.w3.org/2000/08/lb2/>
([[名無しさん]])
[32]
>>31 [[処理指令]]の [CODE(SGML)@en[[[pic]]]] 直前に[[改行]]を入れてしまうのはやばいような。
([[名無しさん]])
[33]
[CITE[Draft DD-1996-0001 - Design Principles for XML]] <http://www.textuality.com/sgml-erb/dd-1996-0001.html>
([[名無しさん]])
[34]
[CITE[Microsoft XML Team's WebLog : People are reflecting on XML after 10 years]] <http://blogs.msdn.com/xmlteam/archive/2006/11/19/people-are-reflecting-on-xml-after-10-years.aspx>
([[名無しさん]] [WEAK[2006-11-20 11:30:10 +00:00]])
[35]
[CITE[Bug 18333 – XML Content Sink should be incremental]] ([CODE[2007-02-10 13:01:14 +09:00]] 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=18333>
([[名無しさん]] [WEAK[2007-02-10 04:10:14 +00:00]])
[36]
[CITE[ongoing · XML Automaton]] ([CODE[2006-04-24 00:25:56 +09:00]] 版) <http://www.tbray.org/ongoing/When/200x/2006/04/18/XML-Grammar>
([[名無しさん]])
[37]
[CITE[XML in XML - O'Reilly XML Blog]] ([[Rick Jelliffe]] 著, [CODE[2007-03-08 21:09:24 +09:00]] 版) <http://www.oreillynet.com/xml/blog/2006/04/xml_in_xml.html>
[41]
[CITE[Brady's Blog: Horrifically bad technology]] ([TIME[2008-10-10 04:55:49 +09:00]] 版) <http://uberbrady.blogspot.com/2008/10/horrifically-bad-technology.html>
[45] [CITE@en[Accessibility/Handlers/References/SMLs - The Linux Foundation]] ([[Linux Foundation]] 著, [TIME[2009-01-19 12:22:28 +09:00]] 版) <http://www.linuxfoundation.org/en/Accessibility/Handlers/References/SMLs>
[49] [CITE[Text::PORE - Perl Object Rendering Engine - search.cpan.org]] ([TIME[2009-03-20 23:25:27 +09:00]] 版) <http://search.cpan.org/~ztang/Text-PORE-1.02/PORE.pm>
[50] >>49 は「[[XML]] [[タグ]]」を使っていると主張していますが、 [[PORE]]
の[[雛形]]言語はどう見ても [[XML]] ではなさそうです。
[[根要素]]に相当するものがなかったり、[[引用符]]なしの[[属性値]]があったり、
[[終了タグ]]のない[[空要素]]の[[開始タグ]]があったり、
[[escape]] されていない [CODE(char)[[[<]]]] があったり。
[57] [CITE[Re: '''['''hybi''']''' Is there a traffic jam?]]
([TIME[2009-04-14 09:10:02 +09:00]] 版)
<http://www.ietf.org/mail-archive/web/hybi/current/msg00136.html>
[60] [CITE[James Clark's Random Thoughts: XML vs the Web]]
( ([TIME[2010-12-09 00:46:42 +09:00]] 版))
<http://blog.jclark.com/2010/11/xml-vs-web_24.html>
[61] [CITE@ja[RSSとトラックバック]] ([TIME[2009-03-01 01:07:57 +09:00]] 版) <http://www.kanzaki.com/docs/sw/rss-trackback.html#mode-rss>
>いくつかのMovableTypeのウェブログで試してみたところ、少なくともMTでは?__mode=rssは実装されているような感じでした(ただし、たまに整形式XMLになっていない)。
[62] [CITE@en-US[Efficient XML Interchange (EXI) Format 1.0]]
( ([TIME[2011-03-10 23:00:15 +09:00]] 版))
<http://www.w3.org/TR/2011/REC-exi-20110310/#fidelityOptions>
[63] [CITE@en[XML processor profiles]]
( ([TIME[2012-01-21 07:31:30 +09:00]] 版))
<http://www.w3.org/TR/2012/WD-xml-proc-profiles-20120124/>
[64] [CITE@en[The Lynx's Den: Coding Experiments]]
( ([[John-David Kraaikamp]] 著, [TIME[2012-04-22 18:02:26 +09:00]] 版))
<http://www.mrinitialman.com/coding_experiments.php#ElementML>
[65] [CITE@en[Web Applications 1.0 r7525 Allow XML documents to be rendered as DOM trees if they're not being used by a script or something.]]
( ([TIME[2012-11-23 07:44:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7524&to=7525>
[66] [CITE[Intent to Implement - TTML - Google グループ]]
( ([TIME[2013-11-26 19:58:56 +09:00]] 版))
<https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/vXuOTK5M0hM>
[67] [CITE@en[XML processor profiles]]
( ([TIME[2014-02-06 08:45:58 +09:00]] 版))
<http://www.w3.org/TR/2014/NOTE-xml-proc-profiles-20140206/>
[68] [CITE@EN[XPath and XQuery Functions and Operators 3.0]]
( ([TIME[2014-04-08 07:02:07 +09:00]] 版))
<http://www.w3.org/TR/xpath-functions-3/#func-parse-xml-fragment>
[76] [CITE[Z39.50 Proposal for oids for xml 1.0 and 1.1]]
([TIME[2005-10-11 22:54:51 +09:00]] 版)
<http://www.loc.gov/z3950/agency/proposals/xmloid.html>