プログラミング基礎 I

第六回 (2006年 5月29日)

DTD の基本

http://www.sw.it.aoyama.ac.jp/2006/PB1/lecture6.html

Martin J. Dürst

duerst@it.aoyama.ac.jp, O 棟 529号室

AGU

© 2006 Martin J. Dürst 青山学院大学

目次

Moodle の使い方

Moodle: 電子学習支援システム (オープン・ソース)

今日の予定:

  1. 登録
  2. 登録確認
  3. 先週の宿題のアップロード

Moodle の登録の種類

  1. 計算機実習 I の受講生 (主に情報テクノロジーの二年生): ユーザ ID、パスワードが同じ。プログラミング基礎 I への登録だけが必要。
  2. 他の情報テクノロジーの学生: ユーザ ID と仮のパスワードが出来ている。TA と相談。
  3. 他学科・他学部の学生: アカウント作成から始まる

新しいアカウントの作成

新規アカウント記入項目

記入が終わったら「アカウントの作成」のボタンを押す。

コースの登録

アカウントを作成したら、しばらくするとウェブメールに確認のメールが来る。

確認のメールに一つ入っているリンクをクリックするとユーザ登録の確認が完成。

次に「青山スタンダード」のしたの「プログラミング基礎 I」を選ぶ。

次のページに登録キーのところに「ProgBasic1」を入力する。

注意: 履修登録も Moodle でのコースへの登録も単位取得の前提である。

先週の演習・宿題 2: 本の情報

演習・宿題の結果を Moodle にアップロードしてください。

ある一つの本についての情報を集めて、XML にしてください。色々な本を例えばウェブページで紹介したいことを想定してください。

これからこの情報を授業でシェアしますので、それを配慮して本を選んでください。

二人以上同じ本についてデータを集めると減点される。

Moodle でファイルをアップロードしてください。

先週の追加

W3C CSS Validator: CSS の検証ツール

自由自在の XML の限界

今まで一人一人独自に要素や属性を作ったが、いくつか問題点がある:

→ 決まった要素・属性を定義して、これに従う

スキーマの役割

XML 用のスキーマの種類

それぞれ一長一短だが、これから DTD を中心に勉強する。

内部 DTD の一例

内部 DTD (internal DTD): DTD を XML ファイルに書き込む

<?xml version="1.0" ?>
<!DOCTYPE Letter [
<!ELEMENT Letter (to, from, Title, Text) >
<!ATTLIST Letter date CDATA #REQUIRED >
<!ELEMENT to (#PCDATA) >
<!ELEMENT from (#PCDATA) >
<!ELEMENT Title (#PCDATA) >
<!ELEMENT Text (#PCDATA) >
]>
<Letter date="2006-04-17">
   <to>Students</to>
   <from>Martin</from>
   <Title>Reminder</Title>
   <Text>Please don't forget
         your homework.</Text>
</Letter>

外部 DTD の一例

外部 DTD (external DTD): DTD を別のファイルにする

<?xml version="1.0" ?>
<!DOCTYPE Letter SYSTEM "myDTD.dtd" >
<Letter date="2006-04-17">
   <to>Students</to>
   <from>Martin</from>
   <Title>Reminder</Title>
   <Text>Please don't forget
         your homework.</Text>
</Letter>

ファイル myDTD.dtd:

<!ELEMENT Letter (to, from, Title, Text) >
<!ATTLIST Letter date CDATA #REQUIRED >
<!ELEMENT to (#PCDATA) >
<!ELEMENT from (#PCDATA) >
<!ELEMENT Title (#PCDATA) >
<!ELEMENT Text (#PCDATA) >

検証のやり方

米ブラウン大学の Scholarly Technology Group の XML Validation Form を使用。

内部の DTD のある XML ファイルを「Local file: 」として指定

DTD の部品の説明

ELEMENT は要素の定義に使う。要素名の後に「内容モデル」(content model) がある。

簡単な内容モデル:

要素の内容が空: EMPTY

テキストのみ: (#PCDATA)

本格的な内容モデル: 要素だけ

順番: (elem1, elem2) (elem1 の後に elem2、両方が必要)

選択: (elem1 | elem2) (elem1 又は elem2、両方は不可能)

任意: (elem1?) (elem1 はあってもなくても良い)

繰り返し (0回以上): (elem1*) (elem1 は0回以上繰り返す)

繰り返し (1回以上): (elem1+) (elem1 は1回以上繰り返す)

この内容モデルはかなり自由に組み合わせることができる

本格的な内容モデル: テキストと要素の混在

(#PCDATA | elem1 | elem2)*

注意点:

演習 1: DTD の作成

自分の「手紙」の XML 文書のための DTD を作成する。

(文書として選ぶのは今まで一番要素など拡張したもの)

内部 DTD を含む文書を 6月 4日 (日) の 23:55 時までに Moodle で投稿