0

いくつかの代替ルールを認識しなければなりませんが、相互排除を行う方法がわかりません。たとえば、「再生」、「停止」、または「セット 1」、「セット 2」を認識したい場合、どうすればよいですか? このようなことを試してみましたが、番号が必要ない場合は認識しません(たとえば、「開始2」は正しく認識されますが、自明に認識したくありません)。

<grammar version="1.0" tag-format="semantics/1.0" xml:lang="en-US" root="main">
<rule id="main">
    <ruleref uri="#actions"/>
    <ruleref uri="#numbers"/>
</rule>
<rule id="actions">
    <item repeat="0-1">
        <one-of>
            <item>play</item>   
            <item>stop</item>
            <item>set</item>
        </one-of>
    </item>
</rule>
<rule id="numbers">
    <item repeat="0-1">
        <one-of>
            <item>1</item>
            <item>2</item>
            <item>3</item>
            <item>4</item>
            <item>5</item>
            <item>6</item>
            <item>7</item>
            <item>8</item>
            <item>9</item>
        </one-of>
    </item>
</rule>
</grammar>
4

1 に答える 1

0

簡単に言えば、

<item>play <ruleref special="GARBAGE"/></item>
<item>stop <ruleref special="GARBAGE"/></item>      
<item>set <ruleref special="GARBAGE"/><ruleref uri="#numbers"/></item>

set の後に id 参照を呼び出すと、"set 1"、"set 2" だけが使用されますが、名前の後に参照がないため、"start 1" は受け入れられません。

于 2013-05-14T14:23:56.370 に答える