[52] [DFN[XML]] ([DFN[Extensible Markup Language]]、[DFN[拡張可能マーク付け言語]]) は、ある種の[[木構造]]を表現する[[マーク付け言語]]構文です。 * 仕様書 - [6] ''Extensible Markup Language (XML) 1.0'' - [7] ''Extensible Markup Language (XML) 1.0'' : First Edition - [11] ''Errata in REC-xml-20001006'' * 標準化 - [5] [[W3C]] XML [[Activity]]: ''Extensible Markup Language (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 の部分集合 [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.]]。 * 無限に長い XML [58] [[XMPP]] ではプロトコルのデータストリーム自体が [[XML]] になっており、 プロトコル接続の最初に[[根要素]]の[[開始タグ]]があり、 接続が続く限り[[根要素]]が閉じられることがありません。 [59] [[動画]]の[[メタデータ]]を [[XML]] で記述する [[BSDL]] は、 によると、対象となる[[動画]]が「"infinite" live streams」足りえるために [[BSDL]] 自体もやはり[[要素]]が開いたままずっと閉じないことがあるようです。 * XML 以外の XML と同様なデータ・モデルの直列化方式 [47] [[HTML5]] [48] [[EXI]] [25] [CITE[XML Alternatives]] ([[名無しさん]]) [26] [CITE[dW : XML : XMLウォッチ: XML用の代替構文を調査する]] ([[名無しさん]]) [28] [CITE[S-expressions for XML documents]] ([[名無しさん]]) * 知的財産権に関して - [4] ''XML'' は機械部品系で[[登録商標]] (登録3334400) の他、出版系の会社?が登録申請中です (商願2001-090297)。後者は謎のロゴを含めた登録で、 [[W3C]] XML に関係する書籍のロゴでないかと思われます。 [27] [CITE[XMLの利用料金を支払え--特許権を主張する企業 - ZDNet Japan]] ([[名無しさん]] [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]] 版) [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]] 版) [40] [CITE[XML 10 @ W3C]] ([CODE[2008-02-13 09:21:39 +09:00]] 版) * XML の意義 [44] [CITE[Back to XML - 檜山正幸のキマイラ飼育記]] ([TIME[2008-12-17 07:51:42 +09:00]] 版) [46] [CITE@ja[yohei-y:weblog: 半構造データ、あるいは Web 上のデータ]] ([TIME[2009-01-18 22:12:16 +09:00]] 版) * メモ - [1] ''ToyFish.Net'' - [2] ''TR List/J_Tpc'' - [3] ''どら猫本舗のリファレンスカウンター'' - [8] XML 氏んじゃの一部の人達って [[SGML]] 的構文 ([[DTD]] とか。) を毛嫌いしている嫌いがありますけど、たしかに XML の実装を作ってみるとわかります。 XML では文書インスタンスは[[完全タグ付き]]だから随分簡単に実装できちゃうんですけど、[[マーク宣言]]や[[マーク区間]]はそれが通用しない茨の道というか。 - [9] SGML から XML にしたときに文書インスタンス本体は完全タグ付きで単純にしたのに、 DTD は SGML 構文で取り残された形だから、 SGML ではどっちも似たようなものだったのに、 XML ではやけに複雑なきがしてしまうんだよね、 DTD とかが。 - [10] もうこうなってしまうと、マーク宣言もマーク区間も、 SGML 的な (XML からみたら) 「特殊」な構文を使うのではなく、 (XML からみたら) 一般的な[[タグ]]の構文にしちまえ、 [[XML名前空間]]だってあるんだしさ〜、という気持ちになってくる。 - [12] ''To XML from HTML'' : [[SGML]] 側からみた [[XML]], というか [[ISO/IEC]] や [[JIS]] の動向。 - [13] ''XMLの現状'' - [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]] [20] [CITE[ASN.1 Site - XML]] ([[名無しさん]]) [21] [CITE[JavaWorld Online - XMLボキャブラリのアンチ・パターン 第1回 アンチ・パターン抽出のねらいとその記述形式]] [[檜山正幸]]氏の雑誌記事 (2004年6月)。 ([[名無しさん]]) [22] >>21 [[Stricter]] 系過激派批判わろたw ([[名無しさん]]) [23] [CITE[Collection & Copy - JavaScript、マークアップビルダ、存在しないメソッド]] ([[名無しさん]]) [24] [CITE[Collection & Copy - ノードツリー作成、まとめ]] [31] [CITE[A Handy Line-breaking Algorithm for XML (esp XHTML)]] ([[名無しさん]]) [32] >>31 [[処理指令]]の [CODE(SGML)@en[[[pic]]]] 直前に[[改行]]を入れてしまうのはやばいような。 ([[名無しさん]]) [33] [CITE[Draft DD-1996-0001 - Design Principles for XML]] ([[名無しさん]]) [34] [CITE[Microsoft XML Team's WebLog : People are reflecting on XML after 10 years]] ([[名無しさん]] [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]] 版) ([[名無しさん]] [WEAK[2007-02-10 04:10:14 +00:00]]) [36] [CITE[ongoing · XML Automaton]] ([CODE[2006-04-24 00:25:56 +09:00]] 版) ([[名無しさん]]) [37] [CITE[XML in XML - O'Reilly XML Blog]] ([[Rick Jelliffe]] 著, [CODE[2007-03-08 21:09:24 +09:00]] 版) [41] [CITE[Brady's Blog: Horrifically bad technology]] ([TIME[2008-10-10 04:55:49 +09:00]] 版) [45] [CITE@en[Accessibility/Handlers/References/SMLs - The Linux Foundation]] ([[Linux Foundation]] 著, [TIME[2009-01-19 12:22:28 +09:00]] 版) [49] [CITE[Text::PORE - Perl Object Rendering Engine - search.cpan.org]] ([TIME[2009-03-20 23:25:27 +09:00]] 版) [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]] 版) [60] [CITE[James Clark's Random Thoughts: XML vs the Web]] ( ([TIME[2010-12-09 00:46:42 +09:00]] 版)) [61] [CITE@ja[RSSとトラックバック]] ([TIME[2009-03-01 01:07:57 +09:00]] 版) >いくつかの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]] 版))