インタプリタでコンポーネントに直接にアクセスするため、ネーム空間(org.zkoss.scripting.Namespace)のコンセプトを使用します。まず、どのIDスペースもネーム空間を持っています。さらに、ネーム空間の中で定義された値をネーム空間内のスクリプトコードとEL表記は参照できます。

<window border="normal">
<label id="l" value="hi"/>
<zscript>
l.value = "Hi, namespace";
</zscript>
${l.value}
</window>
以下の例の中で二つのネーム空間があります。一つはウィンドウw1に属していて、もう一つはウィンドウw2 [24]に属している。このようにして、b1ボタンのonClickスクリプトはウィンドウw1で定義されたラベルを参照して、b2ボタンのonClickスクリプトはw2内で定義されたcheckboxを参照します。
<window id="w1">
<window id="w2">
<label id="c"/>
<button id="b1" onClick="c.value = "OK""/>
</window>
<checkbox id="c"/>
<button id="b2" onClick="c.label = "OK""/>
</window>
ここで一つ注意するポイントがあります:ネーム空間は階層です。つまり、ウィンドウw2内のzscriptはw2の中に重複がない限り、ウィンドウw1のコンポーネントを見ることができます。このようにして、以下の例の中でボタンb1をクリックすることはラベルcを変えます。
<window id="w1">
<window id="w2">
<button id="b1" onClick="c.value = "OK""/>
</window>
<label id="c"/>
</window>
ZKのコンポーネントはネーム空間にコンポーネントを指定する他に、setVariableメソッドによって変数をコンポーネントに指定することができます。そうしてzscriptはそれらを直接参照することができます。