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 の仕様書です。
© Copyright 2024 ExpyDoc