There are a number of functions in Murano Conductor that can be used in XML DSL:
<true/>
- returns True<false/>
- False<null/>
- None<text><foo/></text>
- converts body to string(str(foo()))
list - form list (array) object -
<list> <item>item1</item> <item>item2</item> <item><true/></item> </list>
equals to
["item1", "item2", True]
map - form dictionary (map) object
<map> <item name="key1">value1</item> <item name="key2">value2</item> </map>
equals to
{ "key1": "value1", "key2": "value2" }
For both list and map functions names of item nodes ("item" in examples above) is irrelevant and can be changed to better match structure usage. For example<map> <set name="key"><null/></set> </map>
Structures can be nested:
<list> <item> <map> <item name="name 1">value 1</item> <item name="name 2">value 2</item> </map> </item> <item> <map> <item name="name 1">value 3</item> <item name="name 2">value 4</item> </map> </item> </list>
equals to
[ { 'name 1': 'value 1', 'name 2': 'value 2' }, { 'name 1': 'value 3', 'name 2': 'value 4' } ]