Author: clement
Date: Mon Sep 22 11:36:07 2008
New Revision: 697938

URL: http://svn.apache.org/viewvc?rev=697938&view=rev
Log:
Add documentations to the XSD files.

Modified:
    felix/trunk/ipojo/core/src/main/resources/core.xsd

Modified: felix/trunk/ipojo/core/src/main/resources/core.xsd
URL: 
http://svn.apache.org/viewvc/felix/trunk/ipojo/core/src/main/resources/core.xsd?rev=697938&r1=697937&r2=697938&view=diff
==============================================================================
--- felix/trunk/ipojo/core/src/main/resources/core.xsd (original)
+++ felix/trunk/ipojo/core/src/main/resources/core.xsd Mon Sep 22 11:36:07 2008
@@ -19,15 +19,27 @@
 <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: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:choice minOccurs="0" maxOccurs="unbounded">
+            <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>
@@ -35,7 +47,10 @@
                </xs:complexType>
        </xs:element>
        <xs:complexType name="HandlerType">
-               <xs:complexContent>
+        <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"
@@ -43,134 +58,198 @@
                                        </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:complexContent>
+        <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>
+                                       <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:attribute>
+                               <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:sequence>
+        <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:attribute>
-               <xs:attribute name="value" type="xs:string" 
use="optional"></xs:attribute>
-               <xs:attribute name="type" type="xs:string" 
use="optional"></xs:attribute>
+               <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: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: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: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: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: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>
-                                       Enable or disable the architecture 
exposition. By
-                                       default, the architecture is exposed. 
This allows
-                                       instance introspection.
-                               </xs:documentation>
+                               <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: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:complexContent>
+        <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="optional">
+                    <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.</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">
@@ -187,9 +266,18 @@
                </xs:complexContent>
        </xs:complexType>
        <xs:complexType name="DependencyCallbackType">
-               <xs:attribute name="method" type="xs:string" 
use="required"></xs:attribute>
+        <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:simpleType>
+            <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>
@@ -199,18 +287,21 @@
        </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: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: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:restriction base="xs:string">
+                <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>
@@ -219,21 +310,54 @@
        </xs:complexType>
        <xs:element name="provides" type="ProvidesType" 
id="provides"></xs:element>
        <xs:complexType name="ProvidesType">
-               <xs:sequence minOccurs="0" maxOccurs="unbounded">
-                       <xs:element name="property" 
type="PropertyType"></xs:element>
+        <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:attribute>
-               <xs:attribute name="factory" type="xs:string" 
use="optional"></xs:attribute>
+               <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:attribute name="field" type="xs:string" 
use="optional"></xs:attribute>
-               <xs:attribute name="method" type="xs:string" 
use="optional"></xs:attribute>
-               <xs:attribute name="name" type="xs:string" 
use="optional"></xs:attribute>
-               <xs:attribute name="value" type="xs:string" 
use="optional"></xs:attribute>
-               <xs:attribute name="type" type="xs:string" 
use="optional"></xs:attribute>
+        <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:complexType>
        <xs:element name="callback" type="CallbackType" 
id="callback"></xs:element>
-       <xs:element name="controller" type="ControllerType" 
id="controller"></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>
@@ -241,21 +365,45 @@
 
     <xs:element name="properties" type="PropertiesType" 
id="properties"></xs:element>
        <xs:complexType name="PropertiesType">
-               <xs:sequence minOccurs="0" maxOccurs="unbounded">
-                       <xs:element name="property" 
type="PropertyType"></xs:element>
+        <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:attribute>
-               <xs:attribute name="pid" type="xs:string" 
use="optional"></xs:attribute>
+               <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: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:simpleType>
+            <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>
@@ -264,13 +412,28 @@
                        </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:attribute>
-               <xs:attribute name="id" type="xs:string" 
use="optional"></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:attribute name="field" type="xs:string" use="required">
-               </xs:attribute>
+        <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


Reply via email to