| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| /* |
| * $Header: /cvshome/build/xmlns/scr/scr.xsd,v 1.12 2006/07/11 13:27:46 hargrave Exp $ |
| * |
| * Copyright (c) OSGi Alliance (2005, 2006). 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" targetNamespace="http://www.osgi.org/xmlns/scr/v1.0.0" xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.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. The 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 is optional if the document only contains a root component element. In this |
| case, the scr namespace is assumed. Otherwise the namespace must be used. |
| </documentation> |
| </annotation> |
| |
| <element name="component" type="scr:Tcomponent"/> |
| |
| <complexType name="Tcomponent"> |
| <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> |
| <sequence> |
| <element name="implementation" type="scr:Timplementation" minOccurs="1" maxOccurs="1"/> |
| <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"/> |
| </sequence> |
| <attribute name="enabled" type="boolean" default="true" use="optional"/> |
| <attribute name="name" type="token" use="required"/> |
| <attribute name="factory" type="string" use="optional"/> |
| <attribute name="immediate" type="boolean" use="optional"/> |
| </complexType> |
| |
| <complexType name="Timplementation"> |
| <attribute name="class" type="token" use="required"/> |
| </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:TjavaTypes" default="String" use="optional"/> |
| </extension> |
| </simpleContent> |
| </complexType> |
| |
| <complexType name="Tproperties"> |
| <attribute name="entry" type="string" use="required"/> |
| </complexType> |
| |
| <complexType name="Tservice"> |
| <sequence> |
| <element name="provide" type="scr:Tprovide" minOccurs="1" maxOccurs="unbounded"/> |
| </sequence> |
| <attribute name="servicefactory" type="boolean" default="false" use="optional"/> |
| </complexType> |
| |
| <complexType name="Tprovide"> |
| <attribute name="interface" type="token" use="required"/> |
| </complexType> |
| |
| <complexType name="Treference"> |
| <attribute name="name" type="NMTOKEN" use="required"/> |
| <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"/> |
| </complexType> |
| |
| <simpleType name="TjavaTypes"> |
| <restriction base="string"> |
| <enumeration value="String"/> |
| <enumeration value="Long"/> |
| <enumeration value="Double"/> |
| <enumeration value="Float"/> |
| <enumeration value="Integer"/> |
| <enumeration value="Byte"/> |
| <enumeration value="Char"/> |
| <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> |
| |
| </schema> |