6.1. Форматы на основе грамматики
Одной из характеристик, которая делает XML столь устойчивым к неправильным данным, является то, что этот формат тщательно и формально определен с использованием грамматики в форме Бэкуса–Наура (BNF – Backus-Naur Form). Многие синтаксические анализаторы созданы напрямую из этой грамматики с помощью таких средств, как JavaCC или Bison. Смыслом подобных инструментов является чтение произвольного входного потока и определение того, удовлетворяет он грамматике или нет.
Если XML не подходит в качестве формата файла, по–прежнему можно воспользоваться надежным решением на базе синтаксического анализа. Однако тогда придется написать свою собственную грамматику для формата файла, а затем для ее чтения разработать собственный синтаксический анализатор. Собственное решение требует гораздо больше работы, чем простое использование готового синтаксического анализатора XML. Однако это будет гораздо более надежное решение, чем простая загрузка данных в память без формальной проверки их на соответствие грамматике.