configurationengine/doc/configurationml085.rst
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
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
#######################################
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
Configuration ML Specification Document
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
#######################################
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
**Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).** All rights reserved. This component and the accompanying materials are made available under the terms of "Eclipse Public License v1.0" which accompanies this distribution, and is available at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
==================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
Table of contents:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
==================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
.. contents::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
===================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
1. Document Control
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
===================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
1.1 References
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
--------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
#. Customization tool interoperability Requirements Specification
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
   http://www8.connecting.nokia.com/nmp/msw/tsw/series60/series60dm.nsf/WebAllByID/XXXJ16313-EN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
#. XML Inclusions (XInclude) Version 1.0, W3C Recommendation, 20 December 2004
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
   http://www.w3.org/TR/xinclude/
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
#. Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
   http://www.w3.org/TR/2004/REC-xml-20040204
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
#. Modularization of XHTML, W3C Recommendation
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
   http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
#. XML Linking Language (XLink) Version 1.0, W3C Recommendation, 27 June 2001
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
   http://www.w3.org/TR/xlink/
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
#. XML Path Language (XPath) Version 1.0, W3C Recommendation, 16 November 1999
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
   http://www.w3.org/TR/xpath
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
#. XML Schema Part 2: Datatypes Second Edition, W3C Recommendation, 28 October 2004
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
   http://www.w3.org/TR/xmlschema-2/
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
#. XHTML(TM) 2.0 - W3C Working Draft 22 July 2004
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
   http://www.w3.org/TR/xhtml2/
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
#. Extending and Versioning XML Languages with XML Schema
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
   http://www.pacificspirit.com/Authoring/Compatibility/ExtendingAndVersioningXMLLanguages.html
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
#. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
#. RELAX NG Specification, OASIS Committee Specification, 3 December 2001
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
   http://www.relaxng.org/spec-20011203.html
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
#. Uniform Resource Identifiers (URI): Generic Syntax, August 1998
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
   http://www.ietf.org/rfc/rfc2396.txt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
