configurationengine/doc/plugins/templateml-plugin/templatemlplugin.rst
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
permissions -rw-r--r--
Adding EPL version of configurationengine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
User guide for Template Configuration File Markup Language (TemplateML) Plugin
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
------------------------------------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
Introduction
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
'''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
This page describes how to use and configure Template Configuration File Markup Language 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
(TemplateML) plugin fo ConE. TemplateML is one of the implementation mapping languages for
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
Configuration Markup Language (ConfML). This plugin is used to generate arbitrary text file
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
formats. It doesn't have a specific extension or encoding. Currently 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
this language uses `Jinja 2 template engine <http://jinja.pocoo.org/2/>`_ to generate 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
output files.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
Templates are based on Jinja syntax and semantics that are described in detail `Jinja 2 Template Designer Documentation <http://jinja.pocoo.org/2/documentation/templates>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
One important concept in Jinja is `template inheritance <http://jinja.pocoo.org/2/documentation/templates#template-inheritance>`_, which means that you can overwrite only specific blocks within a template, customizing it while also keeping the changes at a minimum.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
Templateml plugin supports also `XML Inclusions (XInclude) <http://www.w3.org/TR/xinclude/>`_ 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
that allows a mechanism for merging XML documents. By writing inclusion tags in a "main" 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
document it automatically includes other documents.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
TemplateML files are executed by default in **normal** :ref:`invocation phase <implml-common-invocation-phase>`.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
Template Configuration File ML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
The TemplateML syntax is a extension of Configuration markup language (confml). The term in confml for this extension 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
is implementation method language (implml), which in TemplateML case is a xml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
All input values, excluding template and filter elements text content, can be given as ConfML refs.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
  * Namespace: ``http://www.s60.com/xml/templateml/1``
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
  * File extension: ``templateml``
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
.. note::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
   More information about :ref:`file extensions <implml-file-extensions>`. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
TemplateML Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
...................
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
The TemplateML model is drawn out as a uml model in below picture.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
  .. image:: templateml.jpg
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
.. note::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
   TemplateML supports also common ImplML elements. More information about :ref:`ImplML elements <implml-common-elements>`. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
templateml element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
The root element of the templateml file is always templateml, which defines the xml namespace (xmlns) 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
to http://www.s60.com/xml/templateml/1 in the current version. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
**templateml example**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
  <templateml xmlns="http://www.s60.com/xml/templateml/1">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
desc element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
Description element's content is not used in output file generation, but it can be used to describe temlplateml file.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
**desc example**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
  <desc>Description field text</desc>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
output element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
Output element describes how one output file is generated. Output has one mandatory attribute 'file' that defines filename for output file. If you want to generate output file to some other than default folder, it can be done by defining a output directory to 'dir' attribute. Default encoding for output file is 'UTF-8', if some other encoding is wanted, it can be defined by 'encoding' attribute.  This encoding should be one of the standard Python codecs encoding (see http://docs.python.org/library/codecs.html#standard-encodings).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
Template element is mandatory child element for output element. One output element can have only one template element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
Output element can also contain optional filter elements that are specific just for this output file. Global filters that are common for all output files should be defined under root templateml element. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
**output example**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
  <output file="my_output.txt" encoding="UTF-8" dir="output">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
    <template>Hello world!</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
    <filter name="filter1">lambda a,b: a+b</filter>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
    <filter name="filter2">lambda a,b: a*b</filter>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
  </output>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
For unicode transformation formats, control over the BOM is provided by the attribute ``bom``.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
This attribute defines whether the BOM is written to the output or not. If the attribute is not
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
defined, the default behavior of the encoding is used (i.e. BOM is written for UTF-16, but not for UTF-16-BE,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
UTF-16-BE or UTF-8). For encodings where the BOM makes no sense (e.g. ASCII), the attribute does nothing.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
**Examples**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
    <output file="test.txt" encoding="UTF-8" bom="true">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        <template>test</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
    <output>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
    <output file="test.txt" encoding="UTF-8" bom="false">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        <template>test</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
    <output>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
template element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
****************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
Template can be defined in template element or in external file. If both are defined file attribute overwrites. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
**template example 1:**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
  <template>Some Jinja template goes here</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
Notice that if you want to define create xml output files and you don't want to encode special characters you can use CDATA section http://www.w3schools.com/xmL/xml_cdata.asp. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
  <template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
  <![CDATA[
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
  <xml name="xml temp">Some Jinja xml template</xml>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
  ]]>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
  </template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
**template example 2:**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
  <template file="../../templates/template.txt"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
  <template file="${feat1.tempfile_setting}"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
With template's file attribute template is defined relatively to templateml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
filter element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
With filter element you can define custom filters. Custom filters are just regular Python functions that take the left side of the filter as first argument and the the arguments passed to the filter as extra arguments or keyword arguments. Filter element has mandatory 'name' attribute that defines the name of the filter. Name is used in template to refer to that filter. Filter can be defined in filter element or in external file. If both are defined file attribute overwrites. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
`Jinja has built-in filters <http://jinja.pocoo.org/2/documentation/templates#builtin-filters>`_ (e.g. capitalize, replace, trim, urlize, format, escape) that can be utilized without any extra definitions templateml file.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
**filter example**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
  <filter name="minus">lambda a,b: a-b</filter>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
With filter's file attribute filter is defined relatively to templateml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
Variables
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
+++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
The TemplateML plugin passes variables to the templates you can mess around in the template. Every feature has 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
following attributes:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
 * _name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
 * _namespace
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
 * _value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
 * _fqr 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
 * _type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
Currently TempleML plugin passes features in three different structure: feat_tree, feat_list and configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
feat_tree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
+++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
Variable 'feat_tree' contains features in a tree structure. It allows easy access to features attributes, 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
when feature explicitly known: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
.. literalinclude:: templateml_example2.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
feat_list
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
Variable 'feat_tree' contains features in an array and allows easy access to all features e.g. in loops:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
.. literalinclude:: templateml_example1.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
Generates to output file e.g following content:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
.. literalinclude:: templateml_example1_result.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
Configuration object that is defined ConE API can be accessed also inside template.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
    <template>Configuration name: {{ configuration.get_path() }}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
    {% for feature in configuration.get_default_view().get_features('**') %}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
    {{ feature.fqr }}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
    {% endfor %}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
    </template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
Examples
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
An example of templateml file, that generates two output files, utilizes XInclude and defines two custom filters:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
.. literalinclude:: templateml_example0.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
XSD
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
'''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
Download: :download:`templateml.xsd </xsd/templateml.xsd>`
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
FAQ
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
This will be updated based on the questions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220