なんか話を聞く限りでは,とってもいいものみたいに思えます.
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ファイルは,book.xmlのようになりました.
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が使えるんなら,いろんなことができるんじゃないかなあ・・・と思ったのですが,肝心の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を書くっていう当初の目的が・・・
考えてみたら,どうせIE5じゃXSLTの規格は使えないわけだし,HTMLからJavaScriptを使ってXMLを読んでくるほうがいいのかもしれません.
さて,どういうのを作るかな.データの検索なんか作ってみましょうか.
http://www.math.titech.ac.jp/Users/sasaki/another/index.html
実験室
このホームページにはXMLでリンク集というのがあり,XMLDOMを使ってサーチエンジンを実装する方法なんかが載っています.タグの名前を変えるだけで,そのまま使えそうです.
ですから,使わせていただくことにしました.内容がよくわかりませんので,買ってきた書籍で調べながら・・・
・・・あれ?
おかしい・・・
JavaScriptが,書籍とホームページで,全然違うのです.
まず,根本的なところが違います.ホームページのほうはActiveObject("msxml")でXMLDOMオブジェクトを生成しているのだけれど,書籍のほうはXMLのタグを使ってオブジェクトの定義をしているのです.関数名も全然違うし・・・どーゆーこと?
ともかく,booksearch.htmlとbooksearch.jsを作ってみました.
多少不満が残りますが・・・まあ最低限の検索はできるようになったと思います.
じゃあ,公開してみよう・・・というわけで,(当時ホームページスペースを借りていた)ジオシティーズにアップロードします.ところが,何度やっても失敗してしまうのです.
おっかしいな〜〜とヘルプを見てみたら・・・拡張子が.xslや.xmlってやつはアップロードできないんだそーです.く〜〜〜.
しゃーない.ほかのホームページスペースを借りることにします.
たとえば,ファイルの入出力とか.これはJavaScriptでは,セキュリティ上できないんですよね・・・.
CGIを使うべきだととか.
http://www.atmarkit.co.jp/fxml/index.html
XML eXpert eXchange
にはいろんな特集があります.