コードには2つの問題があります。まず、defaultplacement属性の二重引用符の構文:
<attribute name="defaultplacement" value="'insideview'"/>
これは古い構文であり、最近のバージョンのOpenLaszloでは必要ありません。もう1つの問題は、$ once {}制約の使用です。これは不要であり、コンパイラの例外を引き起こしています。
<attribute name="defaultplacement" value="$once{test.defaultplacement}"/>
しかし、簡単なコード例を使用して、私が何を意味するのかを明確にしましょう。
<canvas>
<class name="blackbox" extends="view">
<attribute name="bgcolor" value="black"/>
<attribute name="defaultplacement" value="blackinner"/>
<view name="blackinner" bgcolor="green"
x="10" y="10" width="${parent.width-20}" height="${parent.height-20}">
</view>
</class>
<class name="redbox" extends="view">
<attribute name="bgcolor" value="red"/>
<attribute name="defaultplacement" value="content"/>
<blackbox name="content"
x="10" y="10" width="${parent.width-20}" height="${parent.height-20}">
</blackbox>
</class>
<redbox x="10" y="10" width="200" height="200">
<view width="40" height="40" bgcolor="blue" />
</redbox>
</canvas>
このサンプルアプリケーションは、クラスブラックボックスとクラスレッドボックスを定義します。ブラックボックスは、10ピクセルのはめ込みがある、緑色の子ビューを備えた単なるブラックボックスです。
レッドボックスは、20ピクセルの挿入で、子としてブラックボックスクラス/タグを使用します。レッドボックスのdefaultplacementは、ブラックボックスインスタンスを参照し、ブラックボックスのdefaultplacementは、「blackinner」という名前のブラックボックスの緑色の子ビューを参照します。
次に、コードは、コンテンツとして青いビュー(40x40ピクセル)を使用して、redboxのインスタンスを作成します。このアプリケーションのスクリーンショットでわかるように、青いビューはブラックボックスの緑のビュー内に自動的に正しく配置されます。

アプリケーションの元のコード(簡略化のためにすべてのクラスをキャンバスファイルに入れました)は、説明されている変更が行われると、5.0(トランク)で問題なくコンパイルされます。
<canvas>
<class name="myframe" extends="view">
<attribute name="bgcolor" value="red"/>
<attribute name="defaultplacement" value="insideview"/>
<view x="5" y="5" width="${parent.width-10}" name='insideview'
height="${parent.height-10}"
bgcolor="#FFFFCC"/>
</class>
<class name="answerMain" extends="view">
<attribute name="defaultplacement" value="test"/>
<myframe name="test" width="220" height="20" />
</class>
<answerMain>
<text> HI </text>
</answerMain>
</canvas>
OpenLaszloコンパイラーは、そのような場合を除いて絶対に終了するべきではありませんが、残念ながら、コンパイラーは過去2年間それほどうまく維持されていません。