ブログ出版局 XML形式データ仕様

この文書について

この文書はブログ出版局により本にすることができるXML形式データの仕様です。 XML形式データはJUGEM(R)の出力するXMLデータと互換性がありますが、 この文書はJUGEM XML形式の正式な仕様書ではありません。 また、ブログ出版局はこの文書の正確性を保障しませんし、 この文書を利用したことによる損害等に対して一切責任を負いません。

ブログ出版局はJUGEMの運営会社であるpaperboy&co.とは無関係です。 この文書に関するコメントはdev [AT] cssj.jpまでメールしてください。

XML文書について

XML形式データはW3CのXML1.0をベースにしています。 各タグは必ず閉じる、コントロール文字は含まないなど、XMLの形式に従ってください。 タグ以外のテキストは(PHPのhtmlspecialchars関数などで)必ずエスケープするようにしてください。

キャラクタ・エンコーディングと改行コード

XML形式データのキャラクタ・エンコーディングはUTF-8を用いてください。 データのいちばん先頭は<xml version="1.0" encoding="UTF-8">という行(XML宣言)で始めてください。 encoding="〜"の部分の〜(大文字小文字を区別しません)を変えることで他のエンコーディングを用いることも出来ますが、推奨しません。

PHPで内部エンコーディングとしてEUC-JPを用いている場合、直接UTF-8に変換すると機種依存文字が化けます これを回避するためには、一旦データをSJIS-winへ変換し、さらにUTF-8へ変換してください。

改行コードはCR,LF,CRLFのいずれでも構いませんが、LFを推奨します。

データ形式の詳細

トップレベル

XML形式データのトップレベルの要素はblogです。 以下にXML形式とトップレベル要素の概略を示します。

<?xml version="1.0" encoding="UTF-8"?>
<blog>
  <name>ブログの名前</name>
  <description>ブログの説明</description>
  <users>
    ....
  </users>
  <entries>
    ....
  </entries>
</blog>

name,description,usersはブログ出版局では無視されます。 users要素に1つ以上のuser要素が含まれ、user要素はname,full_name,description要素を含みますが、ブログ出版局では無意味ですので説明は省略します。

ブログ出版局ではentriesの中身が書籍に反映されます。 従って、name,description,usersを省略した以下のようなデータでも書籍化には十分です。

<?xml version="1.0" encoding="UTF-8"?>
<blog>
  <entries>
    ....
  </entries>
</blog>

記事

entries要素の中には、1つ以上のentry要素が含まれます。

<?xml version="1.0" encoding="UTF-8"?>
...
  <entries>
    <entry>
      ...
    </entry>
    <entry>
      ...
    </entry>
    <entry>
      ...
    </entry>
    ...
  </entries>
...

各entry要素はブログの各記事に対応します。 ブログ出版局は内部処理でentryを整列するので、 entryは記事の日付の新しい順に並べられている必要はありません。

entry要素にはtitle(タイトル),author(作者),category(カテゴリ),date(日付),description(本文), dequel(追記),comments(コメント),trackbacks(トラックバック)が含まれます。 これらの要素の順番は任意で構いません。

<?xml version="1.0" encoding="UTF-8"?>
...
    <entry>
      <title>タイトル</title>
      <author>作者</author>
      <category>カテゴリー1</category>
      <category>カテゴリー2</category>
      ...
      <date>2005/12/13 22:45:46</date>
      <description>本文</description>
      <sequel>追記</sequel>
      <comments>
        ...
      </comments>
      <trackbacks>
        ...
      </trackbacks>
    </entry>
...

dateの内容は'年/月/日 時:分:秒'という形式になります。 date以外の要素は省略可能です。省略した場合、空の要素があるのと同じことになります。 categoryは複数可能です。 description,sequelの中身はHTMLですが、タグは以下のようにエスケープしてください。

<description>
  文字を&lt;B&gt;太字&lt;/B&gt;にしたり&lt;I&gt;斜体&lt;/I&gt;にする。
</description>
<sequel>
  なお、改行文字は改行にならないので、BRタグを入れなければいけません。&lt;BR&gt;
  ここからが新しい行になります。
</sequel>
...

コメント

comments要素の中には、記事に対するコメントに対応する複数のcomment要素が入ります。 コメントがない場合はcomments要素は空か、comments要素自体存在しなくても構いません。

<?xml version="1.0" encoding="UTF-8"?>
...
      <comments>
        <comment>
          ...
        </comment>
        <comment>
          ...
        </comment>
        <comment>
          ...
        </comment>
        ...
      </comments>
...

comment要素の中にはtitle(タイトル),description(本文),name(投稿者名), email(Eメールアドレス),url(リンク先URL),date(日付)が含まれます。 これらの要素の順番は任意で構いません。 date以外の要素は省略可能です。省略した場合、空の要素があるのと同じことになります。

<?xml version="1.0" encoding="UTF-8"?>
...
        <comment>
        <title>タイトル</title>
        <name>投稿者名</name>
        <date>2005/12/13 22:45:46</date>
        <description>本文</description>
        <email>メールアドレス</email>
        <url>リンク先URL</url>
        </comment>
...

date,descriptionの中身の形式はentry要素の場合と同じです。

トラックバック

trackbacks要素の中には、記事に対するトラックバックに対応する複数のtrackback要素が入ります。 トラックバックがない場合はtrackbacks要素は空か、trackbacks要素自体存在しなくても構いません。

<?xml version="1.0" encoding="UTF-8"?>
...
      <trackbacks>
        <trackback>
          ...
        </trackback>
        <trackback>
          ...
        </trackback>
        <trackback>
          ...
        </trackback>
        ...
      </trackbacks>
...

trackback要素の中にはtitle(タイトル),excerpt(説明),blog_name(トラックバック元ブログ名), url(トラックバック元ブログURL),date(日付)が含まれます。 これらの要素の順番は任意で構いません。 date以外の要素は省略可能です。省略した場合、空の要素があるのと同じことになります。

<?xml version="1.0" encoding="UTF-8"?>
...
        <comment>
        <title>タイトル</title>
        <blog_name>トラックバック元ブログ名</blog_name>
        <date>2005/12/13 22:45:46</date>
        <excerpt>説明</excerpt>
        <url>トラックバック元ブログURL</url>
        </comment>
...

dateの中身の形式はentry要素の場合と同じです。 excerptの中身の形式はentry要素のdescriptionと同じです。