拡張マークアップ言語 (XML) という言葉と、それが組織にとっていかに有益であるかについては、これまで何度も耳にしていることと思います。しかし、XML とはどういうものなのでしょうか。ここでは、XML とは何なのか、また、どのような機能を果すのかなど、XML の基礎について説明します。
この記事の内容
マークアップとタグの概要
データのマークアップという概念を理解することによって、XML を理解しやすくなります。人類は何百年も前から文書を作成してきました。また、文書に印を付けるという習慣も、それと同じぐらいの古い歴史があります。たとえば、学校の先生は、生徒の答案を必ず採点します。「段落を変えなさい」や「文を明確にしなさい」などの指示を伝えたり、スペルミスなどを生徒に指摘したりします。文書に印を付けるということは、つまり、文書の情報の構造、意味、外観を定義する手段と言えます。Microsoft Office Word の変更履歴機能も、文書に印を付けるという作業をコンピュータで実現しているだけで基本的には同じことです。
コンピュータの世界で使われる "マークアップ" も、"文書に印を付ける" という概念から進化してきたものです。マークアップは、タグ (トークンと呼ばれることもあります) と呼ばれるコードを使用して、あらゆるデータの構造、外観、(XML の場合は) 意味を定義するプロセスをいいます。
コンピュータのマークアップは実際にはどのように使われているのでしょうか。実は、このページにも HTML コードが使用されています。Microsoft Internet Explorer などのブラウザでページを表示している場合は、ページ上の任意の場所をマウスの右ボタンでクリックし、次に [ソースの表示] をクリックしてみてください。判読できる文字の他に、<p> や <h2> などのハイパーテキスト マークアップ言語 (HTML) タグが使用されているのがわかります。HTML や XML 文書のタグは、山かっこで囲まれているので、すぐに見分けが付きます。このページのソース コードでは、HTML タグが、段落の始まりと終わりの定義 (<p> ~ </p>) や、画像の位置の指定など、実にさまざまな仕事をしています。
ページの先頭へ
XML の特徴
HTML 文書と同様に、XML 文書でもデータがタグで囲まれていますが、HTML と似ているのはそこまでです。HTML のタグは、ヘッドラインの表示位置や段落の開始位置など、データの見た目や印象を定義します。一方 XML のタグは、データの構造と意味、つまりデータそのものを定義します。
データの構造と意味を定義することによって、そのデータをさまざまな方法で再利用することが可能になります。たとえば、一連の売り上げデータがあり、個々のデータを明確に区別できる場合、必要なデータだけを売り上げ報告書に読み込んで、それ以外のデータは会計データベースに読み込むことができます。つまり、あるシステムを使用してデータを作成し、XML のタグでマークアップをしたら、そのデータを、ハードウェア プラットフォームやオペレーティング システムに関係なく、どのようなシステムでも処理することが可能です。XML は移植性にたいへん優れているため、データを交換するための、最も一般的な技術となっています。
次の点に注意してください。
このように、XML タグを使用すると、どのような種類のデータであるかを正確に見分けることができます。たとえば、このデータは、猫に関するデータで、猫の名前や年齢などの情報も簡単に確認することができます。タグを作成し、ほぼあらゆるデータ構造を定義できるということ、それこそが XML を "Extensible (高い拡張性)" たらしめている所以なのです。
ただし、このコード サンプルで使われているタグを、HTML ファイルのタグと混同しないでください。たとえば、この XML 構造を HTML ファイルに貼り付け、ブラウザで表示すると、次のように表示されます。
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
XML タグは無視され、データだけがブラウザに表示されます。
ページの先頭へ
整形式データについて
IT 担当者などから "整形式" XML という言葉を聞いたことはありませんか。整形式 XML ファイルとは、XML を制御する厳密な規則に準拠していることを意味します。これらの規則に準拠してない XML ファイルは、正常に機能しません。たとえば、上のサンプル コードは、開始タグと終了タグがすべてペアになっており、整形式 XML に必要な規則の 1 つを満たしていることになります。このファイルからいずれかのタグを削除し、Office 製品で開こうとすると、エラー メッセージが表示され、ファイルを使用することができなくなります。
整形式 XML を作成するうえでの規則は (それほど難しいものではありませんが) 必ずしも理解する必要はありません。ただし、整形式の XML データ以外は、プログラム間やシステム間で共有できない、という点だけは覚えておいてください。XML ファイルを開けない場合、そのファイルは整形式でない可能性があります。
また、XML はプラットフォームに依存しないので、ハードウェアやオペレーティング システムに関係なく、XML に対応しているプログラムであればどのプログラムでも XML データを読み込んだり処理したりできます。たとえば、XML タグが正しく使われていれば、メインフレーム コンピュータで作成されたデータを、デスクトップ プログラムで開いて必要な作業を行うことができます。また、XML データの作成手段にかかわらず、同じデータを Microsoft Office Access 2007、Microsoft Office Word 2007、Microsoft Office InfoPath 2007、Microsoft Office Excel 2007 など、複数の Microsoft Office 2003 や Microsoft Office Professional 2007 プログラムで使用できます。XML は移植性にたいへん優れているため、データベースとデスクトップ間でデータを交換するための、最も一般的な技術となっています。

