前回ので、SafariのようなWebブラウザは、送られてきたRSSデータの内容をそのまま表示してるわけじゃないってのはハッキリしたわけっす。
同じRSSデータでもWindowsのIE 8(左)とMacのSafari(右)では、こんな感じで表示が変わる。
![$テン・シー・シー-1](https://stat.ameba.jp/user_images/20090915/14/xcc/8c/4d/j/o0500031310254018780.jpg?caw=800)
ちなみにIEは合成じゃなく、Mac上でVMWare Fusionのユニティモードを使って動かしてるザ~マス
Safariなんて、横のスライダ動かすとタイトルだけの一覧にもできちゃう。
![$テン・シー・シー-6](https://stat.ameba.jp/user_images/20090915/23/xcc/8a/0d/j/o0500037510254351255.jpg?caw=800)
ということは、日付、タイトル部、内容部などのパーツがちゃんと判別できてるってわけでして...
なぜに判別できるかというとRSSデータが、きちんと決められた形式に従ってるからなんですな。
前回のコンソール出力を、じっくり眺めると
とか
というように、<なになに>~</なになに>という形で構成されてるのがわかるはず。こいつが、決められた形式
というやつなわけです。詳しく知りたい人は以下を読みましょう。私のはかなり適当入ってます。
Wiki:XML
最短のXML入門とメタ言語
たのしいXML: XML/XHTML入門ページです
最初の行に
といった、XML宣言がいるとか、いくつかの決まりがあって、この形式に従っていればXMLなんだなとみなされるようですな。
<なになに>~</なになに>のなになに(XMLタグといいます。洋服のタグやタグボートのタグと同じ意味ですな)は自由に定義でき、
というように、入れ子状態で定義できるようになっている。
このタグ定義セットが、RSSとかOffice Open XML(マイクロソフトが提案しているオフィススイートのためのファイルフォーマット)とか命名されて公開されとるみたいです。
そういうわけで、このXMLっていう形式は、実はあっちこっちで利用されてるわけでして...
例えば、今回のXcodeプロジェクトのrss-info.plistもXMLなわけです。
![$テン・シー・シー-2](https://stat.ameba.jp/user_images/20090915/14/xcc/11/41/j/o0500040710254027470.jpg?caw=800)
って、どこが!って思った人は、下のようにrss-info.plistを右クリックで形式を指定して開く>標準テキストファイルメニューを選んでみましょう。
![$テン・シー・シー-3](https://stat.ameba.jp/user_images/20090915/14/xcc/cd/df/j/o0500024510254029367.jpg?caw=800)
下のようにXML形式で表示されます。
![$テン・シー・シー-4](https://stat.ameba.jp/user_images/20090915/14/xcc/ab/b0/j/o0500040910254030116.jpg?caw=800)
XcodeがXML形式で書かれたプロパティリストであるrss-info.plistを、編集しやすい形で表示してたわけですな。
ていうか昔から読んでる人は「iPhoneアプリ開発、その(45)」のRoot.plistファイルもそうなのでは?と思ったと思いますが、そうです。そのとおり。
で、なんで、みんなこのXMLを使いたがるかというと、繰り返しになるけど形式が公開され規格化されてるからなわけです。
なので、送り出す方(アメブロサーバー)も、XML:RSS形式で記述してるから、あとはそっちで対応してって丸投げできるし、受けた方(Safari、IE)もXML:RSS形式ね、それじゃこうやって表示しましょうって話ができるわけです。
RSS 2.0タグセットかRSS 1.0タグセットかってのは
でみわけられるし、タグセットがRSSとわかれば利用できるタグもわかる。
で、ここから
てのが現れるまでが、このRSSの情報となるわけです。
さっきのrss-info.plistに戻れば
から
の間がプロパティリストの情報となります。
こうやって、もらったデータがRSSだってことがわかれば、まずはタイトルだけのリストを表示ってこともできるし、iPhoneのSafariみたいにタイトルと内容のさわり部分だけという表示の仕方もできるってことになるんですな。
![$テン・シー・シー-5](https://stat.ameba.jp/user_images/20090915/15/xcc/10/b8/j/o0320041910254052807.jpg?caw=800)
ただ...
見てのとおりXML形式のテキストを解析するのは、ややこしそうなんですわ。だいたい形式が公開されてるなら、読み書き機能も提供してくれませんか、自分、作るのおっくうなんで、ギ、技術力が足りないわけじゃないんだからねっ!みたいな。
そこで登場するのが「マイコミ:実践! iPhoneアプリ開発(7)RSSリーダの作り方 (3) - XMLをパースする」で紹介されてるiPhoneのXMLライブラリなわけです。
次回、XMLライブラリ!
とはいかずに、もうちょっとWebブラウザとWebサーバーの話し続けます。
いったい、WebブラウザとWebサーバーの間ではどーいったデータがやり取りされているのか、そこんとこをもうちょっと。
明日の花データベースのために、その1、ちゅーところですな。
同じRSSデータでもWindowsのIE 8(左)とMacのSafari(右)では、こんな感じで表示が変わる。
![$テン・シー・シー-1](https://stat.ameba.jp/user_images/20090915/14/xcc/8c/4d/j/o0500031310254018780.jpg?caw=800)
ちなみにIEは合成じゃなく、Mac上でVMWare Fusionのユニティモードを使って動かしてるザ~マス
Safariなんて、横のスライダ動かすとタイトルだけの一覧にもできちゃう。
![$テン・シー・シー-6](https://stat.ameba.jp/user_images/20090915/23/xcc/8a/0d/j/o0500037510254351255.jpg?caw=800)
ということは、日付、タイトル部、内容部などのパーツがちゃんと判別できてるってわけでして...
なぜに判別できるかというとRSSデータが、きちんと決められた形式に従ってるからなんですな。
前回のコンソール出力を、じっくり眺めると
<title>作品として自立してこそのパロディ</title>
とか
<link>http://ameblo.jp/xcc/entry-10340876714.html</link>
<pubDate>Sat, 12 Sep 2009 11:20:50 +0900</pubDate>
というように、<なになに>~</なになに>という形で構成されてるのがわかるはず。こいつが、決められた形式
XML eXtensible Markup Language
というやつなわけです。詳しく知りたい人は以下を読みましょう。私のはかなり適当入ってます。
Wiki:XML
最短のXML入門とメタ言語
たのしいXML: XML/XHTML入門ページです
最初の行に
<?xml version="1.0" encoding="UTF-8"?>
注)encodingはUTF-8以外にもISO-2022-JPとかいろいろある。
といった、XML宣言がいるとか、いくつかの決まりがあって、この形式に従っていればXMLなんだなとみなされるようですな。
<なになに>~</なになに>のなになに(XMLタグといいます。洋服のタグやタグボートのタグと同じ意味ですな)は自由に定義でき、
<なになに>
<あれあれ>
<これこれ>
</これこれ>
</あれあれ>
</なになに>
というように、入れ子状態で定義できるようになっている。
このタグ定義セットが、RSSとかOffice Open XML(マイクロソフトが提案しているオフィススイートのためのファイルフォーマット)とか命名されて公開されとるみたいです。
そういうわけで、このXMLっていう形式は、実はあっちこっちで利用されてるわけでして...
例えば、今回のXcodeプロジェクトのrss-info.plistもXMLなわけです。
![$テン・シー・シー-2](https://stat.ameba.jp/user_images/20090915/14/xcc/11/41/j/o0500040710254027470.jpg?caw=800)
って、どこが!って思った人は、下のようにrss-info.plistを右クリックで形式を指定して開く>標準テキストファイルメニューを選んでみましょう。
![$テン・シー・シー-3](https://stat.ameba.jp/user_images/20090915/14/xcc/cd/df/j/o0500024510254029367.jpg?caw=800)
下のようにXML形式で表示されます。
![$テン・シー・シー-4](https://stat.ameba.jp/user_images/20090915/14/xcc/ab/b0/j/o0500040910254030116.jpg?caw=800)
XcodeがXML形式で書かれたプロパティリストであるrss-info.plistを、編集しやすい形で表示してたわけですな。
ていうか昔から読んでる人は「iPhoneアプリ開発、その(45)」のRoot.plistファイルもそうなのでは?と思ったと思いますが、そうです。そのとおり。
で、なんで、みんなこのXMLを使いたがるかというと、繰り返しになるけど形式が公開され規格化されてるからなわけです。
なので、送り出す方(アメブロサーバー)も、XML:RSS形式で記述してるから、あとはそっちで対応してって丸投げできるし、受けた方(Safari、IE)もXML:RSS形式ね、それじゃこうやって表示しましょうって話ができるわけです。
RSS 2.0タグセットかRSS 1.0タグセットかってのは
<rss version="2.0">
version="2.0"という部分はタグの属性部分で、この場合rssのバージョンを意味してます。
rssタグだけど、その中のバージョン2.0という感じか?
でみわけられるし、タグセットがRSSとわかれば利用できるタグもわかる。
で、ここから
</rss>
てのが現れるまでが、このRSSの情報となるわけです。
さっきのrss-info.plistに戻れば
<plist version="1.0">
から
</plist>
の間がプロパティリストの情報となります。
こうやって、もらったデータがRSSだってことがわかれば、まずはタイトルだけのリストを表示ってこともできるし、iPhoneのSafariみたいにタイトルと内容のさわり部分だけという表示の仕方もできるってことになるんですな。
![$テン・シー・シー-5](https://stat.ameba.jp/user_images/20090915/15/xcc/10/b8/j/o0320041910254052807.jpg?caw=800)
ただ...
見てのとおりXML形式のテキストを解析するのは、ややこしそうなんですわ。だいたい形式が公開されてるなら、読み書き機能も提供してくれませんか、自分、作るのおっくうなんで、ギ、技術力が足りないわけじゃないんだからねっ!みたいな。
そこで登場するのが「マイコミ:実践! iPhoneアプリ開発(7)RSSリーダの作り方 (3) - XMLをパースする」で紹介されてるiPhoneのXMLライブラリなわけです。
次回、XMLライブラリ!
とはいかずに、もうちょっとWebブラウザとWebサーバーの話し続けます。
いったい、WebブラウザとWebサーバーの間ではどーいったデータがやり取りされているのか、そこんとこをもうちょっと。
明日の花データベースのために、その1、ちゅーところですな。