Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!

Интересно, насколько далеко можно уйти с вашим DSL. Получится ли описать им практически всю предметную область без написания кода, или в какой-то момент всё равно придётся подключать пользовательские функции?
Дальше, чем кажется. Есть <compute> — считает из уже готовых значений, на нём держатся контрольные суммы вроде Луна и IBAN. Есть <gen type="formula"... — любые расчёты прямо в конфиге, с полусотней функций. И есть prev() — ссылка на предыдущую строку/генерацию, отсюда берутся последовательности и накопления:
<gen type="formula" expr="prev(Balance, 10000) - Amount"/>А если своя логика всё-таки нужна — её можно вынести наружу через <gen type="http"...: ваш сервис остаётся вашим кодом, движок просто к нему обращается.
Данные без противоречий. Свободный формат вывода