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 ローダーがより良いパフォーマンスのために、クライアントに直接送信することを指示するための予備のネームスペースです。