Extensible Markup Language
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/22 03:52 UTC 版)
歴史
デジタルメディアの出版を行ってきた人々は、1980年の後半—インターネットが広く使われるようになるより前の時期—には既に、動的に情報を視覚化するための技術として、汎用的なマークアップ言語である Standard Generalized Markup Language (SGML) が多くの用途に適していることを、理解していた[17][18]。 SGMLはいくつかの分野で普及していたが、仕様が複雑で処理系の開発が難しく、またSGML文書の処理が重いという欠点があった。1990年代半ばまでには、SGMLを実際に使っていた一定の人々は、新しく現れた World Wide Web (ウェブ) を経験した。 そうした人々は、ウェブが発展することにより直面するいくつかの問題に対して、SGMLが解決策を提供すると、強く考えるようになった。 Dan Connolly は、自分が1995年にWorld Wide Web Consortium (W3C) のスタッフになった時に、SGMLをW3Cのアクティビティの一覧に追加した。 このアクティビティの作業は、1996年の中頃にサン・マイクロシステムズのジョン・ボサックが、このアクティビティに関する宣言を起草しアクティビティの共同作業者を募ることで、始まった。 ボサックは、SGMLとウェブの双方を経験していた人々の小さなコミュニティと良好な関係を築いていた。 ボサックは、自分の作業においてマイクロソフトから支援を受けた。
XMLの仕様は、11人のメンバーからなるワーキンググループにより編集され[19]、だいたい150人から構成される Interest Group のメンバーから支援を受けて作成された。 技術的な論議が Interest Group のメーリングリストで提起され、提起された論議は合意形成により解決された。合意形成ができなかった場合は、ワーキンググループのメンバーの投票による多数により解決された。 このアクティビティで行われた設計上の決定とその根拠の記録は、Michael Sperberg-McQueen が1997年12月4日に編集した[20]。 このアクティビティではジェームズ・クラークが技術リーダとして貢献した。 クラークの貢献として特筆されるのは、空要素 "<empty />" の導入と、この技術の名称 "Extensible Markup Language" (XML) の命名である。 この技術の名称として、他に提案され吟味されたものの一部を次に示す。
- MAGMA (Minimal Architecture for Generalized Markup Applications)
- SLIM (Structured Language for Internet Markup)
- MGML (Minimal Generalized Markup Language)
XML仕様のワーキンググループではジョン・ボサックが議長を務めた。 このワーキンググループではジェームズ・クラークが技術リーダを務めた。 ワーキンググループの共同エディタは、もともとはティム・ブレイと Michael Sperberg-McQueen であった。 このアクティビティのプロジェクトの途中で、ブレイはネットスケープ・コミュニケーションズとのコンサルティングの契約を結んだ。 このブレイとネットスケープの契約に対しては、マイクロソフトが強く抗議した。 ブレイは、エディタの役割を一時的に辞することを要請された。 このことに関して、ワーキンググループでは激しい議論が行われた。 この議論は、最終的にはマイクロソフトの Jean Paoli が第3の共同エディタに就くことで解決した。 なおXMLワーキンググループには、日本人としてはただ一人村田真がメンバーとして1997年に参加した。
XMLワーキンググループは、直接会って活動したことは数回しかなかった(最初の会議は1997年8月22日)。 XML仕様の設計は、電子メールと週に一度の電話会議の双方を有機的に活用することにより、成し遂げられた。 XML仕様の設計では、SGMLの欠点を解決すべく文法を簡素化した。 XML仕様における設計上のいくつかの大きな決定は、1996年の7月から11月までの間の12週間の真剣な作業のなかで行われた。 この12週間の作業の後 (1996年11月) に、XMLの最初のワーキングドラフトが公表された[21]。 その後も1997年をとおして設計作業は続けられ、XML 1.0 は、1998年2月10日にW3Cの勧告となった[22]。
XML 1.0 は、ワーキンググループが目標としていた次の目標を達成したと、評価する人々が多い。
- インターネット環境での使いやすさ
- 汎用的な用途での使いやすさ
- SGMLとの互換性
- XML文書を扱うソフトウェアの開発を容易にする機能
- オプショナルな機能の最小化
- XML文書の読みやすさ
- 形式に即していること (formality)
- 簡潔さ
- XML文書の作成・編集の容易さ
技術者にとってはXMLはSGMLよりも習得しやすい技術であり、また処理系の開発が容易になったことで低い費用でXML技術を利用できるようになった。 現在ではXMLは広く普及している技術である。
XMLの前身であるSGMLと同様にXMLでも、いくつかの冗長な構文要素があり、要素記述子の繰り返しを仕様に含んでいる。 文書を短くすることは、XMLワーキンググループでは、XMLの構造において本質的な問題とは見なされなかった。
起源
XMLは、ISO標準 Standard Generalized Markup Language (SGML) のサブセットである。 XMLのほとんどはSGMLから変更されずに採り入れられている。 XMLがSGMLから採り入れられている技術的な要素には次のものが含まれる。
- 論理的な構造と物理的な構造を分離する (要素と実体)
- 文法に基づいた妥当性検証 (Document Type Definition (DTD、文書型定義))
- データとメタデータを分離する (要素と属性)
- 混合内容 (mixed content、要素の内容として子要素と文字列データが混在する内容モデル)
- 表現から処理を分離する (処理命令; processing instruction)
- 山括弧の構文
XMLがSGMLから採り入れなかった技術要素としては、SGML宣言がある (XMLでは文書の文字符号化方式としてUTF-8とUTF-16を採用している)。
XMLの他の技術的起源としては、次の3つが挙げられる。
- Text Encoding Initiative (TEI)
- Text Encoding Initiative (TEI、en:Text Encoding Initiative) は、「転送構文」として使うためのSGMLのプロファイルを定義している。
- HyperText Markup Language (HTML)
- HyperText Markup Language (HTML) では、文書の文字符号化集合はリソースの文字符号化方式と分離されている。
- Extended Reference Concrete Syntax (ERCS)
- Extended Reference Concrete Syntax (ERCS) から、XML 1.0 の命名規則が採用された。ERCSは、十六進数の文字参照を導入しており、全てのUnicodeの文字を使うことができるようにするために参照の概念を導入している。
XML仕様の設計に関する議論のなかで開発された革新的な考え方には、次のものが含まれる。
バージョン
2010年1月現在の時点では、XMLには2つのバージョンがある。
- XML 1.0
- XML 1.0 が最初に策定されたのは1998年2月10日であった。1998年の策定後、数度の改訂 (修正) を経ている。この数度の改訂については新しいバージョン番号は割り当てられていない。現在の時点では、Fifth Edition(第5版)が最新版である。XML 1.0 Fifth Edition は、2008年11月26日にW3Cから公開された。XML 1.0 は、多くの処理系が実装され、現在においても一般的な用途に対しては採用が勧められるとされている。日本ではJIS X 4159:2005としてJIS規格化されている[23]。
- XML 1.1
- XML 1.1 が最初に策定されたのは2004年2月4日であり、XML 1.0 Third Edition が公開された日と同じ日であった。現在の時点では、Second Edition (第2版) が最新版である。XML 1.1 Second Edition は、2006年8月16日にW3Cから公開された。XML 1.1 にはいくつかの機能が追加されている。XML 1.1 で追加された機能については議論の対象となっている。XML 1.1 で追加された機能は、XML をいくつかの状況で使い易くすることを目指している[24]。XML 1.1 で追加された主な機能は次のとおりである。
- XML 1.1 を実装している XML の処理系は、あまり多くない。XML 1.1 は、XML 1.1 特有の機能を必要とする状況においてのみ、採用を勧められるとされている[25]。
XML 1.0 と XML 1.1 は、要素名と属性名に使うことができる文字集合において異なっている。XML 1.0 では、 Unicode 2.0 で定義された文字集合のみ要素名および属性名として使うことができる。Unicode 2.0 の文字集合には、世界で使われているほとんどの文字が含まれている。しかし Unicode 2.0 の文字集合には Unicode 2.0 より新しいバージョンで追加された文字は含まれていない。こうした Unicode の新しいバージョンで追加された文字としては、モンゴル語、クメール語 (カンボジア語)、アムハラ語、ビルマ語などの文字が、含まれる。
XML 1.1 においては、ほとんどのUnicode文字をXML文書の文字列データや属性値として使うことができる。また Unicode の現在のバージョンで定義されていない文字でさえ、使うことができる。 XML 1.1 の方式では、いくつかの文字については使うことができないが、その他の全ての文字は使うことができる。 一方で XML 1.0 では、仕様で明示的に規定された文字集合のみを、XML文書の文字列データや属性値として使うことができる。 このため XML 1.0 では、Unicode の新しいバージョンで追加される文字を扱うことはできない。
XML文書の文字列データや属性値について、XML 1.1 では XML 1.0 より多くの制御文字を使うことができる。 しかし「堅牢性」の観点から、XML 1.1 で使えるようになった制御文字の多くは、文字参照としてXML文書内に記述しなければならない。 XML 1.1 で使えるようになった制御文字には、2つの改行コードが含まれる。 この2つの改行コードは、XML 1.1 の処理系では空白記号として扱われる。 制御文字のうちこの空白記号として扱われる制御文字のみが、XML 1.1 で文字参照を使わずに直接にXML文書に記述することができる。
現在、XML 2.0 に関する議論が行われている。 XML-SW (SW は、skunk works スカンクワークスの意味) が、XMLの最初の設計者の一人によって書かれた。 XML-SW には、XML 2.0 はどのようなものかということについての、いくつかの提案を含んでいる。 その内容は次のとおりである。
World Wide Web Consortium (W3C) では、XML Binary Characterization (XMLバイナリ表現) のワーキンググループが活動しており、同ワーキンググループでは、XML情報集合をバイナリ形式に符号化するために、ユースケースと特性を調査する予備研究を行っている。 このワーキンググループは、公的な標準を制定することが認可されているわけではない。 XMLは定義上明確にテキストに基づいているため、ITU-TとISOは、それぞれが定めるバイナリインフォメーションセットに対して、混乱を避けるために Fast Infoset の名前を使っている (参照: ITU-T Rec. X.891 | ISO/IEC 24824-1)。
特許の主張
2005年の10月に、Scientigoという小さな企業が、XMLの使用に対して同企業の2つの特許 U.S. Patent 5,842,213 と U.S. Patent 6,393,426 の対象になるという主張を、公的に表明した。 この2つの特許は、「特定の『階層構造ではない』統合されていない中立的な形式での、[データの]モデリングと格納と転送」を対象としている。 特許申請によると、この2つの特許は1997年と1999年に出願された。 Scientigoの最高経営責任者 (CEO) である Doyal Bryant は、この2つの特許を「金銭に換える」という願望を述べたが、同社は「世界を敵にするつもりはない」と言明した。 Bryant は、Scientigoは自社の2つの特許についていくつかの大企業と話し合っていると述べた[26]。
XMLを使う人々や企業に在籍していない専門家たちは、Scientigoの主張に対して懐疑的で批判的な立場で反応した。 一定の人々は、Scientigoをパテント・トロールであると述べた。 ティム・ブレイは、この2つの特許がXMLを対象とするという主張は「ばかげている」と述べた[27]。
XMLに関係する多くの先行技術がSGMLを含めて存在している。
- ^ Extensible HyperText Markup Language (XHTML) は、マークアップ言語 HyperText Markup Language (HTML) を簡素化しその一貫性を改良しようという試みである。なお、HTMLは、Standard Generalized Markup Language (SGML) に基づいたマークアップ言語である。
- ^ XMLプロセサを利用する際には、XML文書で用いている文字コードをサポートしたものを選択することになる。
- ^ 他の方法でXML文書を処理することも可能である
- ^ 一つの要素の内容として文字列データのみを含むものは、混合内容ではない。また内容のない「空要素」も混合内容ではない。一つの要素の内容がいくつかの子要素だけから構成されるものも、混合内容ではない。
- ^ ただし、Binary XML の試みは、XML文書のバイナリ表現を使うことでこうした問題を軽減するべく努力している。例えば、Javaによる Fast Infoset 標準のリファレンス実装では、構文解析 (パース) の速度は Apache Xerces Java と比べて10倍速く、Javaによる最も高速なXMLプロセサの一つであるPiccolo driver と比べて4倍速い[1]。
- ^ XMLの汎用性とそれに伴う重さはしばしば揶揄の対象とされることもある。IP、TCP、UDPをXMLで定義するというジョークRFC ( RFC 3252 ) が存在する。
- ^ 階層型モデルは木構造の固定的な単一の視点による見方しか提供しない。例えば、役者が映画の下位に位置づけられるか、映画が役者の下位に位置づけられるかのいずれかであり、双方の視点を両立することはできない。
- ^ 例えば多義語を参照
- ^ "XML stands for Extensible Markup Language. The X is for the first syllable of Extensible. eXtensible is a spelling error."
- ^ Bray, Tim; Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau (2006年9月). “拡張可能なマーク付け言語 (XML) 1.0”. World Wide Web Consortium. 2007年10月6日閲覧。
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.132
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.139
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、pp.28-29
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.29
- ^ xml-dev - Fw: An I-D for text/xml, application/xml, etc
- ^ JavaプラットフォームAPI仕様
- ^ Fitzgerald, Michael (2004). Learning XSLT. Sebastopol, CA: O'Reilly Media. pp. p.243. ISBN 978-0-596-00327-2
- ^ Push, Pull, Next! - Bob DuCharme, XML.com
- ^ http://www.asahi-net.or.jp/~DP8T-ASM/java/tools/Relaxer/index_ja.html
- ^ http://java.sun.com/xml/jaxb/
- ^ 『平成22年度 新ICT利活用サービス創出支援事業(電子出版の環境整備)メタデータ情報基盤構築事業)報告書』(PDF)(レポート)インフォコム株式、2011年3月31日、66頁 。2019年8月12日閲覧。
- ^ JIS X 4160:2007「XMLパス言語」附属書 B
- ^ XML Schema 1.1 Part 1: Structures
- ^ RELAX NG and W3C XML Schema, James Clark, 4 Jun 2002
- ^ Bray, Tim (2005年2月). “A conversation with Tim Bray: Searching for ways to tame the world’s vast stores of information”. Association for Computing Machinery's "Queue site". 2008年5月5日閲覧。
- ^ “Publishers, multimedia, and interactivity”. Interactive multimedia. Cobb Group. (1988). ISBN 978-1-55615-124-8
- ^ このワーキンググループはもともとは "Editorial Review Board" と呼ばれていた。このワーキンググループの最初のメンバーとXML仕様の first edition が完成するまでに加わっていた7人のメンバーは、XML 1.0 first edition のW3C勧告の最後に一覧して掲載されている。参照: http://www.w3.org/TR/1998/REC-xml-19980210#sec-xml-wg
- ^ Reports From the W3C SGML ERB to the SGML WG And from the W3C XML ERB to the XML SIG
- ^ Extensible Markup Language (XML) - W3C Working Draft 14-Nov-96
- ^ “W3CがXML 1.0を勧告”. INTERNET Watch (1998年2月12日). 2012年9月5日閲覧。
- ^ JIS X 4159:2005「拡張可能なマーク付け言語(XML)1.0」(日本産業標準調査会、経済産業省)
- ^ “Extensible Markup Language (XML) 1.1 (Second Edition) - Rationale and list of changes for XML 1.1”. W3C. 2006年12月21日閲覧。
- ^ Harold, Elliotte Rusty (2004). Effective XML. Addison-Wesley. pp. 10-19. ISBN 978-0321150400
- ^ Small company makes big claims on XML patents - CNET News.com
- ^ XML co-inventor Bray responds to patent assault | Between the Lines | ZDNet.com
- ^ 例えば、 XML-QL Proposal discussing XML benefits、 When to use XML、 "XML Sucks" on c2.com、Daring to Do Less with XML
- ^ Harold, Elliotte Rusty (2002). Processing XML with Java(tm): a guide to SAX, DOM, JDOM, JAXP, and TrAX. Addison-Wesley. 0201771861XML文書はバイナリと比べて冗長である
- ^ a b Efficient XML Interchange Evaluation, W3C Working Draft, 7 April 2009。W3C は、XML を非テキスト形式(バイナリ)で効率的に表現する方法を別途定義している。
- ^ Harold, Elliotte Rusty (2002). XML in a Nutshell: A Desktop Quick Reference. O'Reilly. 0596002920XML文書はとても冗長であり、高速であることが必要な大規模なデータベースシステムで情報の探索を行うには効率が悪い。
- ^ Bierman, Gavin (2005). Database Programming Languages: 10th international symposium, DBPL 2005 Trondheim, Norway. Springer. 3540309519XMLの構文は、いくつかの用途においては、人間が読むにはとても冗長である。人間にとっての読みやすさを改善するために dual syntax を提案する
- ^ 世間で言われているところによれば、XMLより「冗長性の小さい」多くのテキストフォーマットが、XMLに刺激を受けかつ先行的な業績としてXMLを位置づけ言及している。 例えば次のページを参照: http://yaml.org/spec/current.html、 http://innig.net/software/sweetxml/index.html、 http://www.json.org/xml.html
- ^ Lim, Ee-Peng (2002). Digital Libraries: People, Knowledge, and Technology. Springer. 3540002618固定的な階層構造を採用することに伴ういくつかの制限について議論する。2002年12月にシンガポールで開催された 5th International Conference on Asian Digital Libraries, ICADL 2002 の議事録より。
- ^ Searle, Leroy F. (2004). Voice, text, hypertext: emerging practices in textual studies. University of Washington Press. 0295983051オーバーラップする要素を表現する代替システムを提案する。
- ^ 例えば次のページを参照: http://www-128.ibm.com/developerworks/library/x-abolns.html
- ^ “The Myth of Self-Describing XML”. 2007年5月12日閲覧。
- ^ “Does XML Suck?”. 2007年12月15日閲覧。("8. Complexity: Attributes and Content" を参照)
固有名詞の分類
マークアップ言語 |
Artificial Intelligence Markup Language NewsML Extensible Markup Language Scalable Vector Graphics BBコード |
データシリアライゼーションフォーマット |
JavaScript Object Notation WDDX Extensible Markup Language Quoted-printable Abstract Syntax Notation One |
- Extensible Markup Languageのページへのリンク