XMLマスターポイントレッスン
~ プロフェッショナル(アプリケーション開発)編 ~
第1回 試験概要
インフォテリア株式会社 教育部 木村 達哉
XML技術者を対象とした「XMLマスター:プロフェッショナル(アプリケーション開発)」認定試験は、より実践に即した知識/技術を問われるものとなっています。今回から始まる本連載では、この認定試験を受験する方を対象に、練習問題とその解答例を示しながら、資格試験のポイントを紹介していきます。本連載を通じて、XMLに関する知識を再確認し、XMLマスター:プロフェッショナル(アプリケーション開発)認定資格の取得を目指してください。
XMLマスター認定試験の概要
XMLマスターには、XMLおよびXML関連技術に関する基礎的な知識を理解し、業務に活用できるスキルを認定する「XMLマスター:ベーシック」と、専門分野においてXMLの高度なスキルを認定する「XMLマスター:プロフェッショナル」の2つのレベルの認定が用意されています。さらに「XMLマスター:プロフェッショナル」はXMLデータ処理を行うアプリケーションの開発、システムの構築を行なえるプロフェッショナルを認定する「XMLマスター:プロフェッショナル(アプリケーション開発)」とXMLデータをRDB、またはXMLネイティブデータベースに格納、管理、操作が行えるプロフェッショナルを認定する「XMLマスター:プロフェッショナル(データベース)」の2種類に分かれています。
本連載では、これら3つの認定資格のうち、アプリケーション開発者向けの認定試験「XMLマスター:プロフェッショナル(アプリケーション開発)」にフォーカスを当て、そのポイントについて解説していきます。
●試験における出題例
次の《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("child1").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/SAXに関する設問において、すべてJavaによるサンプル・プログラムを提示します。こうすることで、プログラミングの技能に焦点を当てた問題を実現しようとしているのです。この場合、プログラムの解析にある程度の時間が必要となりますが、試験時間(90分)そのものは、これまでと変わりありません。したがって、受験者は、時間的な余裕が少なくなることが予想されます。つまり、問題を効率的に解いていくためには、実践的なコーディングに慣れておくことが重要となるのです。
なお、XMLマスター試験はプログラミングの試験ではないので、Java固有のAPIに関する知識が問われるわけではありません。あくまでも、XMLデータを扱う際のDOM/SAX APIの振る舞いを正確に理解していることがポイントになります。普段Javaを使用していない方でも、XMLデータの処理を行うJavaプログラムのパターンをあらかじめいくつか覚えておけば、正しい解答を導き出せるはずです。特に、DOMで規定されたアトリビュートは、すべてJavaのメソッドとして用意されているので、そうした点を押さえて学習すれば、容易に対応できるでしょう。
プロフェッショナル(アプリケーション開発)の出題範囲
プロフェッショナル(アプリケーション開発)の試験問題は、テーマ別に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マスター:プロフェッショナル(アプリケーション開発)の試験の出題範囲について説明しました。次回からは、上に挙げた各セクションごとのポイントを、例題とその解説というかたちで紹介していきます。