<!--
	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="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">
					<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: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>