【问题标题】:WML: A <do> element does not have a type definedWML:<do> 元素没有定义类型
【发布时间】:2014-03-09 08:50:02
【问题描述】:

我试图在我的 WML 教科书中找到的变量上运行这个 WML 示例,但每次在同一行/语句上都会给我一个错误。这是代码:

    <?xml version="1.0"?> 
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" 
 "http://www.wapforum.org/DTD/wml13.dtd"> 
<wml> 
<card id="card1" title="First Card" newcontext="true">
    <p>
        Card 1... <br/>
        card1 var1=$(card1_var1) <br/>
        card2 var1=$(card2_var1) <br/>
        card3 var1=$(card3_var1) <br/>
        <do type="accept" label="Next Card">
            <go href="#card2">
                <setvar name="card1_var1" value="val_1"/>
            </go>
        </do>
    </p>
</card>
<card id="card2" title="Second Card">
    <p>
        Card2 ...<br/>
        Card1 var1 = $(card1_var1) <br/>
        Card2 var1 = $(card2_var1) <br/>
        Card3 var1 = $(card3_var1) <br/>
        <do type="accept" label="First Card">
            <go href="#card1"/>
        </do>
        <do type="accept" label="Third Card">
            <go href="#card3">
                <setvar name="card2_var1" value="val_2"/>
            </go>
        </do>
        <do type="prev" label="Previous Card">
            <prev/>
        </do>
    </p>
</card>
<card id="card3" title="Third Card">
    <onevent type="onenterforward">
        <refresh>
            <setvar name="card3_var1 " value="val_3"/>
        </refresh>
    </onevent>
    <p>
        Card 3 ...<br/>
        Card1 var1 = $(card1_var1) <br/>
        Card2 var1 = $(card2_var1) <br/>
        Card3 var1 = $(card3_var1) <br/>
        <do type="prev" label="Previous">
            <prev/>
        </do>
    </p>
</card>

我在第 26 行遇到错误。即使类型是在那里定义的,它仍然给出错误。

【问题讨论】:

    标签: wml


    【解决方案1】:

    您发布的示例存在一些导致验证失败的错误。这些可能只是发布到 StackOverflow 时的剪切粘贴问题,或者可能导致解析器失败的真正错误。

    第 1 行:XML 声明 &lt;?xml version="1.0"?&gt; 应该在第一列;在您的示例中,它是缩进的。

    第 53 行:缺少结束 WML 标记 &lt;/wml&gt;


    还有两个可能有用的小修复:

    第 1 行:向 XML 声明添加编码,例如&lt;?xml version="1.0" encoding="UTF-8"?&gt;

    第 40 行:name="card3_var1 " 中有一个错误的空格字符,因此变量没有正确更新


    有了这些更正,您的 WML 将根据 W3C 验证器进行验证,所以应该没问题。我在 Openwave 6.2.2 SDK 中尝试过,它似乎可以正常工作。

    更正的例子:

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" 
    "http://www.wapforum.org/DTD/wml13.dtd"> 
    <wml> 
    <card id="card1" title="First Card" newcontext="true">
        <p>
            Card 1... <br/>
            card1 var1=$(card1_var1) <br/>
            card2 var1=$(card2_var1) <br/>
            card3 var1=$(card3_var1) <br/>
            <do type="accept" label="Next Card">
                <go href="#card2">
                    <setvar name="card1_var1" value="val_1"/>
                </go>
            </do>
        </p>
    </card>
    <card id="card2" title="Second Card">
        <p>
            Card2 ...<br/>
            Card1 var1 = $(card1_var1) <br/>
            Card2 var1 = $(card2_var1) <br/>
            Card3 var1 = $(card3_var1) <br/>
            <do type="accept" label="First Card">
                <go href="#card1"/>
            </do>
            <do type="accept" label="Third Card">
                <go href="#card3">
                    <setvar name="card2_var1" value="val_2"/>
                </go>
            </do>
            <do type="prev" label="Previous Card">
                <prev/>
            </do>
        </p>
    </card>
    <card id="card3" title="Third Card">
        <onevent type="onenterforward">
            <refresh>
                <setvar name="card3_var1" value="val_3"/>
            </refresh>
        </onevent>
        <p>
            Card 3 ...<br/>
            Card1 var1 = $(card1_var1) <br/>
            Card2 var1 = $(card2_var1) <br/>
            Card3 var1 = $(card3_var1) <br/>
            <do type="prev" label="Previous">
                <prev/>
            </do>
        </p>
    </card>
    </wml>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 2017-10-11
      • 2018-09-16
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 2013-03-18
      相关资源
      最近更新 更多