メイン・テンプレートからのサブテンプレートのコール
メイン・テンプレートからサブテンプレートをコールするには、2つのエントリが必要です。
メイン・テンプレートにサブテンプレートを実装するには、メイン・テンプレートに2つのエントリを作成する必要があります:
まず、サブテンプレート・ファイルをメイン・テンプレートにインポートします。 インポート構文は、「パブリッシャ」エンジンがカタログ内のサブ・テンプレートを検索する場所を示します。
次に、コール・コマンドを入力して、必要な位置にサブテンプレートの内容をレンダリングします。
サブテンプレートをメイン・テンプレートにインポート
コール・テンプレート・コマンドの前に、メイン・テンプレートの任意の場所にimportコマンドを入力します。
ロケールを必要としない場合は、次のように入力します:
<?import:xdoxsl:///path to subtemplate.xsb?>
where
「subtemplate.xsbへのパス」は、カタログ内のサブテンプレートの.xsbオブジェクトへのパスです。
たとえば:
<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?>
サブテンプレートがマイ・フォルダの下の個人フォルダに存在する場合、サブテンプレートをインポートするコマンドは次のとおりです:
<?import:xdoxsl:///~username/path to subtemplate.xsb?>
ここで、usernameはユーザー名です。
たとえば、ユーザーmyuserがTemplate1というサブテンプレートをマイ・フォルダの下のサブテンプレートというフォルダにアップロードした場合、正しいインポート文は次のようになります:
<?import:xdoxsl:///~myuser/Subtemplates/Template1.xsb?>
サブテンプレートをコールして内容をレンダリング
コール・コマンドを入力して、必要な位置にサブテンプレートの内容をレンダリングすることもできます。
次の図は、メイン・テンプレートに必要なエントリを示しています:
ローカライズされたサブテンプレートのインポート
インポートされたサブテンプレートのロケールを指定するには、次に示すように、インポート文にロケールを追加します。
<?import:xdoxsl:///{path to subtemplate.xsb}?loc={locale_name}?>
where
「subtemplate.xsbへのパス」は、カタログ内のサブテンプレート.xsbオブジェクトへのパスです
および
locale_nameは、ロケールを構成する言語とテリトリの組合せです。 ロケール指定はオプションです。
たとえば:
<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?loc=en-US?>
${_XDOLOCALE} を使用して、ランタイム・ユーザーのロケールに基づいてローカライズされたサブテンプレートをインポートすることもできます。 たとえば:
<?import:xdoxsl:///Executive/HR_Reports/mySubtemplate.xsb?loc=${_XDOLOCALE}?>
例
この例では、会社の住所はすべてのテンプレートに表示される固定文字列です。 すべてのテンプレートで文字列を再現するのではなく、1つのサブテンプレートに配置して他のすべてのサブテンプレートから参照できます。
実行時に、MyAddressサブテンプレートのコンテンツがフェッチされ、メイン・テンプレートのレイアウトにレンダリングされます。
この機能は、文字列のみに制限されるわけではなく、有効なRTFテンプレート機能をサブテンプレートに挿入したり、一方から他方にパラメータを渡すこともできます。 例については、「RTFサブテンプレートを使用する場合」を参照してください。