2003年度 データベース論

XMLの基本
ソフトウェア特論
第2回 / 2004-04-23
この講義について

次の2つで評価します




3~4回(予定)のレポート
出席(救済措置の意味が強い)
前期末試験は行いません。
http://www.wakhok.ac.jp/~tomoharu/w
s2004/
XMLとはどういったものか
XMLとは


World Wide Web Consortium (W3C)によ
り策定されている文書の規格
W3C では、ほかにも HTML, CSS などの
規格を策定している。
XML文書の例
<?xml version="1.0" encoding="Shift_JIS" ?>
<booklist>
<book>
<title>情報メディア論</title>
<author role="編著">丸山不二夫</author>
<publisher>八千代出版</publisher>
</book>
<book>
・・・・・
</book>
</booklist>
タグと要素
<title> 情報メディア論 </title>
開始タグ
内容
要素
終了タグ
要素

「タグ」でデータを囲うことで、次の内容を
表すことができる



<title>情報メディア論</title>



そのデータがどのような種類のものか
データそのもの
このタグは本のタイトルを表している
「情報メディア論」というタイトルである
要素の中に要素を入れることができる
属性


要素の役割を示す
<author role="著">植田龍男</author>

「植田龍男」の役割が「著」者である
XMLの本質
その1
メタ言語 (1)



メタ言語=言語を記述するための言語
言語=文法+語彙
XMLの規格では、次のようなことが決めら
れている(文法に相当)




要素がある
開始タグがあれば終了タグがある
属性がある
要素は文字で表現される
その1
メタ言語 (2)

XML の規格では、タグの名称や使い方ま
では決められていない(語彙に相当)。




booklist とか book のような
booklist の中に book があるというような
こうしたタグやその使い方は、ユーザに
よって決められている。
ただし、XMLの文法からは外れていない。
その1
メタ言語 (3)




文法は決まっているが、語彙は自分で決
める。
語彙を定義する=言語を定義する
XMLは、同じ文法を持った新しい言語を作
成できる「メタ言語」としての性質を持つ。
文法が同じだから、XML文書を解析すると
きに必要になる「パーザ」を書く必要はない。
XMLベースの言語の例 (1)

XHTML


RSS


HTML 4.01 を XML に書き換えたもの
Webサイトの概要を表すXML<
Webサイトの概要を表すXML
MathML

数式を表すXML
XMLベースの言語の例 (2)

SMIL


映像・音声などを組み合わせて、どのように見
せるかXMLで記述する
ContactXML

人の連絡先情報を記述するXML
その1
メタ言語 (4)


XMLベースの言語で、どのようなタグがど
のような組み合わせで利用できるかという
情報は、スキーマに記述される。
スキーマの種類



DTD
XML Schema
Relax NG
その2
文書の構造化 (1)

XML文書は、要素の組み合わせによって
成り立つ。



booklist – book – title
要素の間には「親子関係」や「兄弟関係」
がある。
つまり、要素の組み合わせは木構造で表
せる。
その2
文書の構造化 (2)

木構造で表せるので、次のことが簡単



XML文書を変換 (XSLT)
必要な情報を取り出す。
情報の再利用がやりやすくなる。
その3
テキストファイル



XML文書はテキストファイル
特別なツールを使わなくても閲覧・作成・編
集ができる
人間にとってもプログラムにとっても扱い
やすい
XHTML
XHTML とは

HTML 4.01 を XML で記述したもの


HTML は、そもそも SGML というものをベース
にしていた。
HTML の開発はこれでストップし、今後は
XHTML の開発が継続される。
XHTML の特徴


html タグに、XHTMLであることを示す
xmlns 属性が必要となる。
HTMLの hr のような単独で働くタグは、空
要素タグとなる。


<hr> ではなく <hr /> と記述する。
<li> のようなタグにも必ず終了タグが必
要
XHTML でうれしい点

HTMLと違って文法に曖昧な点がない。



プログラムで処理しやすい。
データとしての再利用性が高い。
ほかのXMLベースの言語と組み合わせて
使うこともできる。
名前空間
「名前空間」とは



XMLでは、ひとつの文書に(XMLベースの)
複数の言語を組み合わせて使うことができ
る。
複数の言語を使うとき、同じ名前のタグが
あったら困る。
そこで、どの言語のタグなのかを名前空間
で識別する必要がある。
名前空間の例

<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:wakhokBook="http://www.wakhok.ac.j
p/books”>


html 要素内では、 http://www.w3.org/1999/xhtml
という値の名前空間を指定している
http://www.wakhok.ac.jp/books という値の名前空
間のため、wakhokBook という名前空間接頭辞を指
定している
名前空間接頭辞を使う
<wakhokBook:book>
<wakhokBook:title>
情報メディア論
</wakhokBook:title>
</wakhokBook:book>
局所的に名前空間を使う
<book
xmlns="http://www.wakhok.ac.jp/books">
<title>情報メディア論</title>
<author role="編著">丸山不二夫</author>
<publisher>八千代出版</publisher>
</book>
DTD
DTDとは何か

XMLベースの言語で、どのようなタグがど
のような組み合わせで利用できるかという
情報を記述するためのもの。
DTDの例 (1)
<?xml version="1.0" encoding="Shift_JIS"?>
<!ELEMENT BOOKLIST (BOOK+)>
<!ELEMENT BOOK (
TITLE, AUTHOR, PUBLISHER)>
<!ELEMENT TITLE
(#PCDATA)>
<!ELEMENT AUTHOR
(#PCDATA)>
<!ELEMENT PUBLISHER
(#PCDATA)>
DTDの例 (2)
<!ELEMENT BOOKLIST (BOOK+)>


BOOKLISTは1つ以上のBOOKを含む。
BOOKが無くてもいい場合 (0以上の
BOOK)、(BOOK*) という表記になる。
DTDの例 (3)
<!ELEMENT BOOK (
TITLE, AUTHOR, PUBLISHER)>

BOOKはTITLE, AUTHOR, PUBLISHERの
3つの要素を含む
DTDの例 (4)
<!ELEMENT TITLE
(#PCDATA)>
<!ELEMENT AUTHOR
(#PCDATA)>
<!ELEMENT PUBLISHER (#PCDATA)>

3つの要素ともどんな文字でもよい。
バリッドとウェルフォームド


DTDに則ったXML文書をバリッド
DTDを使わないXML文書をウェルフォーム
ド
参考文献・URL

Extensible Markup Language (XML) 1.0
(Third Edition)


http://www.w3.org/TR/REC-xml/
XML 1.0 の仕様書です。