diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
index 1c2bfdc..512ad5d 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/FieldPropertyVisitor.java
@@ -62,6 +62,11 @@
      */
     private String m_type;
 
+    /**
+     * Property immutable aspect.
+     */
+    private String m_immutable;
+
 
     /**
      * Constructor without field
@@ -100,6 +105,10 @@
             m_mandatory = value.toString();
             return;
         }
+        if (name.equals("immutable")) {
+            m_immutable = value.toString();
+            return;
+        }
         if (name.equals("type")) {
         	m_type = value.toString();
         }
@@ -146,6 +155,9 @@
         if (m_mandatory != null) {
             prop.addAttribute(new Attribute("mandatory", m_mandatory));
         }
+        if (m_immutable != null) {
+            prop.addAttribute(new Attribute("immutable", m_immutable));
+        }
 
     }
 }
\ No newline at end of file
diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
index 5804c6c..1cf82ab 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/annotation/visitor/MethodPropertyVisitor.java
@@ -62,6 +62,11 @@
     private String m_mandatory;
 
     /**
+     * Property immutable aspect.
+     */
+    private String m_immutable;
+
+    /**
      * Constructor.
      *
      * @param parent : element element.
@@ -92,6 +97,10 @@
             m_mandatory = value.toString();
             return;
         }
+        if (name.equals("immutable")) {
+            m_immutable = value.toString();
+            return;
+        }
         if (name.equals("id")) {
             m_id = value.toString();
         }
@@ -132,6 +141,10 @@
         if (m_mandatory != null) {
             prop.addAttribute(new Attribute("mandatory", m_mandatory));
         }
+        if (m_immutable != null) {
+            prop.addAttribute(new Attribute("immutable", m_immutable));
+        }
+
         return prop;
     }
 
diff --git a/ipojo/manipulator/manipulator/src/main/resources/xsd/core.xsd b/ipojo/manipulator/manipulator/src/main/resources/xsd/core.xsd
index b611d81..d7139db 100644
--- a/ipojo/manipulator/manipulator/src/main/resources/xsd/core.xsd
+++ b/ipojo/manipulator/manipulator/src/main/resources/xsd/core.xsd
@@ -17,573 +17,625 @@
   ~ under the License.
   -->
 <xs:schema elementFormDefault="qualified" targetNamespace="org.apache.felix.ipojo"
-  xmlns="org.apache.felix.ipojo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-  <xs:annotation>
-    <xs:documentation>iPOJO Core XML-Schema. This grammars models iPOJO descriptor using core
-      features. It provides several extensibility mechanism in order to compose this schema with
-      external handlers and other component implementation type such as
-      compositions.</xs:documentation>
-  </xs:annotation>
-  <xs:element name="ipojo">
-    <xs:complexType>
-      <xs:annotation>
-        <xs:documentation>iPOJO top level element.</xs:documentation>
-      </xs:annotation>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element ref="handler" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The handler declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element ref="instance" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The instance declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element ref="component" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The component type declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
-        > </xs:any>
-      </xs:choice>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="HandlerType">
+           xmlns="org.apache.felix.ipojo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:annotation>
-      <xs:documentation>Description of the handler.</xs:documentation>
+        <xs:documentation>iPOJO Core XML-Schema. This grammars models iPOJO descriptor using core
+            features. It provides several extensibility mechanism in order to compose this schema with
+            external handlers and other component implementation type such as
+            compositions.
+        </xs:documentation>
     </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="RootElementType">
-        <xs:sequence maxOccurs="unbounded" minOccurs="0">
-          <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"
-          > </xs:any>
-        </xs:sequence>
-        <xs:attribute name="classname" type="xs:string" use="required">
-          <xs:annotation>
-            <xs:documentation>The implementation class of the handler. The specified class must
-              implement (direcly or not) the "org.apache.felix.ipojo.Handler"
-              interface.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="name" type="xs:string" use="required">
-          <xs:annotation>
-            <xs:documentation>The name of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="namespace" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The XML namespace of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="architecture" type="xs:boolean" use="optional" fixed="false">
-          <xs:annotation>
-            <xs:documentation>Enables or disables the architecture exposition. By default, the
-              architecture is not exposed. This allows handler introspection.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="level" type="xs:int" use="optional">
-          <xs:annotation>
-            <xs:documentation>The start level of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="InstanceType">
-    <xs:annotation>
-      <xs:documentation>Describes an instance of a component.</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="RootElementType">
-        <xs:sequence minOccurs="0" maxOccurs="unbounded">
-          <xs:element name="property" type="InstancePropertyType">
+    <xs:element name="ipojo">
+        <xs:complexType>
             <xs:annotation>
-              <xs:documentation>The instance properties.</xs:documentation>
+                <xs:documentation>iPOJO top level element.</xs:documentation>
             </xs:annotation>
-          </xs:element>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="handler" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The handler declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="instance" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The instance declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="component" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The component type declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
+                        ></xs:any>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+    <xs:complexType name="HandlerType">
+        <xs:annotation>
+            <xs:documentation>Description of the handler.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="RootElementType">
+                <xs:sequence maxOccurs="unbounded" minOccurs="0">
+                    <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"
+                            ></xs:any>
+                </xs:sequence>
+                <xs:attribute name="classname" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>The implementation class of the handler. The specified class must
+                            implement (direcly or not) the "org.apache.felix.ipojo.Handler"
+                            interface.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="name" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>The name of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="namespace" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The XML namespace of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="architecture" type="xs:boolean" use="optional" fixed="false">
+                    <xs:annotation>
+                        <xs:documentation>Enables or disables the architecture exposition. By default, the
+                            architecture is not exposed. This allows handler introspection.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="level" type="xs:int" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The start level of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="InstanceType">
+        <xs:annotation>
+            <xs:documentation>Describes an instance of a component.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="RootElementType">
+                <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                    <xs:element name="property" type="InstancePropertyType">
+                        <xs:annotation>
+                            <xs:documentation>The instance properties.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+                <xs:attribute name="component" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>The name of the instance component type.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="name" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The (unique) name of the instance.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="version" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The version of the factory to use.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="InstancePropertyType">
+        <xs:annotation>
+            <xs:documentation>Defines a property of an instance configuration.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="property" type="InstancePropertyType" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
-        <xs:attribute name="component" type="xs:string">
-          <xs:annotation>
-            <xs:documentation>The name of the instance component type.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
         <xs:attribute name="name" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The (unique) name of the instance.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Name of the property. Can be optional if a property is inside a structure.
+                    The 'instance.name' property has a special semantic as it will be used as the instance
+                    name.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Value of the property. Can be null for property containing other
+                    properties.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Type of the property, used to create the adequate object. Supported values
+                    are list, array, dictionary and map.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="RootElementType"/>
+    <xs:complexType name="ComponentType">
+        <xs:annotation>
+            <xs:documentation>Declares an atomic (i.e. primitive) component type.</xs:documentation>
+        </xs:annotation>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+            <xs:element ref="callback" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Describes the method(s) to invoke when the component's state
+                        changes.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="provides" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Indicates the component provided service(s). By default, all implemented
+                        interfaces are published.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="requires" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Indicates the service requirements of the component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="properties" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Describes the properties of the component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="controller" minOccurs="0" maxOccurs="1">
+                <xs:annotation>
+                    <xs:documentation>Lifecycle controller for this component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
+                    ></xs:any>
+        </xs:choice>
+        <xs:attribute name="name" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Specifies the name of the component type. This name is used to identify
+                    the factory attached to this type. If not specified, the factory name is the
+                    implementation class name.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="public" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Determines if the component type is public or private. A public factory
+                    (default) can be used from any bundles.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="classname" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the implementation class of the component
+                    type.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="architecture" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Enables or disables the architecture exposition. By default, the
+                    architecture is exposed. This allows instance introspection.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="immediate" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Creates the object of the component implementation type as soon as the
+                    component instance becomes valid. The default value is "true" if the component doesn't
+                    provide any service, "false" otherwise.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="factory-method" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Factory method called to create POJO objects instead of the constructor.
+                    The specified method must be a static method of the implementation class returning an
+                    instance of this implementation class. The factory method can receive the bundle context
+                    in argument.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
         <xs:attribute name="version" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The version of the factory to use.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="InstancePropertyType">
-    <xs:annotation>
-      <xs:documentation>Defines a property of an instance configuration.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="property" type="InstancePropertyType" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Name of the property. Can be optional if a property is inside a structure.
-          The 'instance.name' property has a special semantic as it will be used as the instance
-          name.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Value of the property. Can be null for property containing other
-          properties.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Type of the property, used to create the adequate object. Supported values
-          are list, array, dictionary and map.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="RootElementType"/>
-  <xs:complexType name="ComponentType">
-    <xs:annotation>
-      <xs:documentation>Declares an atomic (i.e. primitive) component type.</xs:documentation>
-    </xs:annotation>
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element ref="callback" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Describes the method(s) to invoke when the component's state
-            changes.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="provides" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Indicates the component provided service(s). By default, all implemented
-            interfaces are published.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="requires" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Indicates the service requirements of the component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="properties" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Describes the properties of the component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="controller" minOccurs="0" maxOccurs="1">
-        <xs:annotation>
-          <xs:documentation>Lifecycle controller for this component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
-      > </xs:any>
-    </xs:choice>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Specifies the name of the component type. This name is used to identify
-          the factory attached to this type. If not specified, the factory name is the
-          implementation class name.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="public" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Determines if the component type is public or private. A public factory
-          (default) can be used from any bundles.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="classname" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the implementation class of the component
-          type.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="architecture" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Enables or disables the architecture exposition. By default, the
-          architecture is exposed. This allows instance introspection.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="immediate" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Creates the object of the component implementation type as soon as the
-          component instance becomes valid. The default value is "true" if the component doesn't
-          provide any service, "false" otherwise.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factory-method" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Factory method called to create POJO objects instead of the constructor.
-          The specified method must be a static method of the implementation class returning an
-          instance of this implementation class. The factory method can receive the bundle context
-          in argument.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="version" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Set the version of this component type</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="RequiresType">
-    <xs:annotation>
-      <xs:documentation>Description of component services requirements.</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="ServiceDependencyType">
-        <xs:sequence minOccurs="0" maxOccurs="unbounded">
-          <xs:element name="callback" type="DependencyCallbackType">
             <xs:annotation>
-              <xs:documentation>Service requirement method invocation description. Here can be
-                specified a bind method called when a service appears and an unbind method called
-                when a service disappears.</xs:documentation>
+                <xs:documentation>Set the version of this component type</xs:documentation>
             </xs:annotation>
-          </xs:element>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="RequiresType">
+        <xs:annotation>
+            <xs:documentation>Description of component services requirements.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="ServiceDependencyType">
+                <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                    <xs:element name="callback" type="DependencyCallbackType">
+                        <xs:annotation>
+                            <xs:documentation>Service requirement method invocation description. Here can be
+                                specified a bind method called when a service appears and an unbind method called
+                                when a service disappears.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+
+                <xs:attribute name="interface" type="xs:string" use="prohibited">
+                    <xs:annotation>
+                        <xs:documentation>The interface describing the required service type. This attribute is
+                            needed only when using aggregate dependencies with field injection and when the type
+                            of this field is a list, vector, collection and set. This attribute is deprecated, use
+                            'specification'.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="field" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The name of the field representing the service dependency in the
+                            implementation class.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="nullable" type="xs:boolean" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Enable or disable the Nullable pattern on optional service
+                            dependencies. By default, Nullable pattern is enabled. If disabled, iPOJO will inject
+                            null instead of a Nullable object.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="default-implementation" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Specifies the default implementation class for an optional service
+                            dependency. If no providers are found, iPOJO creates an instance of the
+                            default-implementation (nullary constructor) and injects it. The given class must
+                            implement the required service interface.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="from" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Specific service provider. The dependency can only be fulfilled by the
+                            component with the matching name, or by the service with a matching
+                            PID.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="proxy" type="xs:boolean" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Enables or Disable the proxy injection (on field
+                            injection)
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="scope" use="optional">
+                    <xs:simpleType>
+                        <xs:restriction base="xs:string">
+                            <xs:enumeration value="global"/>
+                            <xs:enumeration value="composite"/>
+                            <xs:enumeration value="composite+global"/>
+                        </xs:restriction>
+                    </xs:simpleType>
+                </xs:attribute>
+
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="DependencyCallbackType">
+        <xs:annotation>
+            <xs:documentation>Dependency callbacks are used to receive notification when service providers
+                arrive and leave.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Method to call</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" use="required">
+            <xs:annotation>
+                <xs:documentation>Type of callback (bind, unbind, or updated). Bind means that the method
+                    will be called when a provider arrives. Unbind means that the method will be called when a
+                    provider leaves. Updated means that a service was modified but is still valid for the
+                    service dependency.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="bind"/>
+                    <xs:enumeration value="unbind"/>
+                    <xs:enumeration value="modified"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="CallbackType">
+        <xs:annotation>
+            <xs:documentation>Lifecycle Callback. Allows a POJO to be notified when the instance becomes
+                valid or invalid.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the method to call on the transition.</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="transition" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the transition when the callback needs to be
+                    invoked.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:annotation>
+                    <xs:documentation>Lifecycle transition state. "validate" means that the component's
+                        instance was invalid and becomes valid, "invalidate" means that the component's intance
+                        was valid and becomes invalid.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="validate"/>
+                    <xs:enumeration value="invalidate"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:element name="provides" type="ProvidesType" id="provides"/>
+    <xs:complexType name="ProvidesType">
+        <xs:annotation>
+            <xs:documentation>Provided service(s) description.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+            <xs:choice>
+                <xs:element name="property" type="PropertyType">
+                    <xs:annotation>
+                        <xs:documentation>List of service specific properties.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="controller" minOccurs="0" maxOccurs="1" type="ServiceControllerType">
+                    <xs:annotation>
+                        <xs:documentation>Service Controller impacting the current provided
+                            service
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
         </xs:sequence>
-
         <xs:attribute name="interface" type="xs:string" use="prohibited">
-          <xs:annotation>
-            <xs:documentation>The interface describing the required service type. This attribute is
-              needed only when using aggregate dependencies with field injection and when the type
-              of this field is a list, vector, collection and set. This attribute is deprecated, use
-              'specification'.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Deprecated attribute, use 'specifications' instead of
+                    'interface'
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
+        <xs:attribute name="specifications" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The list of service specifications (i.e. interfaces) to expose. By
+                    default, all interfaces implemented by the component implementation class are
+                    published.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="factory" type="xs:string" use="prohibited">
+            <xs:annotation>
+                <xs:documentation>Use 'strategy' instead of 'factory'</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategy" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>POJO creation strategy. By default, the POJO object is created once
+                    (singleton). If the factory is set to "SERVICE", the creation policy follows the OSGi
+                    service factory policy (one object object per asking bundle). INSTANCE allows creating one
+                    different POJO object per asking instance. Finally, a custom strategy can be used by
+                    specifying the qualified name of the class extending CreationPolicy
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="post-registration" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Defines a callback called after the service registration. The callback takes a
+                    ServiceReference
+                    as parameter
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="post-unregistration" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Defines a callback called after the service unregistration. The callback takes a
+                    ServiceReference
+                    as parameter
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="ServiceControllerType">
+        <xs:annotation>
+            <xs:documentation>Defines a service controller.</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="field" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Field of the controller</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Intiail value of the controller</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="PropertyType">
+        <xs:annotation>
+            <xs:documentation>Defines a component property.</xs:documentation>
+        </xs:annotation>
         <xs:attribute name="field" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The name of the field representing the service dependency in the
-              implementation class.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Field of the property</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="nullable" type="xs:boolean" use="optional">
-          <xs:annotation>
-            <xs:documentation>Enable or disable the Nullable pattern on optional service
-              dependencies. By default, Nullable pattern is enabled. If disabled, iPOJO will inject
-              null instead of a Nullable object.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Setter method of the property. This method is called to inject property
+                    value.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="default-implementation" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>Specifies the default implementation class for an optional service
-              dependency. If no providers are found, iPOJO creates an instance of the
-              default-implementation (nullary constructor) and injects it. The given class must
-              implement the required service interface.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="name" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Name of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="from" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>Specific service provider. The dependency can only be fulfilled by the
-              component with the matching name, or by the service with a matching
-              PID.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Default value of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="proxy" type="xs:boolean" use="optional">
-          <xs:annotation>
-            <xs:documentation>Enables or Disable the proxy injection (on field
-              injection)</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="type" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Type of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="scope" use="optional">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="global"/>
-              <xs:enumeration value="composite"/>
-              <xs:enumeration value="composite+global"/>
-            </xs:restriction>
-          </xs:simpleType>
+        <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
+            <xs:annotation>
+                <xs:documentation>Set the property as mandatory. A mandatory property MUST receive a value
+                    either in the component type description or in the instance configuration. Properties are
+                    optional by default.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DependencyCallbackType">
-    <xs:annotation>
-      <xs:documentation>Dependency callbacks are used to receive notification when service providers
-        arrive and leave.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="method" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Method to call</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" use="required">
-      <xs:annotation>
-        <xs:documentation> Type of callback (bind, unbind, or updated). Bind means that the method
-          will be called when a provider arrives. Unbind means that the method will be called when a
-          provider leaves. Updated means that a service was modified but is still valid for the
-          service dependency. </xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="bind"/>
-          <xs:enumeration value="unbind"/>
-          <xs:enumeration value="modified"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="CallbackType">
-    <xs:annotation>
-      <xs:documentation>Lifecycle Callback. Allows a POJO to be notified when the instance becomes
-        valid or invalid.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="method" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the method to call on the transition.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="transition" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the transition when the callback needs to be
-          invoked.</xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
+        <xs:attribute name="immutable" type="xs:boolean" use="optional" default="false">
+            <xs:annotation>
+                <xs:documentation>Set the property as immutable. An immutable property is inherited by the component
+                    instance but the value cannot be overridden.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:element name="callback" type="CallbackType" id="callback"/>
+    <xs:element name="controller" type="ControllerType" id="controller">
         <xs:annotation>
-          <xs:documentation>Lifecycle transition state. "validate" means that the component's
-            instance was invalid and becomes valid, "invalidate" means that the component's intance
-            was valid and becomes invalid.</xs:documentation>
+            <xs:documentation/>
         </xs:annotation>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="validate"/>
-          <xs:enumeration value="invalidate"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:element name="provides" type="ProvidesType" id="provides"/>
-  <xs:complexType name="ProvidesType">
-    <xs:annotation>
-      <xs:documentation>Provided service(s) description.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence minOccurs="0" maxOccurs="unbounded">
-      <xs:choice>
-      <xs:element name="property" type="PropertyType">
+    </xs:element>
+    <xs:element name="requires" type="RequiresType" id="requires"/>
+    <xs:element name="component" type="ComponentType" id="component"/>
+    <xs:element name="handler" type="HandlerType" id="handler"/>
+    <xs:element name="instance" type="InstanceType" id="instance"/>
+
+    <xs:element name="properties" type="PropertiesType" id="properties"/>
+    <xs:complexType name="PropertiesType">
         <xs:annotation>
-          <xs:documentation>List of service specific properties.</xs:documentation>
+            <xs:documentation>List of component, instance or service properties. This field will receive
+                the property value.
+            </xs:documentation>
         </xs:annotation>
-      </xs:element>
-      <xs:element name="controller" minOccurs="0" maxOccurs="1" type="ServiceControllerType">
-          <xs:annotation>
-            <xs:documentation>Service Controller impacting the current provided
-              service</xs:documentation>
-          </xs:annotation>
-       </xs:element>
-      </xs:choice>
-    </xs:sequence>
-    <xs:attribute name="interface" type="xs:string" use="prohibited">
-      <xs:annotation>
-        <xs:documentation>Deprecated attribute, use 'specifications' instead of
-          'interface'</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="specifications" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The list of service specifications (i.e. interfaces) to expose. By
-          default, all interfaces implemented by the component implementation class are
-          published.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factory" type="xs:string" use="prohibited">
-      <xs:annotation>
-        <xs:documentation>Use 'strategy' instead of 'factory'</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="strategy" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>POJO creation strategy. By default, the POJO object is created once
-          (singleton). If the factory is set to "SERVICE", the creation policy follows the OSGi
-          service factory policy (one object object per asking bundle). INSTANCE allows creating one
-          different POJO object per asking instance. Finally, a custom strategy can be used by
-          specifying the qualified name of the class extending CreationPolicy</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="post-registration" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Defines a callback called after the service registration. The callback takes a ServiceReference
-        as parameter</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="post-unregistration" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Defines a callback called after the service unregistration. The callback takes a ServiceReference
-        as parameter</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="ServiceControllerType">
-    <xs:annotation>
-      <xs:documentation> Defines a service controller. </xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation> Field of the controller </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Intiail value of the controller </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="PropertyType">
-    <xs:annotation>
-      <xs:documentation> Defines a component property. </xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Field of the property </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="method" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Setter method of the property. This method is called to inject property
-          value. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Name of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Default value of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Type of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
-      <xs:annotation>
-        <xs:documentation>Set the property as mandatory. A mandatory property MUST receive a value
-          either in the component type description or in the instance configuration. Properties are
-          optional by default.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:element name="callback" type="CallbackType" id="callback"/>
-  <xs:element name="controller" type="ControllerType" id="controller">
-    <xs:annotation>
-      <xs:documentation/>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="requires" type="RequiresType" id="requires"/>
-  <xs:element name="component" type="ComponentType" id="component"/>
-  <xs:element name="handler" type="HandlerType" id="handler"/>
-  <xs:element name="instance" type="InstanceType" id="instance"/>
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+            <xs:element name="property" type="PropertyType">
+                <xs:annotation>
+                    <xs:documentation>The list of properties.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="propagation" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Propagation of the component properties to the provided services. If this
+                    parameter is set to "true", each time properties are reconfigured, they are propagated to
+                    each service published by the component.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="pid" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Unique identifier used to reconfigure components properties (via Managed
+                    Services) with the Configuration Admin.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="updated" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Method called when a reconfiguration is done</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
 
-  <xs:element name="properties" type="PropertiesType" id="properties"/>
-  <xs:complexType name="PropertiesType">
-    <xs:annotation>
-      <xs:documentation>List of component, instance or service properties. This field will receive
-        the property value.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="property" type="PropertyType">
+    <xs:complexType name="ServiceDependencyType">
+        <xs:attribute name="specification" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The specification describing the required service type. This attribute is
+                    needed only when using aggregate dependencies with field injection and when the type of
+                    this field is a list, vector, collection and set.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="optional" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the service dependency optionality</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregate" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the service dependency cardinality.</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="policy" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the binding policy of the dependency. Three policies are supported.
+                    The dynamic policy supports service providers dynamism. The static policy freezes the
+                    provider set as soon as the dependency is used. The dynamic-priority policy is an
+                    extension of the dynamic policy, but providers are ranked.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="dynamic"/>
+                    <xs:enumeration value="static"/>
+                    <xs:enumeration value="dynamic-priority"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="comparator" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The comparator attribute allows specifying the class used to compare
+                    providers. This class must implemented the java.util.Comparator class and must support the
+                    comparison of service references.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="filter" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>LDAP filter used to filter providers</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="id" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>id of the service dependency. The id allows to indentify and to refert to
+                    this dependency.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+
+    <xs:complexType name="ControllerType">
         <xs:annotation>
-          <xs:documentation>The list of properties.</xs:documentation>
+            <xs:documentation>Specifies the lifecycle controller of a component, which allows to validate
+                or invalidate component instances.
+            </xs:documentation>
         </xs:annotation>
-      </xs:element>
-    </xs:sequence>
-    <xs:attribute name="propagation" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Propagation of the component properties to the provided services. If this
-          parameter is set to "true", each time properties are reconfigured, they are propagated to
-          each service published by the component.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="pid" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Unique identifier used to reconfigure components properties (via Managed
-          Services) with the Configuration Admin.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="updated" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Method called when a reconfiguration is done</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-
-  <xs:complexType name="ServiceDependencyType">
-    <xs:attribute name="specification" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The specification describing the required service type. This attribute is
-          needed only when using aggregate dependencies with field injection and when the type of
-          this field is a list, vector, collection and set.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="optional" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the service dependency optionality</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="aggregate" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the service dependency cardinality.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="policy" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the binding policy of the dependency. Three policies are supported.
-          The dynamic policy supports service providers dynamism. The static policy freezes the
-          provider set as soon as the dependency is used. The dynamic-priority policy is an
-          extension of the dynamic policy, but providers are ranked.</xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="dynamic"/>
-          <xs:enumeration value="static"/>
-          <xs:enumeration value="dynamic-priority"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="comparator" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The comparator attribute allows specifying the class used to compare
-          providers. This class must implemented the java.util.Comparator class and must support the
-          comparison of service references.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="filter" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>LDAP filter used to filter providers</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>id of the service dependency. The id allows to indentify and to refert to
-          this dependency.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-
-  <xs:complexType name="ControllerType">
-    <xs:annotation>
-      <xs:documentation>Specifies the lifecycle controller of a component, which allows to validate
-        or invalidate component instances.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>The name of the component lifecycle controller field. The type of the
-          specified field must be boolean. Setting the value of the specified field to "true" means
-          the validation of the component instance while setting it to "false" means the
-          invalidation of the component instance.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
+        <xs:attribute name="field" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>The name of the component lifecycle controller field. The type of the
+                    specified field must be boolean. Setting the value of the specified field to "true" means
+                    the validation of the component instance while setting it to "false" means the
+                    invalidation of the component instance.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
 </xs:schema>
diff --git a/ipojo/runtime/annotations/src/main/java/org/apache/felix/ipojo/annotations/Property.java b/ipojo/runtime/annotations/src/main/java/org/apache/felix/ipojo/annotations/Property.java
index 2c80de5..a5ba338 100644
--- a/ipojo/runtime/annotations/src/main/java/org/apache/felix/ipojo/annotations/Property.java
+++ b/ipojo/runtime/annotations/src/main/java/org/apache/felix/ipojo/annotations/Property.java
@@ -47,4 +47,10 @@
      */
     boolean mandatory() default false;
 
