diff --git a/ipojo/manipulator/src/main/resources/core.xsd b/ipojo/manipulator/src/main/resources/core.xsd
new file mode 100644
index 0000000..4584e26
--- /dev/null
+++ b/ipojo/manipulator/src/main/resources/core.xsd
@@ -0,0 +1,461 @@
+<!--
+	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">
+        <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: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:element>
+		</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>
+	<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: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="scope" use="optional">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="global"></xs:enumeration>
+							<xs:enumeration value="composite"></xs:enumeration>
+							<xs:enumeration value="composite+global"></xs:enumeration>
+						</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 or unbind). Bind means that the method will be called when a provider arrives. Unbind means that the method will be called when a provider leaves.</xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="bind"></xs:enumeration>
+					<xs:enumeration value="unbind"></xs:enumeration>
+				</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>
+					<xs:enumeration value="invalidate"></xs:enumeration>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:element name="provides" type="ProvidesType" id="provides"></xs:element>
+	<xs:complexType name="ProvidesType">
+        <xs:annotation>
+        	<xs:documentation>Provided service(s) description.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+			<xs:element name="property" type="PropertyType">
+				<xs:annotation>
+					<xs:documentation>List of service specific properties.</xs:documentation>
+				</xs:annotation></xs:element>
+		</xs:sequence>
+		<xs:attribute name="interface" type="xs:string" use="optional">
+			<xs:annotation>
+				<xs:documentation>The list of interfaces of the service 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="optional">
+			<xs:annotation>
+				<xs:documentation>POJO factory policy. 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).</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>
+	<xs:element name="controller" type="ControllerType" id="controller">
+		<xs:annotation>
+			<xs:documentation></xs:documentation>
+		</xs:annotation></xs:element>
+	<xs:element name="requires" type="RequiresType" id="requires"></xs:element>
+	<xs:element name="component" type="ComponentType" id="component"></xs:element>
+	<xs:element name="handler" type="HandlerType" id="handler"></xs:element>
+	<xs:element name="instance" type="InstanceType" id="instance"></xs:element>
+
+    <xs:element name="properties" type="PropertiesType" id="properties"></xs:element>
+	<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: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: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>
+					<xs:enumeration value="static"></xs:enumeration>
+					<xs:enumeration value="dynamic-priority"></xs:enumeration>
+				</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:schema>
\ No newline at end of file
