Extensible Markup Language
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/22 03:52 UTC 版)
拡張子 | .xml |
---|---|
MIMEタイプ | application/xml text/xml (非推奨) |
UTI | public.xml |
開発者 | World Wide Web Consortium (W3C) |
初版 | 1998年 |
種別 | マークアップ言語 |
派生元 | Standard Generalized Markup Language (SGML) |
拡張 | XHTML、DocBook、RSS、ebXML、 ... |
国際標準 | 1.0 (Fifth Edition) 1.1 (Second Edition) |
SGMLからの移行を目的として開発された。文法はSGMLの構文解析器と互換性を保つようにSGMLのサブセットに定められシンプルになり、機能はSGMLに無いものが追加されている。
XML の仕様は、World Wide Web Consortium (W3C) により策定・勧告されている。1998年2月に XML 1.0 が勧告された。2010年4月現在、XML 1.0 と XML 1.1 の2つのバージョンが勧告されている(#バージョン)。
ちなみに、「eXtensible Markup Language の略である」と書かれることがあるが、これは間違いであり、XはExの発音を表している[1]。
概要
基礎的概念と利用目的
XMLは、個別の目的に応じたマークアップ言語を定めるための汎用的言語であり、「タグの入れ子」式の構文が拡張性を容易にするとして「extensible」を謳っている。
データ構造としては木構造になるため、巡回があるようなネットワーク構造を直接扱うことはできない(XLinkなどの提案がある)。
XMLの最も重要な目的は、異なる情報システムの間で構造化された文書や構造化されたデータの共有を容易にすることである[2]。
HTMLとXMLの違い
Webページを記述するマークアップ言語であるHTMLは、XMLと文法がよく似ている。これはどちらもSGMLが元になっているためである。
HTMLが特定目的のための言語であるのに対し、XMLはHTMLのような特定目的のための言語を新たに定めるための仕組みであり、タグを定義する事でXMLベースのマークアップ言語を定義することができる。実際、HTMLと同等の機能をXMLによって定義したXHTMLが開発されている。
XMLを基盤とするマークアップ言語とスキーマ言語
XMLで文書の論理的構造を規定する制約を追加することによって、XMLを適用したマークアップ言語を実装できる。XMLを適用したマークアップ言語は非常に多く存在している (#XMLの応用の節を参照)。例えば、Extensible HyperText Markup Language (XHTML)[注 1]、DocBook、RSS、Mathematical Markup Language (MathML)、ebXML、Scalable Vector Graphics (SVG)、MusicXML などがある。さらにXMLは、そういった個別のXMLについての構文規則を示すためのスキーマ言語も用意している。スキーマ自体もXMLのXML Schemaの他、XMLではない記法でとても簡潔に大変わかりやすく書ける、Compact Syntaxも用意されているRELAX NGもある。
オープンな仕様
XMLは、同じく汎用的に使えるマークアップ言語である Standard Generalized Markup Language (SGML) の、簡素化されたサブセットとして、人間にとっても比較的判読しやすいように設計された (#歴史を参照)。XMLの仕様は、XMLワーキンググループなどにより設計が行われ、World Wide Web Consortium (W3C) により勧告 (策定) されている。XMLは無償で使えるオープン標準の技術である。XML仕様のW3C勧告ではXMLの文法とXMLプロセサ (XMLパーサ、XML文書の構文解析器) のための要件を定めている。1998年2月に XML 1.0 が勧告され、2004年2月に XML 1.1 が勧告された(#バージョン参照)。
正当性水準について
XML文書の正当性の水準には、整形式XML文書と妥当なXML文書の、2つの水準がある (#整形式XML文書と妥当なXML文書を参照)。XML文書のマークアップ規則に従って記述されていることだけが問題とされる文脈で、スキーマ言語を使わずに、XML文書のマークアップ規則に従って記述された文書を、「整形式XML文書」 (well-formed XML document) という (#XMLの構文と整形式XML文書を参照)。さらに、XML文書をより厳密に構造化した文書やデータとして扱いたい場合は、XML文書の構造をスキーマ言語によって定義することができ、XMLプロセサでそのXML文書(XMLインスタンス)に対してその文書構造に従っていることを検証する(妥当性検証を行う)というように、XML技術を使うこともできる (#XML文書の論理的構造と妥当なXML文書を参照)。 XML文書に対して妥当性検証を行うことにより、従来アプリケーションソフトウェアで行ってきた、XML文書の構造の検査や、XML文書に含まれるデータに対するデータ型のチェックや値の範囲のチェックが、可能となる。スキーマ言語としては Document Type Definition (DTD、文書型定義)、W3C XML Schema、RELAX NG (文書スキーマ定義言語: DSDL)などがある。XML文書の構造がスキーマ言語によって定義され、XML文書の妥当性を検証するソフトウェアによって妥当性が検証されたXML文書のことを「妥当なXML文書」 (valid XML document) という。整形式XML文書は、妥当なXML文書である場合と、妥当なXML文書ではない場合とがある。スキーマ言語を採用して妥当性検証を行う方法でXMLを使うこともできるし、スキーマ言語を採用せず妥当性検証を行わないで手軽にXMLを使うこともできる。
幅広い人間言語のサポート
XML勧告では、XMLプロセサがサポートすべき文字符号化方式(文字コード)としてUTF-8とUTF-16 (Unicode) を定めているため、英語以外の言語も扱いやすくなっている (#多言語環境で使うを参照)。また、UTF-8とUTF-16以外の文字コード(UCS-4、EUC-JP、Shift_JIS、EBCDICなど)を用いることも可能である[注 2]。
補完技術
XMLだけでは最低限の書式しか決められていないため、XMLの力を引き出す各種の関連技術が別途標準化されている (#XMLの拡張および#XML文書をプログラムで処理する、#XML文書を視覚的に表示する、#XML情報集合を参照)。 以下に挙げるものをはじめとして、現在も多くの関連技術の標準化作業が行われている。
- プログラムからXML文書を処理する方法として、Document Object Model (DOM) や Simple API for XML (SAX) などのアプリケーションプログラミングインタフェース (API) が標準化されている[注 3]。
- XML文書のスタイルを指定する技術(スタイルシート)として Extensible Stylesheet Language (XSL) や Cascading Style Sheets (CSS) などがある。
- XML文書を非テキスト形式(バイナリ)で効率的に表現する方法として、World Wide Web Consortium (W3C) は Efficient XML Interchange (EXI) フォーマットを定義した。
XMLの普及とXMLへの批評
XMLは現在、広く普及している技術であるが、その技術的な有用性などについて、肯定的に評価する人々が多い一方で、批判的に評価する人々も多い (#XMLに対する支持と批判を参照)。
整形式XML文書と妥当なXML文書
XML文書の正当性の水準には、整形式XML文書と妥当なXML文書の、2つの水準がある。なおXML文書に対して、整形式XML文書としての検査のみを行うXMLプロセサを非検証XMLプロセサといい、整形式XML文書としての検査に加えて妥当なXML文書としての検査を行うXMLプロセサを検証XMLプロセサという。
- 整形式XML文書
- 整形式XML文書 (well-formed XML document) は、XMLの構文の規則のすべてに準拠している。例えば、文書中のある要素が開始タグが有るが対応する終了タグが欠落している場合、その文書は整形式 (well-formed) ではない。整形式ではない文書はXML文書とはみなされない。非検証XMLプロセサおよび検証XMLプロセサは、整形式ではない文書を処理することはできない (処理を試みるとエラーになる)。
- 妥当なXML文書
- 妥当なXML文書 (valid XML document) は、整形式XML文書としての条件を満たしていることに加えて、文書の論理的構造を規定する何らかの規則に準拠している。このような規則は、RELAX NG や XML Schema、Document Type Definition (DTD、文書型定義) などのスキーマ言語で定義されたスキーマで定める。例えば、あるXML文書がスキーマに定義されていない要素 (タグ) を含んでいた場合、検証XMLプロセサは、そのXML文書を処理することはできない。検証XMLプロセサによって検証されたXML文書は、妥当 (valid) であると位置づけられる。なお、妥当な文書であっても、非検証XMLプロセサでは実体の定義を確認しないため、仕様で定められている実体参照(<、>など)以外の私的な実体参照を用いている場合、非検証XMLプロセサは当該実体を参照できず致命的なエラーとなる。
- ^ 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のページへのリンク