Out of Memory

本ブログは更新を停止しました。Aerieをよろしくお願いいたします。

目次

Blog 利用状況

ニュース

2009年3月31日
更新を停止しました。引き続きAerieを御愛顧くださいませ。
2009年2月3日
原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。
詳細は2月3日のエントリをご覧ください。
2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

αετο? / aetos / あえとす

シャノン? 誰それ。

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

書庫

日記カテゴリ

Microsoftの謎のフィードジェネレータ

MSDNのトップページを見ると、いくつかのRSSフィードがあります。
そのうち、

のURLが、よく似たものになっています。
どうも、http://www.microsoft.com/communities/rss.aspx という共通のフィードジェネレータに何らかのパラメータを与えると、フィードを返してくれるようです。

では、どんなパラメータを与えているのか、ちょっと見てみましょう。
「ダウンロード情報」を例に取ります。
URL はこれ(長いですね)。
http://www.microsoft.com/communities/rss.aspx?&Title=%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e6%83%85%e5%a0%b1&RssTitle=%e6%9c%80%e6%96%b0%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e6%83%85%e5%a0%b1&CMTYSvcSource=MSCOMDownloads&CMTYRawShape=list&Params=%7eCMTYDataSvcParams%5e%0d%0a%7earg+Name%3d'languageID'+Value%3d'45E0D2C5-FA32-43F7-BFF2-EDA0126931B6'%2f%5e%0d%0a%7earg+Name%3d'newerThan'+Value%3d'03%2f01%2f2006'%2f%5e%0d%0a%7earg+Name%3d'dcCategoryID'+Value%3d'10'%2f%5e%0d%0a%7earg+Name%3d'sortCriteria'+Value%3d'date'%2f%5e%0d%0a%7earg+Name%3d'sortOrder'+Value%3d'descending'%2f%5e%0d%0a%7earg+Name%3d'freeText'+Value%3d''%2f%5e%0d%0a%7esParams%5e%7eparams%5e%7eitem+name%3d'Consumer'+value%3d'scdataconsumer'%2f%5e%7e%2fparams%5e%0d%0a%7e%2fsParams%5e%0d%0a%7e%2fCMTYDataSvcParams%5e&NumberOfItems=20

まず、& で分解してパラメータを分けます。

http://www.microsoft.com/communities/rss.aspx?
&Title=%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e6%83%85%e5%a0%b1
&RssTitle=%e6%9c%80%e6%96%b0%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e6%83%85%e5%a0%b1
&CMTYSvcSource=MSCOMDownloads
&CMTYRawShape=list
&Params=%7eCMTYDataSvcParams%5e%0d%0a%7earg+Name%3d'languageID'+Value%3d'45E0D2C5-FA32-43F7-BFF2-EDA0126931B6'%2f%5e%0d%0a%7earg+Name%3d'newerThan'+Value%3d'03%2f01%2f2006'%2f%5e%0d%0a%7earg+Name%3d'dcCategoryID'+Value%3d'10'%2f%5e%0d%0a%7earg+Name%3d'sortCriteria'+Value%3d'date'%2f%5e%0d%0a%7earg+Name%3d'sortOrder'+Value%3d'descending'%2f%5e%0d%0a%7earg+Name%3d'freeText'+Value%3d''%2f%5e%0d%0a%7esParams%5e%7eparams%5e%7eitem+name%3d'Consumer'+value%3d'scdataconsumer'%2f%5e%7e%2fparams%5e%0d%0a%7e%2fsParams%5e%0d%0a%7e%2fCMTYDataSvcParams%5e
&NumberOfItems=20

次に、URL をデコードしましょう。
%xx は UTF-8 の文字コードとして文字に変換、+ はスペースに置換します。
すると、こう。

&Title=ダウンロード情報
&RssTitle=最新ダウンロード情報
&CMTYSvcSource=MSCOMDownloads
&CMTYRawShape=list
&Params=~CMTYDataSvcParams^
~arg Name='languageID' Value='45E0D2C5-FA32-43F7-BFF2-EDA0126931B6'/^
~arg Name='newerThan' Value='03/01/2006'/^
~arg Name='dcCategoryID' Value='10'/^
~arg Name='sortCriteria' Value='date'/^
~arg Name='sortOrder' Value='descending'/^
~arg Name='freeText' Value=''/^
~sParams^~params^~item name='Consumer' value='scdataconsumer'/^~/params^
~/sParams^
~/CMTYDataSvcParams^
&NumberOfItems=20


さらに、Params の謎の文字について、~ を < に、^ を > に置き換えると、こうなります(整形しています)。

&Title=ダウンロード情報
&RssTitle=最新ダウンロード情報
&CMTYSvcSource=MSCOMDownloads
&CMTYRawShape=list
&Params=
<CMTYDataSvcParams>
 <arg Name='languageID' Value='45E0D2C5-FA32-43F7-BFF2-EDA0126931B6'/>
 <arg Name='newerThan' Value='03/01/2006'/>
 <arg Name='dcCategoryID' Value='10'/>
 <arg Name='sortCriteria' Value='date'/>
 <arg Name='sortOrder' Value='descending'/>
 <arg Name='freeText' Value=''/>
 <sParams>
  <params><item name='Consumer' value='scdataconsumer'/></params>
 </sParams>
</CMTYDataSvcParams>
&NumberOfItems=20

XML が出てきましたね。

では、各パラメータについて調べてみましょう。
まず、Title ですが、これは RSS に影響しないようです。
RssTitle は、rss の <title> 要素の文字列になりますね。
NumberOfItems は読んで字のごとくですね。返される RSS の件数になります。
RSS=20はよくわかりません。RSSのバージョンかと思いましたが、RSS=10に書き換えてみても、RSS 1.0が返されることはありませんでした。
CMTYSvcSourceは、パラメータ名から推測するに、RSS の生成元になるデータソースの名前でしょう。
ブログの場合は MSCOMBlogPosts、ダウンロード情報は MSCOMDownloads、サポート技術情報は PSSKBSearch となります。
他に、MSCOMMedia、CMTYTopics、MVP というのも確認されています。
CMTYRawShapeも謎です。list以外の値を取り得るのでしょうか?
そして、最大の謎(謎ばっかりです)が、Params です。
CMTYDataSvcParams 要素の中に、いくつかのパラメータが収まっています。
これは、データのフィルタリングや並び替えの条件ですね。
ただ、どんなパラメータがあるのかは、データソースによって異なるようです。
他にも、MatchPattern とか WebNewsURL というようなパラメータを持つものもありました。

こういうのの情報は公開してくれないんでしょうかね?

ちなみに、MSDN トップページにはもうひとつ、
http://msevents.microsoft.com/CUI/rssfdr.ashx
で生成されているフィードもありますね。
これもパラメータの作り方は秘密のようです。

投稿日時 : 2008年7月16日 10:33

Feedback

# re: Microsoftの謎のフィードジェネレータ 2008/07/16 11:04 シャノン

ちなみに、こんなページもあります
http://www.microsoft.com/japan/rss/
全然更新されてませんが。

# マイクロソフト サポート情報の RSS フィード 2008/07/17 22:09 何となく Blog by Jitta

マイクロソフト サポート情報の RSS フィード

タイトル  
名前  
Url
コメント