XMLパッケージ

要素、属性仕様

XML パッケージのインデックスページで利用されている要素、属性には、さまざまな物があります。ベースとなっているフォーマットは RDF であり、ODPによる拡張、CustomDir による拡張が行われています。CustomDir によって拡張された要素、属性は、s というネームスペースで表現されています。ここでは RDF や ODP で行われた拡張については説明せず、CustomDir によって拡張された要素、属性についてのみ解説します。その他の仕様に関しては、W3C や ODP の関連ページを参照して下さい。

s:Dir

あるカテゴリを示すための要素で、Topic 要素のそれぞれの子要素から、r:resource 属性で関連付けられます。本来、ODP のディレクトリデータベースはひとつのファイルで全階層を示していますので、各 Topic 要素の子要素が示す物も、Topic 要素でした。しかし、CustomDir では1ファイルでひとつの Topic 要素しかありませんので、登録されているカテゴリを示すため、Topic 要素のサブセットが必要でした。それが s:Dir です。

s:path、s:idstr、s:rpath、s:title を子要素として持ちます。

s:path

Topic 要素、s:Dir 要素の子要素です。CustomDir が採用している、カテゴリーID によるディレクトリ階層を用いて、親要素の階層を表現します。

s:idstr

Topic 要素、s:Dir 要素の子要素です。親要素の ID属性と同じですが、s:char 要素を利用した拡張が加えられています。

s:rpath

Topic 要素、s:Dir 要素の子要素です。カテゴリーID 方式を利用して、日本階層までの相対パスを記録しています。

s:title

s:Dir 要素の子要素です。親要素のタイトルを示します。s:char 要素による拡張が行われています。

s:enccatpath

Topic 要素の子要素です。ID 属性を URL エンコードしたものです。ODP の CGI と通信する時に利用します。

s:parent

Topic 要素の子要素です。ひとつのTopic要素に複数存在する事があり、先祖ディレクトリを階層の浅い順にすべて列挙しています。r:resource 属性を持ち、s:Dir 要素と関連付けられています。

s:char

Title、s:title、Description、s:idstr の子要素です。これは英数字以外の ASCII 文字1文字を示す要素で、code 属性で文字コードを示し、テキストでは実体参照で文字を表します。例えば、* を表現する時は以下のように記述されます。

<s:char code="42">*<s:char>

s:char を子要素に持つ要素は、すべての非英数字を s:char を用いて表現しています。これは XML パッケージを未知の言語や環境のためのパッケージジェネレーターとして利用する時、どのような文字がメタ文字として利用されても対応できるようにするためです。

例えば PHP パッケージを生成する XSLT ファイルでは、以下のような記述を行い、PHP のメタ文字を処理しています。

<!-- メタ文字制御 -->
<xsl:template match="s:char[@code=13]">\n</xsl:template>
<xsl:template match="s:char[@code=34]">\"</xsl:template>
<xsl:template match="s:char[@code=92]">\\</xsl:template>
<xsl:template match="s:char">
<xsl:value-of disable-output-escaping="yes" select = "." />
</xsl:template>


株式会社スプライン