XInclude - NXML

Nexaweb の XInclude を使用すると、インクルードされたコンテンツが初めから元のドキュメント内で宣言されているかのように、XML、XML フラグメント、XML ドキュメント内のテキストを動的にインクルードして再利用することができます。Nexaweb の XInclude は、w3c.org バージョン 1 勧告のサブセットです (http://www.w3.org/TR/xinclude/)。

次の例では、初期ファイル (index.nxml) でのXInclude の使用方法を示します。

 

<nxml>
 <rootPane>
     <xi:include xmlns:xi="http://nexaweb.com/xinclude" href="header.xml"/>
     <xi:include xmlns:xi="http://nexaweb.com/xinclude" href="body.xml"/>
 </rootPane>
</nxml> 
  • xmlns:xi - XInclude 命令の名前空間。http://www.nexaweb.com/xinclude を参照してください。
  • href - 静的ファイル、動的サーバー ページ、またはサーブレットへの http 参照
XInclude を使用すると、すべてのページが 1 つのファイルにまとめられるだけではなく、インクルードされたページは次のようなタイミングでロードされます。<include> 要素がページにあると、これらの要素は初期ページが完全にロードされて解析される前に解決されます。次に例を示します。
  1. index.nxml が取得、解析、および表示されます。
  2. header.xml が要求され、既存のドキュメントに統合されます。
  3. body.xml が要求され、既存のドキュメントに統合されます。
  4. header.xml または body.xml にさらに多くの include タグがある場合は、header.xmlbody.xml の後に取得されます。
header.xml:

 

<label text="Welcome to Acme company"/>

body.xml:

<button text="Click for company Information"/> 
<button text="Click for company Products"/>

結果として生成されるメモリ内のドキュメントは次のようになります。

<nxml>
 <rootPane>
  <label text="Welcome to Acme company"/>
  <button text="Click for company Information"/>
  <button text="Click for company Products"/>
 </rootPane>
</nxml> 
インクルード可能なデータの形式は次のとおりです。
  • XML フラグメント (ルート タグを使用しない XML)
  • 整形式の XML または CDATA タグにラップされたテキスト
  • 名前空間を 持たない UI 要素と名前空間を持つ Nexaweb ページ要素 (MCO やマクロの宣言など)。名前空間を持つページ要素は、XInclude によってインクルードされないページと同じように、ドキュメント内の順序に関係なく、名前空間を持たない要素がインクルードされる前に常に実行されます。
 
XInclude の詳細については、「XInclude リファレンスガイド」を参照してください。