Мне нужно несколько советов о том, как создавать вложенные шаблоны с помощью библиотеки StringTemplate и Java.
Поэтому моя цель - создать файл XML, аналогично следующему:
<contacts>
<friends>
<close_friends>
<close_friend>friend1</close_friend>
<close_friend>friend2</close_friend>
...
</close_friends>
<acquaintances>
<acquaintance>Acquaintance1<acquaintance>
<acquaintance>Acquaintance2<acquaintance>
...
</acquaintance>
</friends>
<colleagues>
<colleague>Colleague1</colleague>
<colleague>Colleague2</colleague>
....
</colleagues>
</contacts>
Тем самымЯ планирую использовать StringTemplate в качестве языка шаблонов (https://theantlrguy.atlassian.net/wiki/spaces/ST/pages/1409116/Five+minute+Introduction) и Java в качестве языка программирования.
Я хотел бы не помещать все в один файл шаблона, а разбивать его на части:
Я хочу иметь основной шаблон contacts.st (g):
<contacts>
<friends>
<close_friends>
$close_friends:close_friend(); separator="\n"$
</close_friends>
<acquaintances>
$acquaintances:acquaintance(); separator="\n"$
</acquaintance>
</friends>
<colleagues>
$colleagues:colleague(); separator="\n"$
</colleagues>
</contacts>
А для close_friends , коллег и знакомых Я хочу иметь отдельные шаблоны / группы (close_friend.st (g); colleague.st (g); и acquaintance.st (g)).
Я представляю (например) close_friend.st (g)чтобы выглядеть примерно так:
<close_friend>$friend.name$</close_friend>
Итак, мой первый вопрос: использую ли я для этого StringTemplates или StringTemplateGroups? Я видел людей, использующих оба метода очень схожим образом, поэтому я не уверен, что взять.
Также я не совсем уверен, как передать информацию из основной темыПишите contact.st (g) своим дочерним элементам, например close_friends.st (g), потому что я хочу, чтобы шаблон close_friends.st (g) выполнялся для каждого члена списка (который содержит близких друзей) в моем основном шаблоне.