Al crear campos y registros opcionales en un esquema de archivo sin formato resulta importante comprender cómo se analizan los datos del archivo sin formato para que pueda diseñar su esquema de archivo sin formato para evitar posibles ambigüedades. Por ejemplo, si crea un esquema de archivo sin formato con un nodo raíz delimitado y tres campos de serie hijos en los que el campo1 sea necesario, el campo2 sea opcional y el campo3 también sea necesario, la gramática del esquema será ambigua, tal como se muestra cuando se analizan los siguientes datos durante el tiempo de ejecución:
A,C
La especificación de un campo necesario después de un campo opcional define una gramática ambigua que no se puede analizar de forma correcta. La especificación de un registro necesario después de un campo opcional también define una gramática ambigua que no se puede analizar de forma correcta.
La redefinición de este esquema de archivo sin formato para que contenga tres campos de serie hijos en los que el campo1 sea necesario, el campo2 sea opcional y el campo3 sea opcional no soluciona el problema porque cuando se analicen los datos del archivo sin formato A,C, el campo1 será igual a A y el campo2 será igual a C. De nuevo, la gramática del esquema es ambigua porque este no sería el resultado deseado; el resultado deseable sería que el valor C se asignara al campo3. La especificación de un registro necesario seguido de dos registros opcionales también define una gramática ambigua.