1

open laszloをアップグレードするときに、このような欠陥に遭遇した人がいることを知りたいです。

The tag xxx cannot be used as a child of view
The tag xxx cannot be used as a child of class

なぜこのエラーが発生するのですか?何か案が?

4

1 に答える 1

2

エラー メッセージxxx cannot be used as a child yyy of view は、単にタグ内でタグを使用しており、子タグが不明であることを意味します。簡単な例:

<canvas debug="true">

  <view width="100" height="100" bgcolor="red">
    <unknown_tag />
  </view>

</canvas>

コンパイラ エラー メッセージ: class_tag_error.lzx:4:48: タグ 'unknown_tag' はビュー class_tag_error.lzx:5:20 の子として使用できません: 不明なタグ

4.0 から 4.2 にアップグレードする際に、同様の問題を抱えた人がいたことを覚えています。これは、laszlo-dev メーリング リストでの議論です。コード内の標準の OpenLaszlo タグが問題の原因なのか、それとも追加したカスタム クラスまたはタグが原因なのか?

OpenLaszlo コンパイラが認識するすべてのクラスとタグのスキーマ ファイルがあり、次の場所にあります。

$LPS_HOME/WEB-INF/lps/schema/build/lfc.xml

組み込みの LZX タグについてコンパイラが文句を言う場合、最後の手段として、使用している OpenLaszlo バージョンにその特定のタグのクラス定義がまだ存在するかどうか、そのファイルをチェックすることができます。たとえば、<view> タグのクラス/インターフェイス定義の冒頭は次のとおりです。

  <interface extends="node" jsname="LzView" name="view">
    <method args="who, self, prop, refView" name="$lzc$getAttributeRelative_dependencies"/>
    <method args="who, self" name="$lzc$getBounds_dependencies"/>
    <method args="who, self" name="$lzc$getCurrentTime_dependencies"/>
    <method args="ignore" name="$lzc$getMouse_dependencies"/>
    <method args="who, self" name="$lzc$getTotalTime_dependencies"/>
    <method args="ignore" name="$lzc$isMouseOver_dependencies"/>
  ... (continued)

ただし、タグがまだ存在するかどうかを確認するには、これは間違いなく快適な方法ではありません。

于 2012-08-11T08:02:38.647 に答える