1. HOME »
  2. Java Tips »
  3. XML

XML Article

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Choix!にブックマーク イザ!ブックマーク

print 印刷用ページの表示

新しくなったXML認定資格を手に入れよう

『XMLマスター:プロフェッショナルV2』攻略講座

第1回 従来の試験との違い/新試験の出題範囲

XML技術者育成推進委員会は今年6月1日、XML技術者を対象とした新資格「XMLマスター:プロフェッショナル V2」の認定試験を開始します。同試験は、従来「XMLマスター:プロフェッショナル」として行われていた試験を刷新したもので、その内容は、より実践に即した知識/技術を問われるものとなっています。今回から始まる本連載では、この認定試験を受験する方を対象に、練習問題とその解答例を示しながら、資格試験の傾向と対策を紹介していきます。本連載を通じて、XMLに関する知識を再確認し、XMLマスター:プロフェッショナル V2の取得を目指してください。

2005年5月23日更新

text ●  木村 達哉 インフォテリア 教育部

XMLマスター認定試験の概要

 「XMLマスター」は、2001年10月にXML技術者育成推進委員会が開始したXML認定資格です。この資格は、開始からわずか3年2カ月の間に、取得者の数が1万人を超えました。このことからも、同資格に対する開発者の注目度の高さがうかがえます。

 このXMLマスターには、XMLに関する基礎的な知識を認定する「XMLマスター:ベーシック」と、XMLを用いたシステム構築の技能を認定する「XMLマスター:プロフェッショナル」の2種類が用意されています。今年に入り、これらの認定試験の見直しが図られ、6月1日より、それぞれ「XMLマスター:ベーシック V2」、「XMLマスター:プロフェッショナル V2」として開始されることになりました。出題内容は、いずれもこれまで以上に実践に即した知識/技術を問うものばかりとなっています。

 本連載では、これら2つの認定資格のうち、特に高度な技術力が問われるプロフェッショナル V2にフォーカスを当て、その傾向と対策について解説していきます。それに先立ち、今回は、まず旧試験と新試験の違いについて簡単に説明しておきましょう。

旧試験と新試験の違い

 従来の試験は、XMLの適用範囲や文法の知識に重点を置き、XML、およびWebサービスに関する仕様レベルの知識を問う問題を中心に構成されていました。それに対して、新試験では、サンプル・コードが提示される問題の比率が圧倒的に高くなります。つまり、XMLの文法に関する知識に加えて、XMLデータを処理するプログラムの作り方についての知識も要求されるわけです。特に、DOM/SAXプログラミングに関する設問では、ほぼすべての問題で、サンプル・コードとしてJavaプログラムが提示されるようになります。

 では、従来の試験と新試験では、出題形式がどのように異なるのかを以下に見てみましょう(なお、選択肢と解答は、旧試験/新試験で共通となります)。

●従来の試験における出題例

 次の手順を実行したときに作成されるDOM Level 2のツリーをXML 1.0で表現したものとして、最も適切な記述を選択してください。ただし、改行やインデントは考慮しないものとします。

《手順開始》
1. 次のXML文書を読み込んで、DOMツリーを作成する。

<parent>
  <child1>DATA1</child1>
  <child2>DATA2</child2>
</parent>

2. 1で作成したDOMツリーについて、要素ノードchild1を取得し、その後メソッドappendChildで、取得したノードchild1を要素parentの子要素として追加する。
《手順終了》

●新試験における出題例

 次の《XML文書》を読み込み、《DOMによる処理》で処理を行います。その結果をXML 1.0で表現したものとして、最も適切なものを選択してください。ただし、改行やインデントは考慮しないものとします。

《XML文書》

<parent>
  <child1>DATA1</child1>
  <child2>DATA2</child2>
</parent>

《DOMによる処理》
 次のコードでXMLを処理します。

Document output = updateXML(doc);

 このとき、変数docは、読み込んだXML文書のDocumentインスタンスを参照しています。実行時のエラーはないものとします。メソッドupdateXMLのコードは、以下のようになります。

public static Document updateXML(Document doc) {
  Node child1 = doc.getElementsByTagName("child").item(0);
  Element parent = doc.getDocumentElement();
  parent.appendChild( child1 );
  return doc;
}

●選択肢

A.

<parent>
  <child1>DATA1</child1>
  <child2>DATA2</child2>
</parent>

B.

<parent>
  <child2>DATA2</child2>
  <child1>DATA1</child1>
</parent>

C.

<parent>
  <child1>DATA1</child1>
  <child1>DATA1</child1>
  <child2>DATA2</child2>
</parent>

D.

<parent>
  <child1>DATA1</child1>
  <child2>DATA2</child2>
  <child1>DATA1</child1>
</parent>

●解答
B

