XMLマスターへの道
〜「XMLマスター:ベーシック」試験対策〜
第7回 XMLマスター模擬試験:W3C XML Schema
福内 かおり・木村 達哉
2003/6/21
|
前回「XMLマスター模擬試験:XMLの基本」から「特別編」として、XMLマスターの模擬問題を中心にお届けしています。模擬問題は@ITハイブックスシリーズ『XML技術者認定試験「XMLマスター ラーニングブック」−ベーシック 編−』から抜粋してお届けしていきます。
今回は、第4章「W3C XML Schema」から、W3C XML Schema関連の問題を紹介します。
問 題 04-001 W3C XML Schemaの概要 | |
(Q) 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文書の作成方法に関する次の記述のうち、間違っているものを選択してください。(単一選択)
|
■解説
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で要素を定義するとき、ある名前空間にその要素を関連付けたいと思います。このとき記述するべき属性に関する次の説明のうち、正しいものを選択してください。(単一選択)
|
■解説
schema要素のtargetNamespace属性に名前空間を記述すれば、トップレベル(schema要素直下の階層)で定義されたものがその名前空間に関連付けられます。
さらに、トップレベルでない要素定義をその名前空間に関連付けるためには、schema要素のelementFormDefault属性に "qualified" を記述します。
[参考]
WXS仕様ではインスタンス文書とスキーマ文書の関連付けを行う方法を特に決めていませんが、ヒントとしてschemaLocatin属性とnoNamespaceSchemaLocation属性が定義されています。
■KEYWORD
● | targetNamespace属性 スキーマ定義をする際に対象となる名前空間識別子を指定します。 |
● | schemaLocatin属性 名前空間に属するボキャブラリが記述されているスキーマ文書を指します。これはXMLインスタンスのルート要素で指定し、スキーマ文書との関連付けを行います。 |
● | noNamespaceSchemaLocation属性 名前空間に属さないボキャブラリが記述されているスキーマ文書を指します。 |
■正解 B
問 題 04-004 組み込みデータ型 | |
(Q) W3C XML Schemaで用意されているデータ型をすべて選んでください。(複数選択)
|
■解説
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 |
連載:XMLマスターへの道 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|