June 27, 2004

Livedoor のAtom APIのXML名前空間

Livedoor のAtom APIを試しています。

エントリーを新規にPostすると、投稿されたエントリーがAtom形式のXMLで返って来ます。その名前空間に問題があります。 どこに言えばいいのか分からないのでココで書いて、TrackBackして見ます。以下。

<entry xmlns="http://purl.org/atom/ns#">
と名前空間が宣言されていますが、XML中に以下の、宣言されていない名前空間"dc"で定義された要素が出現します。
<dc:subject></dc:subject>
これは、ValidのXMLではありません。 よって、このXMLをXMLパーサー(もしくはXMLエディタなど)で読み込もうとすると、XMLパーサーエラーが起きます。
XMLパーサーエラー:未宣言の名前空間の接頭語を参照します: 'dc'

ソフトウェアがXMLを処理するにはほとんどのケースで、パーサーを使いますし、ほとんどのパーサー(Perlの標準のパーサーは除く)はValidかどうか チェックし、ValidでないXML(つまりなんだかわからない形式)は拒否します。よってソフトウェアからこのXML(もどき) を扱うことができないという事になります。

これを回避し、ValidなXMLにするには以下のように名前空間の宣言を追加する必要があります。

<entry xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" >

ちなみに、AtomAPI経由でLivedoorBlogに投稿問題なく出来てます。しかし、編集が上記の問題のため出来ません。(EditURIが取れない)

Posted by HepCat at June 27, 2004 01:48 PM | TrackBack
Comments

ご指摘ありがとうございます。修正しましたので明日にはblog.livedoor.com サーバに反映されます(現在メンテナンス中ですので、明けて確認できると思います)。

Posted by: miyagawa at June 28, 2004 12:19 AM

早速の対応ありがとうございます。

がしかし、また問題です。
Responseで返るEditURIのBlog_IDが空です。
編集しようとしたら、400BadRquestが返ります。初めにもっとちゃんと見ておけばよかったです、たびたびすみません。

(念のため、Blogger.comで試すとBlogWriteから問題なく書き込み、編集できているのでBlogWriteの問題はとりあえずない、と思います)

Posted by: HepCat担当 at June 29, 2004 04:32 AM

link rel="service.edit" で BlogID がからになっている件は確認しました。お手数ですが TypePad あるいは Movable Type 3.0 Developer Edition でもテストしていただくことは可能ですか? (TypePad/MT3.0のレスポンスには link タグが入っていないようにみえます)

Posted by: miyagawa at June 29, 2004 05:44 AM

テストしたいのは山々なのですが、TypePad(ココログ、ブログ人)いずれもアカウント取得していないので、残念ながらテストできません。

また、MT3.0は別サーバー(レンタル)にインストールしましたが、利用しているレンタルサーバーにDigest::SHA1.pmが入ってなくて
AtomAPIのテストが出来ません。(レンタルサーバー会社に問い合わせたら、「前向きに...MT3.0正式版が出る頃までにお答えを...」)と言われてしまい...今だテスト環境を構築できずにいます。

が、ハイ、自家Linuxサーバーでやります、ハイ。

出来るだけ早く、AtomAPIを実装したBlogWriteを公開します。そしたら皆さんの環境でテストしていただけるかも知れませんから(え?人柱?;-)。

Posted by: HepCat担当 at June 29, 2004 07:44 AM

とりあえず、
http://witha.jp/BlogWrite/files/BlogWriteBeta093.exe

Blogger.comのAtom APIで試して、投稿、編集、削除が出来ています。

ただ、TrackBackやらコメントのオプションの設定画面等が変更可能な状態のままですが、AtomAPI利用時にはそれらの設定は無視されます。また投稿記事のローカル保存機能はまだ動きません。

以上のような段階ですが、デバグ用にでも宜しければお試しください。

Posted by: HepCat担当 at June 29, 2004 08:58 AM

あと、記事削除すると、正常に削除されますが、
以下のエラーメッセージが返ります。
Died at /Perlへ/のPath/perlのVersion/lib/site_perl/ヴァージョン/XML/Atom/Server.pm line 63.

Posted by: HepCat担当 at June 29, 2004 01:22 PM

ベータ版つかってためしてみますね。

Posted by: miyagawa at June 29, 2004 02:36 PM

なんか投稿しようとしたらモジュールのアクセス違反で落ちました>BlogWrite

DELETEエラーの件、原因がわかりました。XML::Atom::Server のバグです(すでに作者報告、パッチ送付ずみ)。0.07でパッチ送ったのに最新に反映されてなかった。。

Posted by: miyagawa at June 29, 2004 02:49 PM

落ちましたか...?
ホヤホヤすぎました、すみません。

BlogWrite0.9.4
で直したはずですが...。
http://witha.jp/BlogWrite/files/BlogWriteBeta094.exe

Posted by: HepCat担当 at June 29, 2004 03:05 PM
Post a comment









Remember personal info?