●旧試験と新試験の異なる点

 そもそもDOMは、プログラミング言語に依存しないAPIです。したがって、従来の出題例のような文章のみによる設問は、特定のプログラミング言語に依存しないという意味では、適切な出題形式であると言えます。その反面、文章のみによる設問は、プログラミングに慣れている方にとって、直感的に理解しやすいものではありません。場合によっては、出題内容の解釈そのものに時間をとられてしまう可能性すらあります。純粋にプログラミングの技能を問うのであれば、やはり何らかの言語で書かれたサンプル・コードを提示したほうがよいでしょう。

 また、サンプル・コードを提示しない場合、アルゴリズムを使ったような複雑な問題を作成するのには限界があります。例えば、上で挙げた「従来の出題例」よりも複雑な問題を作成するのは、かなり困難です。

 こうした点を考慮した新試験では、DOM/SAXに関する設問において、すべてJavaによるサンプル・プログラムを提示します。こうすることで、プログラミングの技能に焦点を当てた問題を実現しようとしているのです。この場合、プログラムの解析にある程度の時間が必要となりますが、試験時間(90分)そのものは、これまでと変わりありません。したがって、受験者は、時間的な余裕が少なくなることが予想されます。つまり、問題を効率的に解いていくためには、実践的なコーディングに慣れておくことが重要となるのです。

 なお、XMLマスター試験はプログラミングの試験ではないので、Java固有のAPIに関する知識が問われるわけではありません。あくまでも、XMLデータを扱う際のDOM/SAX APIの振る舞いを正確に理解していることがポイントになります。普段Javaを使用していない方でも、XMLデータの処理を行うJavaプログラムのパターンをあらかじめいくつか覚えておけば、正しい解答を導き出せるはずです。特に、DOMで規定されたアトリビュートは、すべてJavaのメソッドとして用意されているので、そうした点を押さえて学習すれば、容易に対応できるでしょう。

プロフェッショナル V2の出題範囲

 プロフェッショナル V2の試験問題は、テーマ別に6つのセクションで構成されます。各セクションの概要は、以下に説明するとおりです。

●セクション1:DOM/SAXの基本仕様

 DOMとSAXの目的や特徴、API仕様に関する文章問題が出題されます。このセクションの問題は、DOM Level 2/SAXの基本仕様が理解できていれば、比較的簡単に解けるはずです。

●セクション2:DOM/SAXプログラミング

 このセクションで出題されるのは、DOMまたはSAXのAPIを使ったJavaプログラムの内容に関する問題です。プログラム自体は至ってシンプルなものですが、XMLデータを扱う際のDOM/SAX APIの振る舞いを正確に理解している必要があります。

●セクション3:XSLTスタイルシートによる変換

 このセクションで出題される問題では、提示されたXML文書とXSLTスタイルシートを基に、変換結果を導き出す能力が問われます。例えば、「この変換を行うには、XSLTスタイルシート内のどのテンプレートを適用するのか」、「変換後の名前空間はどのようになるのか」といったことを適切に判断できなければなりません。長めのサンプル・コードが提示されるので、あらかじめいろいろな変換パターンを実際に試し、慣れておいたほうがよいでしょう。

●セクション4:XML Schemaの利用

 このセクションの問題を解くには、名前空間を考慮したXMLスキーマの設計手法や、他のXMLスキーマをインクルード/インポートする際の指定方法などについての知識が必要となります。ここでも長めのサンプル・コードが提示されますが、いろいろなパターンのコーディングに慣れておけば、正答率の向上が期待できます。

●セクション5:XML処理システム構築技術

 このセクションでは、XMLデータをネットワーク経由で送受信するうえで必要となる知識全般が問われます。一部には、Webサービスのインタフェース記述言語であるWSDL(Web Services Description Language)のサンプル・コードなどを含む問題もありますが、大部分は文章のみによる出題です。XMLデータ通信やXMLセキュリティ、SOAP、WSDLなどに関する問題がメインとなります。

●セクション6:XML技術の活用

 実在するXML仕様(例えば、旅行業界向けのB2B仕様である「TravelXML」や、住所などの情報を記述するためのXMLボキャブラリである「ContactXML」など)を使用したサンプル・コードとともに、より実務に近い知識を問う長文問題が出題されます。特に、DOM/SAXに関連する問題では、Javaプログラムのほかに、DTDやXML SchemaによるXMLスキーマなどが提示されるケースが多く、それらの内容を解釈するのにある程度の時間を要するはずです。また、このセクションでは、XSLTの変換アルゴリズムなどに関する高度な問題も出題されます。

 以上、今回は、XMLマスター:プロフェッショナル V2の旧試験との違いと、新試験の出題範囲について説明しました。次回からは、上に挙げた各セクションごとの試験攻略法を、例題とその解説というかたちで紹介していきます。

“ベーシック”と“プロフェッショナル”の違い

 XMLマスター V2には、ベーシックとプロフェッショナルという2つの資格があり、それぞれに対応した認定試験が実施される。

 このうち、XMLマスター:ベーシック V2の認定試験では、個々の要素技術(XMLそのものや、XML Schema、XSLTといった周辺技術など)を利用するうえで必要となる基本的な技術力が問われる。それに対して、XMLマスター:プロフェッショナル V2の認定試験では、XMLデータ処理を行うシステムの構築技術といった、より高度で実践的な能力が試される。

 そのため、プロフェッショナルの認定試験では、ベーシックで出題される基礎的な内容はもちろんのこと、DOM/SAXのAPIを用いたアプリケーション・プログラミングの能力や、XML処理システムを構築するために必要な知識/技術なども問われることになる。特に、最終セクションでは、実務を想定した難易度の高い設問が多いので、さまざまな要素技術を総合的に理解していないと、正答するのは難しいだろう。

ページの先頭へ戻る