最近よく耳にするXML.

なんか話を聞く限りでは,とってもいいものみたいに思えます.

XMLをキーワードに検索すると,いろんなページが見つかります.どこがどういいのか,とか,どういう経緯で生まれてきたのか,などためになることがたくさん書かれています.

でも,そんなものをいちいち読むのは面倒だし,実際に使うぶんには関係ありません.HTMLがHyperText Markup Languageのことだとか,XMLがeXtensible Markup Languageのことであるとか,SGMLとかCALSとか,そんなこと知らなくたってどーでもいいですもん.

むずかしいおべんきょーはまともに使えるようになってからやることにして,とりあえずは使ってみることにします.

でも,使うにあたって,いちおうおさえておかなければいけないことがあります.それは,今(2001年4月現在),XMLが多少なりとも使えるのはInternetExplorer5以降に限られるということです.そのIE5にしたって,すべての機能が使えるわけではありません.

XMLを表示する規格のことをXSLTというのですが,IE5単体ではこの規格を満たしていないのです.マイクロソフトが提供しているmsxml3というものをIEに組み込んではじめて,規格に近いことができるようになります.

ということは,いま,XMLでホームページを作っても,まともに見られない人がけっこういるということになります.

このあたりのことをおさえた上で,入門用のホームページを見ていきます・・・

http://www.cityfujisawa.ne.jp/~yanai/xml/index.html
たのしいXML:XML/XHTML入門ページです

ちょっと説明がくどい感じがするんですが,XMLやXSLを使ってどうやってホームページを作るかというのがとても丁寧に説明されています.しかも万葉集の勉強までできてしまうというスグレモノです.

といっても,万葉集の興味なんか全然ないので,ここは,わたしのホームページの中にほぼ忘れ去られた感じで放ってある蔵書リスト(ただしイラストレータ名順)をXML化してみることにしました.

タグを決めてXMLファイルを作る

蔵書リストの項目は以下のとおりです・・・

また,

というのも考慮すると,XMLファイルは,book.xmlのようになりました.

XSLを作る

XMLを成形して表示するには,XSLというものが必要になります.XSLファイルは,book1.xslです.

IE5.0以上の人は,book.xmlをクリックすると,すでにbook1.xslを使った表示がされているはずです.

book1.xslは,イラストレーターの昇順に並べ替えた表を作るというものです.

このXSLを変えることで,表示方法を変更することができます.

いままでは,有無を言わさずイラストレーター順に並んでいたわけですが,XSLを切替えるだけで,たとえば著者名順にしたり,一部のデータだけを抽出したりということができるようになります.

book2.xslは,book.xmlのデータのうち著者名・書名・出版・コメントだけを表示するためのXSLです.

book3.xslは,イラストレーター順ですが,ちょっと表記方法を変えてみました.

bookxml.htmlで,三つのボタンを押すとそれぞれ,book1.xsl,book2.xsl,book3.xslが読み込まれるようになっています.

最後のbook3.xslは,

http://www.nurs.or.jp/~h_ozawa/kenheya/xml/intro/index.xml
XML・XSLの遊び部屋

を参考にしたのですが,XSLの中にJavaScriptを書いています.一個前のillustratorの内容を保存しておき,次のillustratorの内容と比較して同じイラストレーターかどうかを調べるというものです.

ほか,

http://www.os.xaxon.ne.jp/~sharland/index.html
Webコンポーネント工房シャーランド

も参考にさせていただきました.

XSLでJavaScript ?

XSLでJavaScriptが使えるんなら,いろんなことができるんじゃないかなあ・・・と思ったのですが,肝心のJavaScriptが今ひとつよくわかりません.なので,JavaScriptに関するページを探してみました.

http://www.hajimeteno.ne.jp/index.html

http://www.shiojiri.ne.jp/~openspc/

http://wakusei.cplaza.ne.jp/twn/www.htm

この辺を適当に見ていろいろためしてみました.わたしのホームページ中でちょこちょこJavaScript使ってるのはほとんどこの中から拝借したものです.

なんか,XSLの中で使えるJavaScriptと,HTMLの中で使うJavaScriptってちょっと違うみたいですね.

JavaScriptのページには,当然XMLでの使い方なんか載ってませんし,XMLのページのJavaScriptも例が少しあるだけだから,よくわかりません.探し方が悪いのかな〜〜〜.

あちこちホームページを訪ね歩いていると,DOMとかSAXとか,わからない言葉ばっかり出てきます.やっぱり入門書でも買って,XMLの体系的な知識をつけるべきなのかもしれません.書籍なら,例題とか付録のCD-ROMとかタグのインデックスくらいついているだろうし・・・

http://www.atmarkit.co.jp/fxml/index.html
XML eXpert eXchange

このページには,XML初心者に薦める6冊の入門書というものが書かれていますので,この薦めに従うことにします.本屋に出向いてみると,XML関係の書籍は5,6冊あり,紹介されているやつももちろんありました.

しかしその中で私が手にとったのは,どこにも紹介されていなかった「ゲーム作りで学ぶXML入門」でした.もちろん,「ゲーム作り」ってところがわたしをひきつけたのです.

しかし,ページを開いたとたん失望しました.

困ったことに,XSLが全く載っていなかったんですね.

書籍の半分がHTMLに関するもので,残りの半分がXMLをHTMLの中のJavaScriptで処理するもの・・・ということは,XSLの中にJavaScriptを書くっていう当初の目的が・・・

XMLをJavaScriptで処理

考えてみたら,どうせIE5じゃXSLTの規格は使えないわけだし,HTMLからJavaScriptを使ってXMLを読んでくるほうがいいのかもしれません.

さて,どういうのを作るかな.データの検索なんか作ってみましょうか.

http://www.math.titech.ac.jp/Users/sasaki/another/index.html
実験室

このホームページにはXMLでリンク集というのがあり,XMLDOMを使ってサーチエンジンを実装する方法なんかが載っています.タグの名前を変えるだけで,そのまま使えそうです.

ですから,使わせていただくことにしました.内容がよくわかりませんので,買ってきた書籍で調べながら・・・

・・・あれ?

おかしい・・・

JavaScriptが,書籍とホームページで,全然違うのです.

まず,根本的なところが違います.ホームページのほうはActiveObject("msxml")でXMLDOMオブジェクトを生成しているのだけれど,書籍のほうはXMLのタグを使ってオブジェクトの定義をしているのです.関数名も全然違うし・・・どーゆーこと?

ともかく,booksearch.htmlbooksearch.jsを作ってみました.

多少不満が残りますが・・・まあ最低限の検索はできるようになったと思います.

じゃあ,公開してみよう・・・というわけで,(当時ホームページスペースを借りていた)ジオシティーズにアップロードします.ところが,何度やっても失敗してしまうのです.

おっかしいな〜〜とヘルプを見てみたら・・・拡張子が.xslや.xmlってやつはアップロードできないんだそーです.く〜〜〜.

しゃーない.ほかのホームページスペースを借りることにします.

もっといろんなことがやりたい!

たとえば,ファイルの入出力とか.これはJavaScriptでは,セキュリティ上できないんですよね・・・.

CGIを使うべきだととか.

http://www.atmarkit.co.jp/fxml/index.html
XML eXpert eXchange

にはいろんな特集があります.

TO HOME