configurationengine/doc/plugins/templateml-plugin/templatemlplugin.rst
author m2lahtel
Wed, 08 Sep 2010 12:20:56 +0300
changeset 4 0951727b8815
parent 3 e7e0ae78773e
permissions -rw-r--r--
Updated to 1.2.13 release
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
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
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). By 'newline' attribute the output file's newline characters can be defined. The default value is 'unix' that use LF (Line feed, '\n', 0x0A) in output file. LF is used Unix-like systems and web applications. If output file has to use CR (Carriage Return) followed by LF (CR+LF, '\r\n', 0x0D 0x0A) as newline characters, 'newline' attribute should have value 'win'. CR+LF is used in non-Unix systems like DOS, Windows and Symbian OS.
0
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.
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    78
Output element can also contain optional filter and filters 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. 
0
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
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    84
  <output file="my_output.txt" encoding="UTF-8" dir="output" newline="win">
0
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>
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    88
    <filters>
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    89
    def filter3(a,b):
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    90
      return a-b
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
    91
    </filters>
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
  </output>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
For unicode transformation formats, control over the BOM is provided by the attribute ``bom``.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
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
    96
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
    97
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
    98
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
**Examples**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
.. code-block:: xml
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="true">
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
    <output file="test.txt" encoding="UTF-8" bom="false">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
        <template>test</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
    <output>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
template element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
****************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
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
   115
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
**template example 1:**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
  <template>Some Jinja template goes here</template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
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
   123
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
.. code-block:: 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
  <![CDATA[
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
  <xml name="xml temp">Some Jinja xml template</xml>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
  ]]>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
  </template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
**template example 2:**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
  <template file="../../templates/template.txt"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
  <template file="${feat1.tempfile_setting}"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
With template's file attribute template is defined relatively to templateml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
filter element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   144
With filter element you can define custom filters. Custom filters are Python lambda 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. 
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
`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
   147
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
**filter example**:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
  <filter name="minus">lambda a,b: a-b</filter>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
With filter's file attribute filter is defined relatively to templateml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   156
filters element
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   157
**************************
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   158
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   159
With filters element you can also define custom filters. These can be any 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. Function name is used to refer to the filter. Filters can be defined in filters element or in external file. If both are defined file attribute overwrites. 
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   160
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   161
**filters example**:
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   162
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   163
.. code-block:: xml
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   164
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   165
  <filters>
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   166
  def sum(a,b):
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   167
    return a+b  
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   168
  </filters>
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   169
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   170
With filters's file attribute filter is defined relatively to templateml file. 
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   171
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
Variables
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
+++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
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
   176
following attributes:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
 * _name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
 * _namespace
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
 * _value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
 * _fqr 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
 * _type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
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
   185
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
feat_tree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
+++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
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
   190
when feature explicitly known: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
.. literalinclude:: templateml_example2.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
feat_list
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
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
   199
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
.. literalinclude:: templateml_example1.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
Generates to output file e.g following content:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
.. literalinclude:: templateml_example1_result.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
Configuration object that is defined ConE API can be accessed also inside template.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
    <template>Configuration name: {{ configuration.get_path() }}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
    {% for feature in configuration.get_default_view().get_features('**') %}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
    {{ feature.fqr }}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
    {% endfor %}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
    </template>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
Examples
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
4
0951727b8815 Updated to 1.2.13 release
m2lahtel
parents: 3
diff changeset
   225
An example of templateml file, that generates three output files, utilizes XInclude and defines a number of custom filters:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
.. literalinclude:: templateml_example0.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
FAQ
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
This will be updated based on the questions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235