Один классный способ создания формата конфигурации - это внедрение языка сценариев.
Это дает вам парсер бесплатно и дает возможность генерировать данные на лету или определять переменные, которые используются повторно:
Рассмотрим примеры xml против уродливого языка псевдо-сценариев:
<InputPoints>
<Point>
<x>1.0</x>
<y>1.0</y>
</Point>
<Point>
<x>1.0</x>
<y>2.0</y>
</Point>
<Point>
<x>1.0</x>
<y>3.0</y>
</Point>
<Point>
<x>1.0</x>
<y>4.0</y>
</Point>
<InputPoint>
против
for(i = 1; i <= 4; ++i) {
InputPoint(1, i);
}
или, возможно,
<Username>allanballan</Username>
<Accountname>allanballan</Accountname>
<HomeDirectory>/home/allanballan</HomeDirectory>
против
user = "allanballan";
Username = user;
Accountname = user;
HomeDirectory = "/home/"+user;
Первый пример сжимает список точек в несколько операторов, второй пример показывает, как удалить множество избыточных данных, используя временную переменную.
Популярным языком для подобных ситуаций является Lua . Как сопоставить язык сценариев с конфигурацией, зависит от интегратора, но он действительно мощный и предоставляет бесплатный анализ и проверку типов.