aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Schemas/README.md54
1 files changed, 47 insertions, 7 deletions
diff --git a/Schemas/README.md b/Schemas/README.md
index 7d9f10d..5d04fad 100644
--- a/Schemas/README.md
+++ b/Schemas/README.md
@@ -12,37 +12,77 @@ Only `ParameterFrameworkConfiguration.xsd`, `SystemClass.xsd`, `Subsystem.xsd` a
`ConfigurableDomains.xsd` are relevant for use with xmllint: the others are
included by these 4 XSDs.
-You may refer to samples at
-<https://github.com/01org/parameter-framework-samples>.
+**You may refer to samples at
+<https://github.com/01org/parameter-framework-samples>.**
## ParameterFrameworkConfiguration.xsd
-Schema for the top-level configuration. It contains:
+Schema for the **top-level configuration**. It contains:
- A reference to the `SystemClass` (aka StructureDescription) XML file (see
below);
-- The list of plugins to be used;
+- The list of plugins (libraries) to be used. They may be split according to
+the folder they reside in. The `Folder` attribute can either be:
+
+ - an absolute path,
+ - a relative path (relative to the execution directory),
+ - empty.
+
+ In the first two cases, the runtime loader will be asked to explicitely load
+ the libraries found in the specified folder; in the last case (empty string)
+ the runtime loader will search for the library on its own (e.g. on Linux
+ distribution this is usually `/lib`, `/usr/lib` - see `man ld.so`)
- Optionally, a reference to the `Settings`.
Attributes of `ParameterFrameworkConfiguration` are:
- The `SystemClass` name (for consistency check)
-- The `TuningAllowed` (whether the parameter-framework listens for commands)
+- `TuningAllowed` (whether the parameter-framework listens for commands)
- The `ServerPort` on which the parameter-framework listens if
`TuningAllowed=true`.
## SystemClass.xsd
-Schema for the SystemClass associated with the top-level configuration. It
+Schema for the **SystemClass associated with the top-level configuration**. It
points to all the "Subsystem" files (see below).
+The `Name` attribute of the SystemClass must match the `SystemClass` attribute
+of the top-level configuration file. This name will be the first component of
+all parameters in it, i.e. if its name is "FooBar", its path is `/FooBar`. We
+will use this name in examples below.
+
## Subsystem.xsd
-Schema for all Subsystem files (aka Structure files). These files describe the
+Schema for all **Subsystem files** (aka Structure files). These files describe the
content and structure of the system to be managed by the parameter-framework
and also indicate which plugin is to be used.
+A Subsystem has the following attribute:
+
+- `Name` (self-explanatory); again it is the base component of all parameters
+ inside it; i.e. if its name is "Spam", its path is `/FooBar/Spam`;
+- `Type`, which indicates which SubsystemBuilder is to be used (each plugin can
+ declare one or more SubsystemBuilders); it may be defined as `Virtual`, in
+ which case, no plugin will be used and the parameters won't be synchronized.
+ This is useful for debugging but may also be used for the parameter-framework
+ to act as a configurable settings database;
+- `Endianness`: `Little` or `Big`;
+- `Mapping` (optional), defines a Mapping to be inherited by all Components in
+ the Subsystem.
+
+A Subsystem *must* contain:
+
+- A `ComponentLibrary`, which may include (using `<xi:include href="xyz.xml"/>`)
+ other files containing a `<ComponentLibrary>` or a `<ComponentTypeSet>` tag.
+- An `InstanceDefinition` which instantiates the parameters and may use
+ ComponentTypes defined in the ComponentLibrary.
+
## ConfigurableDomains.xsd
Schema for the ConfigurableDomains (aka Settings files). These files contain
the rules for applying values to parameters.
+
+Writing this file by hand is painful but it is not intended to be dealt
+with directly: instead, you may use the command-line interface (see
+`remote-process/README.md`) to set the settings and export the resulting
+Settings with the `getDomainsWithSettingsXML` command.