+    /**
+     * Is the property immutable?
+     * Default: false
+     */
+    boolean immutable() default false;
+
 }
diff --git a/ipojo/runtime/core/src/main/resources/core.xsd b/ipojo/runtime/core/src/main/resources/core.xsd
index 6046c8d..d7139db 100644
--- a/ipojo/runtime/core/src/main/resources/core.xsd
+++ b/ipojo/runtime/core/src/main/resources/core.xsd
@@ -1,602 +1,641 @@
 <!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
 <xs:schema elementFormDefault="qualified" targetNamespace="org.apache.felix.ipojo"
-  xmlns="org.apache.felix.ipojo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-  <xs:annotation>
-    <xs:documentation>iPOJO Core XML-Schema. This grammars models iPOJO descriptor using core
-      features. It provides several extensibility mechanism in order to compose this schema with
-      external handlers and other component implementation type such as
-      compositions.</xs:documentation>
-  </xs:annotation>
-  <xs:element name="ipojo">
-    <xs:complexType>
-      <xs:annotation>
-        <xs:documentation>iPOJO top level element.</xs:documentation>
-      </xs:annotation>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element ref="handler" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The handler declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element ref="instance" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The instance declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:element ref="component" minOccurs="0" maxOccurs="unbounded">
-          <xs:annotation>
-            <xs:documentation>The component type declarations.</xs:documentation>
-          </xs:annotation>
-        </xs:element>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
-        > </xs:any>
-      </xs:choice>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="HandlerType">
+           xmlns="org.apache.felix.ipojo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:annotation>
-      <xs:documentation>Description of the handler.</xs:documentation>
+        <xs:documentation>iPOJO Core XML-Schema. This grammars models iPOJO descriptor using core
+            features. It provides several extensibility mechanism in order to compose this schema with
+            external handlers and other component implementation type such as
+            compositions.
+        </xs:documentation>
     </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="RootElementType">
