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

第6回 XMLマスター模擬問題:XMLの基本

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



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

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

 今回は、第1章「XML」から、XML文書の基本に関連した問題を紹介します。

問 題 01-007 名前として使用できる文字

(Q) 正しい要素名をすべて選んでください。(複数選択)

[A] 2003年
[B] 2003_年
[C] year-2003
[D] y.2003

解説

 XMLでは自由にタグ名を付けることができますが、以下の制限に従わなければなりません

図 タグ名の制限

POINT

要素名の最初の1文字に数字を使用することはできません。
半角カナ、全角英数字、全角空白は使用できません。
XML宣言で使用される「xml」という文字列はW3Cで予約されているので、先頭に使用することは推奨されません(XML、xml、Xml、XmLなど大文字小文字に関わらず推奨されません)。
「:(コロン)」は名前空間での使用で予約されているため推奨されません。
タグ名にスペースは使用できません。
<要 素>要素の内容</要 素> ← 名前の間がスペースはNG
タグ名と属性名の区切りとして、タブと改行を使用できます。
<A     B="Bの属性">Aの内容</A> ← タブはOK
<A    
    B="Bの属性">Aの内容</A> ← 改行とタブもOK
編注:上記のタブは、Webページ上では複数のスペースで表現しています

正解 C、D

 

問 題 01-008 階層構造で記述

(Q) 整形式XML文書をすべて選択してください。(複数選択)

[A] <data>
[B] <data/>
[C] <data value="100"/>
[D] <data><value>100</data></value>

解説

 階層構造に記述する場合、開始タグと終了タグの間には文字データのほかに、別の要素を入れ子にして、子要素を持たせることができます。文書全体できちんと対応が取れた入れ子構造にしなければなりません。

良い例)
<data><value>100</value></data>

悪い例)
<data><value>100</data></value>

 設問では、選択肢Aは終了タグが存在しません。

 選択肢Dは、data開始タグ〜data終了タグで構成されるdata要素と、value開始タグ〜value終了タグで構成されるvalue要素とが互いに交差しているので、整形式ではありません。

PIONT

 ある要素の内容に開始タグが含まれた場合、対応する終了タグは、同じ要素の内容に含まれなければなりません。

正解 B、C

 

問 題 01-009 XML文書の構成

(Q) XML宣言文を記述しない場合、XML文書の先頭行に記述できるものをすべて選択してください。(複数選択)

[A] 改行文字
[B] CDATAセクション
[C] コメント
[D] 処理命令

解説

 XML文書の基本構造は「(1)XML宣言」「(2)文書型宣言」「(3)XMLインスタンス」の3部から構成されています(図)。

図 XML文書の基本構造

 選択肢BのCDATAセクション(後述)は、XMLインスタンス内でのみ記述可能です。

正解 A、C、D

 

問 題 01-010 XML宣言

(Q) XML宣言の記述として正しいものをすべて選んでください。(複数選択)

[A] <?xml version="1.0"?>
[B] <?xml encoding="Shift_JIS" standalone="yes"?>
[C] <?xml version="1.0" encoding="Shift_JIS"?>
[D] <?xml encoding="Shift_JIS" version="1.0" standalone="no"?>

解説

 XML宣言は、XML文書の先頭に記述します。

形式

図 XML宣言の形式

XMLのバージョン
XMLのバージョン(仕様版番号)の宣言です。現在は、"1.0" のみ指定可能です。
XML文書の文字エンコーディング
XML文書がどの文字エンコーディングで作成されているのかを指定します。これを省略した場合には、"UTF-8" か "UTF-16" がとられます。
日本語を使用できる文字エンコーディングの種類には、以下のものがあります。
Shift_JIS、ISO-2022-JP(JIS)、UTF-16、EUC-JP、UTF-8
スタンドアロン文書
DTDをXML文書から参照するかを指定します。"yes" を指定すると、外部のDTDファイルを参照しません。省略した場合は、"no" がとられ参照することができます。

POINT

 XML宣言の生成規則は、次の1行で定められています。

XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

 すなわち、エンコーディング宣言とスタンドアロン文書宣言を省略しても構いませんが、版情報を省略してはいけません。また、版情報・エンコーディング宣言・スタンドアロン文書宣言を記述するなら、必ずこの順序で記述します(xml、version、encoding、standaloneはXMLで予約されているキーワードなので、大文字/小文字が区別されます)。

正解 A、C

 

問 題 01-011 文書型宣言

(Q1) 文書型宣言が正しく記述されているものを選んでください。(単一選択)

[A] <!DTD list [
<!ELEMENT list (data)*
 :
]>

[B] <!DOCTYPE list [
<!ELEMENT list (data)*
 :
]>

[C] <!DOCTYPE list PUBLIC "a.dtd">

[D] <!DOCUMENT list PUBLIC "-//ABC//DTD//EN" "a.dtd">

解説

 文書型宣言は、XML文書中でXML宣言の後に記述され、このXML文書の構造を定義しているDTD(文書型定義)の呼び出し場所を指定します(図)。

図 文書型宣言

 設問では選択肢Bが内部DTDの文書型宣言として正しく、選択肢Aの!DTDという宣言はありません。選択肢Dの!DOCUMENTという宣言もありません。選択肢CのPUBLICを使った外部DTDの場合、公開識別子とともに記述します。詳細は、問題03-003「外部DTDの記述」を参照してください。

KEYWORD

DOCTYPE宣言(文書型宣言)
DTDの呼び出しを指定します。
DTD(文書型定義)
DTDの定義をします(XML文書の構造を定義)。

正解 B

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

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

■変更履歴
2003/6/4  問題 01-09、01-010の図の間違いを修正
2003/6/4  問題 01-011の正解がB、DとなっていたのをBに修正


(7)模擬問題:W3C XML Schema

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 記事ランキング

本日月間