XHTML は XHTML コンポーネントセットを意味し、正に ZUL ネームスペース (http://www.zkoss.org/2005/zul) が ZUL コンポーネントセットを意味するのと同じです。
このように、XHTML ネームスペースで指定された XML 要素は XHTML コンポーネントセットからのコンポーネント定義をベースに作成されたコンポーネントであるべきだということを指定しています。例えば、次のステートメントは、ul と呼ばれるコンポーネント定義のインスタンスとして作成されることを指定します。その ul は XHTML コンポーネントセットに属します。
<h:ul xmlns:h="http://www.w3.org/1999/xhtml">
いいかえれば、ZK ローダーは XHTML コンポーネントで ul と呼ばれるコンポーネント定義を探して、それに基づいたインスタンスを生成します。
次は、他のしかし、より完全なサンプルです。
<window title="mix HTML demo" xmlns:h="http://www.w3.org/1999/xhtml"> <h:table border="1"> <h:tr id="row1"> <h:td>column 1</h:td> <h:td> <listbox id="list" mold="select"> <listitem label="AA"/> <listitem label="BB"/> </listbox> </h:td> </h:tr> </h:table> <button label="add" onClick="new org.zkoss.zhtml.Td().append(row1)"/> </window>
HTML タグがコンテンツプロパティにストアされている html コンポーネントとは違って、ZK ローダーはそれら各々のコンポーネントを作成します。利点としては、上の例で示しましたように、動的に各 HTML タグを操作出来ることです。(add -ボタン)短所としては、処理に時間がかかることと、メモリをより消耗することです。
ヒント: XHTML ネームスペースと違って、ネィティブネームスペースは他のコンポーネントセットを意味しません。これは、ZK ローダーがより良いパフォーマンスのために、クライアントに直接送信することを指示するための予備のネームスペースです。