<?xml version="1.0" encoding="UTF-8"?>
	<!--
	/*
	* $Revision: 7533 $
	* 
	* Copyright (c) OSGi Alliance (2005, 2009). All Rights Reserved.
	* 
	* Licensed 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.
	*/
	-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0"
	targetNamespace="http://www.osgi.org/xmlns/scr/v1.1.0"
	elementFormDefault="unqualified"
	attributeFormDefault="unqualified"
	version="1.1.0">

	<annotation>
		<documentation xml:lang="en">
			This is the XML Schema for component descriptions used by
			the Service Component Runtime (SCR). Component description
			documents may be embedded in other XML documents. SCR will
			process all XML documents listed in the Service-Component
			manifest header of a bundle. XML documents containing
			component descriptions may contain a single, root component
			element or one or more component elements embedded in a
			larger document. Use of the namespace for component 
			descriptions is mandatory. The attributes and subelements 
			of a component element are always unqualified.
		</documentation>
	</annotation>
	<element name="component" type="scr:Tcomponent" />
	<complexType name="Tcomponent">
		<sequence>
			<annotation>
				<documentation xml:lang="en">
					Implementations of SCR must not require component
					descriptions to specify the subelements of the component
					element in the order as required by the schema. SCR
					implementations must allow other orderings since
					arbitrary orderings do not affect the meaning of the
					component description. Only the relative ordering of
					property and properties element have meaning.
				</documentation>
			</annotation>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element name="property" type="scr:Tproperty" />
				<element name="properties" type="scr:Tproperties" />
			</choice>
			<element name="service" type="scr:Tservice" minOccurs="0"
				maxOccurs="1" />
			<element name="reference" type="scr:Treference"
				minOccurs="0" maxOccurs="unbounded" />
			<element name="implementation" type="scr:Timplementation"
				minOccurs="1" maxOccurs="1" />
			<any namespace="##any" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="enabled" type="boolean" default="true"
			use="optional" />
		<attribute name="name" type="token" use="optional">
			<annotation>
				<documentation xml:lang="en">
					The default value of this attribute is the value of
					the class attribute of the nested implementation
					element. If multiple component elements use the same 
					value for the class attribute of their nested 
					implementation element, then using the default value 
					for this attribute will result in duplicate names. 
					In this case, this attribute must be specified with 
					a unique value.
				</documentation>
			</annotation>
		</attribute>
		<attribute name="factory" type="string" use="optional" />
		<attribute name="immediate" type="boolean" use="optional" />
		<attribute name="configuration-policy"
			type="scr:Tconfiguration-policy" default="optional" use="optional" />
		<attribute name="activate" type="token" use="optional"
			default="activate" />
		<attribute name="deactivate" type="token" use="optional"
			default="deactivate" />
		<attribute name="modified" type="token" use="optional" />
		<anyAttribute />
	</complexType>
	<complexType name="Timplementation">
		<sequence>
			<any namespace="##any" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="class" type="token" use="required" />
		<anyAttribute />
	</complexType>
	<complexType name="Tproperty">
		<simpleContent>
			<extension base="string">
				<attribute name="name" type="string" use="required" />
				<attribute name="value" type="string" use="optional" />
				<attribute name="type" type="scr:Tjava-types"
					default="String" use="optional" />
				<anyAttribute />
			</extension>
		</simpleContent>
	</complexType>
	<complexType name="Tproperties">
		<sequence>
			<any namespace="##any" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="entry" type="string" use="required" />
		<anyAttribute />
	</complexType>
	<complexType name="Tservice">
		<sequence>
			<element name="provide" type="scr:Tprovide" minOccurs="1"
				maxOccurs="unbounded" />
			<!-- It is non-deterministic, per W3C XML Schema 1.0: 
			http://www.w3.org/TR/xmlschema-1/#cos-nonambig
			to use name space="##any" below. -->
			<any namespace="##other" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="servicefactory" type="boolean" default="false"
			use="optional" />
		<anyAttribute />
	</complexType>
	<complexType name="Tprovide">
		<sequence>
			<any namespace="##any" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="interface" type="token" use="required" />
		<anyAttribute />
	</complexType>
	<complexType name="Treference">
		<sequence>
			<any namespace="##any" processContents="lax" minOccurs="0"
				maxOccurs="unbounded" />
		</sequence>
		<attribute name="name" type="token" use="optional">
			<annotation>
				<documentation xml:lang="en">
					The default value of this attribute is the value of
					the interface attribute of this element. If multiple 
					instances of this element within a component element 
					use the same value for the interface attribute, then 
					using the default value for this attribute will result 
					in duplicate names. In this case, this attribute 
					must be specified with a unique value.
				</documentation>
			</annotation>
		</attribute>
		<attribute name="interface" type="token" use="required" />
		<attribute name="cardinality" type="scr:Tcardinality"
			default="1..1" use="optional" />
		<attribute name="policy" type="scr:Tpolicy" default="static"
			use="optional" />
		<attribute name="target" type="string" use="optional" />
		<attribute name="bind" type="token" use="optional" />
		<attribute name="unbind" type="token" use="optional" />
		<anyAttribute />
	</complexType>
	<simpleType name="Tjava-types">
		<restriction base="string">
			<enumeration value="String" />
			<enumeration value="Long" />
			<enumeration value="Double" />
			<enumeration value="Float" />
			<enumeration value="Integer" />
			<enumeration value="Byte" />
			<enumeration value="Character" />
			<enumeration value="Boolean" />
			<enumeration value="Short" />
		</restriction>
	</simpleType>
	<simpleType name="Tcardinality">
		<restriction base="string">
			<enumeration value="0..1" />
			<enumeration value="0..n" />
			<enumeration value="1..1" />
			<enumeration value="1..n" />
		</restriction>
	</simpleType>
	<simpleType name="Tpolicy">
		<restriction base="string">
			<enumeration value="static" />
			<enumeration value="dynamic" />
		</restriction>
	</simpleType>
	<simpleType name="Tconfiguration-policy">
		<restriction base="string">
			<enumeration value="optional" />
			<enumeration value="require" />
			<enumeration value="ignore" />
		</restriction>
	</simpleType>
	<attribute name="must-understand" type="boolean">
		<annotation>
			<documentation xml:lang="en">
				This attribute should be used by extensions to documents
				to require that the document consumer understand the
				extension. This attribute must be qualified when used.
			</documentation>
		</annotation>
	</attribute>
</schema>