-        <xs:sequence maxOccurs="unbounded" minOccurs="0">
-          <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"
-          > </xs:any>
-        </xs:sequence>
-        <xs:attribute name="classname" type="xs:string" use="required">
-          <xs:annotation>
-            <xs:documentation>The implementation class of the handler. The specified class must
-              implement (direcly or not) the "org.apache.felix.ipojo.Handler"
-              interface.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="name" type="xs:string" use="required">
-          <xs:annotation>
-            <xs:documentation>The name of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="namespace" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The XML namespace of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="architecture" type="xs:boolean" use="optional" fixed="false">
-          <xs:annotation>
-            <xs:documentation>Enables or disables the architecture exposition. By default, the
-              architecture is not exposed. This allows handler introspection.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="level" type="xs:int" use="optional">
-          <xs:annotation>
-            <xs:documentation>The start level of the handler.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="InstanceType">
-    <xs:annotation>
-      <xs:documentation>Describes an instance of a component.</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="RootElementType">
-        <xs:sequence minOccurs="0" maxOccurs="unbounded">
-          <xs:element name="property" type="InstancePropertyType">
+    <xs:element name="ipojo">
+        <xs:complexType>
             <xs:annotation>
-              <xs:documentation>The instance properties.</xs:documentation>
+                <xs:documentation>iPOJO top level element.</xs:documentation>
             </xs:annotation>
