ArcFi,
Я тогда с самого начала расскажу.
Программа решает нестационарные гидродинамические задачки.
Данный тип файлов используется для запуска расчета (входные параметры), и для сохранения результатов (каждые 100-1000 шагов) и последующей обработки / рисования картинок.
Структура, которую надо хранить, это один временной шаг. Она включает в себя массив вихрей (x y интенсивность), массив тепловых элементов (x y интенсивность), еще несколько аналогичных массивов точек (не буду вдаваться в подробности), и несколько тел. Это нулевой уровень. У нулевого уровня есть еще набор "атрибутов", например текущее время, число Рейнольдса, гравитация и еще несколько параметров. Атрибутов всего штук 15, их набор меняется только при добавлении нового функционала, крайне редко.
Под первым уровнем дерева я имею в виду N тел. Их количество может варьироваться от задачи к задаче. У каждого тела также есть атрибуты. Их штук 10, включая массу и координаты начала, и они тоже не меняются.
Такие файлы генерируются в количестве ~1000 штук на задачку. По 2-3 метра файлик
Я их смотрю, строю картинки, потом удаляю. Некоторые избранные моменты сохраняю на долгую память. Именно поэтому хочется на один шаг иметь один файл. Что касается массивов (гипотетически dat), то их у меня не больше N+4 штук, парочка иногда пустует. Тел обычно 1-3, XML получается один для каждого шага по времени.