Extensible Markup Language
出典: フリー百科事典『ウィキペディア(Wikipedia)』
拡張子: | .xml |
---|---|
MIME Type: | application/xml、text/xml(非推奨) |
UTI: | public.xml |
開発者: | World Wide Web Consortium |
種別: | マークアップ言語 |
派生元: | SGML |
拡張: | XHTML、RSS、Atom・・・ |
国際標準: | 1.0(Fourth Edition) |
Extensible Markup Language(エクステンシブルマークアップランゲージ、XML、拡張可能なマーク付け言語、JIS X 4159:2002)は、データを記述するマークアップ言語を定義するためのメタ言語である。W3C(World Wide Web Consortium)により1998年2月にXML 1.0が勧告された。 2007年現在、W3C勧告の最新バージョンはXML 1.1である。
目次 |
[編集] 特徴
XMLが開発される以前に、データを記述するマークアップ言語を定義するためのメタ言語として、SGMLという技術がすでに存在していた。SGMLはいくつかの分野で普及していたが、仕様が複雑で処理系の開発が難しく、またSGML文書の処理が重いという欠点があった。XMLではこのようなSGMLの欠点を解決すべく文法を簡素化した。技術者にとってはXMLはSGMLよりも習得しやすい技術であり、また処理系の開発が容易になったことで低コストでXML技術を利用できるようになった。現在ではXMLは非常に広く普及している技術である。XHTML、RSS、SOAP、SVGなどがXMLアプリケーションの一例である。
スキーマ言語によって文書構造を定義し、XML ParserでそのXML文書(XMLインスタンス)の妥当性を検証できる。スキーマ言語としてはDTD、XML Schema、RELAX NG(文書スキーマ定義言語:DSDL)などがある。スキーマ言語によって文書構造が定義され、XML文書の妥当性を検証するソフトウェアによって妥当性が検証されたXML文書のことを「妥当なXML文書」(valid XML document)という。一方、XML文書のマークアップ規則に従って記述されただけの文書を「整形式XML文書」(well-formed XML document)という。XML文書を、より厳密に構造化した文書やデータとして扱いたい場合は、文書構造をXML SchemaやRELAX NGなどのスキーマ言語で記述し、XML文書に対してその文書構造に従っていることを検証する(妥当性検証を行う)ことによって、従来アプリケーションプログラムで行ってきたXML文書に含まれるデータに対するデータ型のチェックや値の範囲のチェックが可能となる。
XMLだけでは最低限の書式しか決められていないため、XMLの力を引き出す各種の関連技術が別途標準化されている。現在も多くの関連技術の標準化作業が行われている。例えば、プログラムからXML文書を処理する方法として、DOMやSAXなどのAPIが標準化されている[1]。また、スタイルを指定する技術(スタイルシート)としてXSLやCSSなどがある。
XML勧告では、XML Parserがサポートすべき文字コード(文字の符号化方式)としてUTF-8とUTF-16(Unicode)を定めているため、英語以外の言語も扱いやすくなっている。また、UTF-8とUTF-16以外の文字コード(UCS-4、EUC-JP、Shift_JIS、EBCDICなど)を用いることも可能である[2]。
[編集] 基本的な構文
XML文書は「要素」(element)と「属性」(attribute)が複数集まって構成されている。要素は内部に子要素を含むことができる。属性は要素に付随し、属性の内部に子要素を含むことはできない。要素は開始タグと終了タグで内容を挟むことで表現する。開始タグは「<要素名>」、終了タグは「</要素名>」で記述する。次の例は内容に文字列「XMLはデータ記述用メタ言語である」を持つ要素articleである。
<article>XMLはデータ記述用メタ言語である。</article>
要素は内部に別の要素を含むことができる。また、内容のない要素を空要素(empty element)という。空要素ではタグを「<要素名/>」や「<要素名 />」と記述するか、「<要素名></要素名>」と記述する。
<article> <title>XML</title> <content>XMLはデータ記述用メタ言語である。</content> <templete_stub/> </article>
属性は開始タグの中に「属性名="値"」もしくは「属性名='値'」の構文で記述する。
<article type="スタブ"> <title>XML</title> <content>XMLはデータ記述用メタ言語である。</content> <templete_stub/> </article>
文書の先頭には <?xmlで始まり?> で終わるXML宣言が必要である。XML宣言にはバージョン番号(XML1.0の場合は"1.0")と、その文書の文字符号化方式(以下の例では UTF-8)などを記述できる。ただし、文字符号化方式がUTF-8とUTF-16の場合は省略が可能である。
<?xml version="1.0" encoding="UTF-8"?> <article type="スタブ"> <title>XML</title> <content>XMLはデータ記述用メタ言語である。</content> <templete_stub/> </article>
このようにXML文書たる形式にしたがっている文書を「整形式XML文書」(well-formed XML document)という。整形式であることに加え、スキーマ言語によって定義された文書構造に準じていることが、ソフトウェアによって検証された文書を「妥当なXML文書」(valid XML document)という。
[編集] オフィススイートにおけるXML技術の利用
従前、オフィススイートには各ソフトの特有のバイナリ形式としてデータが保存されていた。しかしながらこれでは互換性が低く、様々な情報をデータベースとして利用するオフィススイートでは不都合が生じていた。
そのため、データの標準化を進めて互換性を高めるため、各オフィススイートはXML形式でデータを出力する機能や、そもそも標準保存形式をXMLベースとするものが増えてきた。
具体的には、Microsoft OfficeではXPのバージョンからXML形式への対応を始め、2003でカスタム定義のXML Schemaがサポートされるに至った。バージョン2007ではデフォルトの保存方式がXMLとなった(Microsoft Office Open XML)。他方、OpenOffice.orgはXMLベースの保存形式を当初より標準としていた(英語版バージョン1.0は2002年5月1日リリース)。また、OpenOffice.orgに限らず、どのオフィススイートでも利用できるOpenDocument形式が構造化情報標準促進協会(OASIS)によって標準規格として認定されている。
[編集] 関連項目
[編集] XML関係の仕様
- スキーマ言語
- XML Schema
- 文書スキーマ定義言語(DSDL:Document Schema Definition Languages)
- DTD
- XML名前空間(Namespaces in XML)
- スタイルシート
- XPath
- XLink
- XQuery
[編集] API
[編集] Webサービス技術
[編集] XMLの応用
- XHTML
- RSS
- RDF
- MathML
- MusicXML
- Ajax
- EBML
- XMLデータベース
- RosettaNet
- ebXML
- ContactXML
- TravelXML
- CanonicalXML
- BML
- データ放送
- BCML
- OAGIS
- XBRL
- UBL
- XUL
- SVG
- SyncML
- OpenDocument
- Microsoft Office Open XML
- XPS
- RobotML
[編集] 団体
- OASIS - 標準化団体の1つ。
- Apache XML - Apacheソフトウェア財団のプロジェクト。
[編集] 外部リンク
[編集] 仕様
[編集] 団体
- W3C(World Wide Web Consortium)
- OASIS(営利団体を中心としたXML仕様策定組織)
- 日本XMLユーザーグループ
- XMLコンソーシアム
- XMLマスター(XML技術者育成推進委員会)
[編集] 実装
- Apache XML プロジェクト(Java/C++)
- サン・マイクロシステムズ Java技術(XML)
- RubyのXML処理系(REXML)
- Open XML Editor
- XML Document Authoring Tools
- XML-DEV Mailing List
- <oXygen/> XML Editor