-          </xs:element>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="handler" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The handler declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="instance" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The instance declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="component" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>The component type declarations.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
+                        ></xs:any>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+    <xs:complexType name="HandlerType">
+        <xs:annotation>
+            <xs:documentation>Description of the handler.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="RootElementType">
+                <xs:sequence maxOccurs="unbounded" minOccurs="0">
+                    <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"
+                            ></xs:any>
+                </xs:sequence>
+                <xs:attribute name="classname" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>The implementation class of the handler. The specified class must
+                            implement (direcly or not) the "org.apache.felix.ipojo.Handler"
+                            interface.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="name" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>The name of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="namespace" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The XML namespace of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="architecture" type="xs:boolean" use="optional" fixed="false">
+                    <xs:annotation>
+                        <xs:documentation>Enables or disables the architecture exposition. By default, the
+                            architecture is not exposed. This allows handler introspection.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="level" type="xs:int" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The start level of the handler.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="InstanceType">
+        <xs:annotation>
+            <xs:documentation>Describes an instance of a component.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="RootElementType">
+                <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                    <xs:element name="property" type="InstancePropertyType">
+                        <xs:annotation>
+                            <xs:documentation>The instance properties.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+                <xs:attribute name="component" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>The name of the instance component type.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="name" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The (unique) name of the instance.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="version" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The version of the factory to use.</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="InstancePropertyType">
+        <xs:annotation>
+            <xs:documentation>Defines a property of an instance configuration.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:element name="property" type="InstancePropertyType" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
-        <xs:attribute name="component" type="xs:string">
-          <xs:annotation>
-            <xs:documentation>The name of the instance component type.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
         <xs:attribute name="name" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The (unique) name of the instance.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Name of the property. Can be optional if a property is inside a structure.
