diff --git a/examples/RobotForm.xsd b/examples/RobotForm.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..1a5849476db2b4b7ba94c4dbbf0efe96909a94bc
--- /dev/null
+++ b/examples/RobotForm.xsd
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Written by hand using Emacs by Anders Nilsson <anders.nilsson@cs.lth.se> -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0.1">
+  <xs:annotation>
+    <xs:appinfo>
+      XML Schema for the form markup language developed by Pierre
+      Nugues (pierre.nugues@cs.lth.se) for use in the SMErobot EU FP6
+      project.
+    </xs:appinfo>
+  </xs:annotation>
+
+  <xs:element name="configuration-sheet" type="ConfigSheetType"/>      
+  <xs:element name="specifications" type="SpecificationsType"/>
+  <xs:element name="spec" type="SpecType"/>
+  <xs:element name="one-of" type="OneOfType"/>
+  <xs:element name="option" type="OptionType" />
+  <xs:element name="command" type="CommandType" />
+  <xs:element name="param" type="ParamType" />
+  <xs:element name="img" type="ImgType" />
+  <xs:element name="snd" type="SndType" />
+  <xs:element name="tasks" type="TasksType" />
+  <xs:element name="task" type="TaskType" />
+  <xs:element name="args" type="ArgsType" />
+<!--   <xs:element name="meta-arg" type="MetaArgsType" />   -->
+  <xs:element name="task-sequence" type="TaskSequenceType" />
+
+  <xs:complexType name="ConfigSheetType">
+    <xs:sequence>
+      <xs:element ref="specifications" />
+      <xs:element ref="tasks" />
+      <xs:element ref="task-sequence" />
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="id" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="SpecificationsType">
+    <xs:sequence>
+      <xs:element ref="spec" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+  <xs:complexType name="SpecType">
+    <xs:sequence> 
+      <xs:element ref="one-of" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>    
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="id" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="OneOfType">
+    <xs:sequence>
+      <xs:element ref="option" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+  <xs:complexType name="OptionType">
+    <xs:sequence>
+      <xs:element name="meta-arg" minOccurs="0">
+        <xs:complexType>
+          <xs:simpleContent>
+            <xs:extension base="xs:string">
+              <xs:attribute name="name" type="xs:string" />         
+            </xs:extension>
+          </xs:simpleContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element ref="command"  minOccurs="1"/>
+      <xs:element ref="param"  minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="img"  minOccurs="0"/>
+      <xs:element ref="snd"  minOccurs="0"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+  <xs:complexType name="CommandType">
+    <xs:attribute name="code" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="ParamType">
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="text" type="xs:string" />
+    <xs:attribute name="value" type="xs:string" />
+    <xs:attribute name="unit" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="ImgType">
+    <xs:attribute name="src" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="SndType">
+    <xs:attribute name="src" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="TasksType">
+    <xs:sequence>
+      <xs:element ref="task" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+  <xs:complexType name="TaskType">
+    <xs:sequence>
+      <xs:element ref="args" minOccurs="0"/>
+      <xs:element ref="one-of" minOccurs="0"/>
+    </xs:sequence>      
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="id" type="xs:string" />
+  </xs:complexType>
+
+  <xs:complexType name="ArgsType">
+    <xs:sequence>
+      <xs:element name="arg0" type="xs:string"/>
+      <xs:element name="arg1" type="xs:string"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+<!--   <xs:complexType name="MetaArgsType"> -->
+<!--     <xs:simpleContent> -->
+<!--       <xs:extension base="xs:string"> -->
+<!--       </xs:extension> -->
+<!--     </xs:simpleContent> -->
+<!--     <xs:attribute name="name" type="xs:string" /> -->
+<!--   </xs:complexType> -->
+
+  <xs:complexType name="TaskSequenceType">
+    <xs:sequence>
+      <xs:element name="task" type="TaskType" maxOccurs="unbounded"/>
+    </xs:sequence>      
+  </xs:complexType>
+
+  
+
+</xs:schema>
diff --git a/examples/config-sheet.xml b/examples/config-sheet.xml
new file mode 100755
index 0000000000000000000000000000000000000000..d4d22d3085c4aff2893e991be5a95fb654102102
--- /dev/null
+++ b/examples/config-sheet.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<configuration-sheet name="wood sign process" id="id001"
+                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                     xsi:noNamespaceSchemaLocation='RobotForm.xsd' >
+    <specifications>
+        <spec name="shape" id="sid001">
+            <one-of>
+                <option>
+                    <command code="code/sharp.cd"/>
+                    <param name="shape" text="sharp corners" value="sharp"/>        
+                    <img src="img/shape_sharp.jpg"/>
+                    <snd src="snd/sharp.wav"/>
+                </option>
+                <option>
+                    <command code="code/soft.cd"/>
+                    <param name="shape" text="soft corner" value="soft"/>
+                    <param name="diameter" text="Corner diameter [mm]" unit="mm"/>
+                    <img src="img/shape_soft.jpg"/>
+                </option>
+                <option>
+                    <command code="code/cut.cd"/>
+                    <param name="shape" text="cut corners" value="cut"/>
+                    <param name="height" text="Corner height [mm]" unit="mm"/>
+                    <img src="img/shape_cut.jpg"/>
+                </option>                
+            </one-of>
+        </spec>
+        <spec name="hole-configuration" id="sid002">
+            <one-of>
+                <option>
+                    <command code="code/hole.cd"/>
+                    <param name="hole-configuration" text="one" value="one"/>
+                    <img src="img/hole_one.jpg"/>
+                </option>
+                <option>
+                    <command code="code/hole.cd"/>
+                    <param name="hole-configuration" text="two" value="two"/>
+                    <img src="img/hole_two.jpg"/>
+                </option>
+                <option>
+                    <command code="code/hole.cd"/>
+                    <param name="hole-configuration" text="four" value="four"/>
+                    <img src="img/hole_four.jpg"/>
+                </option>
+            </one-of>
+        </spec>
+        <spec name="pattern-text" id="sid003">
+            <one-of>
+                <option>
+                    <command code="code/pattern-text.cd"/>
+                    <param name="pattern" text="pattern1" value="pattern1"/>
+                    <img src="img/pattern_one.jpg"/>
+                </option>
+                <option>
+                    <command code="code/pattern-text.cd"/>
+                    <param name="pattern" text="pattern2" value="pattern2"/>
+                    <img src="img/pattern_two.jpg"/>
+                </option>
+            </one-of>
+            <one-of>
+                <option>
+                    <command code="code/drawing.cd"/>
+                    <param name="text" text="drawing" value="file"/>
+                    <img src="img/text_area.jpg"/>
+                </option>
+                <option>
+                    <command code="code/text.cd"/>
+                    <param name="text" text="text" value="text"/>
+                    <param name="text-value"/>
+                </option>
+            </one-of>
+        </spec>
+    </specifications>
+    <tasks>
+        <task name="calibration" id="tid001">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>work piece</arg1>
+            </args>
+            <!-- the options need input and output data. They are to be determined -->
+            <one-of>
+                <option>
+                    <command code="code/preprog.cd"/>
+                    <param name="calibration" text="preprogrammed" value="preprogrammed"/>
+                </option>
+                <option>
+                    <meta-arg name="points">3</meta-arg>
+                    <command code="manual.cd"/>
+                    <param name="calibration" text="manual" value="manual"/>
+                </option>
+                <option>
+                    <command code="code/touch_sensor.cd"/>
+                    <param name="calibration" text="touch sensor" value="touch"/>
+                </option>
+            </one-of>
+        </task>
+        <task name="milling" id="tid002">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>wood sign corners</arg1>
+            </args>
+            <one-of>
+                <option>
+                    <command code="code/skip.cd"/>
+                    <param name="milling" text="skip" value="skip"/>
+                </option>
+            </one-of>            
+        </task>
+        <task name="selection-drill-holes" id="tid003">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>work piece</arg1>
+            </args>
+            <one-of>
+                <option>
+                    <command code="code/skip.cd"/>
+                    <param name="hole" text="skip" value="skip"/>
+                </option>
+                <option>
+                    <command code="code/manual.cd"/>
+                    <param name="hole" text="automatic" value="automatic"/>
+                </option>
+                <option>
+                    <command code="code/lead-through.cd"/>
+                    <param name="hole" text="lead-through" value="lead-through"/>
+                </option>
+                <option>
+                    <command code="code/gesture.cd"/>
+                    <param name="hole" text="gesture" value="gesture"/>
+                </option>
+            </one-of>
+        </task>
+        <task name="drilling" id="tid004">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>holes</arg1>
+            </args>
+            <one-of>
+                <option>
+                    <command code="code/skip.cd"/>
+                    <param name="drilling" text="skip" value="skip"/>
+                </option>
+            </one-of>            
+        </task>
+        <task name="selection-text-area" id="tid005">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>text area</arg1>
+            </args>
+            <one-of>
+                <option>
+                    <command code="code/skip.cd"/>
+                    <param name="selection-text-area" text="skip" value="skip"/>
+                </option>
+                <option>
+                    <command code="code/manual.cd"/>
+                    <param name="selection-text-area" text="automatic" value="automatic"/>
+                </option>
+                <option>
+                    <command code="code/lead-through.cd"/>
+                    <param name="selection-text-area" text="lead-through" value="lead-through"/>
+                </option>
+                <option>
+                    <command code="code/gesture.cd"/>
+                    <param name="selection-text-area" text="gesture" value="gesture"/>
+                </option>
+            </one-of>
+        </task>
+        <task name="grinding" id="tid006">
+            <args>
+                <arg0>robot</arg0>
+                <arg1>surface</arg1>
+            </args>
+            <one-of>
+                <option>
+                    <command code="code/skip.cd"/>
+                    <param name="grinding" text="skip" value="skip"/>
+                </option>
+            </one-of>            
+        </task>
+    </tasks>
+    <task-sequence>
+        <task id="tid001"/>
+        <task id="tid002"/>
+        <task id="tid003"/>
+        <task id="tid004"/>
+        <task id="tid005"/>
+        <task id="tid006"/>
+    </task-sequence>
+</configuration-sheet>