拡張マークアップ言語 (XML) のことはご存じでしょうし、組織がそれを使用する理由もたくさん耳にしていることでしょう。 しかしながら、XML とは一体なんでしょうか。 この記事では、XML の基本について、その概要と動作について説明します。
この記事の内容
マークアップすること、マークアップ、タグの概要
XML を理解するには、データをマークアップするという概念を理解するのが早道です。 人は何世紀にもわたり文書を作ってきました。それはマークアップ (文書に印を付ける) の歴史でもあります。 たとえば、教師は生徒の答案用紙に朱筆を入れます。 その書き込みで、たとえば、段落を移動するように、文章を明確にするように、綴りを正すように指示します。 マークアップする (文書に印を付ける) ことで、文書内の情報の構造、意味、視覚的外観を定義します。 Microsoft Office Word の変更履歴の記録機能は、朱筆を入れる作業がコンピューター化されたものです。
コンピューター用語では、"mark up" が転じて "markup" という名詞が生まれています。 マークアップは、タグ (またはトークン) と呼ばれているコードを利用してあらゆるデータの構造、視覚的外観、意味 (XML の場合) を定義する過程です。
この記事の HTML コードは、職場のコンピューターで使われる典型的なマークアップのサンプルです。 ざっと目を通していただければ (Microsoft Internet Explorer の場合、ページを右クリックし、[ソースの表示] をクリックします)、人間が読めるテキストと <p> や <h2> のような HTML (ハイパーテキスト マークアップ言語) が混在していることがわかります。 HTML 文書と XML 文書のタグは山かっこで囲まれているので簡単に見分けられます。 この記事のソース コードでは、HTML タグがさまざまな仕事を受け持っています。たとえば、各段落の始まりと終わりを定義し (<p> ... </p>)、各画像の位置に印を付けています。
XML を構成するものとは何か
HTML 文書と XML 文書には、タグで囲まれたデータが含まれていますが、この 2 つの言語の共通点はそこまでです。 HTML の場合、タグがデータの外観を定義します。見出しをここに置くとか、段落がここで始まるなどです。 XML の場合、タグはデータの構造と意味を定義します。それは一体どのようなデータであるかということです。
データの構造と意味を表すことで、そのデータをさまざまな方法で再利用できます。 たとえば、まとまった販売データがあり、その中の各項目が明確に識別されている場合、必要な項目だけを販売レポートに読み込み、他の項目を会計データベースに読み込むことができます。 別の例を挙げましょう。あるシステムを利用してデータを生成し、それを XML タグでマークアップします。その後、ハードウェア プラットフォームやオペレーティング システムに依存することなく、他のシステムでそのデータを処理できます。 この移植性こそ、XML が最も人気のあるデータ交換技術の 1 つになった理由です。
これを行う際は、以下の点にご注意ください。
-
XML の代わりに HTML を使用することはできません。 ただし、HTML タグで XML データを囲み、Web ページに表示できます。
-
HTML は、あらゆるユーザーが共有する事前定義されたタグ セットに限定されています。
-
XML の場合、あらゆるタグを作成してデータとその構造を表現できます。 たとえば、ペットに関する情報を保存し、共有するとします。 次のような XML コードを作成できます。
<?xml version="1.0"?> <CAT> <NAME>Izzy</NAME> <BREED>Siamese</BREED> <AGE>6</AGE> <ALTERED>yes</ALTERED> <DECLAWED>no</DECLAWED> <LICENSE>Izz138bod</LICENSE> <OWNER>Colin Wilcox</OWNER> </CAT>
XML タグを利用することで、自分が見ているデータの種類がはっきりわかります。 たとえば、それが猫に関するデータであることがわかります。猫の名前や年齢などを簡単に見つけられます。 ほとんどすべてのデータ構造を定義するタグを作成できることから、XML は "extensible (拡張可能)" と呼ばれています。
しかしながら、このコード サンプルのタグを HTML ファイルのタグと混同しないでください。 たとえば、この XML 構造を HTML ファイルに貼り付け、ブラウザーでファイルを表示すると、次のようになります。
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
ブラウザーは XML タグを無視し、データだけを表示します。
整形式のデータについて
"整形式" XML という言葉を IT 部署の人が話していることを聞いたことがあるでしょう。 整形式の XML ファイルは、XML を統制するとても厳格な一連のルールに準拠します。 ファイルがこれらのルールに準拠しない場合、XML は動作を停止します。 たとえば、先のコード サンプルの場合、すべての開始タグに終了タグが与えられています。つまり、このサンプルは、整形式であるためのルールの 1 つに準拠しています。 タグを 1 つ削除し、そのファイルを Office プログラムで開こうとすると、エラー メッセージが表示され、ファイルは表示されません。
整形式の XML を作成するためのルールを知っている必要は必ずしもありませんが (簡単に理解できますが)、データが整形式でありさえすれば、プログラムやシステムの間で XML データを共有できることを覚えておいてください。 XML ファイルを開けない場合、そのファイルは整形式になっていない可能性があります。
XML はプラットフォームに依存しません。XML を使用できるように開発されたあらゆるプログラムで、ハードウェアやオペレーティング システムに関係なく、XML データを読み取り、処理できます。 たとえば、XML タグが正しければ、デスクトップ プログラムを使用し、メインフレーム コンピューターからデータを開いて操作できます。 また、XML データの本文の作成者でなくても、さまざまな Office プログラムで同じデータを操作できます。 このような移植性の高さから、データベースやユーザー デスクトップの間でデータを交換する技術として、XML が最も人気のある技術の 1 つとなっています。
タグ付きの整形式データに加え、XML システムでは一般的に 2 つの要素が利用されます。スキーマと変換です。 次のセクションでは、この付加的要素の機能について説明します。
スキーマの概要
"スキーマ" などという言葉に怖じ気づかないでください。 スキーマは、XML データ ファイルに入力できるものとできないものに関するルールが含まれた XML ファイルにすぎません。 スキーマ ファイルでは一般的に .xsd ファイル名拡張子が使用されます。XML データ ファイルでは .xml 拡張子が使用されます。
スキーマにより、プログラムはデータを検証できます。 スキーマは、データを構造化するためのフレームワークを提供します。作成者と他のユーザーがデータを理解できるようにします。 たとえば、日付フィールドにテキストを入力するなど、無効なデータを入力した場合、プログラムは正しいデータを入力をユーザーに促すことができます。 XML ファイルのデータが所与のスキーマのルールに準拠する限り、XML 対応のプログラムはそのスキーマを利用し、データを読み取り、解釈し、処理できます。 たとえば、次の図のように、Excel は 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 は、データを効率的に利用または再利用するための方法を与えます。 データを再利用するためのメカニズムが XSLT (拡張スタイルシート言語変換) です。または、簡単に「変換」と呼ばれています。
ユーザー (または、IT 部署) は変換を利用し、データベースなど、バックエンド システム間でデータを交換できます。 たとえば、データベース A には、営業部に最適なテーブル構造で販売データが保存されています。 データベース B には、経理部に最適なテーブル構造で収益と費用のデータが保存されています。 データベース B で変換を利用し、A からデータを受け取り、そのデータを正しいテーブルに書き込むことができます。
データ ファイル、スキーマ、変換の組み合わせが基本的な XML システムです。 次の図は、そのようなシステムの一般的な動作を表しています。 データ ファイルがスキーマに対して検証され、変換により使い勝手の良いさまざまな形式でレンダリングされます。 この図の場合、変換により Web ページのテーブルにデータが配置されます。
次のコード サンプルは、変換を記述する方法の 1 つです。 Web ページのテーブルに <CAT> データを読み込みます。 繰り返しになりますが、このサンプルの意図は変換の記述方法を示すことではありません。変換の 1 つの形式を紹介することです。
<?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>
このサンプルでは、1 種類の変換がコード化されるときにどのように見えるかを示していますが、データから必要なものを単純な英語で記述できることに注意してください。 たとえば、IT 部署に赴き、特定の地域の過去 2 年間の販売データを印刷したいと告げます。そして、「こんな感じにして欲しい」と印刷ページの内容に関する希望を伝えます。 IT 部署は変換を記述し (または変更し)、その仕事を進めます。
このような作業はさらに便利になっています。Microsoft や他のベンダーがあらゆる種類の作業に必要な変換を作成しているからです。変換を作成しているベンダーの数は増えています。 今後、ニーズに合った、または目的に合わせて調整できる変換をダウンロードできるようになるでしょう。 つまり、長期的には XML はコストの削減になります。
Microsoft Office システムの XML
Office のプロフェッショナル版では、さまざまな XML がサポートされています。 Microsoft Office では、.docx、.xlsx、.pptx などの XML ベースのファイル形式を使用します。 XML では、独自のバイナリ形式ではなくテキスト形式でデータが格納されます。お客様は独自のスキーマを定義し、さまざまな方法でデータを利用できます。使用料を支払う必要がありません。 新しい形式の詳細については、「Open XML Formats とファイル名拡張子」を参照してください。 その他の長所:
-
ファイル サイズが小さくなります。 新しい形式では、ZIP とその他の圧縮技術を利用し、以前のバージョンの Office と比べてファイル サイズを約 75% 減らします。
-
情報の復元が簡単で、セキュリティが強化されました。 XML は人間が判読できます。そのため、ファイルが壊れた場合、Microsoft メモ帳やその他のテキスト リーダーでファイルを開き、一部の情報だけでも復元できます。 また、新しいファイルは Visual Basic for Applications (VBA) コード含めることができず、より安全です。 新しい形式を使用してテンプレートを作成する場合、ActiveX コントロールと VBA マクロが別々の場所に置かれ、ファイルがより安全に分けられます。 また、ドキュメント検査などのツールを使用し、個人データを削除できます。 ドキュメント検査機能の詳細については、「ドキュメントを検査して非表示のデータと個人情報を削除する」という記事を参照してください。
ここまでは順調にきましたが、XML データにスキーマがないとどうなるでしょうか。 XML 対応の Office プログラムでは、独自の手法でデータ操作を支援します。 たとえば、Excel の場合、スキーマのない XML ファイルを開くと、スキーマが予測されます。 そのデータを XML テーブルに読み込むためのオプションが Excel から与えられます。 XML のリストとテーブルを使用し、データを並べ替えたり、データを絞り込んだり、データに計算を追加したりできます。
Office で XML ツールを有効にする
既定では [開発] タブは表示されませんが、Office で XML コマンドを使用するとき、リボンに追加する必要があります。 「開発者タブを表示する」を参照してください。