[[PageOutline]] = Template Engine = Основное назначение - обработка XML/HTML документов для использования в серверных приложениях. == Передача данных из приложения == Для передачи данных из приложения используется механизм Holder-ов. Его необходимо расширить функциями метапрограммирования для обеспечения доступа к структурированной информации. К таковой относятся: - простые типы, доработок не требуется; - записи, необходима возможность получения значений отдельных полей, что требует наличия механизма описания их типов и способов получения данных (прямой доступ либо вызов функции); - коллекции, необходима возможность обхода всех элементов. Как начальный шаг (и весьма полезный в последующем) можно релизовать перечисленные механизмы для JSON, а потом уже расширять Ada методами описания свойств типов и реализовывать мета-компилятор. == Синтаксис шаблонов == Для конструкций языка шаблонов используется пространство имён http://matreshka.forge.ada-ru.org/template, во всех примерах отображаемое на префикс ''mtl'': {{{#!xml ... }}} Для подстановки значений объекта в шаблон используется синтаксис (в последующем можно будет использовать выражение, синтаксис при этом не изменится): {{{ ${name} }}} == Синтаксис выражений ==