Миграция приложения OpenLaszlo на 5.0: тег xxx нельзя использовать как дочерний элемент зрения
Я хочу знать, есть ли у кого-нибудь такой дефект при обновлении open laszlo.
The tag xxx cannot be used as a child of view
The tag xxx cannot be used as a child of class
Почему эта ошибка происходит? Любая идея?
1 ответ
Сообщение об ошибке xxx не может быть использовано как дочерний элемент yyy представления просто означает, что вы используете тег внутри тега, а дочерний тег неизвестен. Простой пример:
<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 / схемы / сборки /lfc.xml
Если компилятор жалуется на встроенный тег LZX, вы можете - в крайнем случае - проверить этот файл, если определение класса для этого конкретного тега все еще существует в используемой вами версии OpenLaszlo. Вот, например, начало определения класса / интерфейса для тега
<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)
Хотя это определенно не удобный способ узнать, существует ли тег до сих пор.