+                    The 'instance.name' property has a special semantic as it will be used as the instance
+                    name.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Value of the property. Can be null for property containing other
+                    properties.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Type of the property, used to create the adequate object. Supported values
+                    are list, array, dictionary and map.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="RootElementType"/>
+    <xs:complexType name="ComponentType">
+        <xs:annotation>
+            <xs:documentation>Declares an atomic (i.e. primitive) component type.</xs:documentation>
+        </xs:annotation>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+            <xs:element ref="callback" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Describes the method(s) to invoke when the component's state
+                        changes.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="provides" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Indicates the component provided service(s). By default, all implemented
+                        interfaces are published.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="requires" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Indicates the service requirements of the component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="properties" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Describes the properties of the component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="controller" minOccurs="0" maxOccurs="1">
+                <xs:annotation>
+                    <xs:documentation>Lifecycle controller for this component.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
+                    ></xs:any>
+        </xs:choice>
+        <xs:attribute name="name" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Specifies the name of the component type. This name is used to identify
+                    the factory attached to this type. If not specified, the factory name is the
+                    implementation class name.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="public" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Determines if the component type is public or private. A public factory
+                    (default) can be used from any bundles.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="classname" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the implementation class of the component
+                    type.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="architecture" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Enables or disables the architecture exposition. By default, the
+                    architecture is exposed. This allows instance introspection.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="immediate" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Creates the object of the component implementation type as soon as the
+                    component instance becomes valid. The default value is "true" if the component doesn't
+                    provide any service, "false" otherwise.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="factory-method" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Factory method called to create POJO objects instead of the constructor.
+                    The specified method must be a static method of the implementation class returning an
+                    instance of this implementation class. The factory method can receive the bundle context
+                    in argument.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
         <xs:attribute name="version" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The version of the factory to use.</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="InstancePropertyType">
