Lors de la création de zones ou d'enregistrements facultatifs dans un schéma de fichier à plat, il est important de comprendre comment les données de fichier à plat sont analysées d'un point de vue syntaxique pour pouvoir concevoir un schéma de fichier à plat en évitant toute ambiguïté. Par exemple, si vous créez un schéma de fichier à plat avec un noeud racine délimité et trois zones de chaîne enfant et que zone1 est obligatoire, zone2 est facultative et zone3 est obligatoire, les règles grammaticales du schéma sont ambiguës, comme illustré lorsque les données suivantes sont analysées en phase d'exécution.
A,C
La spécification d'une zone obligatoire après une zone facultative définit des règles grammaticales ambiguës qui ne peuvent pas être correctement analysées. C'est également le cas lorsqu'un enregistrement obligatoire est spécifié après une zone facultative.
Le fait de redéfinir le schéma de fichier à plat pour qu'il contienne trois zones de chaîne enfant où zone1 est obligatoire, zone2 est facultative et zone3 est facultative ne résout pas ce problème, car lorsque les données de fichier à plat A,C sont analysées, zone1 est égale à A et zone2 est égale à C. Là encore, les règles grammaticales du schéma sont ambiguës car ce n'est pas le résultat souhaité. Le résultat souhaité était que la valeur C soit affectée à zone3. La spécification d'une zone obligatoire suivie de deux zones facultative définit aussi des règles grammaticales ambiguës.