XMLC インクルード処理

XMLC は 多くの HTTP サーバーによってサポートされている。サーバー・サイド・インクルード (server-side include:SSI)ディレクティブの文法を幾つかの HTML のソースファイルを一つ にまとめて、コンパイルを行い HTML ドキュメントにするための仕組みとして利用している。 こうした仕組みにより、大抵の場合は共有ファイルから共通のコンテンツ取り込む事で複雑な サイトの構築をより簡単にする事ができる。

取り込みはファイルの読み込み時に発生し、構文解析やコンパイルよりも前に実行される。 個々の取り込まれるファイルはどのような形でも取る事ができるが、結合した結果として 出来た HTML データは 有効な HTML ファイルでなければならない。結果的に生成された DOM に変換され、そこからクラスが生成されます。

XMLC といっしょに SSI を利用するための可能な方法のひとつには、取り込まれるファイル に対応したインターフェイスを定義して、そのファイルを取り込む全てのページに対応する クラスにそのインターフェイスを実装させる事です。このようにして、取り込まれたファイル を操作する共通コードは生成された取り込んだそのファイルを含むオブジェクトでも操作する 事ができる。

文法・表記法

サーバーサイドインクルードディレクティブは HTML や XML のコメントも形式を 取っている。唯一インクルードディレクティブだけが XMLC で実装されている。 インクルード処理は xmlc コマンドで -ssiオプションといっしょに実行するか。メタデータファイルに <compileOptions process="true"> と設定すれば 可能となる。

SSI ディレクティブの表記法は

<!--#cmd attr="value" attr="value" ... -->
となる。<!--# とコマンドとの間に空白を入れてはいけない。 空白は文字一個分コメントを閉じる --> の前部分に入れなければならず、 また属性の値は括弧でくくられていなければならない。唯一 include コマンドだけが、filevirtual 属性のみが使える形でサポートされている。しかし XMLC は WWW サーバー上で動作するわけではないので、 virtual 属性を設定しても file属性と同じように取り扱われるだけである。 複数のファイルが一個のディレクティブに含まれる可能性がある。 もし指定されたファイルへのパスが絶対パスで無い場合、読み込む側のファイルからの相対パスとして解釈される。 読み込まれるファイルではまた SSI インクルードディレクティブが無いかどうか調べられ、その再帰的な深さは 最大 64 ファイルに制限される。

<!--#include file="header.html" -->
<!--#include virtual="motd.html" -->