-    <xs:annotation>
-      <xs:documentation>Defines a property of an instance configuration.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="property" type="InstancePropertyType" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Name of the property. Can be optional if a property is inside a structure.
-          The 'instance.name' property has a special semantic as it will be used as the instance
-          name.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Value of the property. Can be null for property containing other
-          properties.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Type of the property, used to create the adequate object. Supported values
-          are list, array, dictionary and map.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="RootElementType"/>
-  <xs:complexType name="ComponentType">
-    <xs:annotation>
-      <xs:documentation>Declares an atomic (i.e. primitive) component type.</xs:documentation>
-    </xs:annotation>
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element ref="callback" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Describes the method(s) to invoke when the component's state
-            changes.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="provides" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Indicates the component provided service(s). By default, all implemented
-            interfaces are published.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="requires" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Indicates the service requirements of the component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="properties" minOccurs="0" maxOccurs="unbounded">
-        <xs:annotation>
-          <xs:documentation>Describes the properties of the component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element ref="controller" minOccurs="0" maxOccurs="1">
-        <xs:annotation>
-          <xs:documentation>Lifecycle controller for this component.</xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"
-      > </xs:any>
-    </xs:choice>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Specifies the name of the component type. This name is used to identify
-          the factory attached to this type. If not specified, the factory name is the
-          implementation class name.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="public" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Determines if the component type is public or private. A public factory
-          (default) can be used from any bundles.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="classname" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the implementation class of the component
-          type.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="architecture" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Enables or disables the architecture exposition. By default, the
-          architecture is exposed. This allows instance introspection.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="immediate" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Creates the object of the component implementation type as soon as the
-          component instance becomes valid. The default value is "true" if the component doesn't
-          provide any service, "false" otherwise.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factory-method" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Factory method called to create POJO objects instead of the constructor.
-          The specified method must be a static method of the implementation class returning an
-          instance of this implementation class. The factory method can receive the bundle context
-          in argument.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="version" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Set the version of this component type</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="RequiresType">
-    <xs:annotation>
-      <xs:documentation>Description of component services requirements.</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="ServiceDependencyType">
-        <xs:sequence minOccurs="0" maxOccurs="unbounded">
-          <xs:element name="callback" type="DependencyCallbackType">
             <xs:annotation>
-              <xs:documentation>Service requirement method invocation description. Here can be
-                specified a bind method called when a service appears and an unbind method called
-                when a service disappears.</xs:documentation>
+                <xs:documentation>Set the version of this component type</xs:documentation>
             </xs:annotation>
-          </xs:element>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="RequiresType">
+        <xs:annotation>
+            <xs:documentation>Description of component services requirements.</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="ServiceDependencyType">
+                <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                    <xs:element name="callback" type="DependencyCallbackType">
+                        <xs:annotation>
+                            <xs:documentation>Service requirement method invocation description. Here can be
+                                specified a bind method called when a service appears and an unbind method called
+                                when a service disappears.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+
+                <xs:attribute name="interface" type="xs:string" use="prohibited">
+                    <xs:annotation>
+                        <xs:documentation>The interface describing the required service type. This attribute is
+                            needed only when using aggregate dependencies with field injection and when the type
+                            of this field is a list, vector, collection and set. This attribute is deprecated, use
+                            'specification'.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="field" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>The name of the field representing the service dependency in the
+                            implementation class.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="nullable" type="xs:boolean" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Enable or disable the Nullable pattern on optional service
+                            dependencies. By default, Nullable pattern is enabled. If disabled, iPOJO will inject
+                            null instead of a Nullable object.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="default-implementation" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Specifies the default implementation class for an optional service
+                            dependency. If no providers are found, iPOJO creates an instance of the
+                            default-implementation (nullary constructor) and injects it. The given class must
+                            implement the required service interface.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="from" type="xs:string" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Specific service provider. The dependency can only be fulfilled by the
+                            component with the matching name, or by the service with a matching
+                            PID.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="proxy" type="xs:boolean" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Enables or Disable the proxy injection (on field
+                            injection)
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+
+                <xs:attribute name="scope" use="optional">
+                    <xs:simpleType>
+                        <xs:restriction base="xs:string">
+                            <xs:enumeration value="global"/>
+                            <xs:enumeration value="composite"/>
+                            <xs:enumeration value="composite+global"/>
+                        </xs:restriction>
+                    </xs:simpleType>
+                </xs:attribute>
+
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="DependencyCallbackType">
+        <xs:annotation>
+            <xs:documentation>Dependency callbacks are used to receive notification when service providers
+                arrive and leave.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Method to call</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" use="required">
+            <xs:annotation>
+                <xs:documentation>Type of callback (bind, unbind, or updated). Bind means that the method
+                    will be called when a provider arrives. Unbind means that the method will be called when a
+                    provider leaves. Updated means that a service was modified but is still valid for the
+                    service dependency.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="bind"/>
+                    <xs:enumeration value="unbind"/>
+                    <xs:enumeration value="modified"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="CallbackType">
+        <xs:annotation>
+            <xs:documentation>Lifecycle Callback. Allows a POJO to be notified when the instance becomes
+                valid or invalid.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the method to call on the transition.</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="transition" use="required">
+            <xs:annotation>
+                <xs:documentation>Specifies the transition when the callback needs to be
+                    invoked.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:annotation>
+                    <xs:documentation>Lifecycle transition state. "validate" means that the component's
+                        instance was invalid and becomes valid, "invalidate" means that the component's intance
+                        was valid and becomes invalid.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="validate"/>
+                    <xs:enumeration value="invalidate"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:element name="provides" type="ProvidesType" id="provides"/>
+    <xs:complexType name="ProvidesType">
+        <xs:annotation>
+            <xs:documentation>Provided service(s) description.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+            <xs:choice>
+                <xs:element name="property" type="PropertyType">
+                    <xs:annotation>
+                        <xs:documentation>List of service specific properties.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="controller" minOccurs="0" maxOccurs="1" type="ServiceControllerType">
+                    <xs:annotation>
+                        <xs:documentation>Service Controller impacting the current provided
+                            service
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
         </xs:sequence>
-
         <xs:attribute name="interface" type="xs:string" use="prohibited">
