XMLマスターへの道
〜「XMLマスター:ベーシック」試験対策〜

第7回 XMLマスター模擬試験:W3C XML Schema

福内 かおり・木村 達哉
2003/6/21


本記事は、@ITハイブックスシリーズ『XML技術者認定試験「XMLマスター ラーニングブック」−ベーシック 編−』(技術評論社)から、許可を得て一部を転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。

 前回「XMLマスター模擬試験:XMLの基本」から「特別編」として、XMLマスターの模擬問題を中心にお届けしています。模擬問題は@ITハイブックスシリーズ『XML技術者認定試験「XMLマスター ラーニングブック」−ベーシック 編−』から抜粋してお届けしていきます。

 今回は、第4章「W3C XML Schema」から、W3C XML Schema関連の問題を紹介します。

問 題 04-001 W3C XML Schemaの概要

(Q) W3C XML SchemaとDTDの違いを述べた次の記述のうち、間違っているものをすべて選択してください。(複数選択)

[A] W3C XML SchemaはXML書式で記述するが、DTDはXML書式ではない。

[B] 要素の内容が文字データのみであるとき、W3C XML Schemaはそのデータ型や制約を定義できるが、DTDではまったくできない。

[C] 属性値に関して、W3C XML Schemaはそのデータ型や制約を定義できるが、DTDではまったくできない。

[D] W3C XML SchemaはXML名前空間の規定に対応できるが、DTDではXML名前空間の規定に対応することができない。

[E] DTDと同じ内容を定義するなら、W3C XML Schemaの記述量はDTDと同程度の記述量である。

解説

 DTDはXML文書の妥当性を検証するための規則を定義するために策定されましたが、DTDだけでは不十分なケースがいくつか出てきました。W3C XML Schema(WXS)はDTDが持つさまざまな欠点を克服し、2001年5月に勧告しました。

 W3C XML Schemaの仕様は、以下の3つで構成されています。

XML Schema Part0:Primer :XML Schema全体を分かりやすく解説した入門書
XML Schema Part1:Structures :構文についての仕様書
XML Schema Part2:Datatypes :データ型に関する仕様書

 設問では、属性値に関してはDTDでも若干の制約を用意しています。

 ID型は値の一意性に関する制約であるし、列挙型では指定された文字列のいずれか1つのみを記述できます。

 DTDと同じ内容をWXSで定義するときは、DTDにて1行で記述されていたものをWXSにて複数行で記述する場合が多く、多くの場合、DTDの記述量より増えます。

POINT

 DTDに対してW3C XML Schemaを比較した特徴をまとめると、以下のようになります。

書式がXML形式です。
データ型や制約を定義することができます。
名前空間に対応しています。
要素や属性を宣言することと、それらをツリー構造定義の中に配置することを分けて考えます。
1度定義したものを拡張できます。

正解 C、E

 

問 題 04-002 スキーマ宣言

(Q) W3C XML Schema文書の作成方法に関する次の記述のうち、間違っているものを選択してください。(単一選択)

[A] ルート要素の名前は、schemaでなくてはならない。

[B] ルート要素にversion属性を記述し、XML Schemaのバージョンを必ず明示しなくてはならない。

[C] XML Schema名前空間を明示するための接頭辞は、xsd以外の文字列でも構わない。

[D] XML Schema文書は整形式のXMLでなくてはならない。

解説

 XSDで記述されたXML文書のことを「XML Schema文書」と呼びます。XML Schema文書のルート要素は、名前が「schema」で、その名前空間は、「http://www.w3.org/2001/XMLSchema」というURIです。Schema要素の子孫要素の中で、型の定義、要素宣言、属性宣言などのスキーマ定義言語が記述されます。

 XSDの名前空間接頭辞に特に指定はありませんが、以前は「xsd」という文字列を使っているものが多かったのですが、最近では「xs」が慣習的に利用されるようになりました。

POINT

 XML Schema文書のルート要素は必ずschemaです。

KEYWORD

XML Schema Definition Language:XSD
W3C XML Schema仕様の中で定義されている記述言語はXML Schema Definition Language(XSD)です。WXSにのっとって定義されたスキーマを記述するためのXMLの言語です。
XML Schema文書
XSDで記述されたXML文書のことです。

