http://www.sw.it.aoyama.ac.jp/2007/PB1/lecture6.html
duerst@it.aoyama.ac.jp, O 棟 529号室
© 2006-7 Martin J. Dürst 青山学院大学
例を見ましょう
W3C CSS Validator: CSS の検証ツール
CSS Zen Garden の本
今まで一人一人独自に要素や属性を作ったが、いくつか問題点がある:
→ 決まった要素・属性を定義して、これに従う
それぞれ一長一短だが、これから 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 (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) >
ウェブ上の外部 DTD の場合:
内部 DTD の場合:
米ブラウン大学の Scholarly Technology Group の XML Validation Form を使用
ELEMENT
は要素の定義に
書式: <!ELEMENT
要素名
内容モデル >
簡単な内容モデル:
要素の内容が空: EMPTY
テキストのみ: (#PCDATA)
(content model)
順番: (elem1, elem2)
(elem1 の後に
elem2、両方が必要)
例: <!ELEMENT book (title, author, ISBN) >
選択: (elem1 | elem2)
(elem1 又は
elem2、両方は不可能)
例: <!ELEMENT Letter (from, to, (greeting | 挨拶), text)
>
任意: (elem1?)
(elem1 はあってもなくても良い)
例: <!ELEMENT Letter (from, to, subject?, text, greeting?)
>
繰り返し (0回以上): (elem1*)
(elem1
は0回以上繰り返す)
例: <!ELEMENT books (book*) >
繰り返し (1回以上): (elem1+)
(elem1
は1回以上繰り返す)
例: <!ELEMENT books (book+) >
この内容モデルは自由に組み合わせることができる
(mixed content model)
(#PCDATA | elem1 | elem2)*
注意点:
#PCDATA
は最初|
でテキストの中に許す要素を列挙*
をつける例: <!ELEMENT text (#PCDATA | special) >
書式: <!ATTLIST
要素名
属性名 CDATA #REQUIRED >
例: <!ATTLIST Letter date CDATA #REQUIRED >
自分の「手紙」の XML 文書のための DTD を作成する
(文書として選ぶのは今まで一番要素など拡張したもの)
必ず検証で正しいかどうか確認する
内部 DTD を含む文書を 6月 3日 (日) の 22:00 時までに Moodle に投稿