-          <xs:annotation>
-            <xs:documentation>The interface describing the required service type. This attribute is
-              needed only when using aggregate dependencies with field injection and when the type
-              of this field is a list, vector, collection and set. This attribute is deprecated, use
-              'specification'.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Deprecated attribute, use 'specifications' instead of
+                    'interface'
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
+        <xs:attribute name="specifications" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The list of service specifications (i.e. interfaces) to expose. By
+                    default, all interfaces implemented by the component implementation class are
+                    published.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="factory" type="xs:string" use="prohibited">
+            <xs:annotation>
+                <xs:documentation>Use 'strategy' instead of 'factory'</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategy" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>POJO creation strategy. By default, the POJO object is created once
+                    (singleton). If the factory is set to "SERVICE", the creation policy follows the OSGi
+                    service factory policy (one object object per asking bundle). INSTANCE allows creating one
+                    different POJO object per asking instance. Finally, a custom strategy can be used by
+                    specifying the qualified name of the class extending CreationPolicy
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="post-registration" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Defines a callback called after the service registration. The callback takes a
+                    ServiceReference
+                    as parameter
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="post-unregistration" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Defines a callback called after the service unregistration. The callback takes a
+                    ServiceReference
+                    as parameter
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="ServiceControllerType">
+        <xs:annotation>
+            <xs:documentation>Defines a service controller.</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="field" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>Field of the controller</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Intiail value of the controller</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    <xs:complexType name="PropertyType">
+        <xs:annotation>
+            <xs:documentation>Defines a component property.</xs:documentation>
+        </xs:annotation>
         <xs:attribute name="field" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>The name of the field representing the service dependency in the
-              implementation class.</xs:documentation>
-          </xs:annotation>
+            <xs:annotation>
+                <xs:documentation>Field of the property</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="constructor-parameter" type="xs:int" use="optional">
-          <xs:annotation>
-            <xs:documentation>The index of the parameter if the dependency is injected
-            using the constructor.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="method" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Setter method of the property. This method is called to inject property
+                    value.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="nullable" type="xs:boolean" use="optional">
-          <xs:annotation>
-            <xs:documentation>Enable or disable the Nullable pattern on optional service
-              dependencies. By default, Nullable pattern is enabled. If disabled, iPOJO will inject
-              null instead of a Nullable object.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="name" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Name of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="default-implementation" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>Specifies the default implementation class for an optional service
-              dependency. If no providers are found, iPOJO creates an instance of the
-              default-implementation (nullary constructor) and injects it. The given class must
-              implement the required service interface.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="value" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Default value of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="from" type="xs:string" use="optional">
-          <xs:annotation>
-            <xs:documentation>Specific service provider. The dependency can only be fulfilled by the
-              component with the matching name, or by the service with a matching
-              PID.</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="type" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Type of the property.</xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="proxy" type="xs:boolean" use="optional">
-          <xs:annotation>
-            <xs:documentation>Enables or Disable the proxy injection (on field
-              injection)</xs:documentation>
-          </xs:annotation>
+        <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
+            <xs:annotation>
+                <xs:documentation>Set the property as mandatory. A mandatory property MUST receive a value
+                    either in the component type description or in the instance configuration. Properties are
+                    optional by default.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-        <xs:attribute name="scope" use="optional">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="global"/>
-              <xs:enumeration value="composite"/>
-              <xs:enumeration value="composite+global"/>
-            </xs:restriction>
-          </xs:simpleType>
+        <xs:attribute name="immutable" type="xs:boolean" use="optional" default="false">
+            <xs:annotation>
+                <xs:documentation>Set the property as immutable. An immutable property is inherited by the component
+                    instance but the value cannot be overridden.
+                </xs:documentation>
+            </xs:annotation>
         </xs:attribute>
-
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DependencyCallbackType">
-    <xs:annotation>
-      <xs:documentation>Dependency callbacks are used to receive notification when service providers
-        arrive and leave.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="method" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Method to call</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" use="required">
-      <xs:annotation>
-        <xs:documentation> Type of callback (bind, unbind, or updated). Bind means that the method
-          will be called when a provider arrives. Unbind means that the method will be called when a
-          provider leaves. Updated means that a service was modified but is still valid for the
-          service dependency. </xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="bind"/>
-          <xs:enumeration value="unbind"/>
-          <xs:enumeration value="modified"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="CallbackType">
-    <xs:annotation>
-      <xs:documentation>Lifecycle Callback. Allows a POJO to be notified when the instance becomes
-        valid or invalid.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="method" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the method to call on the transition.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="transition" use="required">
-      <xs:annotation>
-        <xs:documentation>Specifies the transition when the callback needs to be
-          invoked.</xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
+    </xs:complexType>
+    <xs:element name="callback" type="CallbackType" id="callback"/>
+    <xs:element name="controller" type="ControllerType" id="controller">
         <xs:annotation>
-          <xs:documentation>Lifecycle transition state. "validate" means that the component's
-            instance was invalid and becomes valid, "invalidate" means that the component's intance
-            was valid and becomes invalid.</xs:documentation>
+            <xs:documentation/>
         </xs:annotation>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="validate"/>
-          <xs:enumeration value="invalidate"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:element name="provides" type="ProvidesType" id="provides"/>
-  <xs:complexType name="ProvidesType">
-    <xs:annotation>
-      <xs:documentation>Provided service(s) description.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence minOccurs="0" maxOccurs="unbounded">
-      <xs:choice>
-      <xs:element name="property" type="PropertyType">
+    </xs:element>
+    <xs:element name="requires" type="RequiresType" id="requires"/>
+    <xs:element name="component" type="ComponentType" id="component"/>
+    <xs:element name="handler" type="HandlerType" id="handler"/>
+    <xs:element name="instance" type="InstanceType" id="instance"/>
+
+    <xs:element name="properties" type="PropertiesType" id="properties"/>
+    <xs:complexType name="PropertiesType">
         <xs:annotation>
-          <xs:documentation>List of service specific properties.</xs:documentation>
+            <xs:documentation>List of component, instance or service properties. This field will receive
+                the property value.
+            </xs:documentation>
         </xs:annotation>