正解 B

 

問 題 04-003 名前空間の指定

(Q) W3C XML Schemaで要素を定義するとき、ある名前空間にその要素を関連付けたいと思います。このとき記述するべき属性に関する次の説明のうち、正しいものを選択してください。(単一選択)

[A] schema要素のxmlns属性に名前空間を記述する。
[B] schema要素のtargetNamespace属性に名前空間を記述する。
[C] element要素のxmlns属性に名前空間を記述する。
[D] element要素のtargetNamespace属性に名前空間を記述する。

解説

 schema要素のtargetNamespace属性に名前空間を記述すれば、トップレベル(schema要素直下の階層)で定義されたものがその名前空間に関連付けられます。

 さらに、トップレベルでない要素定義をその名前空間に関連付けるためには、schema要素のelementFormDefault属性に "qualified" を記述します。

[参考]
 WXS仕様ではインスタンス文書とスキーマ文書の関連付けを行う方法を特に決めていませんが、ヒントとしてschemaLocatin属性とnoNamespaceSchemaLocation属性が定義されています。

KEYWORD

targetNamespace属性
スキーマ定義をする際に対象となる名前空間識別子を指定します。
schemaLocatin属性
名前空間に属するボキャブラリが記述されているスキーマ文書を指します。これはXMLインスタンスのルート要素で指定し、スキーマ文書との関連付けを行います。
noNamespaceSchemaLocation属性
名前空間に属さないボキャブラリが記述されているスキーマ文書を指します。

正解 B

 

問 題 04-004 組み込みデータ型

(Q) W3C XML Schemaで用意されているデータ型をすべて選んでください。(複数選択)

[A] int
[B] data
[C] double
[D] text
[E] date
[F] short

解説

 WXSでは、宣言とデータ型の定義は切り離されています。どのような内容でもあらかじめ型を定義するか、もしくは組み込み型を使用しなくてはいけません。

 XML Schema Part2:Datatype仕様には組み込み型が定義されています。

 組み込み型は要素宣言や属性宣言のtype属性を利用して使用することができます。WXSであらかじめ定義されているデータ型には一覧があります(表)。

表 WXSであらかじめ定義されているデータ型(W3Cより引用)(1)

表 WXSであらかじめ定義されているデータ型(W3Cより引用)(2)

表 WXSであらかじめ定義されているデータ型(W3Cより引用)(3)

例)データ型の使用

XMLインスタンスにて
<price>100</price>

XSD記述では
<xs:element name="price" type="int">

 組み込み型を制限したり拡張したりして、独自の型を定義することもできます(問題04-005「simpleType」を参照)。

正解 A、C、E、F

関連サービス:ITトレメ

 ITエンジニアのスキルアップ、キャリアアップを支援するWebサイト「@IT自分戦略研究所」では、XMLマスター:ベーシックの模擬問題が毎日メールで届くサービス「ITトレメ」を提供しています。Webページ上で過去に配信した問題も参照できます。(編集局)

XML技術者認定試験「XMLマスター ラーニングブック」−ベーシック 編−

 本記事は@ITハイブックスシリーズ「XML技術者認定試験「XMLマスター ラーニングブック」−ベーシック 編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。

(8)模擬問題:DOM

Index
連載:XMLマスターへの道
  (1)XMLマスター:ベーシック試験のレベルは?
  (2)XMLの概要と起源、関連規格
  (3)XML文書の要素、エンコーディング、宣言
  (4)すべてのXM文書は整形式である
  (5)valid XMLとDTDの関係
  (6)模擬問題:XMLの基本
(7)模擬問題:W3C XML Schema
  (8)模擬問題:DOM
  (9)DTDの実体宣言と記法宣言
  (10)XSLTの基本構造を理解する
  (11)XSLTで必須の制御命令を覚える
  (12)XPathによるノードの指定法を理解する
  (13)名前空間を理解しDOMの概要をつかむ
  (14)XML Schemaを利用したスキーマ定義
  (最終回)XML Schema―型の再利用と名前空間


連載:XMLマスターへの道


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間