すべてのコンポーネントは直列化(serialize)できます。つまり、コンポーネントを直列化してメモリまたはほかのレジスターに送ることができます。
そして、後に直列化復元をします。複製のように、直列化復元したコンポーネントは他のページ(デスクトップ)に属しません。直列化したものにも依存し ません。
下に示したように、直列化は複製機能を実装する時にも使えます。
<vbox id="vb">
<listbox id="src" multiple="true" width="200px">
<listhead>
<listheader label="Population"/>
<listheader align="right" label="%"/>
</listhead>
<listitem value="A">
<listcell label="A. Graduate"/>
<listcell label="20%"/>
</listitem>
<listitem value="B">
<listcell label="B. College"/>
<listcell label="23%"/>
</listitem>
<listitem value="C">
<listcell label="C. High School"/>
<listcell label="40%"/>
</listitem>
</listbox>
<zscript>
int cnt = 0;
</zscript>
<button label="Clone">
<attribute name="onClick">
import java.io.*;
ByteArrayOutputStream boa = new ByteArrayOutputStream();
new ObjectOutputStream(boa).writeObject(src);
Listbox l = new ObjectInputStream(
new ByteArrayInputStream(boa.toByteArray())).readObject();
l.setId("dst" + ++cnt);
vb.insertBefore(l, self);
</attribute>
</button>
</vbox>
もちろん、cloneメソッドで複製するのはよりよいパフォーマンスがあります。一方、直列化は異なったマシーン間でも使えます。