#. S60 Customization Tool
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
   http://s60wiki.nokia.com/S60Wiki/S60_Customization_Tool
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
1.2 Glossary
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
.. glossary::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
   Central Repository
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
      `Symbian OS <http://s60wiki.nokia.com/S60Wiki/Symbian_OS>`_ service that provides a user interface to allow one or more clients to open repositories, and to provision and retrieve information from those repositories.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
   Configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
      Specific values for a collection of settings. Used to configure terminal SW for certain platform release, product or trade customer (for example operator). In Configuration ML the root element of the language and includes also feature and setting definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
   Configuration element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
      Defines a `configuration <http://s60wiki.nokia.com/S60Wiki/S60_Terminal_SW_Configuration>`_  capability of software. Is used to define using one or more settings or features.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
   Configuration enabler
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
      A software functionality that at runtime implements configurability for one or more setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
   Configuration Tool
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
      Tool used for configuring SW build (for example variant)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
   ConfML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
      Configuration Markup Language, language defined in this document
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
   Customization Tool
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
      S60 specific tool to configuring SW build (for example variant). Replaced by Configuration Tool. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
   Extension policy
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
      A mechanism for controlling how sequence item-settings for single setting in multiple configurations are handled.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
   Feature
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
      A collection of related settings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
   Group
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
      For structuring settings in view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
   Item-setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
      A single item in a data of a sequence setting. Each item-setting defines values for sub-settings. For example, every contact in a data for phone book setting is an item-setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
   lowerCamelCase
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
      Practice of writing `compound words <http://en.wikipedia.org/wiki/Compound_noun_and_adjective>`_ or phrases in which the words are joined without `spaces <http://en.wikipedia.org/wiki/Whitespace_%28computer_science%29>`_ and are `capitalized <http://en.wikipedia.org/wiki/Capitalization>`_ with the exception of the first word within the compound (http://en.wikipedia.org/wiki/CamelCase).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
   Option
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
      Allowed value for a setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
   Restore Factory Settings (RFS)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
      Feature for reinitialising device data to factory settings stored on ROM.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
   Setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
      Defines a single configurable element (for example mailbox name).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
   Setting implementation
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
      Information about platform specific implementation. Used when building a configuration. Specific for the used configuration enabler
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
   Sub-configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
      A configuration included in other configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
   Sub-setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
      Individual setting data elements that are available for each item-setting of a sequence data. For example, phone number field of every contact item-setting is a sub-setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
   Value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
      Defines a value of a setting. Single customizable value of a certain setting. For example Mailbox name.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
   Variant 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
      A specific kind of configuration. Term used in Customization Tool for customer specific values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
   View
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
      For rearranging settings into new structure and redefining their properties regardless how they where defined originally.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
===============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
2. Introduction
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
===============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
2.1 Purpose and scope
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
---------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
Configuration ML (later in document 'Configuration ML' or 'ConfML') is a XML-based markup language (that is, an XML application) for defining SW configuration elements and configuration data of SW product. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
Configuration ML is an evolution of XML language designed and used for S60 Customization Tool. Full compatibility with the tools already supporting so-called variant data files of earlier format was first seen as important. However, it was afterwards seen that compatibility would only make Configuration ML more complicated than needed. Also new features of such as mapping Boolean settings to bitmasks key in Central Repository and enabling incremental definition of sequences would have not been supported by old format. Therefore The Configuration ML is not compatible with variant features or variant data XML formats used by S60 Customization Tool. On the other hand it is possible to develop tools that support reading and/or writing both formats. Configuration ML language itself is not S60 specific and therefore can be used also outside S60.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
2.2 Main concepts
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
-----------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
The Configuration ML consists of four plus one main components as shown in Figure 1.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
.. image:: images/configurationml085-f1.gif 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
Figure 1 The main components of Configuration ML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
Configuration ML is primarily used to define configurations, features, settings, and data. The fourth component is Restore Factory Settings component, rfs. All these components are optional. Configuration is the top level concept of the language. It groups together relevant configuration features and values for them. Features consist of settings. Configurations are typically defined incrementally, and therefore configuration can be defined by means of any number of other configurations. Chapter 3 explains in detail the main concepts of the language.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
Setting implementation definitions are defined using separate languages, which are defined in separate documents. One of the main goals of Configuration ML is to separate the logical feature definitions from the actual implementation specific details. Setting implementation definitions contain all the required logic to convert values in data part to implementation specific values that are used either at ROM image creation time or by the terminal software at runtime.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
2.3 Applicability
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
-----------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
This specification defines how Configuration ML can be used to define all SW related configurability aspects of a software system. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
Configuration ML is most typically used for those local or global functionality and user experience related configuration elements that are used for localization, differentiation and customization purposes.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
When defining configuration elements in using Configuration ML suitable abstraction level should be selected. In complex cases it might be better to use for example domain specific language and external file to describe the fine details, and only then have selection of an external file as a setting in Configuration ML. This approach also enables to build dedicated (possible graphical) tools to define the internal details of the element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
2.4 Namespace
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
-------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
All the elements of Configuration ML are defined in a single versioned namespace called http://www.s60.com/xml/confml/2 . The namespace is updated for major, possibly non-backward compatible versions only. New minor versions must maintain compatibility. The root element of the document, configuration, must contain an xmlns declaration for this namespace. None of the attributes in this specification belong to any namespaces and therefore are never prefixed.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
  <configuration xmlns="http://www.s60.com/xml/confml/2" />
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
When elements of Configuration ML are stored in a separately included file, namespace needs to be redefined. Refer to chapter 3.2.3 for more information on how to use multiple files to define a configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
The setting implementation information is defined in implementation specific namespace.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
The namespace of Configuration ML must not be used for any other elements than defined in this document. All extensions must be therefore defined in some other namespace.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
2.5 MIME types and file name extensions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
---------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
The MIME type for XML files of Configuration ML is 'text/application+xml'. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
It is recommended that all Configuration ML files use file name extension '.confml' (all lowercase) on all platforms.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
The file name extensions of setting implementation XML files are implementation specific.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
2.6 Reuse and Extensibility
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
Configuration ML relies heavily on other existing XML language. Following XML languages are used one way or another: XPATH [6], XInclude [2], and XML schema [7].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
XPath is a language for addressing parts of an XML document. In support of this primary purpose, it also provides basic facilities for manipulation of strings, numbers, and Booleans. XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax. Refer to chapter 3.4 and 3.3.2 for more information on XPath expressions are used in configuration ML.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
XInclude is a standard for assembling XML instances into another XML document through inclusion. It enables larger documents to be dynamically created from smaller XML documents without having to physically duplicate the content of the smaller files in the main file. Refer to chapter 3.2.3 for more information on working with multiple files.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
Configuration ML itself is designed to be extensible meaning that it can be further developed by defining new elements in own namespace.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
2.7 Validation and usage
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
This document is the official definition for the Configuration ML XML language.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
All Configuration ML documents must be valid XML 1.0 documents. The applications and tools supporting Configuration ML are assumed to check the well-formedness of the Configuration ML document instances.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
Every Configuration ML document should have XML declaration with version as the first thing in the file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
The root element of every Configuration ML document must be configuration. The version attribute for this element must be specified as '1.0'.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
  <?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
    <configuration xmlns="http://www.s60.com/xml/confml/2" version="1.0">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
    <!-- the body of the document -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
    </configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
2.8 Localization
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
----------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
As all XML documents, Configuration ML supports both UTF-8 and UTF-16 encodings. It is recommended to declare used encoding with XML declaration. This declaration is mandatory when other encoding than UTF-8 or UTF-16 is used. By default, UTF-8 encoding should be used, in case there is no good reason to do otherwise.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
  <?xml version="1.0" encoding="UTF-8"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
  <!-- the rest of the document ->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
Any characters from Unicode character set can be written in XML using XML Numerical Character Reference syntax: &#<decimal_character_code>; or &#x<hex_character_code>; .  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
======================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
3. Overview
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
======================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
3.1 Components of Configuration ML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
----------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
Figure 2 depicts the main elements of Configuration ML language and how they map to implementation elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
.. image:: images/configurationml085-f2.gif 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
Figure 2 The main elements of Configuration ML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
The elements shown in yellow are part of the Configuration ML. The elements shown in blue are implementation specific elements. For most of the Configuration ML elements shown in the Figure 2 there is a corresponding XML element. Those elements are defined in chapter 6. The elements named inside brackets represent either feature or setting specific XML elements as explained in chapter 3.4. The cardinalities of the elements are shown next to the connecting lines. The proximity of the cardinality marking defines the reading direction, for example "configuration can have any number of features".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
3.2 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 is the top level concept in Configuration ML. Configuration has three main roles:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
1. Defines configuration elements in terms of features and settings (chapter 3.3)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
2. Defines views for visually rearranging settings (chapter 3.5)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
3. Defines data (values) for settings (chapter 3.4)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
Any configuration can have all the above rules or just one of them. Configuration can also just contain other configurations as explained in chapter 3.2.2.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
3.2.1 Release specificity
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
Configuration ML is agnostic to versioning of software. Managing multiple versions of software component(s) that have varying configurability capabilities will typically require multiple (independent) Configuration ML documents. Release element of meta element can be used to identify the release of a software component, platform or product in question if required.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
3.2.2 Hierarchical configurations
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
Configurations are not typically defined in isolation, but they are parts of other configurations. To support this configuration can contain any number of other configurations (also called 'sub-configurations') as shown in the Figure 2. This enables features (including their settings), views, and data of a configuration to be defined using other configurations, which all can also be used independently of the including configurations when needed. The containment hierarchy of configurations would typically follow software or product architecture, or/and organisation developing the software or product.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
For example when defined according to software architecture of a terminal product, there would be a 'master' configuration for the product itself that could include configurations of manufacturer specific platforms. These platform configurations could itself consist of configurations defining each architecture domain and eventually each subsystem and component in the platform. Each of these component configurations could define the relevant features, settings, and default values, while including configurations typically refine the values further.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
Each of the configurations can be created and used independently, in case they contain all the required includes so that referred setting definitions can be found. In addition they might override some or all the default values of the settings defined in included configurations.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
Please note that only data (that is, setting values) of the contained configurations can be overridden but not views, features, or settings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
As a special case data of sequential settings can also be defined incrementally. In this case configuration extends (as a contrary to overriding) data of a setting that is defined in any of the included sub-configurations.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
3.2.3 Structuring configurations to files
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   238
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   239
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
Typically features need to created and maintained by several persons/organisation and therefore storing all feature definitions into one file would cause problems. The definitions of a configuration can be split to any number of XML files by using include elements of XInclude specification [2]. Therefore it is possible to have each of the sub-configurations in own files. The only constraints are that every included file itself must be a complete valid Configuration ML XML document (that is, with configuration as the root element). When using multiple Configuration ML files it is also important to make sure that every feature and setting is defined only once. Refining features or setting is not allowed except when using view definitions (see chapter 3.5).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
When under single root configuration there exists multiple configurations with each own values, the priority of the values depends on the order: values later in XML document tree traversal order overrides any earlier values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
An example hierarchy of files is shown in Figure 3.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
.. image:: images/configurationml085-f3.gif 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
Figure 3 An example hierarchy of configuration files
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
In the example, there is two full configurations, one for product family and other for product variant (customised by operator). These configuration are composed by using includes. In a way, product family configuration is a subset of product variant configuration, and thus product variant could also include product family configuration and refine it further with product and variant specific definitions. However having each of the stakeholder represented as an a independent configuration, allows composing any kind of configuration more freely (e.g. free ordering, selecting only a subset). The order of inclusions defines also the override order, effectively acting as a method to define the inheritance order of configurations.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
Only a subset of XInclude specification is required[1] to be supported with Configuration ML. First of all, support for inclusion of local resources with relative URI is required. All included resources are to be parsed as xml and therefore parse attribute is not required. Also, support for xi:fallback element is not required. Refer to chapter 4.5 for complete list of supported attributes of xi:include element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
.. [1] "Required" means here that some tools might choose to support more that what is required by this specification but must not assume the same from other tools.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
3.3 Features and settings
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
-------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
3.3.1 Defining features and settings
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
Each configuration defines zero or more configuration elements in terms of features and settings. A feature groups together related settings. One setting describes a certain configuration capability implemented in software. Every feature must be identified uniquely using ref attribute. Each feature must be unique and defined only once in configuration including any sub-configurations included in it. In the same way every setting must be uniquely identified inside a feature. Once feature or setting is defined, it cannot be anymore redefined or extended elsewhere in the configuration.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
3.3.2 Linking implementation to settings
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
----------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
Implementations of settings are defined in a separate file(s) as already shown in Figure 2. No implementation is defined on feature level but every setting can and should have its own implementation. Relative XPATH location path definitions are used to link the setting implementations to the settings. To create a location path that is unique in the configuration the ref path of the feature and setting is concatenated together.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
3.4 Data
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
--------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   271
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   272
3.4.1 Defining values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   273
^^^^^^^^^^^^^^^^^^^^^
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   274
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   275
One of the main roles of configuration is to define values for settings. Values can be defined only for settings that have been declared in the configuration (including any sub-configurations). Although there can be only one data element containing the values in a configuration, all sub-configuration can also contain own data elements and therefore also values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   276
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   277
When values can be defined for settings in multiple places inside a configuration, it is important to understand the priority rules for interpreting them. One of the main use cases of Configuration ML is to allow overriding values of settings that were already defined in the included configuration. This is accomplished by utilizing normal xinclude expansion rules. In principle, include statements found from a configuration are expanded so that included document becomes a part of the including document. Prioritization of overrides is done by ordering the inclusions properly in the configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   278
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   279
Figure 4 shows example configuration hierarchy on top, and the processed (expanded) version on the bottom. In this example, value 3 is applied to setting A/B.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   280
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   281
.. image:: images/configurationml085-f4.gif
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   282
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   283
Figure 4 Priority of values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   284
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   285
As a special case, data of sequential settings can also be defined incrementally. In this case configuration can optionally extend (as a contrary to overriding) data of a setting that is defined in any of the included sub-configurations. This behaviour is controlled using extension policy of the setting data element (chapter 6.9). The extension can either append the new data to the end of existing data or prefix the existing data. If every configuration in the Figure 4 would contain value with append policy, then the actual data of that setting would be constructed in order of inclusions; first item(s) would be used from sub3.confml and the last items from the main configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   286
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   287
Most of the settings defined in configurations are meant to be configured on product or customer level. In order to allow defining the value of read-only attribute, values defined for settings that are defined directly in the same configuration do not need to obey read-onlyness statement of setting. Essentially this means that read-only settings can be modified locally in the defining configuration (which is usually in the same file as the setting definition), in other configurations (usually in other files) it is locked for modifications.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   288
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   289
A configuration can directly define value at most only once of each setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   290
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   291
3.4.2 Linking settings and values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   292
---------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   293
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   294
Values of a configuration are defined using element. Values can be defined for zero or more settings. Relative XPATH[6] paths are used to link values to settings on two levels: first on feature level and then on a setting level. See Figure 5 for illustration of how ref attributes are used.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   295
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   296
.. image:: images/configurationml085-f5.gif 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   297
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   298
Figure 5 Linking settings and values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   299
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   300
Elements under data elements that do not match to any setting should be preserved during all processing but can be excluded from validation.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   301
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   302
3.5 Views
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   303
---------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   304
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   305
View definitions in configurations can be used to visually  rearrange selected features and settings into new structure regardless how they where defined originally. By default settings are clustered according to features they are defined in but with views this can be overridden by use of group elements. Support for hierarchical groups is not limited.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   306
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   307
Any number of views can be defined in a configuration (including its sub-configurations) and it is up to tool or user of the tool to choose the active view if and when needed. Views are useful for creating for example terminal product specific views that show only the relevant settings and hide all the others. In addition to grouping selected features and settings, additional setting and option definitions can also be defined. This can be used for example to provide additional documentation for the user or to allow only restricted set of values to be defined. These additional definitions must never change the original meaning of the settings but can only restrict valid values even further from what was defined in the original setting definition. Therefore set of valid values according to the view must be a subset of valid values, as defined by the original setting definition. When validating data it is possible to use these additional restrictions in the active views also. As an example, if setting was originally defined to accept only values from 3 to 100, a view can add additional constraint that only allows odd numbers between 50 and 100. However, it would be illegal for view to define range from 2 to 110.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   308
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   309
It is important to note that view only affects how the features, settings, and values are visualized and optionally validated. The view must not have any effect to meaning (including type and data reference) of it or existence of data, when using data for example for building a configuration. Therefore all constraints and dependencies in original setting definitions apply whether or not the features and/or settings are part of the active view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   310
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   311
================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   312
4. Common definition conventions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   313
================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   314
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   315
This document defines Configuration ML language and its semantics. This section describes the conventions used in Configuration ML. These conventions are based on [4].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   316
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   317
4.1 Structure
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   318
-------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   319
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   320
The language definition is structured in the following way:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   321
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   322
- An abstract definition of the elements, attributes, and content models, as appropriate.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   323
- A sub-section for each element; These sub-sections contain the following components:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   324
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   325
 - A brief description of the element,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   326
 - A definition of each attribute or attribute collection usable with the element, and
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   327
 - A detailed description of the behaviour of the element, if appropriate.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   328
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   329
Examples are provided with most of the definitions. Please note that they typically only show the element and attribute relevant for the definition in question, and therefore should not be taken as complete Configuration ML examples. More complete examples are provided in implementation markup language specifications.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   330
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   331
4.2 Syntactic Conventions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   332
-------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   333
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   334
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   335
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   336
   - - expr ?
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   337
     - Zero or one instances of expr are permitted.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   338
   - - expr +
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   339
     - One or more instances of expr are required.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   340
   - - expr *
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   341
     - Zero or more instances of expr are permitted.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   342
   - - a ; b
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   343
     - Expression a and b are required in no specific order.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   344
   - - a , b
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   345
     - Expression a is required, followed by expression b.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   346
   - - a | b
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   347
     - Either expression a or expression b is required.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   348
   - - a - b
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   349
     - Expression a is permitted, omitting elements in expression b.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   350
   - - parentheses
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   351
     - n is contained within parentheses, evaluation of any sub-expressions within the parentheses take place before evaluation of expressions outside of the parentheses (starting at the deepest level of nesting first).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   352
   - - defining required attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   353
     - When an element requires the definition of an attribute, that attribute name is followed by an asterisk (*).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   354
   - - defining the type of attribute values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   355
     - When a module defines the type of an attribute value, it does so by listing the type in parentheses after the attribute name.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   356
   - - defining the legal values of attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   357
     - When the legal values are defined for an attribute, it does so by listing the explicit legal values (enclosed in quotation marks), separated by vertical bars (|), inside of parentheses following the attribute name. If the attribute has a default value, that value is followed by an asterisk (*). If the attribute has a fixed value, the attribute name is followed by an equals sign (=) and the fixed value enclosed in quotation marks.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   358
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   359
4.3 Content Types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   360
-----------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   361
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   362
Minimal, atomic content models are defined for each element. These minimal content models reference the elements in the language itself. They may also reference elements in other languages upon which the language depends. Finally, the content model in some cases requires that text be permitted as content to one or more elements. In these cases, the symbol used for text is PCDATA[3]. This is a term refers to processed character data. Content type can also be ANY, meaning that any elements can be supported. A content type can also be defined as EMPTY, meaning the element has no content in its minimal content model.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   363
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   364
4.4 Attribute Types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   365
-------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   366
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   367
Following table lists definitions for all used XML attribute types. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   368
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   369
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   370
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   371
   - - Attribute Types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   372
     - Definition
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   373
   - - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   374
     - Character data [3]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   375
   - - IDREF
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   376
     - A reference to a document-unique identifier [3]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   377
   - - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   378
     - A name composed of only name tokens as defined in XML 1.0 [3]. All leading and trailing whitespace is removed but no whitespace is allowed within the value itself.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   379
   - - NMTOKENS
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   380
     - A whitespace separated list of NMTOKENs.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   381
   - - NUMBER
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   382
     - Sequence consisting only digits ([0-9]) [3]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   383
   - - URI
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   384
     - A Uniform Resource Identifier [12].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   385
   - - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   386
     - An XPATH [6] location path. Support for only relative element location paths defined in abbreviated syntax is required. Only subset of XPATH language is supported; refer to examples for details.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   387
   - - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   388
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   389
   - - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   390
     - Whitespace-replaced and collapsed strings as defined in XML Schema [7]. In addition to removing all leading and trailing whitespace, also all consecutive spaces, carriage returns, linefeeds and tabs within the value itself are replaced by a single space.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   391
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   392
4.5 Naming conventions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   393
----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   394
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   395
Element, attribute, and type names are composed of words in the English language, using the British English spellings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   396
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   397
Lower Camel Case (LCC) is used for naming attributes, elements, and types. Lower Camel Case capitalizes the first character of each word except the first word and compounds the name.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   398
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   399
=====================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   400
5. Common definitions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   401
=====================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   402
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   403
This chapter contains common attribute and element definitions used by elements in Configuration ML and setting implementation languages.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   404
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   405
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   406
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   407
   - - Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   408
     - Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   409
     - Content Model
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   410
   - - `elements supporting CommonAttrs <#_Common_attributes_(CommonAttrs)>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   411
     - id (NMTOKEN)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   412
     - N/A
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   413
   - - `meta <#_Meta_elements>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   414
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   415
     - id?; date?; owner?; editor?; status?; version?; platform?; product?; release?; customer?; origin?; target?; desc?; icon?; link*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   416
   - - `desc <#_The_desc_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   417
     - CommonAttrs, xl:href (URI), xl:title (CDATA)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   418
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   419
   - - `icon <#_The_icon_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   420
     - CommonAttrs, xl:href* (URI), xl:title (CDATA)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   421
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   422
   - - `link <#_The_link_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   423
     - CommonAttrs, xl:href* (URI), xl:title (CDATA)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   424
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   425
   - - xi:include
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   426
     - CommonAttrs, href* (URI)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   427
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   428
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   429
Elements starting with xi namespace prefix are defined in XInclude[2]. Only listed attributes are supported for those elements. The rest of the elements are defined in the following sections.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   430
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   431
5.1 Common attributes (CommonAttrs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   432
-----------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   433
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   434
The CommonAttrs attribute collection defines common attributes used by all Configuration ML elements. These attributes don't belong to any namespace and therefore must not be prefixed. These attributes are optional always.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   435
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   436
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   437
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   438
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   439
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   440
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   441
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   442
   - - id
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   443
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   444
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   445
     -  The identifier of an element. Not used within language for identification. If defined ) the id of an element must be unique within the user interface definition. Typically descriptive ids that describe the purpose of the element should be used.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   446
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   447
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   448
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   449
  <feature id="myfeatureid">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   450
   <setting id="thesetting"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   451
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   452
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   453
5.2 Meta elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   454
-----------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   455
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   456
The meta elements define common metadata for certain elements in configuration and setting implementation documents. The meta element is the parent for all other meta elements. Typically meta element is the first child of the root element. None of the meta elements have any attributes but all the content is defined as PCDATA.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   457
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   458
In addition to common elements the following meta specific elements are defined in this specification.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   459
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   460
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   461
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   462
   - - Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   463
     - Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   464
     - Content Model
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   465
   - - id
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   466
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   467
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   468
   - - date
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   469
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   470
     - PCDATA in the format CCYY-MM-DD\[z\|\(-\|+\)hh\:mm\]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   471
   - - owner
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   472
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   473
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   474
   - - editor
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   475
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   476
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   477
   - - status
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   478
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   479
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   480
   - - version
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   481
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   482
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   483
   - - platform
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   484
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   485
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   486
   - - product
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   487
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   488
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   489
   - - release
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   490
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   491
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   492
   - - customer
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   493
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   494
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   495
   - - origin
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   496
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   497
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   498
   - - target
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   499
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   500
     - PCDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   501
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   502
The date is defined according to data type 'date' of XML Schema [7]. UTC time zone can be defined with letter Z at the end of the date string. Other time zones are represented by their difference from UTC in the format +hh:mm or -hh:mm. If no time zone is defined then it is undefined. Meta element can be extended by defining new child elements in a separate namespace.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   503
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   504
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   505
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   506
  <configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   507
   <meta>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   508
    <date>2006-06-19</date>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   509
    <owner>John Smith</owner>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   510
    <editor>John smith Junior</editor>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   511
    <status>draft</status>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   512
    <platform>S60</platform>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   513
    <product>N99</product>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   514
    <release>3.9</release>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   515
    <desc>Reference configuration</desc>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   516
    <customer>MegaOperator</customer>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   517
   </meta>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   518
  </configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   519
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   520
5.3 The desc element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   521
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   522
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   523
The desc element can be used for description or documentation for any element. The data can be defined either as the content of the element or using xl:href attribute.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   524
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   525
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   526
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   527
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   528
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   529
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   530
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   531
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   532
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   533
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   534
     - Common attribute definitions defined in Common definitions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   535
   - - xl:href
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   536
     - URI
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   537
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   538
     - Used to define the location of external description or documentation.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   539
       From XLink [5].  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   540
   - - xl:title
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   541
     - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   542
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   543
     - Used to define title for the link defined using xl:href.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   544
       From XLink [5].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   545
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   546
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   547
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   548
  <group id="cameragroup">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   549
   <desc xl:href="file:howtoconfigurecamera.html" xl:title="Help"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   550
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   551
  <group id="someothergroup">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   552
   <desc>Configure the camera</desc> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   553
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   554
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   555
5.4 The icon element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   556
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   557
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   558
The icon element can be used to define graphical icon for an element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   559
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   560
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   561
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   562
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   563
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   564
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   565
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   566
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   567
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   568
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   569
     - Common attribute definitions defined in Common definitions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   570
   - - xl:href*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   571
     - URI
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   572
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   573
     - Used to define the location of the icon.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   574
       From XLink [5].  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   575
   - - xl:title
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   576
     - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   577
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   578
     - Used to define title for the link defined using xl:href.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   579
       From XLink [5].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   580
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   581
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   582
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   583
  <group id="cameragroup">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   584
   <icon xl:href="file:camera.svg" xl:title="icon"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   585
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   586
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   587
5.5 The link element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   588
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   589
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   590
The link element can be used to locate any external resource.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   591
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   592
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   593
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   594
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   595
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   596
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   597
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   598
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   599
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   600
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   601
     - Common attribute definitions defined in Common definitions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   602
   - - xl:href*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   603
     - URI
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   604
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   605
     - Used to define the location of the resource.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   606
       From XLink [5].  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   607
   - - xl:title
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   608
     - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   609
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   610
     - Used to define title for the link defined using xl:href.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   611
       From XLink [5].
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   612
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   613
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   614
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   615
  <group id="cameragroup">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   616
   <link xl:href="http://coolcameras.html" xl:title="camera shop"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   617
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   618
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   619
===================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   620
6. Configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   621
===================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   622
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   623
The Configuration ML is used define the configuration elements and values for them. The root element of the document is configuration element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   624
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   625
The elements and attributes included in this module are:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   626
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   627
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   628
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   629
   - - Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   630
     - Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   631
     - Content Model
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   632
   - - configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   633
     - CommonAttrs, xmlns (URI = " http://www.s60.com/xml/confml/2"), version (NMTOKEN = "1.0"), name (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   634
     - meta?; desc*; icon*; link*; xi:include*; feature*; view*; configuration*; data?; rfs?
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   635
   - - `feature <#_The_header_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   636
     - CommonAttrs, name (xs:token), ref* (XPATH), relevant (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   637
     - desc*; icon*; link*; setting*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   638
   - - `setting <#_The_include_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   639
     - CommonAttrs, relevant (xs:token), required (NMTOKEN), constraint (xs:token), readOnly (NMTOKEN), name (xs:token), type* (NMTOKEN), ref* (XPATH), minOccurs (NUMBER), maxOccurs (NMTOKEN), mapKey (XPATH), mapValue (XPATH)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   640
     -  desc*; icon*; link*; option*; setting*; xs:minInclusive?; xs:maxInclusive?; (line-break) xs:minExclusive?; xs:maxExclusive?; xs:pattern*; xs:minLength?; maxLength?; totalDigits?; property*; localPath*; targetPath*)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   641
   - - localPath
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   642
     - CommonAttrs, constraint (xs:token), readOnly (NMTOKEN), required (NMTOKEN), map (XPATH)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   643
     - desc*; icon*; link*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   644
   - - targetPath
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   645
     - CommonAttrs, constraint (xs:token), readOnly (NMTOKEN), required (NMTOKEN), map (XPATH)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   646
     - desc*; icon*; link*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   647
   - - `option <#_The_views_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   648
     - CommonAttrs, name* (xs:token), value* (CDATA), relevant (xs:token), map (XPATH)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   649
     - desc*; icon*; link*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   650
   - - `property <#_The_property_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   651
     - CommonAttrs, name (xs:token), value (CDATA), unit (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   652
     - desc*; icon*; link*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   653
   - - `view <#_The_view_element_1>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   654
     - CommonAttrs, name* (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   655
     - meta?; desc*; icon*; link*; group*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   656
   - - `group <#_The_group_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   657
     - CommonAttrs, name* (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   658
     - group*; desc*; icon*; link*; setting*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   659
   - - xs:minInclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   660
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   661
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   662
   - - xs:maxInclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   663
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   664
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   665
   - - xs:minExclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   666
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   667
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   668
   - - xs:maxExclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   669
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   670
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   671
   - - xs:pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   672
     - value (xs:token)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   673
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   674
   - - xs:length
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   675
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   676
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   677
   - - xs:minLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   678
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   679
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   680
   - - xs:maxLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   681
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   682
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   683
   - - xs:totalDigits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   684
     - value (NUMBER)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   685
     - EMPTY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   686
   - - `data <#_The_data_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   687
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   688
     - ANY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   689
   - - `rfs <#_The_rfs_element>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   690
     - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   691
     - ANY
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   692
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   693
All restriction elements (known as facets) starting with xs namespace prefix are defined in XML Schema [7]. Only listed attributes are supported for those elements. The rest of the elements are defined in the following sections.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   694
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   695
6.1 The configuration element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   696
-----------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   697
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   698
The configuration element is the root element of Configuration ML document. Version of the used specification must be defined using version attribute.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   699
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   700
Typically first child element under configuration is meta element. After that feature, view, and data elements follow.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   701
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   702
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   703
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   704
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   705
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   706
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   707
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   708
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   709
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   710
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   711
     - Common attribute definitions defined in Common definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   712
   - - version*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   713
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   714
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   715
     - The version of the document. This attribute is mandatory and its value must be "1.0".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   716
   - - name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   717
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   718
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   719
     - Textual name of the configuration. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   720
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   721
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   722
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   723
  <?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   724
  <configuration xmlns="http://www.s60.com/xml/confml/2" version="1.0" name="myfirstconfiguration">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   725
   <meta/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   726
   <feature/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   727
   <data/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   728
   <rfs/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   729
  </configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   730
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   731
6.2 The feature element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   732
-----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   733
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   734
The feature element defines one or more configuration elements in terms of settings. Feature element is used to group settings into logical collections. A configuration ML feature typically maps into a feature of a subsystem, a platform or a product.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   735
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   736
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   737
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   738
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   739
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   740
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   741
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   742
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   743
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   744
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   745
     - Common attribute definitions defined in Common definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   746
   - - name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   747
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   748
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   749
     - Textual name of the feature.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   750
   - - ref*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   751
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   752
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   753
     - Uniquely identifies the feature in the configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   754
       A path to the feature specific element containing values for all the setting. The path must be defined using )relative location path in abbreviated XPATH [6] form. The path must map to at most one feature element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   755
       Together with ref element of a setting, the path must be relative location path to a setting specific element in abbreviated XPATH [6] form.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   756
       The ref attribute of the feature is also used for identifying settings inside view definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   757
       This attribute is mandatory for all features.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   758
   - - relevant
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   759
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   760
     - true
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   761
     - Defines whether the feature is used. Can be used to exclude all the settings of the feature that are not relevant in some context. Values with this property value false for the parent feature are not used.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   762
       The grammar of expression language is defined in chapter 8.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   763
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   764
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   765
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   766
  <feature id="f_camf_00" name="Camcorder Features" ref="CamcorderFeatures">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   767
   <desc/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   768
   <setting/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   769
   <setting/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   770
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   771
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   772
6.3 The setting element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   773
-----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   774
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   775
The setting element defines a single configurable setting. When used inside a view element, setting element is used to include the setting in a view, and possibly redefine any of its properties.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   776
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   777
Sequential settings are defined using hierarchical settings definitions where setting element contains one or more setting definitions. The settings of each item in a sequence are defined using sequence elements under the setting element. The number of settings in a sequence can be limited with minOccurs and maxOccurs attributes.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   778
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   779
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   780
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   781
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   782
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   783
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   784
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   785
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   786
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   787
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   788
     - Common attribute definitions defined in Common definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   789
   - - name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   790
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   791
     - ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   792
     - Textual name of the setting. To be used in user interfaces of tools and documentation.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   793
   - - type*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   794
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   795
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   796
     - Type of the element. Refer to chapter 7 for supported types. Attribute is not allowed when element is inside a view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   797
   - - ref*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   798
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   799
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   800
     - Uniquely identifies the setting under the parent feature. A path to the element containing value for the setting. The path must be defined using relative location path in abbreviated XPATH [6] form. The path must map to at most one value element. The ref attribute is also used for uniquely identifying settings inside view definitions and in setting implementation. Because of this ref of a setting must be unique under the feature. This attribute is mandatory for all settings under a feature element. Attribute is not allowed when element is inside a view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   801
   - - constraint
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   802
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   803
     - true
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   804
     - Defines any constrains for the values supported by the setting. Values with this property evaluating to false are invalid. The grammar of expression language is defined in chapter 8.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   805
   - - relevant
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   806
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   807
     - true
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   808
     - Defines whether the setting is used. Can be used to exclude settings that are not relevant in some context. Values with this property evaluating to false are not used. The grammar of expression language is defined in chapter 8.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   809
   - - readOnly
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   810
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   811
     - false
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   812
     - Defines the settings as non-modifiable. Values to settings with this attribute value true are restricted from being defined outside the configuration where they where originally defined in. Therefore only the initial default values can be defined for read only settings. The supported values are true and false.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   813
   - - required
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   814
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   815
     - false
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   816
     - Defines whether a value must be defined for the settings before the configuration is complete. Can be used to force user to define a value for settings that can not use any default value. Missing required value must not prevent saving configuration at any point. In case defined for a setting of type sequence, requiredness mandates having at least one item-setting defined. In case defined for a sub-setting of a sequence, requiredness is evaluated separately for each item-setting. The supported values are true and false. The use of requiredness information is tool specific. Completeness of a configuration might be required by a configuration tool in case of validation or generation of a variant. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   817
   - - minOccurs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   818
     - NUMBER
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   819
     - 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   820
     - The minimum number of value elements allowed in case of sequence type of setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   821
   - - maxOccurs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   822
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   823
     - "unbounded"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   824
     -  The maximum number of value elements allowed in case of sequence type of setting. When any number of elements are allow, value "unbounded" can be used.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   825
   - - mapKey
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   826
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   827
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   828
     - In case setting is used as enumeration source for name-id mapping (see chapter 6.11), value of this attribute defines the key part of the enumeration. If used, setting's type must be sequence. All the values residing in the attribute must be unique within the sequence.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   829
   - - mapValue
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   830
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   831
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   832
     - In case setting is used as enumeration source for name-id mapping (see chapter 6.11), value of this attribute defines the value part of the enumeration. If used, setting's type must be sequence.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   833
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   834
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   835
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   836
  <setting constraint=". &gt; '1'" name="Audio Codec" type="Selection" ref="AudioCodec">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   837
   <desc/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   838
   <option/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   839
   <option/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   840
  </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   841
  <setting id="bookmarks" type="sequence" maxOccurs="50" ref="Bookmark">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   842
    <setting id="bookmark_name" name="Name" required="true" type="string" ref="Name">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   843
     <xs:maxLength value="50"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   844
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   845
    <setting id="bookmark_serveradd" name="Server Address" required="true" type="string" ref="ServerAddress">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   846
     <xs:maxLength value="250"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   847
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   848
  </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   849
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   850
6.4 The file and folder elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   851
--------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   852
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   853
The file and folder elements define the copying rules of files and folders. Both elements consist of sub-settings called localPath and targetPath. The following attributes are applicable for both of these sub-settings. For more detailed explanation along with the examples, see chapter 7.5.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   854
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   855
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   856
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   857
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   858
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   859
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   860
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   861
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   862
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   863
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   864
     - Common attribute definitions defined in Common definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   865
   - - constraint
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   866
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   867
     - true
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   868
     - Defines any constrains for the values supported by the path definition.  Values with this property evaluating to false are invalid. The grammar of expression language is defined in chapter 8.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   869
   - - readOnly
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   870
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   871
     - false
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   872
     - Defines the path as non-modifiable. Values to paths with this attribute value true are restricted from being defined outside the configuration where they where originally defined in. Therefore only the initial default values can be defined for read only settings. The supported values are true and false.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   873
   - - required
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   874
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   875
     - false
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   876
     - Defines whether a value must be defined for the path before the configuration is complete. Can be used to force user to define a value for path that can not use any default value. Missing required value must not prevent saving configuration at any point. The supported values are true and false. The use of requiredness information is tool specific. Completeness of a configuration might be required by a configuration tool in case of validation or generation of a variant.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   877
   - - map
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   878
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   879
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   880
     - In case path definition uses symbolic paths which require resolving, the map attribute defines the xpath to sequence that contains this mapping information. See (bookmark-ref (@ (reference-format chapter) (ref-name _Ref210621287)) 7.5) for more elaborate description.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   881
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   882
6.5 The option element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   883
----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   884
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   885
The option element defines pre-defined named value for a setting. The value stored in the data is defined using value attribute. It can be used with any type of setting but when used for a selection or multiSelection, only the values defined using option element are allowed. In case of other types, not all allowed values need to be pre-defined making it possible to support for example free form input in addition to mostly used values. The values defined by option element must be valid values for the setting; options with non-valid values (also taking account the additional restrictions defined in a view) are not allowed.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   886
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   887
When used inside a view element, option element is used to add or redefine any of the options.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   888
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   889
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   890
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   891
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   892
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   893
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   894
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   895
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   896
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   897
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   898
     - Common attribute definitions defined in Common definitions. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   899
   - - name*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   900
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   901
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   902
     - Optional descriptive name for the value. Can be used in tools instead of the value itself.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   903
   - - value*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   904
     - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   905
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   906
     - The value of the option as used in elements under data element. Note that this value and the implementation specific value used at runtime are not necessarily the same.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   907
   - - relevant
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   908
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   909
     - true()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   910
     - Defines whether the option is valid. Can be used to exclude options that are not relevant in some context. Options with this property evaluating to false are not applicable for the setting. The grammar of expression language is defined in chapter 8.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   911
   - - map
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   912
     - XPATH (path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   913
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   914
     - Can be used in case the setting where option resides uses name-id mapping (see chapter 6.11). Value of this attribute defines the path to the setting, where from values and names are fetched. Note that referred setting must be of type sequence.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   915
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   916
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   917
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   918
  <setting name="MMS Message Size" type="Int" ref="MMSMessageSize">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   919
   <option name="small" value="0"><desc/></option>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   920
   <option name="medium" value="2" relevant="MMSMedium = true"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   921
   <xs:minInclusive value="0"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   922
   <xs:maxInclusive value="10"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   923
  </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   924
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   925
6.6 The property element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   926
------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   927
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   928
The property element defines additional properties for settings. Property elements can be used for example to define additional constraints for settings that are not expressible using other attributes. The use of properties is application specific.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   929
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   930
Refer to chapter 9 for recommended names of commonly used properties.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   931
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   932
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   933
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   934
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   935
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   936
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   937
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   938
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   939
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   940
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   941
     - Common attribute definitions defined in Common definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   942
   - - name*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   943
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   944
     - Not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   945
     - Identifier of the property.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   946
   - - value*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   947
     - CDATA
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   948
     - Not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   949
     - The value of the property.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   950
   - - unit
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   951
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   952
     - As defined for the property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   953
     - The unit of the value.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   954
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   955
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   956
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   957
  <setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   958
   <property name="mime" value="image/svgt image/bmp"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   959
   <property name="resolution" value="100x100"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   960
   <property name="maxSize" value="100" unit="kB"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   961
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   962
6.7 The view element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   963
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   964
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   965
The view element defines a subset of settings under one or more group elements. Views can therefore be used to group needed elements for easy visualization and manipulation. The view elements are defined directly under configuration element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   966
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   967
Any number of views can be defined in a configuration, but typically only one of them can be then activated at time by the application using configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   968
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   969
The view is defined using one or more groups. Settings in views are always defined inside a group. A setting can exist only once in a single view. All the settings referred there must have been previously defined using feature and setting elements. All the data elements and their values in the configuration still exist, and should be validated and used, even though they could be hidden from the active view. Because of this, tools might optionally still visualize values that are invalid, but are not part of the active view. Refer to chapter 3.5 for more information about use of views.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   970
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   971
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   972
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   973
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   974
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   975
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   976
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   977
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   978
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   979
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   980
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   981
     - Common attribute definitions defined in Common definitions. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   982
   - - name*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   983
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   984
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   985
     - The name of the view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   986
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   987
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   988
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   989
  <view name="Isetta View">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   990
   <desc/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   991
   <group/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   992
   <group/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   993
  </view>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   994
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   995
6.8 The group element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   996
---------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   997
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   998
The group element (re-)defines the logical grouping of settings inside a view. When view is not used, the settings are clustered according to features they are defined in. Group elements therefore can be used to create virtual features with settings selected from one or more features.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   999
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1000
Settings included in group are identified using ref attribute of the setting. Please notice that ref of the setting can refer only to one setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1001
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1002
Groups can contain groups for creating hierarchical grouping. It is not possible to directly use features as grouping elements in group hierarchy; views always contain only groups and/or settings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1003
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1004
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1005
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1006
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1007
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1008
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1009
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1010
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1011
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1012
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1013
     - Common attribute definitions defined in Common definitions. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1014
   - - name*
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1015
     - xs:token
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1016
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1017
     - Textual name of the group.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1018
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1019
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1020
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1021
  <group name="Common Settings">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1022
   <desc>A group description</desc>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1023
   <setting ref="CamcorderFeatures/MMSMessageSize" name="MMS Message Size" type="Int">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1024
    <option name="small" value="1"/> <!-- was zero -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1025
    <option name="medium" value="2"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1026
    <option name="large" value="4"/> <!-- added -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1027
    <xs:minInclusive value="0"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1028
    <xs:maxInclusive value="9"/> <!-- was 10 -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1029
    <desc>A better description added here</desc>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1030
   </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1031
   <group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1032
    <setting ref="OtherFeatures/*"/> <!-- selects all the settings of the feature -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1033
   <group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1034
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1035
   <setting ref="CamcorderFeatures/othersetting"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1036
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1037
  </group>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1038
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1039
6.9 The data element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1040
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1041
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1042
The data defines the values of the configuration. Only one data element is allowed directly under a configuration element, but because of the hierarchical nature of configurations, there can be several data elements in a configuration. Values under data element can be for example product or operator specific, or they can be even default values defined by the owner of the feature.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1043
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1044
Following attributes are supported for all descendant elements of the data element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1045
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1046
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1047
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1048
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1049
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1050
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1051
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1052
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1053
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1054
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1055
     - Common attribute definitions defined in Common definitions. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1056
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1057
The following attributes are supported for all descendant elements of data element that define data for sequence settings only. These attributes can be defined only for item-setting level elements and not for sub-setting level elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1058
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1059
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1060
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1061
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1062
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1063
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1064
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1065
   - - extensionPolicy
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1066
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1067
     - "replace"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1068
     - Defines whether the setting replaces or extends the previously defined data of the sequence setting. Extension allows incremental definition of sequence item-settings in multiple configurations. This attribute can be defined only for the first item-setting. Same extension policy is automatically applied to all other defined item-settings of the same setting in that configuration. The valid values are: replace (default), append and prefix. By default (extensionPolicy="replace") the data defined completely replaces all the items that where previously defined in any included configuration according to priority rules defined in chapter 3.4.1. When this attribute has value "append" the defined sequence items are interpreted to be added to the end of the previously defined items. When this attribute has value "prefix" the defined sequence items are interpreted to be added to the front of the previously defined items. In both cases with append and prefix, any changes made to data in an included configuration will therefore be automatically included as part of the settings data. Refer to chapter 7.6 for full explanation of sequence templates.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1069
   - - template
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1070
     - NMTOKEN
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1071
     - false
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1072
     - Marks sequence item-setting to be a sequence template instead. If template has value true , then the values of the sub-settings are not used as item-settings. Setting templates can be defined for a setting only in the same configuration that defined the setting. There can be at zero or one template per each setting. Refer to chapter 7.6 for full explanation of sequence templates.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1073
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1074
The following attributes are supported for data elements, which define data for name-id mapping cases (see chapter 6.11).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1075
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1076
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1077
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1078
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1079
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1080
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1081
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1082
   - - map
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1083
     - XPATH
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1084
     - not defined
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1085
     - Defines the xpath to a setting used for name-id mapping.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1086
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1087
The names of descendant elements of data element are feature-specific. The name of the element is defined using the ref attribute of the feature. Under these feature specific elements there are one or more setting specific elements each of them defining a value for a setting. The name of these elements under one feature is defined using the ref attribute of the setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1088
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1089
See chapter 7 for setting type specific data examples.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1090
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1091
6.10 The rfs element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1092
--------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1093
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1094
The data defines the Restore Factory Setting (RFS) policies of the settings. RFS policy for a setting is defined under feature and setting specific elements, as defined using ref attributes of the feature and setting in question.  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1095
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1096
Only one rfs element is allowed directly under a configuration element, but because of the hierarchical nature of configurations, there can be several rfs elements in a configuration. Values under rfs element can be for example product or operator specific or they can be default values defined by the owner of the feature. The RFS policy values are always of Boolean type. By default no settings are restored in RFS. In case there are multiple settings that are stored into a single restorable entity such a Central Repository key, then the whole entity is restored always in case there even one of the settings have RFS enabled.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1097
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1098
Following attributes are supported for all descendant elements of data element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1099
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1100
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1101
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1102
   - - Attributes name
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1103
     - Type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1104
     - Default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1105
     - Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1106
   - - CommonAttrs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1107
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1108
     - 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1109
     - Common attribute definitions defined in Common definitions. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1110
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1111
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1112
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1113
  <configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1114
   <rfs>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1115
    <MyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1116
     <MySetting>true</MySetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1117
     <MyOtherSetting>true</MyOtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1118
    </MyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1119
    <MyOtherFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1120
     <MyBooleanSetting>true</MyBooleanSetting> <!-- can cause also other Boolean settings
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1121
       to be restored in case they are all stored into single Central Repository key -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1122
    </MyOtherFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1123
   </rfs>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1124
  </configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1125
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1126
6.11 Name-Id mapping for setting elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1127
-----------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1128
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1129
In some cases, dynamically created name-id sequences act as enumeration values for other settings. As an example, one of the configurations define a setting for listing available device access points. Each access point has identifier, name and some other attributes. Other configurations use these definitions in their own settings, so that one of these predefined access points can be selected (e.g. device default access point). The mechanism to do this is explained in this chapter.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1130
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1131
At first, setting used as name-id mapping source is defined. This setting must be type of sequence, and it must have attributes mapKey and mapValue. Attribute mapKey defines the mapping key for a subsettings, while mapValue defines the value part. Example of this is seen below (both the feature definition and related data)::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1132
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1133
  <feature name="Connectivity Settings" ref="ConnectivitySettings">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1134
   <setting type="sequence" maxOccurs="10" mapKey="APID" mapValue="APName" name="Device Accesspoints" ref="DeviceAccesspoint"> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1135
    <setting name="Name" ref="APName" type="string" required="true" /> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1136
    <setting name="ID" ref="APID" type="int" required="true" /> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1137
    <setting name="Comments" ref="Comments" type="string" /> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1138
   </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1139
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1140
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1141
   <ConnectivitySettings>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1142
    <DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1143
     <APName>Internet</APName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1144
     <APID>2</APID>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1145
    </DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1146
    <DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1147
     <APName>Operator</APName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1148
     <APID>3</APID>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1149
    </DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1150
    <DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1151
     <APName>MMS</APName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1152
     <APID>4</APID>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1153
    </DeviceAccesspoint>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1154
   </ConnectivitySettings>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1155
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1156
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1157
These definitions then can be used in the referring settings. The mechanism to do that is to use option element. Option element defines map-attribute, which refers to name-id mapping source. Referring setting can define multiple mappings via multiple options. Separation of possibly conflicting identifiers is done by using setting paths along with the intended key values. Also mixing of non-mapping values (e.g. plain named option or freeform text) with mapping options is allowed. In principle it is possible to have a non-mapping value with the exact same syntax than reserved for mapping value. Therefore in data section, mapping definitions are separated from value definition by stating mapping XPath in separate attribute, called "map".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1158
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1159
See the example below for clarification::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1160
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1161
  <feature name="Device Defaults" ref="DeviceDefaults">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1162
    <setting name="Device Default Accesspoint" type="int" ref="DeviceDefaultAccesspoint">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1163
     <option map="ConnectivitySettings/DeviceAccesspoint"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1164
     <option map="SomeOther/Possible/AccessPointList"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1165
     <option name="No accesspoint" value="-1"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1166
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1167
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1168
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1169
   <DeviceDefaults>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1170
     <DeviceDefaultAccesspoint map="ConnectivitySettings/DeviceAccesspoint[@key='2']" />
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1171
   </DeviceDefaults>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1172
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1173
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1174
In general it is not encouraged to create settings with multiple mapping options, since this might provide confusing views to the end user of configuration tools, which are processing these definitions. E.g. in case several name-id maps define the same names, this might result duplicate name entries on tool UI. In case of conflicts emerging from multiple mapping options, tools must report this. Tools must also enforce the uniqueness of mapKey within the sequence settings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1175
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1176
=============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1177
7. Data types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1178
=============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1179
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1180
The following data types are supported.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1181
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1182
- `int <#the-int-data-type>`_ (integer)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1183
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1184
- `boolean <#the-boolean-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1185
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1186
- `real <#the-real-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1187
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1188
- `string <#the-string-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1189
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1190
- `file and folder <#the-file-and-folder-types>`_ 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1191
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1192
- `sequence <#the-sequence-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1193
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1194
- `selection <#the-selection-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1195
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1196
- `multiSelection <#the-selection-data-type>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1197
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1198
- `dateTime <#the-datetime-duration-time-and-date-data-types>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1199
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1200
- `duration <#the-datetime-duration-time-and-date-data-types>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1201
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1202
- `time <#the-datetime-duration-time-and-date-data-types>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1203
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1204
- `date <#the-datetime-duration-time-and-date-data-types>`_
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1205
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1206
7.1 The int data type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1207
---------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1208
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1209
The data type int represents signed integer.  The lexical representation of the int data type is a sequence of digits.  Leading zeros and sign ('+' (optional for positive values) or '-') are permitted, but decimal points are not. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1210
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1211
By default all integer values are valid, although implementation might restrict that. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1212
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1213
Following XML Schema facets can be used to define additional restrictions for the value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1214
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1215
- xs:minInclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1216
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1217
 - The value must be greater than or equal to specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1218
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1219
- xs:maxInclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1220
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1221
 - The value must be less than or equal to specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1222
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1223
- xs:minExclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1224
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1225
 - The value must be greater than the specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1226
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1227
- xs:maxExclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1228
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1229
 - The value must be less than the specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1230
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1231
- xs:pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1232
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1233
 - Restricts values to a particular pattern represented by a regular expression 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1234
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1235
 - Example: "\\d{1,2}" restricts the size to one or two digits 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1236
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1237
- xs:totalDigits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1238
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1239
 - The maximum number of digits in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1240
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1241
Please note that options defined for integer settings cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1242
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1243
Example integer type of data::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1244
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1245
    <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1246
     <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1247
      <Setting>123</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1248
      <OtherSetting>456</OtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1249
      <SomeOtherSetting>999</SomeOtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1250
     </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1251
    </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1252
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1253
7.2 The boolean data type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1254
-------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1255
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1256
The data type boolean [2]_ represents logical yes/no values. The only valid values are 'true', 'false', '1', and '0'. Value '1' equals to value 'true' and '0' equals to value 'false'.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1257
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1258
Following XML Schema facets can be used to define additional restrictions for the value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1259
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1260
- xs:pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1261
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1262
 - Restricts values to a particular pattern represented by a regular expression 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1263
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1264
 - Example: "true|1" restricts the value to only "true" value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1265
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1266
Please note that options defined for Boolean settings cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1267
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1268
Example 'boolean' type of data::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1269
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1270
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1271
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1272
      <Setting>True</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1273
      <OtherSetting>1</OtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1274
      <SomeOtherSetting>False</SomeOtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1275
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1276
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1277
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1278
.. [2] The type like all the types in CofML is written with lower case 'b' although the data type correctly written always in captitalised form: 'Boolean'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1279
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1280
7.3 The real data type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1281
----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1282
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1283
The data type real represents floating point number. The lexical representation of the real data type is a sequence of digits, optionally containing period. Leading zeros and sign ('+' (optional for positive values) or '-') are permitted. The usage of scientific notation (power of ten stated with character 'e') is also allowed.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1284
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1285
By default all real values are valid, although implementation might restrict that.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1286
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1287
Following XML Schema facets can be used to define additional restrictions for the value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1288
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1289
- xs:minInclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1290
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1291
 - The value must be greater than or equal to specified value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1292
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1293
- xs:maxInclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1294
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1295
 - The value must be less than or equal to specified value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1296
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1297
- xs:minExclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1298
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1299
 - The value must be greater than the specified value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1300
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1301
- xs:maxExclusive
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1302
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1303
 - The value must be less than the specified value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1304
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1305
- xs:pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1306
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1307
 - Restricts values to a particular pattern represented by a regular expression 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1308
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1309
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1310
Please note that options defined for real settings cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1311
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1312
Example real type of data::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1313
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1314
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1315
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1316
      <Setting>1.23</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1317
      <OtherSetting>-456.3242</OtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1318
      <SomeOtherSetting>3.3e5</SomeOtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1319
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1320
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1321
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1322
7.4 The string data type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1323
------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1324
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1325
The data type string represents character string that may contain any Unicode character. Certain characters, namely the 'less than' symbol ()<), the ampersand (&) and the double quote (") must be escaped (using entities &lt;, &amp; and &quot; ). All the whitespace of the string values is preserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1326
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1327
By default, any number of any characters can be stored in a string, although implementation might restrict length or characters supported.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1328
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1329
Following XML Schema facets can be used to define additional restrictions for the value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1330
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1331
- xs:pattern
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1332
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1333
 - Restricts values to a particular pattern represented by a regular expression 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1334
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1335
 - Example: "\\d{1,2}" restricts the size to one or two digits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1336
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1337
- xs:length
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1338
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1339
 - The exact length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1340
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1341
- xs:minLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1342
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1343
 - The minimum length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1344
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1345
- xs:maxLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1346
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1347
 - The maximum length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1348
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1349
Please note that options defined for string settings cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1350
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1351
Example string type of data::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1352
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1353
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1354
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1355
      <Setting>Foo</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1356
      <OtherSetting>Bar</OtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1357
      <SomeOtherSetting/> <!-- empty string -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1358
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1359
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1360
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1361
7.5 The file and folder data types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1362
----------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1363
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1364
The data type file describes how file is copied from local file structure to target file system. The data type folder describes how folder (directory) is copied from local file structure to target file system. The value of file and folder type setting is stored as a combination of local path and target path, both being strings. Therefore string restrictions apply also to path values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1365
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1366
Local path is defined in a relative URI form in relation to content folder used in configuration. Content folder defines all variable content for the configuration, and usually it is not bound to target file system of used software platform in any way.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1367
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1368
Target path is defined in a relative URI form in relation to either raw file system of the target software platform, or preferably in relation symbolic path of the abstracted software platform. In case symbolic paths are used, URI scheme is used to define the symbolic part. Symbolic paths are resolved to raw file system paths using mapping definitions. Mappings between symbolic paths and raw file system paths are defined in a separate mapping sequence, which is referred from the setting using that symbolic definition. In case local path is a file, and target path is a directory, local path file name is re-used when copying occurs. In case target path defines a new name for a file, renaming is done during copying.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1369
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1370
When defining data for a file or folder type of setting, and in case either of sub settings (local path or target path) has no attribute and no value definitions, they can be left out from the data definitions. Therefore only the sub settings which need data definitions are actually defined. This enables e.g. overriding of only localPath, while keeping targetPath as it was earlier defined.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1371
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1372
Both in local and target paths, the character / is used to denote separator for directories. The ending slash character in the end folder value is optional. Both paths can have readOnly and constraint attributes. Following XML Schema facets can be used to define additional restrictions for the values:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1373
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1374
- xs:pattern 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1375
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1376
 - Restricts values to a particular pattern represented by a regular expression as defined in XML Schema [7] 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1377
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1378
 - Example: "[^./:]*\.zip" restricts the value to zip files in the current directory
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1379
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1380
- xs:length
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1381
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1382
 - The exact length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1383
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1384
- xs:minLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1385
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1386
 - The minimum length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1387
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1388
- xs:maxLength
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1389
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1390
 - The maximum length of value in a number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1391
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1392
Please note that options defined for file and folder settings cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1393
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1394
The following example explains how to use file data type. The same example applies to folder data type as well.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1395
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1396
First in some place of the configuration, path mappings are defined using the syntax defined in chapter 6.11::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1397
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1398
  <feature ref="paths" ...>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1399
    <setting type="sequence" ref="allPaths" mapKey="symName" mapValue="realName...>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1400
      <setting type="string" ref="symName".../>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1401
      <setting type="string" ref="realName".../>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1402
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1403
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1404
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1405
    <paths>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1406
      <allPaths>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1407
        <symName>MMC</symName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1408
        <realName>E:/</realName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1409
      </allPaths>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1410
      <allPaths>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1411
        <symName>BUILD</symName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1412
        <realName></realName>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1413
      </allPaths>...
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1414
    </paths>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1415
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1416
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1417
These definitions can then be referred in individual settings::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1418
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1419
  <feature ref="animations" ...>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1420
    <setting type="file" ref="startup" ...>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1421
      <localPath/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1422
      <targetPath map="paths/allPaths" constraint="'MMC' | 'Animations'" />
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1423
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1424
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1425
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1426
    <animations>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1427
      <startup>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1428
        <localPath>/resources/startup.avi</localPath>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1429
        <targetPath>MMC://animations</targetPath>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1430
      </startup>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1431
    </animations>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1432
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1433
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1434
When mapping definition is used as part of the URI scheme, it does not follow the mapping syntax defined in chapter 6.11. Mapping is always done against single mapping definition instead of collection of definitions. Therefore URI scheme's mapping ID can be always resolved unambiguously. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1435
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1436
7.6 The sequence data type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1437
--------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1438
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1439
The data of a sequence type setting represents an ordered collection (that is, a list) of item-settings that each consists of one or more sub-settings. Each of the item-setting in the sequence must have exactly the same set of sub-settings. The sub-settings can be of any data-type, except sequence. Therefore sequence of sequences is not allowed [3]_. The sub-settings of a sequence are defined using child setting elements of the sequence setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1440
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1441
Following sequence specific attributes can be used to define additional restrictions for the sequences:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1442
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1443
- minOccurs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1444
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1445
 - The minimum allowed size for the collection in a number 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1446
 - Defaults to zero (0)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1447
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1448
- maxOccurs
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1449
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1450
 - The maximum allowed size for the collection in a number. When any number of settings is allowed, value 'unbounded' can be used. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1451
 - Defaults to 'unbounded'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1452
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1453
Value for each item-setting in a sequence is defined by repeating element with location path that matches to ref of the sequence setting. The values for each sub-setting are defined as child elements of the item-setting. Data for an empty sequence can be expressed by defining one item element with empty content.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1454
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1455
Example setting definition::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1456
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1457
  <feature ref="Feature">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1458
    <setting type="sequence" ref="Setting" maxOccurs="3">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1459
      <setting type="int" ref="IntElem"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1460
      <setting type="string" ref="StringElem"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1461
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1462
    <setting type="int" ref="SomeOtherSetting"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1463
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1464
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1465
Example data of sequence of length two::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1466
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1467
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1468
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1469
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1470
        <IntElem>123</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1471
        <StringElem>foo</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1472
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1473
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1474
        <IntElem>456</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1475
        <StringElem>bar</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1476
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1477
      <SomeOtherSetting>999</SomeOtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1478
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1479
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1480
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1481
Example data of two empty sequences::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1482
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1483
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1484
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1485
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1486
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1487
      <otherSetting/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1488
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1489
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1490
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1491
Because there is no parent value element that groups together all the item settings of a sequence, there can be any other settings under the same feature element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1492
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1493
Item-settings of a sequence can be defined incrementally in multiple configurations by using append and prefix extension policies. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1494
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1495
Example of defining in total four items for a setting in two separate configurations incrementally::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1496
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1497
  <data> <!-- This one is included by the configuration below -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1498
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1499
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1500
        <IntElem>1</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1501
        <StringElem>first</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1502
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1503
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1504
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1505
  <data> <!-- This one includes the above configuration -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1506
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1507
      <Setting extensionPolicy="append"> <!-- this item-setting and the following 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1508
      items will be appended after the item-setting in the included configuration -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1509
        <IntElem>2</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1510
        <StringElem>second</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1511
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1512
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1513
        <IntElem>3</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1514
        <StringElem>third</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1515
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1516
      <Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1517
        <IntElem>4</IntElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1518
        <StringElem>fourth</StringElem>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1519
      </Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1520
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1521
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1522
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1523
When a setting element has attribute 'template' with value 'true', then that setting is considered as being setting template and not an item-setting. The values of sub-settings in a template are therefore never used as a configuration data. There can be zero or one template for each sequence setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1524
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1525
Setting template provides initial values for one or more sub-settings that can be utilised as initial values when constructing new item-setting. The template values are not inherited by new settings-items; instead they can be only copied as one time operation to a newly created item-setting. Modifying template data does not therefore affect in any way any of the already defined item-settings. All initial values defined in a template must be valid values. Templates can be defined only in the same configuration where the setting has been defined. Therefore templates cannot be overridden once defined.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1526
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1527
Template::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1528
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1529
  <data> 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1530
    <Bookmarks>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1531
      <Bookmark template="true"> <!-- template item for bookmark; not used as data-->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1532
        <iap>Internet</iap>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1533
        <folder>Default</folder>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1534
      </Bookmark>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1535
      <Bookmark> <!-- Normal data item: the first bookmark -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1536
        <name>Nokia</name>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1537
        <name>www.nokia.com</name>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1538
        <iap>Internet</iap>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1539
        <folder>Default</folder>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1540
      </Bookmark>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1541
      <Bookmark> <!-- Normal data item: The second bookmark -->
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1542
        <name>S60</name>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1543
        <name>www.s60.com</name>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1544
        <iap>Internet</iap>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1545
        <folder>S60</folder>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1546
      </Bookmark>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1547
    </Bookmarks>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1548
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1549
  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1550
.. [3] It is quite probable that support for deeper sequences is introduced in later versions of the language.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1551
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1552
7.7 The selection and multiSelection data types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1553
-----------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1554
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1555
The selection and multiSelection are special data types, that can represent any value that is defined using option elements. All option values must have the same data type for a single selection setting. The data type does not need to be explicitly defined. The data type of values can be integer, real or string. No other values than those defined by the options are accepted. No other restrictions can or need to be defined for the value.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1556
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1557
The only difference between selection and multiSelection is that selections allow only one of the option values to be defined at a time, where as multiSelection allows any number of options to be selected. The individual values of multiSelection settings are separated with whitespace. In case value has spaces in itself, then it must be enclosed within double quotes. In case string has double quotes in itself, they must be escaped with "&quot;" (see example).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1558
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1559
MultiSelection settings should be used only when all the options are closely related to single setting. It should not be used for grouping arbitrary independent settings that maybe are implemented as a single bitmask.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1560
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1561
Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1562
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1563
  <setting type="selection" ref="Setting">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1564
    <option name="FirstOption" value="17"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1565
    <option name="TheOtherOption" value="3"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1566
  </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1567
  <setting type="multiSelection" ref="OtherSetting">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1568
    <option name="FirstOption" value="First value"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1569
    <option name="TheOtherOption" value="Second value"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1570
    <option name="OptionWithQuote" value="Option with &quot;"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1571
  </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1572
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1573
    <afeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1574
      <Setting>17</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1575
      <OtherSetting>"First value" "Option with &quot;"</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1576
    </afeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1577
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1578
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1579
7.8 The dateTime, duration, time and date data types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1580
----------------------------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1581
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1582
The data types dateTime, duration, time and date can be used to represent information related times, dates or combination of them. Types are modelled according to chapter 1.1.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1583
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1584
The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1585
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1586
- YYYY indicates the year
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1587
- MM indicates the month
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1588
- DD indicates the day
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1589
- T indicates the start of the required time section
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1590
- hh indicates the hour
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1591
- mm indicates the minute
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1592
- ss indicates the second
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1593
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1594
All of the mentioned components are required. Time zone can (optionally) be specified either by adding "Z" behind the time (which means UTC time), or by adding an offset from the UTC time with positive or negative value behind the time (in format of hh:mm).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1595
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1596
The following is an example of dateTime declaration::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1597
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1598
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1599
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1600
      <Setting>2008-09-1915:42:12Z</Setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1601
      <OtherSetting>2008-10-09-11:32:02+06:00</OtherSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1602
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1603
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1604
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1605
The duration is specified in the following form "PnYnMnDTnHnMnS" where:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1606
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1607
- P indicates the period (required)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1608
- nY indicates the number of years
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1609
- nM indicates the number of months
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1610
- nD indicates the number of days
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1611
- T indicates the start of a time section (required if hours, minutes, or seconds are specified)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1612
- nH indicates the number of hours
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1613
- nM indicates the number of minutes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1614
- nS indicates the number of seconds
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1615
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1616
The following is an example of duration declaration::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1617
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1618
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1619
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1620
      <FirstSetting>P5Y</FirstSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1621
      <SecondSetting>P5Y2M10D</SecondSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1622
      <ThirdSetting>PT15H</ThirdSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1623
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1624
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1625
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1626
FirstSetting defines a period of five years. SecondSetting defines a period of five years, two months and 10 days. ThirdSettings defines a period of 15 hours.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1627
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1628
Time is specified specified in similar fashion as dateTime, but only hh:mm:ss part is used. The same applies to date, but only YYYY-MM-DD part is used. Same timezone rules also apply. Example::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1629
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1630
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1631
    <Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1632
      <TimeSetting>15:42:12</TimeSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1633
      <DateSetting>2008-10-09Z</DateSetting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1634
    </Feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1635
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1636
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1637
Following XML Schema facets can be used to define additional restrictions for the value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1638
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1639
- xs:minInclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1640
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1641
 - The value must be greater than or equal to specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1642
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1643
- xs:maxInclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1644
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1645
 - The value must be less than or equal to specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1646
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1647
- xs:minExclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1648
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1649
 - The value must be greater than the specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1650
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1651
- xs:maxExclusive 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1652
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1653
 - The value must be less than the specified value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1654
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1655
- xs:pattern 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1656
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1657
 - Restricts values to a particular pattern represented by a regular expression 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1658
 - If multiple patterns are defined for a single setting, the value must match at least one of the patterns 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1659
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1660
Please note that options defined for any of these setting types cannot be used to relax or restrict values in any way. The values of all the options must therefore also be valid values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1661
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1662
==============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1663
8. Expressions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1664
==============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1665
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1666
This chapter defines grammar for both constraint and relevant attribute values used for features, settings and options. The grammar is heavily based on XPATH, but is simplified to contain only parts that are needed to express simple value comparisons.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1667
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1668
SettingValueRef "." (dot) refers to the value of the setting itself when used in constraint or relevant attributes of a setting or option. SettingValueRefs can be either absolute or relative. Absolute ones must be used to refer to value of a setting in other feature and therefore include NCNames (name without colons) of feature, setting and optionally also sub-setting (in case of sequences). Relative ones can be used to refer to value of a setting/sub-setting inside the same feature/sequence, and therefore contain only NCName of setting and/or sub-setting. To refer to any item-setting of a sequence, asterisk (")* ") is used after NCName of a sequence setting. To refer a specific sequence-item, the index of item is defined in brackets after NCName of sequence setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1669
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1670
For readability, whitespace may be used in expressions even though not explicitly allowed by the grammar.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1671
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1672
8.1 Basic expressions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1673
---------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1674
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1675
:: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1676
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1677
  Expr ::= OrExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1678
  PrimaryExpr ::= SettingValueRef
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1679
      | '(' OrExpr ')'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1680
      | Literal
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1681
      | Number
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1682
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1683
8.2 Boolean expressions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1684
-----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1685
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1686
::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1687
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1688
  OrExpr ::= AndExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1689
      | OrExpr 'or' AndExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1690
  AndExpr ::= EqualityExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1691
      | AndExpr 'and' EqualityExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1692
  EqualityExpr ::= RelationalExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1693
      | EqualityExpr '=' RelationalExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1694
      | EqualityExpr '!=' RelationalExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1695
  RelationalExpr ::= AdditiveExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1696
      | RelationalExpr '<' AdditiveExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1697
      | RelationalExpr '>' AdditiveExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1698
      | RelationalExpr '<=' AdditiveExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1699
      | RelationalExpr '>=' AdditiveExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1700
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1701
Note that:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1702
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1703
- '<' must be escaped using "&lt;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1704
- '<=' may be represented as "&lte;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1705
- '>' must be escaped using "&gt;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1706
- '<=' may be represented as "&gte;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1707
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1708
8.3 Numeric Expressions
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1709
-----------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1710
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1711
::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1712
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1713
  AdditiveExpr ::= MultiplicativeExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1714
      | AdditiveExpr '+' MultiplicativeExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1715
      | AdditiveExpr '-' MultiplicativeExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1716
  MultiplicativeExpr ::= UnaryExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1717
      | MultiplicativeExpr '*' UnaryExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1718
      | MultiplicativeExpr 'div' UnaryExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1719
      | MultiplicativeExpr 'mod' UnaryExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1720
  UnaryExpr ::= PrimaryExpression
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1721
      | '-' UnaryExpr
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1722
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1723
8.4 Expression lexical structure
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1724
--------------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1725
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1726
::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1727
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1728
  SettingValueRef ::= '.'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1729
      | Ref
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1730
      | Ref '/' Ref
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1731
      | Ref '/' Ref '/' Ref
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1732
  Literal ::= '"' [^"]* '"'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1733
      | "'" [^']* "'"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1734
  Number ::= Digits ('.' Digits?)?
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1735
      | '.' Digits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1736
  Digits ::= [0-9]+
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1737
  Ref ::= NCName
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1738
      | NCName '*'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1739
      | NCName '[' Number ']'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1740
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1741
Note that:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1742
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1743
- ampersand character (&) must be escaped using "&amp;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1744
- the double-quote character (") must be escaped using "&quot;".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1745
- single-quote character (') may be represented as "&apos;"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1746
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1747
8.5 Examples
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1748
------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1749
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1750
Examples of various constraint and relevant expressions::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1751
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1752
  <feature ref="FeatureA">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1753
    <setting type="int" ref="SettingA" constraint=". <= SettingB"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1754
    <setting type="int" ref="SettingB" constraint=". <= FeatureB/SettingA"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1755
    <setting type="int" ref="SettingC" relevant ="FeatureC*/SettingB = 1"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1756
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1757
  <feature ref="FeatureB">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1758
    <setting type="int" ref="SettingA" constraint=". <= SettingB + SettingC"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1759
    <setting type="int" ref="SettingB" constraint="SettingA + Setting"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1760
    <setting type="int" ref="SettingC" relevant="FeatureC/SettingB[3]/SettingBB = 3.1"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1761
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1762
  <feature ref="FeatureC">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1763
    <setting type="string" ref="SettingA" constraint=". = ( &quot;foo&quot; or . = &quot;bar&quot;"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1764
    <setting type="sequence" ref="SettingB">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1765
      <setting type="Boolean" ref="SettingBA"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1766
      <setting type="Real" ref="SettingBB" relevant="SettingBA != &quot;true&quot;"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1767
    </setting>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1768
  </feature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1769
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1770
=============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1771
9. Properties
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1772
=============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1773
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1774
The property element (chapter 6.6) can be used to define additional definitions for settings. Properties can be used for example to define domain specific constraints for data. Every setting can have zero or more property definitions. Every property has name, value, and optionally a unit. This chapter lists commonly used properties names to be used with graphics and file specific settings.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1775
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1776
9.1 Graphics
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1777
------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1778
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1779
Following properties are defined for file type settings that define a file that represents an image or animation:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1780
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1781
- type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1782
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1783
 - white-space separated list of type definitions 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1784
 - Example values: image/svgt image/bmp image/svg 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1785
 - default unit: mime type
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1786
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1787
- maxBits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1788
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1789
 - maximum number of units per pixel 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1790
 - Example values: 24 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1791
 - default unit: bits
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1792
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1793
- maxWidth
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1794
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1795
 - maximum width of graphic in units 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1796
 - Example values: 200 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1797
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1798
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1799
- maxHeight
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1800
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1801
 - maximum height of graphic in units 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1802
 - Example values: 120 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1803
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1804
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1805
- minWidth
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1806
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1807
 - minimum width of graphic in units 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1808
 - Example values: 100 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1809
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1810
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1811
- minHeight
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1812
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1813
 - minimum height of graphic in units 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1814
 - Example values: 60 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1815
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1816
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1817
- width
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1818
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1819
 - the width of graphic in units; shorthand for cases where minWidth equals maxWidth 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1820
 - Example values: 150 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1821
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1822
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1823
- height
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1824
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1825
 - the height of graphic in units; shorthand for cases where minHeight equals maxHeight 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1826
 - Example values: 80 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1827
 - default unit: pixel
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1828
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1829
- maxColor 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1830
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1831
  - maximum number of distict color values 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1832
  - Example values: 240000
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1833
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1834
9.2 Files
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1835
---------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1836
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1837
- maxFileSize
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1838
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1839
 - maximum size of the file to be identified by the setting 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1840
 - Example values: 500 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1841
 - default unit: kb
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1842
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1843
- recommendedFileSize 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1844
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1845
 - recommended size of the file to be identified by the setting 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1846
 - Example values: 100 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1847
 - default unit: kb
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1848
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1849
======================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1850
10. Appendix: Examples
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1851
======================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1852
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1853
10.1 A configuration file
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1854
-------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1855
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1856
::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1857
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1858
  <?xml version="1.0" encoding="UTF-8"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1859
  <configuration xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" version="1.0">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1860
  <meta>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1861
    <id>x99_001</id>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1862
    <date>2006-06-19</date>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1863
    <owner>John Smith</owner>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1864
    <editor>John Smith</editor>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1865
    <status>proposal</status>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1866
    <product>X99</product>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1867
    <desc>X99 Customization features</desc>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1868
    <version>0.1</version>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1869
    <platform>p60</platform>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1870
    <customer>AnOperator</customer>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1871
  </meta>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1872
  <xi:include href="ProductSpecificFeatures.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1873
  <xi:include href="PlatformFeatures.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1874
  <xi:include href="ProductDefaultData.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1875
  <xi:include href="GlobalOperatorData.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1876
  <xi:include href="OperatorView.confml"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1877
  <data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1878
    <GroovyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1879
      <DriveWay1>2344</DriveWay1>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1880
      <DriveWay2>1298</DriveWay2>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1881
    </GroovyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1882
    <OperatorAnimation>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1883
      <FrameDelay>400</FrameDelay>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1884
    </OperatorAnimation>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1885
  </data>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1886
    <rfs>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1887
      <GroovyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1888
        <DriveWay1>true</DriveWay1>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1889
        <DriveWay2>true</DriveWay2>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1890
      </GroovyFeature>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1891
    </rfs>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1892
  </configuration>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1893
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1894
===============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1895
Change history:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1896
===============
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1897
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1898
.. list-table::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1899
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1900
   - - 0.1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1901
     - 8.5.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1902
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1903
     - Incomplete draft.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1904
   - - 0.2
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1905
     - 16.6.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1906
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1907
     - Updated based on comments.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1908
   - - 0.3
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1909
     - 1.8.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1910
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1911
     - Lots of corrections and clarifications. Explained data types. Added Central Repository language definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1912
   - - 0.3.1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1913
     - 4.8.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1914
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1915
     - Minor corrections to central repository XML. Attached schema for cenrepml and XML Schema version for all schemas added. Removed redundant comments.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1916
   - - 0.4
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1917
     - 18.8.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1918
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1919
     - Added readOnly attribute for key element. Explained how to define release specific attribute values. The name of setting element was made optional. Including settings with wildcard removed. Exclude element removed. Hiearchical grouping supported with maximum of two levels of groups. Added list of supported releases to configuration metadata. Defined how release information must be interpreted. Updated schemas and examples. Restructuring chapter 3. Added some tool implementation to the appendix.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1920
   - - 0.5
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1921
     - 20.12.2006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1922
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1923
     - Supported release information redesigned: new releases and release elements. Release element removed from meta. Including other than valid configuration ML or "Variant" data files are no longer allowed. Added support for defining ranges of keys in Central Repository ML. Schemas and examples updated according to changes.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1924
   - - 0.51
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1925
     - 27.3.2007
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1926
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1927
     - Explained how empty sequence is defined. Minor corrections to schemas (namespace fixups for XInclude use). Fixed errors related to releases element in content model of configuration and repository elements. Support for real type added to settings. Fixed some examples. Removed support for length attributes for int type. Clarification to required attribute added. Definging multiple values for multiSelection settings defined.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1928
   - - 0.6
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1929
     - 19.9.2007
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1930
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1931
     - New chapter 4.5 for naming conventions. Removed excludeOptions element; same can be achieved by redefining option in view with relevant=false(). Added support for incremental definition of sequence settings using extensionPolicy attribute. Added comment about multiSelection usage. CenrepML: rw access type removed; types must be idefined with small case letter. New setting type: boolean. New properties: minWidth, width, minHeight, height. Common elements allowed for property element. The namespace of CenrepML modified. Proposal for Generic Configuration File ML. Schemas updated.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1932
   - - 0.7
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1933
     - 5.12.2007
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1934
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1935
     - Added comment about maximum number of the access elements in Central Repository ML. Feature Implementation term replace with Setting Implementation to emphasise that each setting can have different implementation. Added bit element to Central Repository ML for mapping Booleans to integer and binary keys. Removed release(s) elements and release specific attributes; change element removed from Central Repository ML: ConfML is now agnostic to versioning. Added simple release element back to meta. Sequence template concept introduced. Added rfs element as a sibling element to data for defining rfs policy for settings. Added keyRange element to Central Repository ML for defining ranges or keys and allowing mapping sequences to them. Replaced use of XPATH expressions with either literal Boolean values or simpler expression language chapter 8. Same expression language used for PCDATA of value element in CenRepML. Clarified the use of extensionPolicy attribute. Introduced folder type. ExtensionPolicy value "prepend" replace with correct English word "prefix". The schema definitions have not been updated for include changes in this version of the specification.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1936
   - - 0.7.1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1937
     - 28.12.2007
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1938
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1939
     - Removed int attribute of keyRange element in Central Repository ML as a redundant attribute. Updated schemas. Added schema for GenConfML. Minor corrections to GenConfML example. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1940
   - - 0.80
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1941
     - 16.5.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1942
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1943
     - Divided Configuration ML, Generic Configuration File ML and Central Repository ML into separate specifications. Removed schema specifications (not totally up to date and not used by the tools). Removed tool implementation considerations (incorporated into configuration tool work already). Removed chapter "Detailed configuration examples" (hard to keep up to date, working "examples" are also provided part of S60 build).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1944
       Several minor modifications.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1945
   - - 0.81
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1946
     - 16.5.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1947
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1948
     - Added name-id mapping functionality into the specification
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1949
   - - 0.82
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1950
     - 26.5.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1951
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1952
     - Fixes from inspection: cardinality of the elements shown in the picture describing confml structure. Clarified read-onlyness of a setting. Added notes about uniqueness of mapKey attributes. Removed multiSelection data type. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1953
   - - 0.83
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1954
     - 2.6.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1955
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1956
     - Clean version for next update round.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1957
   - - 0.84
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1958
     - 18.9.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1959
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1960
     - Changed inclusion priorities to match official xinclude definitions. Changed default Unicode encoding. Added file element description. Added multiSelection back with refined syntax. Added support for more levels into views to satisfy needs from other platforms. Added time related data types. Updated confml namespace versioning due to different include processing logic.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1961
   - - 0.85
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1962
     - 6.10.2008
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1963
     - Draft
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1964
     - Corrections from inspection. Added meta elements required by configuration project. Changed name-id mapping to use separate map attribute in data definitions.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1965