タグ付き整形式のデータに加え、XML システムは、スキーマと変換という 2 つの要素を使用することを特徴としています。次のセクションでは、これらの要素が実際にどのような働きをするかについて説明します。
ページの先頭へ
スキーマの概要
スキーマと聞くと難しそうな印象を抱きますが、決してそんなことはありません。スキーマとは、XML データ ファイルに何を含めることができ、何を含めてはいけないか、という規則が格納された XML ファイルのことです。XML データ ファイルには .xml という拡張子が使われるのに対し、スキーマ ファイルには .xsd という拡張子が付くのが一般的です。
スキーマは、プログラムによるデータの検証を可能にします。データを構造化し、その作成者や他のユーザーにとって意味のあるデータとするための枠組みを提供する働きがあります。たとえば、ユーザーが日付フィールドに文字を入力するなど、無効なデータを入力した場合、プログラムは、そのユーザーに対し正しいデータを入力するように促すことができます。XML ファイルのデータが指定されたスキーマの規則に従っている限り、XML に対応したすべてのプログラムは、そのスキーマを使ってデータを読み込み、解析し、処理することができるのです。たとえば、次の図が示すように、Excel と Word のどちらでも、CAT スキーマを使用して <CAT> データを検証することができます。

スキーマは場合によっては複雑になるため、ここでは作成方法の説明はしません (スキーマの作成方法については、IT 担当者から指導を仰ぐなどしてください)。 しかし、スキーマが実際にどのようなものかを知ることは大切です。次のスキーマは、<CAT> ... </CAT> タグに関する規則を定義したものです。
<xsd:element name="CAT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NAME" type="xsd:string"/>
<xsd:element name="BREED" type="xsd:string"/>
<xsd:element name="AGE" type="xsd:positiveInteger"/>
<xsd:element name="ALTERED" type="xsd:boolean"/>
<xsd:element name="DECLAWED" type="xsd:boolean"/>
<xsd:element name="LICENSE" type="xsd:string"/>
<xsd:element name="OWNER" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
このサンプルの内容をすべて理解できなくてもかまいません。次の点にだけ注意してください。
- サンプル スキーマ中の各行は "宣言" と呼ばれます。色や模様など、動物に関する他の情報を追加する必要がある場合は、IT 担当者などがスキーマに宣言を追加することになります。ビジネス ニーズの変化に応じて、XML システムを変更することができます。
- データの構造は、宣言によって細かく制御することができます。たとえば、
<xsd:sequence> 宣言は、<NAME> タグや <BREED> タグが、上記のスキーマと同じ順序で現れなければならないことを意味しています。ユーザーが入力できるデータ型も宣言で制御することができます。たとえば、上のスキーマは、猫の年齢には正数を、ALTERED タグと DECLAWED タグにはブール型 (TRUE または FALSE) を使用するように規定しています。
- XML ファイル内のデータがスキーマの規則に従っている場合、そのデータは "有効な" XML といいます。スキーマと照らし合わせて XML データ ファイルを検査するプロセスを "検証" といいます。スキーマを使用することの大きな利点は、無効なデータを防げるという点にあります。問題が見つかると XML が処理を停止するため、無効なデータを簡単に見つけることができるのです。
ページの先頭へ
変換の概要
前に説明したように、XML はデータを利用または再利用するための強力な手段となります。データを再利用するためのメカニズムは、XSLT (拡張スタイルシート言語) または簡単に "変換" と呼ばれます。変換には XML の本当の醍醐味があります。たとえば、スキーマを使用してデータ ファイルを検証した後、そのデータをマーケティング用パンフレットとして Microsoft Word 2003 で使用したり、Office Excel 2007 で売り上げ報告を作成したりするための変換を適用することができます。
データベースなどのバックエンド システム間でデータを交換する場合にも変換を使用することができます。たとえば、データベース A には、営業部門向けに、売り上げデータがテーブル構造で格納されているとします。また、データベース B には、経理部門向けに、収益データと費用データがテーブル構造で格納されています。データベース B は、変換をとおしてデータベース A からデータを受け取り、正しくテーブルに取り込むことができます。
基本的な XML システムは、データ ファイル、スキーマ、および変換という組み合わせによって成り立ちます。次の図は、こういったシステムがどのように機能するかを示しています。データ ファイルはスキーマを使用して検証され、変換を通じて、実用性のあるさまざまな方法で表現されます。ここでは、データが変換を経て、Web ページ上のテーブルとして展開されています。

