XMLマスターポイントレッスン ~ ベーシック編 ~
第1回 試験概要とXMLの基礎
インフォテリア株式会社 野中康弘 NONAKA, Yasuhiro
今回から、「XMLマスター:ベーシックV2」試験向けの対策講座を始めます。基本的に、本連載ではベーシックV2試験に合格するために必要な知識や重要ポイント、テクニックなどを解説していきますが、受験目的ではない方も対象とするため、XMLに関する基礎的な技術解説も合わせて行なっていきます。これからXMLについて学習したいという方もぜひ参考にしていただければと思います。第1回目の今回は、XMLマスターの試験概要とXML関連の代表的な技術を紹介します。
はじめに
今、XMLの技術力を認定するIT資格「XMLマスター」の人気が高まっています。なぜ、ここに来てXMLマスターに人気が集まっているのでしょうか。それは、XMLが私たちのより身近なところにまで浸透してきたからだと言えるのではないかと思います。
例えば、マイクロソフトのオフィス製品の次期バージョン「Office12」では、デフォルトのファイル保存形式にXMLが採用されることになりました。これにより、XML(およびXML関連技術)の技術力があれば、オフィス製品の出力データをほかのシステムに読み込ませてデータ連携を行なったり、またWordのデータをほかのシステムで再利用したりできるようになります。
また、今流行の「ブログ」の配信形式である「RSS」は、今後メールマガジンにも匹敵する重要なビジネスツールになるだろうとも言われていますが、このRSSもXMLデータ形式です。RSSについても、XML(およびXML関連技術)の技術力があれば、自由自在に加工し活用できます。主要なDBMS、DTPツールなどもXMLに対応してきていますので、XMLを理解してこのようなベンダ提供のソフトウェアを利用することで、より多くのシチュエーションでXMLデータ連携が可能となるでしょう。今やXMLデータを扱えることが、ITエンジニアにとってRDBデータを取り扱えるのと同じくらい重要になってきているのです。
XML マスター試験の概要と出題範囲
XMLマスターは、XMLの技術力を客観的に判定するベンダニュートラルな認定制度として、2001年10月に発足しました。2004年11月には取得者が1万人を突破し、今も受験者は増大の一途を辿っています。
XMLマスターには「XMLマスター:ベーシック」(以下、ベーシック)と「XMLマスター:プロフェッショナル」(以下、プロフェッショナル)の2種類の認定があります(図1)。ベーシックは、XMLの基本的な技術力を認定するもので、ベーシックの認定試験にはXML、およびXML関連技術(DTD、XML Schema、XSLT、名前空間)の基礎的な内容が出題されます。
一方、プロフェッショナルは、XMLアプリケーションを構築できる高度な技術力を認定します。プロフェッショナルの認定試験にはXMLを処理するためのAPI(DOM、SAX)やXMLシステム構築に必要な技術力が問われます。
ベーシック、プロフェッショナル両試験の試験概要と出題範囲を表1にまとめました。表の出題範囲にある「セクション」は、出題されるテーマを示しています。なお、XMLマスターの詳細については、XMLマスターのWebサイトをご覧ください。
表1:XMLマスター試験の試験概要
試験名 | XMLマスター:ベーシックV2試験 | XMLマスター:プロフェッショナルV2試験 | |
試験時間 | 60分 | 90分 | |
---|---|---|---|
出題数 | 50問 | 40問 | |
合格基準 | 70% | 80% | |
受験料(税込) | \15,750 | \15,750 | |
出題範囲 | セクション1 | XML概要 | DOM/SAX |
セクション2 | XML文書の作成 | DOM/SAXプログラミング | |
セクション3 | DTD | XSLT | |
セクション4 | XML Schema | XML Schema | |
セクション5 | XSLT、XPath | XML処理システム構築技術 | |
セクション6 | 名前空間 | XML要素技術の活用 |
セクション1で問われる知識
連載第1回目の今回は、ベーシック試験の出題範囲の中から、セクション1の「XML概要」について解説します。このセクションでは、主にXMLの特徴と、XML関連の代表的な技術と概要などをテーマに問題が出題されます。
XML の持つ特徴
XMLの主な特徴を簡単にまとめると、次のようになります。
- 複雑な構造のデータや非定型データを扱うことに優れている
- データをマークアップして記述
- テキストデータとして記述できる
- 人にもコンピュータにもフレンドリーなフォーマット
- 必ずルート要素を1つにしたツリー構造として扱うことができる
- データの長期保存性、データの再利用性に優れている
複雑な構造のデータや非定型データを扱うことに優れている
RDBのテーブル(表)で管理されるデータは定型的なデータ構造を持っています。この構造を持つデータを扱うことでは、RDBの右に出るものはないと言えます。しかし、世の中に存在するさまざまなデータは、テーブルで管理できるようなデータ構造を持つものばかりではありません。その多くが非常に複雑なデータ構造(システムログや電子メールデータなど)を持っているか、もしくは特定の構造を持たない非定型データ(製品マニュアルや仕様書など)です。これらのデータをそのまま扱うにはどうすれば良いのでしょうか。このような条件にうまく対応できるデータ形式が、XMLです。
テキストデータとして記述できる
XMLは、テキスト形式でデータを記述します。テキストデータですので、Windows上で作成したXMLデータをUNIX上で利用することもできます。そのため、OSやシステムの違いを意識せずにデータを受け渡しできます。
データの長期保存性、データの再利用性に優れている
特定のアプリケーションで作成されたデータは、そのアプリケーションが利用できなくなったり、または下位互換性を保てなくなったりした時点で、利用することはおろか読むことすらできなくなります。しかし、XML文書はテキストデータで特定のアプリケーションにも依存せず、データを長期間保存して永続的に利用可能な状態を維持できます。またXML文書は、「XSLT(XSL Transformations)」(注)を利用することで、別の構造を持つXML文書やほかの形式(HTMLやCSVなど)に変換でき、XML文書の再利用性を高め「ワンソースマルチユース」を実現できます。
注:W3Cから勧告されている仕様です。XSLTスタイルシートとXSLTプロセッサを利用して、XML文書(ソースXML文書)を別の構造のXML文書やほかのテキスト形式(HTMLやCSVなど)に変換できます。XSLTスタイルシートは、XML文書の変換ルールをXMLの文法で記述した文書です。1つのXML文書に対してWebブラウザや携帯電話向けなどのさまざまな用途に合わせたXSLTスタイルシートを作成することで、データ管理を簡素化し、効率的に作業できるようになります。
人にもコンピュータにもフレンドリーなフォーマット
テキストで表現されるデータ形式の代表格としてはCSVがあります。CSV形式のデータは、そのCSVデータを処理するプログラムではデータの意味が分かっても、人間から見た場合は単なる文字の羅列でしかありません。しかし、XMLで表現されるデータは、データの意味を表わす「要素」に「内容」としてデータを埋め込みますので、単にコンピュータが処理しやすい形式であるだけではなく、人間が見ても容易に読むことができます。
データをマークアップして記述
XMLでは、個々の情報にタグを用いてマークアップ(データに対して、その意味を表わす印を付けること)を行ない、各データに意味付けをします。この意味付けを行なうデータの単位を「要素」と呼びます。「要素」は「開始タグ」「内容」「終了タグ」で構成されます(図2)。つまり、XMLではデータの単位を必ず開始タグと終了タグのペアで識別できるということです。そして、必要に応じてデータに対する付属情報である「属性」を要素の開始タグに記述でき、これにより、対象データに対する意味付けを詳細に記すことができます(図3)。
必ずルート要素を1つにしたツリー構造として扱うことができる
XMLでは要素の入れ子により階層的な要素構造を持たせることもできます。XMLの仕様では「XMLのルート要素(XML文書中の一番外側の要素)は必ず1つでなくてはならない」とされていますので、XMLは必ずルート要素を頂点とした、1つの「ツリー構造」として扱うことができます(図4)。ルート要素で始まるまとまったデータのかたまりを「XML文書」と呼びます。
XML 関連の代表的な技術とその概要
RDBは、CREATE DATABASE文を用いてデータベースを作成しただけでは利用できません。データベースにユーザーやテーブルなどを作成したり、ネットワーク設定を行なったり、データを操作するためのGUIを作成したりなど、RDBに関連した技術を使うことで、RDBを利用した効果的なソリューションを提供できます。この点ではXMLも同じです。
XMLの仕様は文法を規定しているだけですので、XMLの仕様のみでXMLを利用したソリューションは提供できません。XMLの仕様とXMLに関連するさまざまな技術仕様を組み合わせる必要があります(図5)。図5に示すように、XMLの関連技術には構造定義やAPI、選択式などがありますが、ここでは、XML文書を利用するための技術について解説したいと思います。DOMやSAXは、XML文書を外部アプリケーションから操作するための機能を仕様化したもので、DOMのインターフェイスやSAXのインターフェイスは、XMLパーサー(XML文書を解析するプログラム)の機能の一部として提供されています。
また、XSLTスタイルシートを作成するだけで、プログラムを作成しなくても簡単なXML文書のフォーマット変換が行なえます。
DOM(Document Object Model)
DOMの仕様は、インターネット関連技術の標準化団体であるW3C(World Wide Web Consortium)から勧告されています。DOMでは、XML文書やHTML文書を処理する際に、それらの文書をツリー構造(DOMツリー)としてモデル化します。外部アプリケーションは、このDOMツリーとそれに含まれるノード(要素ノードや属性ノードなど)を利用することで、XML文書やHTML文書を操作できます。DOMの仕様では「Level」を定めており、Levelが高いほど高度な機能をサポートしています。
DOMでは、XML文書全体を一旦メモリ上に展開しますので、新しいノードの作成やノードの移動/削除などを容易に行なうことができ、最後にメモリ上のDOMツリーを保存することによりXML文書の作成や更新を行なうことができます。
DOMのデメリットとしては、最初にDOMツリーを構築する際にXML文書全体を解析しなくてはならないことと、XML文書全体をメモリ上に展開することです。XML文書が大きくなるに従って、処理やメモリ使用量でのオーバーヘッドが大きくなってしまいます。
SAX(Simple API for XML)
SAXは、XML-DEVというメーリングリストを通じて策定された仕様で、W3Cにより勧告された仕様ではありません。SAXによる処理は軽くて高速なもので、DOMとは対照的です。SAXは、XML文書を先頭から順に読み込み、要素の開始や終了、テキストの出現などを検出するたびに、それらの情報をアプリケーションにイベントとして通知するという、イベント駆動型のAPIです。アプリケーション側は、受け取ったイベントを処理することでXML文書内のデータを取得します。
SAXのメリットはXML文書を解析しながら処理を行なえることで、DOMのように最初にXML文書全体を読み込む必要がありません。一方、デメリットとしては、SAXにはXML文書更新用のAPIがありませんので、XML文書を更新したい場合はすべてアプリケーション側で対応しなくてはならないことです。そして、SAXはXML文書を先頭から順に読み込むだけですので、XML文書の前方参照や後方参照を行ないたい場合などもアプリケーション側で対応しなくてはなりません。SAXは、XML文書内のデータ検索や抽出などの処理を得意とします。
DOMとSAXの概要、メリット、デメリットを表2にまとめましたので、しっかりと確認しておきましょう。また、APIやXSLT以外のXML関連技術と概要については表3にまとめていますので、こちらも参考にしてください。
表2:DOMとSAX の比較
DOM | SAX | |
APIの特徴 | DOMツリーを生成する | イベント駆動型 |
---|---|---|
メリット | 柔軟な検索/変更/更新 | 軽く、高速な処理が可能 |
デメリット | メモリ使用量や処理のオーバーヘッドに配慮が必要 | XML文書の読み込み専用 |
プログラミングが複雑になる場合がある |
表3:代表的なXML 関連技術と概要
用途 | 名称 | 概要 |
構造定義 | DTD | XML 1.0の仕様で規定されているスキーマ定義言語 |
---|---|---|
XML Schema | XML文書の構造を定義するスキーマ定義言語 | |
API | DOM | XML文書の内容を変更したり、部分的に修正などを動的に行なうためのAPI |
SAX | XML文書を読み込んだり、操作するためのAPI | |
選択式 | XPath | XML文書中の要素や属性を選択するためにツリー構造の中で適切なパスを指し示す構文を規定する言語 |
変換 | XSLT | XML文書を別の構造のXML文書や構造化データに変換するための仕組みを規定した言語仕様 |
表示 | CSS | WebブラウザでXMLやHTMLなどを表示する際のレイアウトを定義する仕様 |
XSL | XML文書のレイアウトを記述する言語 | |
プロトコル | SOAP | XMLベースのメッセージングプロトコル |
XML応用技術の代表的な名称とその概要
XMLは、XMLの文法に従った上で要素の名前を自由に定義できますので、新たな言語(さまざまな特定用途向けのデータ記述言語)を開発することもできます(図6)。XML応用言語(仕様)はさまざまな業界で利用されています(表4)が、ここではその中の「XBRL」について説明したいと思います。
表4:代表的なXMLを応用した仕様と概要
業界 | 名称 | 概要 |
製造 | RosettaNet | 電子・電気機器業界のサプライチェーンを実現するグローバルな標準仕様 |
汎用 | ebXML | 企業間商取引を行なうための基本仕様 |
医療 | MML | 医療機関間で電子カルテの交換を目的とした仕様 |
財務 | XBRL | 企業財務情報を公開/交換するための標準仕様 |
報道 | NewsML | ニュース配信のための仕様 |
地理 | G-XML | 地理情報を記載するための仕様 |
XBRL(eXtensible Business Reporting Language)
XBRLは、企業の貸借対照表(B/S)、損益計算書(P/L)などの財務諸表に記されている財務情報をXML化し、その情報を公開/交換するための国際標準の仕様です。XBRLにより、企業財務情報の作成や再利用、公開や交換を可能にします。
現時点では、国税庁、東京証券取引所で導入され、金融庁の「EDINET」でも採用方針を明確に打ち出しています。さらに、日銀も採用を表明しているほか、大手都市銀行の融資業務においてはXBRL化を目的とした実証実験が行なわれており、XBRLは金融業界に浸透しつつあります。
日本公認会計士協会のホームページでは、このXBRLの概要についてアニメーションを使って説明しています。このことは、会計士としてもXBRLの知識を持つことが必要になってくることを意味しているのではないかと思われます。そして、本誌読者の皆さんにおいても、XBRLに限らず、今後さまざまなXML応用技術を使用したプロジェクトに携わることがあるかと思います。今からXML技術を身につけておくことは、皆さんにとって大きなアドバンテージになると思います。
今月の確認問題(セクション1:XML 概要)
今回解説した内容を理解できたかどうか、確認問題で試してみましょう。間違えた問題については、もう一度解説を読んでしっかりと復習をしてください。
問題1
XMLの特徴として、正しいものを選択してください。
- XML文書で使用できる要素名はXML の仕様で規定されている
- XML文書はテキストデータとして記述できる
- XML文書は長期保存やデータの再利用性に優れている
- XML文書を作成する場合、XMLパーサーを使用しなければならない
解説
XMLの特徴は「テキストデータとして記述できる」「データの長期保存性、データの再利用性に優れている」などです。よって、正解はBとCです。
問題2
XML文書を処理するAPIとして、適切なものを選択してください。
- SAX
- DOM
- SOAP
- XPath
解説
SOAPはメッセージを送受信することでシステム連携を実現するための仕様、XPathはXML文書のツリー構造から特定のノードを選択する式を記述する仕様です。よって、正解はAとBです。
SOAP、XPathの詳細な解説については、今後の回で説明します。
問題3
汎用的な企業間取引を行なうための基本仕様を選択してください。
- XBRL
- RossetaNet
- ebXML
- MML
解説
XBRLは「企業財務情報を公開・交換するための標準仕様」、RossetaNetは「電子・電気機器業界において電子部品の取引を行なうための標準仕様」、MMLは「医療機関の間で電子カルテの交換を目的にした仕様」ですので、正解はCとなります。
* * *
今回は、ベーシックV2試験範囲の中から、セクション1のXML概要について解説しました。XMLを有効活用するためには、XML文書の作成技術およびXML関連技術である「DTD」や「XML Schema」、「XSLT」などの知識を習得する必要があります。
次回からは、インフォテリア認定教育センターで活躍しているインストラクター陣にバトンタッチし、これらの技術解説を行なってもらいます。
野中康弘(のなかやすひろ)
インフォテリア株式会社教育部に勤務。十数年間、システム開発に携わり、そのうちの半分をDBAとして過ごす。現在は、主にインフォテリア認定トレーニングコースの「XML マスター:ベーシックV2」に対応したコースのテキスト開発や改訂を担当。1ヶ月に0~1回のスポーツジム通いを週2回のペースに戻すことと、禁煙(何回目だろう……)が最近の目標。
<掲載> P.196-200 DB Magazine 2006 February