■範囲 XMLマスター教科書2章p70~p126
■学んだこと DTDを構成する各宣言の詳細
■理解しずらい・できなかったこと 完全には理解しきれていないが、先週感じていたよりも単純だった為、 現状では特にありません。--------------------------------------------------------------------------------
■第二章テスト問題の回答
【問題:1】
DTDにおいて属性の型として誤っているものを選択してください。
【回答選択肢】
1. CDATA
2. INTEGER
3. NMTOKEN
4. ID
【回答選択の理由】
回答 ⇒2
INTEGER型は無い為。
--------------------------------------------------------------------------------
【問題:2】
DTDにおいてdata要素にattr1属性とattr2属性を宣言する記述として
正しいものを選択してください。
ただし、要素dataは宣言済みとします。
【回答選択肢】
1. <!ATTLIST data attr1 CDATA #IMPLIED
attr2 NMTOKEN #IMPLIED>
2. <!ATTLIST data attr1 CDATA #IMPLIED
data attr2 NMTOKEN #IMPLIED>
3. <!ATTRIBUTE data attr1 CDATA #IMPLIED
<!ATTRIBUTE data attr2 NMTOKEN #IMPLIED>
4. <!ATTRIBUTE data attr1 CDATA #IMPLIED
data attr2 NMTOKEN #IMPLIED>
【回答選択の理由】
回答 ⇒ 1
3,4はATTRIBUTEと間違った記述であり、2は2行目の要素名が不必要な為
--------------------------------------------------------------------------------
【問題:3】
次のXML文書のうち妥当なXML文書を選択してください。
【回答選択肢】
1. <!DOCTYPE x[
<!ELEMENT x (a+)>
<!ELEMENT a (#PCDATA)>
]>
<x></x>
2. <!DOCTYPE x[
<!ELEMENT x (a*)>
<!ELEMENT a (#PCDATA)>
]>
<x><a></a></x>
3. <!DOCTYPE x[
<!ELEMENT x (a@)>
<!ELEMENT a (#PCDATA)>
]>
<x></x>
4. <!DOCTYPE x[
<!ELEMENT x (a?)>
<!ELEMENT a (#PCDATA)>
]>
<x><a/><a/></x>
【回答選択の理由】
回答 ⇒ 2,4
1はa要素が1回以上登場しなければならない為×
3は要素内容の修飾記号として@が無い為×
--------------------------------------------------------------------------------
【問題:4】
要素aに文字列を属性値とする属性valueの宣言の正しい記述を選択してください。
【回答選択肢】
1. <!ATTLIST a value PCDATA #IMPLIED>
2. <!ATTLIST a value CDATA #IMPLIED>
3. <!ATTRIBUTE a value CDATA #IMPLIED>
4. <!ATTRIBUTE a value PCDATA #IMPLIED>
【回答選択の理由】
回答 ⇒ 2
3,4はATTRIBUTEと間違った記述であり、1のPCDATAは属性のデータ型として存在しない
--------------------------------------------------------------------------------
【問題:5】
次の記述のうち子要素としてテキストデータのみを持つ要素aを宣言する
DTDの記述を選択してください。
【回答選択肢】
1. <!ELEMENT a (CDATA)>
2. <!ELEMENT a (#STRING)>
3. <!ELEMENT a (#PCDATA)>
4. <!ELEMENT a (STRING)>
【回答選択の理由】
回答 ⇒ 3
要素の宣言には#PCDATAか、子要素を指定するもの、空要素とするもの以外は無い為
--------------------------------------------------------------------------------
【問題:6】
DTDで要素dataを空要素として宣言するときの正しい記述を選択してください。
【回答選択肢】
1. <!ELEMENT data EMPTY>
2. <!ELEMENT data >
3. <!ELEMENT data EMPY_ELEMENT>
4. <!ELEMENT data (EMPTY)>
【回答選択の理由】
回答 ⇒ 1
3のパターンは無く、2はパターンが定義されていない。
4はカッコが余分である。
--------------------------------------------------------------------------------
【問題:7】
DTDで属性を宣言する記述として誤ったものを選択してください。
ただし、要素dataは宣言済みとします。
【回答選択肢】
1. <!ATTLIST data attr1 CDATA "value1">
2. <!ATTLIST data data CDATA #IMPLIED>
3. <!ATTLIST data attr1 CDATA #IMPLIED
attr2 NMTOKEN #IMPLIED>
4. <!ATTLIST data attr1 INTEGER>
【回答選択の理由】
回答 ⇒ 4
DTDの属性には存在しないデータ型であるため
--------------------------------------------------------------------------------
【問題:8】
パラメータ実体の宣言として正しいものを選択してください。
【回答選択肢】
1. <!ENTITY & time "(時,分)">
<!ELEMENT 時 (#PCDATA)>
<!ELEMENT 分 (#PCDATA)>
<!ELEMENT 開始時刻 &time;>
<!ELEMENT 終了時刻 &time;>
2. <!ENTITY % time "(時,分)">
<!ELEMENT 時 (#PCDATA)>
<!ELEMENT 分 (#PCDATA)>
<!ELEMENT 開始時刻 %time;>
<!ELEMENT 終了時刻 %time;>
3. <!PARAM % time "(時,分)">
<!ELEMENT 時 (#PCDATA)>
<!ELEMENT 分 (#PCDATA)>
<!ELEMENT 開始時刻 %time;>
<!ELEMENT 終了時刻 %time;>
4. <!PARAM & time "(時,分)">
<!ELEMENT 時 (#PCDATA)>
<!ELEMENT 分 (#PCDATA)>
<!ELEMENT 開始時刻 &time;>
<!ELEMENT 終了時刻 &time;>
【回答選択の理由】
回答 ⇒ 2
3,4のPARAMという宣言は無く、1のような&でなく%で記述されるため。
--------------------------------------------------------------------------------
【問題:9】
次のDTDに妥当でないXML文書を選択してください。
「DTD」
<!DOCTYPE xyz[
<!ELEMENT xyz (#PCDATA)>
<!ATTLIST xyz att1 CDATA #FIXED "ID555913"
att2 NMTOKEN #REQUIRED >
]>
【回答選択肢】
1. <xyz att1="ID555913" att2="ID260001"></xyz>
2. <xyz att2="ID260001"></xyz>
3. <xyz att2="260001"></xyz>
4. <xyz att1="ID700019" att2="ID260001"></xyz>
【回答選択の理由】
回答 ⇒ 4
att1属性の値はID555913で固定されなくてはならない為。
またatt2は全ての選択肢に書かれているので、4が妥当でない。
--------------------------------------------------------------------------------
【問題:10】
次のDTDを説明する記述のうち誤っているものを選択してください。
<!DOCTYPE x[
<!ELEMENT x (a | b | c)*>
<!ELEMENT a (d+)>
<!ELEMENT c (#PCDATA)>
<!ELEMENT b (#PCDATA)>
<!ELEMENT d (#PCDATA)>
]>
【回答選択肢】
1. x要素の子要素としてb要素とc要素だけを1つずつ記述する場合がある
2. b要素はx要素の子要素として記述しない場合がある
3. a要素を記述するときはd要素は必ず複数記述しなければならない
4. x要素の子要素としてa要素とc要素を交互に記述する場合がある
【回答選択の理由】
回答 ⇒ 3
1個以上の要素が記述されればよいので必ずしも複数でなくてよい。
--------------------------------------------------------------------------------
採点は、次回の更新で行います!
