Simple Document Framework(SDF)

ページ情報
制作日
2004-07-08
最終更新日
2004-12-13
参照用URI
http://www.arielworks.net/works/codeyard/sdf

Simple Document Framework(SDF)とは

XHTMLの文章構造を補完する目的で作られたシンプルな語彙集です。

まずは「SDL: The Simple Document Language』をご覧ください。若干名前などが変わっていますが大まかな設計と動機が書かれています。

SDFは文章構造が完全に入れ子になっているためセクションごとに分割して小さな1つの文章にしたり、逆に複数の文章を結合して大きな1つの文章にすることが簡単にできます。

たとえばblogのデータファイルに使う場合、1つのファイルに1ヶ月分の記事を纏めておいてリクエストに応じて1日分の記事を取り出したり、最新の記事のみを表示すると言ったことができます。この際、各セクションにメタデータを持たせておくことが出来るので情報の欠落が有りません。

Wikiやblogなど文章が基本のデータをSDFで記述することによりツール間の互換性を実現することを目標としています。

XSL変換

SDFで書かれた文章はXSLTにより簡単に他のXML文章へ変換することが出来ます。

Arielworksでは使用頻度が高いと思われるXHTMLへの変換を行うXSL文章を公開しています。また、サーバサイドでの変換を可能にするPHPによるクラスライブラリHIMMELも公開しています。

仕様

名前空間

SDFが使用する名前空間URIは「http://www.arielworks.net/works/codeyard/sdf」とする。

この仕様書内で使用する接頭辞sdfは上記の名前空間にバインドされているものとする。実際の使用に当たっては任意の接頭辞を使用することが出来る。

表記規則

SDFの要素、属性などの名前は全て小文字とする。

独自拡張

要素や属性など、この仕様書以外に書かれていない部分を新たに拡張する場合は別の名前空間で定義すること。SDFの名前空間を拡張することは出来ない。

名前空間が別であれば新たに要素や属性が追加できる。SDFは特にXHTMLとの連携を想定して作られている。

sdf:document

<sdf:document
    version = number>
    <!-- Content: (sdf:meta, sdf:body) -->
</sdf:document>

SDFのルート要素はsdf:documentである。

内容はsdf:metasdf:bodyのみであり、メタ情報および本文はそれぞれの要素内に記述する。

version属性は必須。この仕様書が定義するバージョンは0.3である。

sdf:section

<sdf:section>
    version = number>
    <!-- Content: (sdf:meta, sdf:body) -->
</sdf:section>

セクションの分割を明示する為の要素がsdf:sectionである。

ルートノードではないという点およびversion属性が必須ではないという点を除き、全ての点でsdf:document要素と等しい。

version属性が省略された場合、は最も近い先祖の値がバージョンとして使われる。

sdf:meta

<sdf:meta>
    <!-- Content: (dc:title, dcterms:created, etc...) -->
</sdf:meta>

sdf:meta要素には自身を包括しているsdf:documentもしくはsdf:section要素についてのメタデータを記述できる。使用方法はXHTMLのhead要素に似ている。

内容は既存の語彙(Dublin CoreやDublin Core Termsなど)または新たに作られた語彙(別の名前空間を使うこと)が想定されている。

RDFによる記述についてはここでは言及しない。現状ではrdf:about属性の値に入れるべき適当な値が存在しない。

sdf:body

<sdf:body>
    <!-- Content: (sdf:section, xh:p, xh:ul, etc...) -->
</sdf:body>

sdf:body要素にはメタデータではない本文を記述する。XHTMLのbody要素の使われ方と似ており、XHTMLの語彙が使われることが想定されている。

sdf:body要素内をさらにセクションで分割する場合、sdf:section要素を子として持つことが出来る。

サンプル

Arielworks.net内の各ページはSDFで記述されているためURIに「/index.xml」を付ければ実際に使用されている文章を見ることが出来ます。

例:

連絡先、リンク、転載や複製などについては「サイト案内」をご覧ください。Powered by HIMMEL