ハマった。
LINQ to XMLのサンプルコードとしてRSSフィードリーダが作られていたので、ではそのコードでATOMフィードを読んでみようとしてみると、フィードの内容が一切取り出せない。
おかしいなぁ、と2日間情報を探し回ったあげく、ようやっと「MSの想定する処理方法」のひとつが見つかった。
RSSのコードのまま取り出せなかった理由は、ATOMフィードがデフォルトネームスペースを設定しているためだった。LINQはXPathを理解するのだが、XPathの仕様としてXML要素を取り出す際には、デフォルトネームスペース内の要素でさえ、いちいちネームスペースを指定せねばならない様子。
結果、LINQ to XMLでは次のようなコードになる。
もしくは、
要素指定部分で毎度ネームスペースを指定するのは手間がかかるので別解が欲しいところだが、今のところは見つからない。