2009年1月28日水曜日

XMLを扱う (その8) [Atom]

実際のAtom feedをみてみる。

$ curl http://aka-cs-blog.blogspot.com/feeds/posts/default > aka-feed.atom

中をみてみると。

  • 改行が無い。(そりゃそうだ。帯域大事)
  • ファイル容量がけっこう多い。(下の例ではエントリを一つだけにした。他は削除)
  • なんと、勝手拡張?なのか、OpenSearchと混ぜている。
  • さて、なんでfeedの中にOpenSearchがあるのかしら、と考えてみる。きっとこのfeedを作るのに検索を実施していることの副作用として入っているのだろう。
  • しかしこういう風に混ぜちゃうと妥当性検証もへったくれもないな、、、



<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'>
<id>tag:blogger.com,1999:blog-5289049604340113831</id>
<updated>2009-01-28T11:10:24.516+09:00</updated>
<title type='text'>計算機とその周辺</title>
<subtitle type='html'></subtitle>
<link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aka-cs-blog.blogspot.com/feeds/posts/defau\
lt'/>
<link rel='self' type='application/atom+xml' href='http://aka-cs-blog.blogspot.com/feeds/posts/default'/>
<link rel='alternate' type='text/html' href='http://aka-cs-blog.blogspot.com/'/>
<link rel='next' type='application/atom+xml' href='http://aka-cs-blog.blogspot.com/feeds/posts/default?start-index=26&max-results\
=25'/>
<author><name>aka</name><uri>http://www.blogger.com/profile/02301993913128404609</uri><email>noreply@blogger.com</e\
mail></author>
<generator version='7.00' uri='http://www.blogger.com'>Blogger</generator>
<openSearch:totalResults>450</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>25</openSearch:itemsPerPage>
<entry>
<id>tag:blogger.com,1999:blog-5289049604340113831.post-2409689848169847100</id>
<published>2009-01-28T11:06:00.002+09:00</published>
<updated>2009-01-28T11:10:24.533+09:00</updated>
<app:edited xmlns:app='http://purl.org/atom/app#'>2009-01-28T11:10:24.533+09:00</app:edited>
<category scheme='http://www.blogger.com/atom/ns#' term='atom'/>
<category scheme='http://www.blogger.com/atom/ns#' term='xml'/>
<category scheme='http://www.blogger.com/atom/ns#' term='emacs'/>
<title type='text'>XMLを扱う (その7) [Atom]</title>
<content type='html'>Atomを例に名前空間の理解の確認を。<br /><pre><br /> Atomでは、xhtmlの要素も使える。&l\
t;br /><br /> それにはまずxhtmlの語彙を指定する。<br /><br /> ---<br /> namespace xhtml = \
"http://www.w3.org/1999/xhtml"<br /> ---<br /><br /> これで語彙は使えるようになるが、その語彙が母体たるAto\
mの中でどのよ<br /> うな構造の一部となるかは、AtomのSchemaの中で指定しなければならない。<br /><br /> それ\\
にはまず、xhtml:*の形の要素の定義が必要。<br /><br /> ---<br /> # XHTML<br /><br /> any\
XHTML = element xhtml:* {<br /> (attribute * { text }<br /> | text<br /> | anyXHTML)*<br /\
> }<br /><br /> xhtmlDiv = element xhtml:div {<br /> (attribute * { text }<br /> \
| text<br /> | anyXHTML)*<br /> }<br /> ---<br /><br /> それを母体の要素でど\
のように使えるかは次のように定義。<br /><br /> ---<br /> atomXHTMLTextConstruct =<br /> ato\
mCommonAttributes,<br /> attribute type { "xhtml" },<br /> xhtmlDiv<br /><br /> atomTextC\
onstruct = atomPlainTextConstruct | atomXHTMLTextConstruct<br /><br /> atomTitle = element atom:title { atomTextConstru\
ct }<br /> ---<br /><br /> これをatom上で利用するには次のよう。<br /><br /> ---<br /\
> ...<br /> &lt;title type="xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"><br /> &lt;\
xhtml:div><br /> Less: &lt;xhtml:em> &lt; &lt;/xhtml:em><br /> &lt;/xhtml:div>\
<br /> &lt;/title><br /> ...<br /> &lt;summary type="xhtml"><br /> &am\
p;lt;div xmlns="http://www.w3.org/1999/xhtml"><br /> This is &lt;b>XHTML&lt;/b> content.<br /> \
&lt;/div><br /> &lt;/summary><br /> ...<br /> &lt;summary type="xhtml">&\
lt;br /> &lt;xh:div xmlns:xh="http://www.w3.org/1999/xhtml"><br /> This is &lt;xh:b>XHTML&l\
t;/xh:b> content.<br /> &lt;/xh:div><br /> &lt;/summary><br /> ...<br /> \
---<br /><br /> ふむ。理解に間違いはなさそうだ。<br /> それにしても、<br /><br /> \
anyXHTML = element xhtml:* ...<br /><br /> と書けるRelax NGって便利だなぁ。<br /></pre><br /><br \
/>なかなかCLに辿りつけないが、こつこつ。</content>
<link rel='replies' type='application/atom+xml' href='http://aka-cs-blog.blogspot.com/feeds/2409689848169847100/comments/default' t\
itle='コメントの投稿'/>
<link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5289049604340113831&postID=2409689848169847\
100' title='0 件のコメント'/>
<link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5289049604340113831/posts/default/24096898481698471\
00?v=2'/>
<link rel='self' type='application/atom+xml' href='http://aka-cs-blog.blogspot.com/feeds/posts/default/2409689848169847100'/>
<link rel='alternate' type='text/html' href='http://aka-cs-blog.blogspot.com/2009/01/xml-7-atom.html' title='XMLを扱う (その7) [Ato\
m]'/>
<author>
<name>aka</name>
<uri>http://www.blogger.com/profile/02301993913128404609</uri>
<email>noreply@blogger.com</email>
</author>
<thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total>
</entry>
</feed>


こつこつ。

0 件のコメント: