目次 | 索引 |
---|---|
前回説明した通り、XMLは意味データを表すための言語です。 XMLドキュメントをどう表示するかは決まっていません。
ここで、ある展示会のデータを、次のようなXMLドキュメントで表したとします。
<exhibition> <name>○○株式会社製品展示会</name> <date>2004年7月10日(土)</date> <place>○○ビル一階</place> <fee>参加費無料</fee> <schedule> <item><time>9:30</time><event>受付開始</event></item> <item><time>10:00</time><event>展示開始</event></item> <item><time>15:30</time><event>受付終了</event></item> <item><time>16:00</time><event>展示終了</event></item> </schedule> </exhibition>
このXMLファイルをMozilla Firefoxなどで開きますと、次のような木構造が表示されます。 これは、必ずしも人間にとって読みやすいものではありません。
XMLドキュメントを人間にとって読みやすく表示するには、次のような方法があります。
今回は、スタイルシートの割り当てについて解説します。
スタイルシートについては、以前、HTMLドキュメントにCSSスタイルシートを割り当てました。 実は、CSSスタイルシートは、XMLドキュメントにも割り当てられます。 以下では、CSSスタイルシートを単にスタイルシートと呼び、HTMLの場合との違いについて説明します。
なお、XML+CSSが利用できるウェブ・ブラウザは、最近のものに限られます。 情報処理センターが用意しているウェブ・ブラウザの中では、SafariとMozilla Firefoxが対応しています。 Internet Explorerではうまくいきません。
一般的に、ドキュメント処理に関するデータをXMLドキュメントに埋め込むには、
処理命令
(
processing instruction
)というものが使われます。
処理命令は、
<?
processname
から始まり、データの並びが続き、
?>
で終わります。
処理命令は、コメントと同様、要素ではありません。
XMLドキュメントにスタイルシートを割り当てるには、
xml-stylesheet
処理命令
を利用します。
この
type
疑似属性
の値を"text/css"とし、
href
疑似属性
の値をスタイルシート・ファイルのURLとします。
要素の属性と同じ形式なのに、属性と呼ばずに疑似属性と呼ぶのは、処理命令は要素ではないからです。
展示会のデータに、同じディレクトリのスタイルシート・ファイル ex12a.css を割り当てますと、次のようになります。
<?xml-stylesheet type="text/css" href="ex12a.css"?> <exhibition> <name>○○株式会社製品展示会</name> <date>2004年7月10日(土)</date> <place>○○ビル一階</place> <fee>参加費無料</fee> <schedule> <item><time>9:30</time><event>受付開始</event></item> <item><time>10:00</time><event>展示開始</event></item> <item><time>15:30</time><event>受付終了</event></item> <item><time>16:00</time><event>展示終了</event></item> </schedule> </exhibition>
XMLドキュメントのためのスタイルシートでは、
display
プロパティ
が重要です。
このプロパティは、要素をインライン要素またはブロック・レベル要素に分類します。
インライン要素は前後に改行が入らないことと、ブロック・レベル要素は前後に改行が入ることを思い出してください。
インライン要素にするには
display: inline
とし、ブロック・レベル要素にするには
display: block
とします。
展示会のデータでは、
exhibition
要素、
name
要素、
schedule
要素、および
item
要素をブロック・レベル要素に分類し、他の要素をインライン要素に分類します。
date {display: inline} event {display: inline} exhibition {display: block} fee {display: inline} item {display: block} name {display: block} place {display: inline} schedule {display: block} time {display: inline}
スタイルシートには、HTMLのときのプロパティが追加できます。 ここでは、マージンを設定して、上下に余白を設けてみます。
date {display: inline} event {display: inline} exhibition {display: block} fee {display: inline} item {display: block} name {display: block; margin-bottom: 16px; margin-top: 16px} place {display: inline} schedule {display: block; margin-bottom: 16px; margin-top: 16px} time {display: inline}
display
プロパティで、要素をインライン要素かブロック・レベル要素に分類できますが、他の分類もあります。
その一つが、リスト項目です。
これは、左側に黒丸や数字などが付く要素です。
要素をリスト項目にするには、
display: list-item
とします。
list-style-type
プロパティ
は、リスト項目とともに使われます。
このプロパティの値によって、左側に黒丸が付いたり数字が付いたりします。
次の表に従ってください。
プロパティと値 | 記号 | 例 |
---|---|---|
list-style-type: disc |
黒丸 | ● |
list-style-type: circle |
白丸 | ○ |
list-style-type: square |
四角 | ■ |
list-style-type: decimal |
数字 | 1 2 3 |
list-style-type: lower-roman |
小文字ローマ数字 | i ii iii |
list-style-type: upper-roman |
大文字ローマ数字 | I II III |
list-style-type: lower-alpha |
小文字アルファベット | a b c |
list-style-type: upper-alpha |
大文字アルファベット | A B C |
list-style-type: none |
記号なし |
展示会のデータでは、
item
要素をリスト項目に分類します。
item
要素の親要素である
schedule
要素に、
list-style-type
プロパティを指定します。
四角を付けるために、
schedule
要素にマージンを設定して、左にも余白を設けます。
date {display: inline} event {display: inline} exhibition {display: block} fee {display: inline} item {display: list-item} name {display: block; margin-bottom: 16px; margin-top: 16px} place {display: inline} schedule {display: block; list-style-type: square; margin-bottom: 16px; margin-left: 32px; margin-top: 16px} time {display: inline}
注意: XML+CSSで番号付きのリスト要素を作成した場合、どの項目から数え始めるかの判定が、ブラウザによって異なります。 正確に番号を付けるには、カウンタと呼ばれる機能を利用する必要があります。
display
プロパティで表を作成することもできます。
HTMLでは、
<table>
タグ、
<tr>
タグ、
<td>
タグ、および
<th>
タグを組み合わせて表を作りました。
次の表に従って要素を分類しますと、あたかもHTMLのタグを使ったように表示されます。
プロパティと値 | 対応するHTML要素 |
---|---|
display: table |
table |
display: table-row |
tr |
display: table-cell |
th, td |
展示会のデータでは、
schedule
要素を
<table>
タグに、
item
要素を
<tr>
タグに、
time
要素と
event
要素を
<td>
タグに、それぞれ対応させます。
表に枠をつけるため、
schedule
要素、
time
要素、および
event
要素にボーダーを設定します。
date {display: inline} event {border-style: solid; border-width: thin; display: table-cell} exhibition {display: block} fee {display: inline} item {display: table-row} name {display: block; margin-bottom: 16px; margin-top: 16px} place {display: inline} schedule {border-style: solid; border-width: thin; display: table; margin-bottom: 16px; margin-top: 16px} time {border-style: solid; border-width: thin; display: table-cell}
9:30 | 受付開始 |
10:00 | 展示開始 |
15:30 | 受付終了 |
16:00 | 展示終了 |
リストや表の他に、表示しないという分類もあります。
これは、
display: none
とします。
指定された要素の子要素も表示されません。
展示会のデータで、
schedule
要素を表示しないようにしますと、子要素である
item
要素も表示されません。
date {display: inline} event {display: inline} exhibition {display: block} fee {display: inline} item {display: block} name {display: block; margin-bottom: 16px; margin-top: 16px} place {display: inline} schedule {display: none} time {display: inline}
次回(7/16)の授業では試験を行います。 今日の演習問題を見直しておいてください。
レポートの提出に関するスケジュールは次の通りです。
この授業の成績は、レポートの提出と試験の得点で決まります。
成績に関して次のような事情のある人はメールで連絡してください。 できる限り対処します。
HTMLとその関連技術について、以下の問いに答えなさい。 (全20問)
問1. 次のHTMLに関する説明のうち、適切でないものを一つ選びなさい。
問2. 次のタグの書き方のうち、定義リストとして適切なものを一つ選びなさい。
<dl><dl>バグ</dl><dl>プログラムの間違い</dl></dl>
<dl>バグ</dl><dl>プログラムの間違い</dl>
<dl><dt>バグ</dt><dd>プログラムの間違い</dd></dl>
<dt>バグ</dt><dd>プログラムの間違い</dd>
問3. 次のHTMLに関する説明のうち、適切でないものを一つ選びなさい。
問4. 次のタグの書き方のうち、イメージ clock.png を埋め込むのに適切なものを一つ選びなさい。
<img>clock.png
<img src="clock.png">
<img src="clock.png"></img>
<img>clock.png</img>
問5. 次のHTMLに関する説明のうち、適切でないものを一つ選びなさい。
<body text="white"><body bgcolor="black">
〜
</body></body>
と書きます。
問6. 次のタグの書き方のうち、青のやや大きなフォントに切り替えるのに適切なものを一つ選びなさい。
<font size="4"><font color="blue">夏休み</font>
<font size="4"><font color="blue">夏休み</font></font>
<font size="4" font color="blue">夏休み</font>
<font size="4" font color="blue">夏休み</font></font>
問7. 次の表に関する説明のうち、適切でないものを一つ選びなさい。
問8. 次のタグの書き方のうち、一行一列の表として適切なものを一つ選びなさい。
<table><tr><td>万年筆</td></tr></table>
<table><tt><tr><td>万年筆</td></tr></tt></table>
<table><tr>万年筆</tr></table>
<table>万年筆</table>
問9. 次のフレームに関する説明のうち、適切でないものを一つ選びなさい。
問10. 次のタグの書き方のうち、フレームセット・ドキュメントとして適切なものを一つ選びなさい。
<frameset><frame cols="20%"><frame cols="80%"></frameset>
<frameset cols="20%, 80%"><frame><frame></frameset>
<frameset cols="20%"></frameset><frameset cols="80%"></frameset>
<frameset><frame cols="20%, 80%"></frameset>
問11. 次のスタイルシートに関する説明のうち、適切でないものを一つ選びなさい。
url(wall.png)
という形式で指定します。
問12. 次のスタイルシートの書き方のうち、h1 要素を中央に揃えて緑色にするのに適切なものを一つ選びなさい。
h1 {color: green text-align: center}
h1 {color: green} {text-align: center}
h1 {color: green; text-align: center}
h1 {color: green}; {text-align: center}
問13. 次のスタイルシートに関する説明のうち、適切でないものを一つ選びなさい。
h1 {text-align: center}
とタグ
<h1 style="text-align: right">お知らせ</h1>
を組み合わせると、「お知らせ」は右に揃います。
<div>
タグと
<span>
タグが役立ちますが、
<div>
はインライン要素、
<span>
はブロックレベル要素を表します。
問14. 次のうち、「駅名を赤で表示する」というスタイルシートとタグの組み合わせとして、適切なものを一つ選びなさい。
span.color {station: red} ... <span class="station">西荻窪駅</span>
span.station {color: red} ... <span class="color">西荻窪駅</span>
span.color {station: red} ... <span class="color">西荻窪駅</span>
span.station {color: red} ... <span class="station">西荻窪駅</span>
問15. 次のURLに関する説明のうち、適切でないものを一つ選びなさい。
問16. ~/WWW-local/kanagawa/yokohama/yokohama.html から ~/WWW-local/toppage.html にリンクを張ることを考えます。 次のうち、yokohama.html に書くタグとして適切なものを一つ選びなさい。
<a href="../toppage.html">トップページへ</a>
<a href="../WWW-local/toppage.html">トップページへ</a>
<a href="../../toppage.html">トップページへ</a>
<a href="WWW-local/toppage.html">トップページへ</a>
問17. 次のフォームに関する説明のうち、適切でないものを一つ選びなさい。
問18. 次のタグの書き方のうち、喫煙車か禁煙車かを問うラジオ・ボタンとして適切なものを一つ選びなさい。
<input type="radio" name="smoking" value="car">喫煙車 <input type="radio" name="nonsmoking" value="car">禁煙車
<input type="radio" value="smoking">喫煙車</input> <input type="radio" value="nonsmoking">禁煙車</input>
<input type="radio" name="car" value="smoking">喫煙車 <input type="radio" name="car" value="nonsmoking">禁煙車
<input type="radio" value="car">喫煙車</input> <input type="radio" value="car">禁煙車</input>
問19. 次のXMLに関する説明のうち、適切でないものを一つ選びなさい。
<
は
%3c
に書き換えます。
問20. 次のXMLドキュメントのうち、整形式(well-formed)であるものを一つ選びなさい。
<month>July</month><day>16</day><year>2004</year>
<date><month>July</month><day>16</day><year>2004</year></date>
<date><month>July<day>16<year>2004</date>
July 16 2004
今日の演習12の解答をkonishi@twcu.ac.jpあてにメールで送ってください。 メールには、学生番号、氏名、科目名、授業の日付け(7/9)を明記してください。