-      </xs:element>
-      <xs:element name="controller" minOccurs="0" maxOccurs="1" type="ServiceControllerType">
-          <xs:annotation>
-            <xs:documentation>Service Controller impacting the current provided
-              service</xs:documentation>
-          </xs:annotation>
-       </xs:element>
-      </xs:choice>
-    </xs:sequence>
-    <xs:attribute name="interface" type="xs:string" use="prohibited">
-      <xs:annotation>
-        <xs:documentation>Deprecated attribute, use 'specifications' instead of
-          'interface'</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="specifications" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The list of service specifications (i.e. interfaces) to expose. By
-          default, all interfaces implemented by the component implementation class are
-          published.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factory" type="xs:string" use="prohibited">
-      <xs:annotation>
-        <xs:documentation>Use 'strategy' instead of 'factory'</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="strategy" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>POJO creation strategy. By default, the POJO object is created once
-          (singleton). If the factory is set to "SERVICE", the creation policy follows the OSGi
-          service factory policy (one object object per asking bundle). INSTANCE allows creating one
-          different POJO object per asking instance. Finally, a custom strategy can be used by
-          specifying the qualified name of the class extending CreationPolicy</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="post-registration" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Defines a callback called after the service registration. The callback takes a ServiceReference
-        as parameter</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="post-unregistration" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Defines a callback called after the service unregistration. The callback takes a ServiceReference
-        as parameter</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="ServiceControllerType">
-    <xs:annotation>
-      <xs:documentation> Defines a service controller. </xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation> Field of the controller </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Intiail value of the controller </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="PropertyType">
-    <xs:annotation>
-      <xs:documentation> Defines a component property. </xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Field of the property </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="method" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Setter method of the property. This method is called to inject property
-          value. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-	<xs:attribute name="constructor-parameter" type="xs:int" use="optional">
-      <xs:annotation>
-        <xs:documentation>The index of the parameter if the property is injected
-        using the constructor.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="name" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Name of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Default value of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation> Type of the property. </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
-      <xs:annotation>
-        <xs:documentation>Set the property as mandatory. A mandatory property MUST receive a value
-          either in the component type description or in the instance configuration. Properties are
-          optional by default.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:element name="callback" type="CallbackType" id="callback"/>
-  <xs:element name="controller" type="ControllerType" id="controller">
-    <xs:annotation>
-      <xs:documentation/>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="requires" type="RequiresType" id="requires"/>
-  <xs:element name="component" type="ComponentType" id="component"/>
-  <xs:element name="handler" type="HandlerType" id="handler"/>
-  <xs:element name="instance" type="InstanceType" id="instance"/>
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+            <xs:element name="property" type="PropertyType">
+                <xs:annotation>
+                    <xs:documentation>The list of properties.</xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="propagation" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Propagation of the component properties to the provided services. If this
+                    parameter is set to "true", each time properties are reconfigured, they are propagated to
+                    each service published by the component.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="pid" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Unique identifier used to reconfigure components properties (via Managed
+                    Services) with the Configuration Admin.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="updated" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Method called when a reconfiguration is done</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
 
-  <xs:element name="properties" type="PropertiesType" id="properties"/>
-  <xs:complexType name="PropertiesType">
-    <xs:annotation>
-      <xs:documentation>List of component, instance or service properties. This field will receive
-        the property value.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="property" type="PropertyType">
+    <xs:complexType name="ServiceDependencyType">
+        <xs:attribute name="specification" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The specification describing the required service type. This attribute is
+                    needed only when using aggregate dependencies with field injection and when the type of
+                    this field is a list, vector, collection and set.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="optional" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the service dependency optionality</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregate" type="xs:boolean" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the service dependency cardinality.</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="policy" use="optional">
+            <xs:annotation>
+                <xs:documentation>Sets the binding policy of the dependency. Three policies are supported.
+                    The dynamic policy supports service providers dynamism. The static policy freezes the
+                    provider set as soon as the dependency is used. The dynamic-priority policy is an
+                    extension of the dynamic policy, but providers are ranked.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="dynamic"/>
+                    <xs:enumeration value="static"/>
+                    <xs:enumeration value="dynamic-priority"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="comparator" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>The comparator attribute allows specifying the class used to compare
+                    providers. This class must implemented the java.util.Comparator class and must support the
+                    comparison of service references.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="filter" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>LDAP filter used to filter providers</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="id" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>id of the service dependency. The id allows to indentify and to refert to
+                    this dependency.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+
+    <xs:complexType name="ControllerType">
         <xs:annotation>
-          <xs:documentation>The list of properties.</xs:documentation>
+            <xs:documentation>Specifies the lifecycle controller of a component, which allows to validate
+                or invalidate component instances.
+            </xs:documentation>
         </xs:annotation>
-      </xs:element>
-    </xs:sequence>
-    <xs:attribute name="propagation" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Propagation of the component properties to the provided services. If this
-          parameter is set to "true", each time properties are reconfigured, they are propagated to
-          each service published by the component.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="pid" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Unique identifier used to reconfigure components properties (via Managed
-          Services) with the Configuration Admin.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="updated" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>Method called when a reconfiguration is done</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-
-  <xs:complexType name="ServiceDependencyType">
-    <xs:attribute name="specification" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The specification describing the required service type. This attribute is
-          needed only when using aggregate dependencies with field injection and when the type of
-          this field is a list, vector, collection and set.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="optional" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the service dependency optionality</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="aggregate" type="xs:boolean" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the service dependency cardinality.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="policy" use="optional">
-      <xs:annotation>
-        <xs:documentation>Sets the binding policy of the dependency. Three policies are supported.
-          The dynamic policy supports service providers dynamism. The static policy freezes the
-          provider set as soon as the dependency is used. The dynamic-priority policy is an
-          extension of the dynamic policy, but providers are ranked.</xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="dynamic"/>
-          <xs:enumeration value="static"/>
-          <xs:enumeration value="dynamic-priority"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="comparator" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>The comparator attribute allows specifying the class used to compare
-          providers. This class must implemented the java.util.Comparator class and must support the
-          comparison of service references.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="filter" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>LDAP filter used to filter providers</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:string" use="optional">
-      <xs:annotation>
-        <xs:documentation>id of the service dependency. The id allows to indentify and to refert to
-          this dependency.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-
-  <xs:complexType name="ControllerType">
-    <xs:annotation>
-      <xs:documentation>Specifies the lifecycle controller of a component, which allows to validate
-        or invalidate component instances.</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="field" type="xs:string" use="required">
-      <xs:annotation>
-        <xs:documentation>The name of the component lifecycle controller field. The type of the
-          specified field must be boolean. Setting the value of the specified field to "true" means
-          the validation of the component instance while setting it to "false" means the
-          invalidation of the component instance.</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
+        <xs:attribute name="field" type="xs:string" use="required">
+            <xs:annotation>
+                <xs:documentation>The name of the component lifecycle controller field. The type of the
+                    specified field must be boolean. Setting the value of the specified field to "true" means
+                    the validation of the component instance while setting it to "false" means the
+                    invalidation of the component instance.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
 </xs:schema>