次のサンプル コードは、変換処理を記述する方法の一例です。<CAT> データを Web ページ上のテーブルに読み込むものです。このサンプルは、変換処理の記述方法を示したものではなく、あくまで、こういった変換の方法もある、ということを示したものです。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<TABLE>
<TR>
<TH>Name</TH>
<TH>Breed</TH>
<TH>Age</TH>
<TH>Altered</TH>
<TH>Declawed</TH>
<TH>License</TH>
<TH>Owner</TH>
</TR>
<xsl:for-each select="CAT">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD>
<xsl:value-of select="NAME"/>
</TD>
<TD>
<xsl:value-of select="BREED"/>
</TD>
<TD>
<xsl:value-of select="AGE"/>
</TD>
<TD>
<xsl:value-of select="ALTERED"/>
</TD>
<TD>
<xsl:value-of select="DECLAWED"/>
</TD>
<TD>
<xsl:value-of select="LICENSE"/>
</TD>
<TD>
<xsl:value-of select="OWNER"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>
変換処理がコードでは実際にどのように記述されるかという例を挙げましたが、どのようなデータが必要かを説明できれば普通は事足ります。たとえば、IT 担当者のところに行って、「特定の地域について過去 2 年間の売り上げデータを印刷したい。見た目はこんな感じで」とお願いすればよいのです。IT 担当者が、必要な変換処理を作成してくれるはずです。
また、Microsoft 社をはじめ、さまざまな用途を対象に XSLT を作成する企業が増えています。将来、特定の用途に特化した XSLT や、各自の要件に合わせてカスタマイズできるような XSLT をダウンロードできるようになる可能性もあります。これは、XML にかかるコストが時間と共に低くなっていくことを意味します。
ページの先頭へ
Microsoft Office system と XML
Microsoft Office 2003 と 2007 Office リリース では、XML を広範にサポートしています。
- Office Excel 2007、Office Word 2007、および Office PowerPoint 2007 では、既定のファイル形式として XML を使用することにより、次のような利点があります。
- ファイルサイズが小さくなります。新しい形式では、ZIP やその他の圧縮技術が使われるため、以前のバージョンの Office のバイナリ形式に比べ、ファイル サイズが 75% も小さくなります。
- 情報の回復が容易になり、セキュリティが強化されます。XML は、人間が判読できる形式のファイルなので、ファイルが破損しても、Microsoft メモ帳などのテキスト エディタで開いて情報の一部のみでも回復することができます。さらに、新しい形式のファイルには、Visual Basic for Applications (VBA) のコードが含まれないので、より安全です。新しい形式でテンプレートを作成する場合、ActiveX コントロールや VBA マクロは、ファイル内のより安全性の高い独立したセクションに配置されます。さらに、ドキュメント検査などのツールを使用して個人情報を削除することができます。ドキュメント検査の使用方法の詳細については、「Office ドキュメントから非表示のデータおよび個人情報を削除する」を参照してください。
- 移植性と柔軟性に優れています。XML では、固有のバイナリ形式ではなくテキスト形式でデータを格納するため、顧客が自分のスキーマを定義し、さまざまな方法でデータを使用することができ、また、すべて無償ライセンスの下で提供されます。詳細については、「新しいファイル名拡張子および Open XML 形式入門」を参照してください。
- 各 Office プログラムには、それぞれ異なる種類のツールが実装されています。Word のユーザー インターフェイスと処理は、Excel や PowerPoint のそれとは異なります。なぜなら、Word の機能が必ずしも Excel で利用できるとは限らないからです。
- 他のプログラムで作成されたスキーマ、変換、およびデータが整形式の XML であれば、Office プログラムで使用できます。
- Office プログラムのなかには XML をバックグラウンドで使用するものや、Microsoft Office OneNote™ のように、XML がまったくサポートされないプログラムもあります。Office プログラムがどのような形で XML をサポートしているかを確認するには、まず、そのプログラムのオンライン ヘルプで、「XML」をキーワードに検索してください。
では、XML データにスキーマがなかった場合はどうしたらよいのでしょうか。XML をサポートする Office プログラムは、それぞれ独自のアプローチで XML データを使用できるようにしています。たとえば、Word でスキーマを適用せずに XML ファイルを開くと、タグとデータが表示され、(ファイルの作成者や IT 部門などから提供してもらえる場合は) 変換を適用できるようになっています。少なくとも、ファイルに含まれているタグやデータを表示することはできます。
これに対し、Excel で、あらかじめスキーマが適用されていない XML ファイルを開くと、XML データに基づいて推測されたスキーマが自動的に生成されます。その後、そのデータを読み取り専用のファイルとして開くか、データを XML リスト (Microsoft Office Excel 2003) または XML テーブル (Office Excel 2007) に対応付けるかを選択するように求めるメッセージが表示されます。この XML リストとテーブルを使用して、データを並べ替えたり、フィルタを適用したりできるほか、計算式を追加することもできます。
Office Professional 2007 および Microsoft Office 2003 が提供する XML ツールのセットは同じです。Office Professional 2007 では、最初に XML のサポートを有効にし、次に XML ツールをさまざまな場所から起動します。ただし、起動した後の XML ツールの動作は Microsoft Office 2003 でも Office Professional 2007 でも同じです。Office Excel 2007 および Office Word 2007 で XML ツールを起動する手順は、次のとおりです。
メモ Microsoft Office Access 2007 では、XML ツールが既定で有効になるため、Access を使用する場合は最初の手順をスキップできます。
Office Excel 2007 および Office Word 2007 で XML ツールを有効にする
- Excel または Word で、
(Microsoft Office ボタン) をクリックし、開いているプログラムに応じて [Excel のオプション] または [Word のオプション] をクリックします。
- [個人設定] をクリックします。
- [<アプリケーション名> の使用に関する主要オプション] の [[開発] タブをリボンに表示する] チェック ボックスをオンにし、[OK] をクリックします。
メモ リボンは、Microsoft Office Fluent ユーザー インターフェイスの一部です。
Office Excel 2007 および Office Word 2007 で XML ツールを起動する
- いずれのプログラムでも、[開発] タブの [XML] ボックスでいずれかの使用可能なコマンドをクリックします。
Office Access 2007 で XML ツールを起動する
- [外部データ] タブをクリックします。
- 次のいずれかの操作を行います。
- [インポート] で [XML ファイル] をクリックします。
- [エクスポート] で [その他] をクリックし、[XML ファイル] をクリックします。
ページの先頭へ
追加情報
各種 Office プログラムで XML を使用する方法や、XML コードの作成方法については、次のリンクをクリックしてください。
2007 Office リリース で XML を使用する
メモ Office 開発チームによるコンテンツの作成と発行に応じて、このセクションのリンクが変更される可能性があります。
新しいファイル名拡張子および Open XML 形式入門
Microsoft Office 2003 で XML を使用する
メモ このセクションは、Microsoft Office Online や Microsoft Developer Network (MSDN) の Web サイトにリンクされています。
| オンライン トレーニング |
|
|
全般
|
|
|
Access
|
|
|
Excel
|
|
|
FrontPage
|
|
|
InfoPath
|
|
|
Visio
|
|
|
Word
|
|
XML コードを作成する
XML 関連書籍
初級者向け
開発者、IT スペシャリスト向け
ページの先頭へ