

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Définition de la grammaire
<a name="grammar-srgs-spec"></a>

Cette rubrique présente les parties de la spécification SRGS prises en charge par Amazon Lex V2. Toutes les règles sont définies dans la spécification SRGS. Pour plus d'informations, consultez la recommandation du W3C relative à [la spécification grammaticale de reconnaissance vocale version 1.0](https://www.w3.org/TR/speech-grammar/).

**Topics**
+ [Déclarations d'en-tête](srgs-header.md)
+ [Éléments XML pris en charge](srgs-supported-xml.md)
+ [Jetons](srgs-tokens.md)
+ [Référence aux règles](srgs-rule-reference.md)
+ [Séquences et encapsulation](srgs-sequence.md)
+ [Répétitions](srgs-repeats.md)
+ [Language](srgs-language.md)
+ [Étiquettes](srgs-tags.md)
+ [Poids](grammar-weights.md)

Ce document inclut du matériel copié et dérivé de la spécification grammaticale de reconnaissance vocale du W3C version 1.0 (disponible sur [https://www.w3). org/TR/speech-grammaire/](https://www.w3.org/TR/speech-grammar/)). Les informations de citation sont les suivantes :

[Copyright](http://www.w3.org/Consortium/Legal/ipr-notice#Copyright) © 2004 [W3C®](http://www.w3.org/) ([MIT](http://www.csail.mit.edu/), [ERCIM](http://www.ercim.org/), [Keio](http://www.keio.ac.jp/)), Tous droits réservés. Les règles du W3C relatives à la [responsabilité](http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer), aux [marques commerciales](http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks), à [l'utilisation des documents](http://www.w3.org/Consortium/Legal/copyright-documents) et aux [licences logicielles](http://www.w3.org/Consortium/Legal/copyright-software) s'appliquent.

Le document de spécification SRGS, une [recommandation du W3C](https://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C), est disponible auprès du W3C sous la licence suivante.

## Texte de licence
<a name="license-text"></a>

Licence

En and/or copiant ce document, ou le document du W3C à partir duquel cette déclaration est liée, vous (le licencié) reconnaissez avoir lu, compris et respecter les termes et conditions suivants :

L'autorisation de copier et de distribuer le contenu de ce document, ou du document W3C à partir duquel cette déclaration est liée, sur tout support, à quelque fin que ce soit et sans frais ni redevance est accordée, à condition que vous incluiez les éléments suivants sur TOUTES les copies du document, ou des parties de celui-ci, que vous utilisez :
+ Un lien ou une URL vers le document W3C original.
+ [L'avis de copyright préexistant de l'auteur original, ou s'il n'existe pas, un avis (l'hypertexte est préférable, mais une représentation textuelle est autorisée) du format : « Copyright © [\$1date-of-document] [World Wide Web Consortium](http://www.w3.org/), ([MIT](http://www.csail.mit.edu/), [ERCIM, [Keio](http://www.keio.ac.jp/), Beihang](http://www.ercim.org/)).](http://ev.buaa.edu.cn/) [http://www.w3. org/Consortium/Legal/2015/doc-licence](http://www.w3.org/Consortium/Legal/2015/doc-license) »
+ *S'il existe*, le STATUT du document W3C.

Lorsque l'espace le permet, le texte intégral de cet **AVIS** doit être inclus. Nous demandons que l'attribution de la paternité soit fournie dans tout logiciel, document ou autre élément ou produit que vous créez conformément à la mise en œuvre du contenu de ce document, en tout ou en partie.

Aucun droit de créer des modifications ou des dérivés de documents du W3C n'est accordé en vertu de cette licence, sauf dans les cas suivants : pour faciliter la mise en œuvre des spécifications techniques énoncées dans ce document, n'importe qui peut préparer et distribuer des œuvres dérivées et des parties de ce document dans le logiciel, dans le matériel de support accompagnant le logiciel et dans la documentation du logiciel, À CONDITION que tous ces travaux incluent la notice ci-dessous. CEPENDANT, la publication d'œuvres dérivées de ce document à des fins de spécification technique est expressément interdite.

[En outre, les « composants de code », à savoir l'IDL Web dans les sections clairement marquées comme Web IDL, le balisage défini par le W3C (HTML, CSS, etc.) et le code du langage de programmation informatique clairement indiqué comme exemples de code, sont concédés sous licence logicielle du W3C.](http://www.w3.org/Consortium/Legal/copyright-software)

L'avis est le suivant :

« Droits d'auteur © 2015 W3C® (MIT, ERCIM, Keio, Beihang). Ce logiciel ou document inclut du matériel copié ou dérivé de [titre et URI du document W3C]. »

Avertissements

CE DOCUMENT EST FOURNI « TEL QUEL » ET LES DÉTENTEURS DE DROITS D'AUTEUR NE FONT AUCUNE DÉCLARATION OU GARANTIE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER, DE NON-CONTREFAÇON OU DE TITRE ; QUE LE CONTENU DU DOCUMENT EST ADAPTÉ À UN USAGE QUELCONQUE ; NI QUE LA MISE EN ŒUVRE DE CE CONTENU N'ENFREINDRA AUCUN BREVET, DROIT D'AUTEUR, MARQUE COMMERCIALE OU AUTRE DROIT DE TIERS.

LES DÉTENTEURS DE DROITS D'AUTEUR NE SERONT PAS RESPONSABLES DES DOMMAGES DIRECTS, INDIRECTS, SPÉCIAUX OU CONSÉCUTIFS DÉCOULANT DE L'UTILISATION DU DOCUMENT OU DE LA PERFORMANCE OU DE LA MISE EN ŒUVRE DE SON CONTENU.

Le nom et les marques de commerce des détenteurs de droits d'auteur NE PEUVENT PAS être utilisés dans des publicités relatives à ce document ou à son contenu sans autorisation écrite préalable spécifique. Le droit d'auteur de ce document restera à tout moment la propriété des détenteurs des droits d'auteur.

# Déclarations d'en-tête
<a name="srgs-header"></a>

Le tableau suivant indique les déclarations d'en-tête prises en charge par le type de slot grammatical. Pour plus d'informations, consultez [la section Déclarations d'en-tête grammaticales](https://www.w3.org/TR/speech-grammar/#S4.1) dans la recommandation du W3C *version 1 de la spécification grammaticale de reconnaissance vocale*.


| Déclaration | Exigence de spécification | formulaire XML | Assistance Amazon Lex | Spécification de  | 
| --- | --- | --- | --- | --- | 
| Version grammaticale | Obligatoire | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3) : version attribut sur grammar élément | Obligatoire | SRGS | 
| espace de noms XML | Obligatoire (XML uniquement) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3) : xmlns attribut sur grammar élément | Obligatoire | SRGS | 
| Type de document | Obligatoire (XML uniquement) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3) : TYPE DE DOCUMENT XML | Recommandée | SRGS | 
| Encodage de caractères | Recommandée | [4.4](https://www.w3.org/TR/speech-grammar/#S4.4) : encoding attribut dans la déclaration XML | Recommandée | SRGS | 
| Language | Nécessaire en mode vocal Ignoré en mode DTMF | [4.5](https://www.w3.org/TR/speech-grammar/#S4.5) : xml:lang attribut sur grammar élément | Nécessaire en mode vocal Ignoré en mode DTMF | SRGS | 
| Mode | Facultatif | [4.6](https://www.w3.org/TR/speech-grammar/#S4.6) : mode attribut sur grammar élément | Facultatif | SRGS | 
| Règle racine | Facultatif | [4.7](https://www.w3.org/TR/speech-grammar/#S4.7) : root attribut sur grammar élément | Obligatoire | SRGS | 
| Format de balise | Facultatif | [4.8](https://www.w3.org/TR/speech-grammar/#S4.8) : tag-format attribut sur grammar élément | Chaîne littérale et prise en ECMAScript charge | SERGS, SŒUR | 
| URI de base | Facultatif | [4.9](https://www.w3.org/TR/speech-grammar/#S4.9) : xml:base attribut sur grammar élément | Facultatif | SRGS | 
| Lexique de prononciation | Facultatif, plusieurs sont autorisés | [4.10](https://www.w3.org/TR/speech-grammar/#S4.`0) : élément lexicon | Non pris en charge | SERGS, S'IL VOUS PLAÎT | 
| Métadonnées | Facultatif, plusieurs sont autorisés | [4.11.1 : élément](https://www.w3.org/TR/speech-grammar/#S4.11.1) meta | Obligatoire | SRGS | 
| métadonnées XML | Facultatif, XML uniquement | [4.11.2](https://www.w3.org/TR/speech-grammar/#S4.11.2) : élément metadata | Facultatif | SRGS | 
| Balise | Facultatif, plusieurs sont autorisés | [4.12](https://www.w3.org/TR/speech-grammar/#S4.12) : élément tag | Les balises globales ne sont pas prises en charge | SRGS | 

**Exemple**

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
                  "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"
         xml:lang="en-US"
         version="1.0"
         mode="voice"
         root="city"
         tag-format="semantics/1.0">
```

# Éléments XML pris en charge
<a name="srgs-supported-xml"></a>

Amazon Lex V2 prend en charge les éléments XML suivants pour les grammaires personnalisées :
+ `<item>`
+ `<token>`
+ `<tag>`
+ `<one-of>`
+ `<rule-ref>`

# Jetons
<a name="srgs-tokens"></a>

Le tableau suivant indique les spécifications des jetons prises en charge par le type de slot grammatical. Pour plus d'informations, voir [Tokens](https://www.w3.org/TR/speech-grammar/#S2.1) dans la recommandation W3C de la *version 1 de la spécification grammaticale de reconnaissance vocale*.


| Type de jeton | Exemple | Pris en charge ? | 
| --- | --- | --- | 
| Jeton unique sans guillemets | bonjour | Oui | 
| Jeton unique sans guillemets : non alphabétique | 2 | Oui | 
| Jeton entre guillemets simples, sans espace blanc | "hello" | Oui, supprimez les guillemets lorsqu'il ne contient qu'un seul jeton | 
| Deux jetons délimités par un espace blanc | bon voyage | Oui | 
| Quatre jetons délimités par un espace blanc | c'est un test | Oui | 
| Jeton entre guillemets simples, espace blanc inclus | « San Francisco | Non | 
| Jeton XML unique dans la <token>balise | <token>San Francisco</token> | Non (identique au jeton entre guillemets simples avec un espace blanc) | 

**Remarques**
+ *Jeton entre guillemets simples, espaces blancs compris* — La spécification exige que les mots placés entre guillemets soient traités comme un jeton unique. Amazon Lex V2 les traite comme des jetons délimités par des espaces blancs.
+ *Jeton XML unique dans* <token>: la spécification nécessite des mots délimités par <token>pour représenter un jeton. Amazon Lex V2 les traite comme des jetons délimités par des espaces blancs.
+ Amazon Lex V2 génère une erreur de validation lorsque l'une des utilisations est détectée dans votre grammaire.

**Exemple**

```
<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>
```

# Référence aux règles
<a name="srgs-rule-reference"></a>

Le tableau suivant récapitule les différentes formes de référence aux règles possibles dans les documents de grammaire. Pour plus d'informations, voir la [référence aux règles](https://www.w3.org/TR/speech-grammar/#S2.2) dans la recommandation W3C de la *version 1 de la spécification grammaticale de reconnaissance vocale*. 


| Type de référence | formulaire XML | Pris en charge | 
| --- | --- | --- | 
| [2.2.1 Référence](https://www.w3.org/TR/speech-grammar/#S2.2.1) explicite aux règles locales | <ruleref uri="\$1rulename"/> | Oui | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Référence explicite à une règle nommée d'une grammaire identifiée par un URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI\$1rulename"/> | Non | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Référence implicite à la règle racine d'une grammaire identifiée par un URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI"/> | Non | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) Référence explicite à une règle nommée d'une grammaire identifiée par un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) avec un type de [média](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI\$1rulename" type="media-type"/> | Non | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) Référence implicite à la règle racine d'une grammaire identifiée par un [URI](https://www.w3.org/TR/speech-grammar/#term-uri) avec un type de [média](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI" type="media-type"/> | Non | 
| [2.2.3 Définitions](https://www.w3.org/TR/speech-grammar/#S2.2.3) de règles spéciales | `<ruleref special="NULL"/>` `<ruleref special="VOID"/>` `<ruleref special="GARBAGE"/>` | Non | 

**Remarques**

1. L'URI de grammaire est un URI externe. Par exemple, `http://grammar.example.com/world-cities.grxml`.

1. Le type de support peut être :
   + `application/srgs+xml`
   + `text/plain`

**Exemple**

```
<rule id="city" scope="public">
    <one-of>
        <item>Boston</item>
        <item>Philadelphia</item>
        <item>Fargo</item>
    </one-of>
</rule>

<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>

<!-- "Boston MA" -> city = Boston, state = MA -->
<rule id="city_state" scope="public">
    <ruleref uri="#city"/> <ruleref uri="#state"/>
</rule>
```

# Séquences et encapsulation
<a name="srgs-sequence"></a>

L'exemple suivant montre les séquences prises en charge. Pour plus d'informations, consultez la section [Séquences et encapsulation](https://www.w3.org/TR/speech-grammar/#S2.3) dans la recommandation W3C de la *version 1 de la spécification grammaticale de reconnaissance vocale*. 

**Exemple**

```
<!-- sequence of tokens -->
this is a test

<!--sequence of rule references-->
<ruleref uri="#action"/> <ruleref uri="#object"/>

<!--sequence of tokens and rule references-->
the <ruleref uri="#object"/> is <ruleref uri="#color"/>

<!-- sequence container -->
<item>fly to <ruleref uri="#city"/> </item>
```

# Répétitions
<a name="srgs-repeats"></a>

Le tableau suivant indique les extensions répétées prises en charge pour les règles. Pour plus d'informations, consultez la section [Répétitions dans](https://www.w3.org/TR/speech-grammar/#S2.5) la recommandation W3C de la *version 1 de la spécification grammaticale de reconnaissance vocale*. 


| formulaire XMLExemple | Comportement | Pris en charge ? | 
| --- | --- | --- | 
| *repeat="n »* repeat="6 » | L'expression contenue est répétée exactement « n » fois. « n » doit être « 0 » ou un entier positif. | Oui | 
| *repeat="m-n »* repeat="4-6 » | L'expansion contenue est répétée entre « m » et « n » fois (inclus). « m » et « n » doivent tous deux être « 0 » ou un entier positif, et « m » doit être inférieur ou égal à « n ». | Oui | 
| *repeat="m- »* repeat="3- » | L'expansion contenue est répétée « m » fois ou plus (inclus). « m » doit être « 0 » ou un entier positif. Par exemple, « 3- » déclare que l'expansion contenue peut se produire trois, quatre, cinq fois ou plus. | Oui | 
| *repeat="0-1"*  | L'extension contenue est facultative. | Oui | 
| <item repeat="2-4" repeat-prob="0.8"> |   | Non | 

# Language
<a name="srgs-language"></a>

La discussion suivante s'applique aux identificateurs de langue appliqués aux grammaires. Pour plus d'informations, voir [Langue](https://www.w3.org/TR/speech-grammar/#S2.7) dans la *spécification grammaticale de reconnaissance vocale, version 1*, recommandation du W3C. 

Par défaut, une grammaire est un document en une seule langue dont l'[identifiant de langue](https://www.w3.org/TR/speech-grammar/#term-language) est fourni dans la déclaration de langue figurant dans l'[en-tête de grammaire](https://www.w3.org/TR/speech-grammar/#S4.1). Tous les jetons de cette grammaire, sauf indication contraire, **seront traités conformément à la langue de la grammaire**. Les déclarations de langage au niveau de la grammaire **ne sont** pas prises en charge.

Dans l'exemple suivant :

1. La déclaration d'en-tête grammaticale pour la langue « en-US » **est prise en charge** par Amazon Lex V2.

1. L'attachement linguistique au niveau de l'élément (surligné dans*red*) **n'est pas** pris en charge. Amazon Lex V2 génère une erreur de validation si une pièce jointe dans une langue est différente de la déclaration d'en-tête.

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
                  "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<!-- the default grammar language is US English -->
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"
         xml:lang="en-US" version="1.0">

  <!--
     single language attachment to tokens
     "yes" inherits US English language
     "oui" is Canadian French language
  -->
  <rule id="yes">
    <one-of>
      <item>yes</item>
      <item xml:lang="fr-CA">oui</item>
    </one-of>
  </rule>

  <!-- Single language attachment to an expansion -->
  <rule id="people1">
    <one-of xml:lang="fr-CA">
      <item>Michel Tremblay</item>
      <item>André Roy</item>
    </one-of>
  </rule>
</grammar>
```

# Étiquettes
<a name="srgs-tags"></a>

La discussion suivante s'applique aux balises définies pour les grammaires. Pour plus d'informations, voir [Tags](https://www.w3.org/TR/speech-grammar/#S2.6) dans la recommandation W3C de la *version 1 de la spécification grammaticale de reconnaissance vocale*. 

Sur la base de la spécification SRGS, les balises peuvent être définies de la manière suivante :

1. Dans le cadre d'une déclaration d'en-tête telle que décrite dans[Déclarations d'en-tête](srgs-header.md).

1. Dans le cadre d'une** <rule>définition.

Les formats de balises suivants sont pris en charge :
+ `semantics/1.0`(SŒUR, ECMAScript)
+ `semantics/1.0-literals`(littéraux de chaîne SISR)

Les formats de balises suivants ne sont pas pris en charge :
+ `swi-semantics/1.0`(propriété de Nuance)

**Exemple**

```
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"
         xml:lang="en-US"
         version="1.0"
         mode="voice"
         root="city"
         tag-format="semantics/1.0-literals">
    <rule id="no">
        <one-of>
            <item>no</item>
            <item>nope</item>
            <item>no way</item>
        </one-of>
        <tag>no</tag>
    </rule>
</grammar>
```

# Poids
<a name="grammar-weights"></a>

Vous pouvez ajouter l'attribut de *poids* à un élément. Le poids est une valeur à virgule flottante positive qui représente le degré auquel la phrase de l'élément est amplifiée lors de la reconnaissance vocale. Pour plus d'informations, consultez la recommandation W3C de la version 1 [des pondérations](https://www.w3.org/TR/speech-grammar/) dans la spécification grammaticale de reconnaissance vocale.

Les poids doivent être supérieurs à 0 et inférieurs ou égaux à 10, et ne peuvent comporter qu'une seule décimale. Si le poids est supérieur à 0 et inférieur à 1, la phrase est amplifiée négativement. Si le poids est supérieur à 1 et inférieur ou égal à 10, la phrase est amplifiée positivement. Un poids de 1 équivaut à ne pas donner de poids du tout, et la phrase n'est pas stimulée.

Attribuer des pondérations appropriées aux éléments pour améliorer les performances de reconnaissance vocale est une tâche difficile. Voici quelques conseils que vous pouvez suivre pour attribuer des poids :
+ Commencez par une grammaire sans attribuer de poids aux éléments.
+ Déterminez quels modèles du discours sont souvent mal identifiés.
+ Appliquez différentes valeurs de pondération jusqu'à ce que vous constatiez une amélioration des performances de reconnaissance vocale et qu'il n'y ait aucune régression.

**Exemple 1**

Par exemple, si vous avez une grammaire pour les aéroports et que vous remarquez que *New York* est souvent confondue avec *Newark*, vous pouvez améliorer New York en lui attribuant une pondération de 5.

```
<rule> id="airport">
    <one-of>
        <item>
            Boston
            <tag>out="Boston"</tag>
        </item>
        <item weight="5">
            New York
            <tag>out="New York"</tag>
        </item>
        <item>
            Newark
            <tag>out="Newark"</tag>
        </item>
    </one-of>
</rule>
```

**Exemple 2**

Par exemple, vous avez une grammaire pour le code de réservation d'une compagnie aérienne commençant par un alphabet anglais suivi de trois chiffres. Le code de réservation commence probablement par B ou D, mais vous remarquerez que B est souvent mal identifié comme P, et D comme T. Vous pouvez augmenter positivement B et D.

```
<rule> id="alphabet">
    <one-of>
        <item>A<tag>out.letters+='A';</tag></item>
        <item weight="3.5">B<tag>out.letters+='B';</tag></item>
        <item>C<tag>out.letters+='C';</tag></item>
        <item weight="2.9">D<tag>out.letters+='D';</tag></item>
        <item>E<tag>out.letters+='E';</tag></item>
        <item>F<tag>out.letters+='F';</tag></item>
        <item>G<tag>out.letters+='G';</tag></item>
        <item>H<tag>out.letters+='H';</tag></item>
        <item>I<tag>out.letters+='I';</tag></item>
        <item>J<tag>out.letters+='J';</tag></item>
        <item>K<tag>out.letters+='K';</tag></item>
        <item>L<tag>out.letters+='L';</tag></item>
        <item>M<tag>out.letters+='M';</tag></item>
        <item>N<tag>out.letters+='N';</tag></item>
        <item>O<tag>out.letters+='O';</tag></item>
        <item>P<tag>out.letters+='P';</tag></item>
        <item>Q<tag>out.letters+='Q';</tag></item>
        <item>R<tag>out.letters+='R';</tag></item>
        <item>S<tag>out.letters+='S';</tag></item>
        <item>T<tag>out.letters+='T';</tag></item>
        <item>U<tag>out.letters+='U';</tag></item>
        <item>V<tag>out.letters+='V';</tag></item>
        <item>W<tag>out.letters+='W';</tag></item>
        <item>X<tag>out.letters+='X';</tag></item>
        <item>Y<tag>out.letters+='Y';</tag></item>
        <item>Z<tag>out.letters+='Z';</tag></item>
    </one-of>
</rule>
```