| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <!-- |
| /* |
| * $Revision: 7562 $ |
| * |
| * Copyright (c) OSGi Alliance (2008, 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. |
| */ |
| --> |
| <xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.osgi.org/xmlns/blueprint/v1.0.0" |
| elementFormDefault="qualified" attributeFormDefault="unqualified" |
| version="1.0.0"> |
| |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| This is the XML Schema for the OSGi Blueprint service 1.0.0 |
| development descriptor. Blueprint configuration files |
| using this schema must indicate the schema using the |
| blueprint/v1.0.0 namespace. For example, |
| |
| <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> |
| |
| if used as a qualified namespace, "bp" is the recommended |
| namespace prefix. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| |
| <!-- Schema elements for core component declarations --> |
| |
| <xsd:complexType name="Tcomponent" abstract="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tcomponent type is the base type for top-level |
| Blueprint components. The <bean> <reference>, <service>, |
| and <reference-list> elements are all derived from |
| the Tcomponent type. This type defines an id attribute |
| that is used create references between different components. |
| Component elements can also be inlined within other component |
| definitions. The id attribute is not valid when inlined. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| |
| <xsd:attribute name="id" type="xsd:ID" /> |
| |
| <xsd:attribute name="activation" type="Tactivation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The activation attribute for this component. This can either |
| be "eager" or "lazy". If not specified, it |
| defaults to default-activation attribute of the enclosing |
| <blueprint> element. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| <xsd:attribute name="depends-on" type="TdependsOn"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| depends-on identifies (by id) other components that this component |
| depends on. The component only be activated after the |
| depends-on components are successfully activated. Also, if there |
| are <reference> or <reference-list> elements with unstatisfied |
| manadatory references, then the depends-on relationship will also |
| be used to determine whether this service is enabled or not. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="blueprint" type="Tblueprint"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The <blueprint> element is the root element for a blueprint |
| configuration file. A blueprint configuration has two sections. |
| The first section (contained within the <type-converters> element) |
| identifies components that are used for converting values into |
| different target types. The type converters are optional, so |
| the file does not need to specify a type converter section. |
| |
| Following the type converters are the component definitions. |
| Components are <bean>, <service>, <reference>, and |
| <reference-list> elements that identify the bundle components that will |
| be managed by the blueprint service. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="Tblueprint"> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <xsd:element name="type-converters" type="Ttype-converters" |
| minOccurs="0" maxOccurs="1" /> |
| <!-- top-level components --> |
| <xsd:choice minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element name="service" type="Tservice" /> |
| <xsd:element name="reference-list" type="Treference-list" /> |
| <xsd:element name="bean" type="Tbean" /> |
| <xsd:element name="reference" type="Treference" /> |
| <xsd:any namespace="##other" processContents="strict" /> |
| </xsd:choice> |
| </xsd:sequence> |
| |
| <!-- Defaults--> |
| <xsd:attribute name="default-activation" default="eager" |
| type="Tactivation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Specifies the default activation setting that will be defined |
| for components. If not specified, the global default is "eager". |
| Individual components may override the default value. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="default-timeout" type="Ttimeout" |
| default="300000"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Specifies the default timeout value to be used when operations |
| are invoked on unstatisfied service references. If the |
| reference does not change to a satisfied state within the timeout |
| window, an error is raised on the method invocation. The |
| default timeout value is 300000 milliseconds and individual |
| <reference> element can override the specified configuration |
| default. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="default-availability" type="Tavailability" |
| default="mandatory"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Specifies the default availability value to be used for |
| <reference>, and <reference-list> components. The |
| normal default is "mandatory", and can be changed by individual |
| service reference components. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Ttype-converters"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The type used for the <type-converters> element. The |
| <type-converters> section is a set of <bean>, <ref>, or |
| <reference> elements that identify the type converter components. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element name="bean" type="Tbean" /> |
| <xsd:element name="reference" type="Treference" /> |
| <xsd:element name="ref" type="Tref" /> |
| <xsd:any namespace="##other" processContents="strict" /> |
| </xsd:choice> |
| </xsd:complexType> |
| |
| <!-- |
| Components that provide a reasonable target for injection used for |
| listeners, etc. |
| --> |
| |
| <xsd:group name="GtargetComponent"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A target component is one that can be a target for a |
| listener, registration-listener or service elements. |
| This is used in contexts where the requirement is a single |
| provided object that will implement a particular interface. |
| The provided object is obtained either from a <ref> element |
| or an inlined <bean> or <reference>. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice> |
| <xsd:element name="bean" type="Tinlined-bean" /> |
| <xsd:element name="reference" type="Tinlined-reference" /> |
| <xsd:element name="ref" type="Tref" /> |
| <xsd:any namespace="##other" processContents="strict" /> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:group name="GallComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| An all components is used in contexts where all component element |
| types are values. The set of component elements contains |
| <bean>, <service>, <reference>, <reference-list> and <ref>. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice> |
| <xsd:element name="service" type="Tinlined-service" /> |
| <xsd:element name="reference-list" type="Tinlined-reference-list" /> |
| <xsd:group ref="GtargetComponent" /> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:group name="GbeanElements"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A bean elements is a reusable definition of the elements allowed on |
| a <bean> element. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <xsd:choice minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element name="argument" type="Targument" /> |
| <xsd:element name="property" type="Tproperty" /> |
| <xsd:any namespace="##other" processContents="strict" /> |
| </xsd:choice> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:complexType name="Tbean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The type definition for a <bean> component. The <bean> |
| attributes provide the characteristics for how to create a |
| bean instance. Constructor arguments and injected properties |
| are specified via child <argument> and <property> elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="Tcomponent"> |
| <xsd:group ref="GbeanElements" /> |
| <xsd:attribute name="class" type="Tclass" /> |
| <xsd:attribute name="init-method" type="Tmethod" /> |
| <xsd:attribute name="destroy-method" type="Tmethod" /> |
| <xsd:attribute name="factory-method" type="Tmethod" /> |
| <xsd:attribute name="factory-ref" type="Tidref" /> |
| <xsd:attribute name="scope" type="Tscope" /> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tinlined-bean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tinlined-bean type is used for inlined (i.e. non top level) |
| <bean> elements. Those elements have some restrictions on |
| the attributes that can be used to define them. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:restriction base="Tbean"> |
| <xsd:group ref="GbeanElements" /> |
| <xsd:attribute name="id" use="prohibited" /> |
| <xsd:attribute name="depends-on" type="TdependsOn" /> |
| <xsd:attribute name="activation" use="prohibited" |
| fixed="lazy" /> |
| <xsd:attribute name="class" type="Tclass" /> |
| <xsd:attribute name="init-method" type="Tmethod" /> |
| <xsd:attribute name="destroy-method" use="prohibited" /> |
| <xsd:attribute name="factory-method" type="Tmethod" /> |
| <xsd:attribute name="factory-ref" type="Tidref" /> |
| <xsd:attribute name="scope" use="prohibited" fixed="prototype" /> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:restriction> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Targument"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| An argument used to create an object defined by a <bean> |
| component. The <argument> elements are the arguments for the |
| bean class constructor or passed to the bean factory method. |
| |
| The type, if specified, is used to disambiguate the constructor |
| or method signature. Arguments may also be matched up with |
| arguments by explicitly specifying the index position. If the |
| index is used, then all <argument> elements for the bean must |
| also specify the index. |
| |
| The value and ref attributes are convenience shortcuts to make |
| the <argument> tag easier to code. A fuller set of injected |
| values and types can be specified using one of the "value" |
| type elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <xsd:group ref="Gvalue" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="index" type="xsd:nonNegativeInteger" /> |
| <xsd:attribute name="type" type="Ttype" /> |
| <xsd:attribute name="ref" type="Tidref" /> |
| <xsd:attribute name="value" type="TstringValue" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tproperty"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A property that will be injected into a created <bean> |
| component. The <property> elements correspond to named |
| JavaBean setting methods for a created bean object. |
| |
| The value and ref attributes are convenience shortcuts to make |
| the <argument> tag easier to code. A fuller set of injected |
| values and types can be specified using one of the "value" |
| type elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <xsd:group ref="Gvalue" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="name" type="Tmethod" use="required" /> |
| <xsd:attribute name="ref" type="Tidref" /> |
| <xsd:attribute name="value" type="TstringValue" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tkey"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tkey type defines the element types that are permitted |
| for Map key situations. These can be any of the "value" |
| types other than the <null> element. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:group ref="GnonNullValue" /> |
| </xsd:complexType> |
| |
| <!-- reference --> |
| <xsd:complexType name="Treference"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Treference type defines the <reference> element. These |
| are instances of the TserviceReference type, with the addition |
| of a timeout attribute. If the timeout is not specified, |
| the default-timeout value is inherited from the encapsulating |
| <blueprint> definition. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="TserviceReference"> |
| <xsd:sequence> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" |
| processContents="strict" /> |
| </xsd:sequence> |
| <xsd:attribute name="timeout" type="Ttimeout" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tinlined-reference"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tinlined-reference type is used for inlined (i.e. non top level) |
| <reference> elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:restriction base="Treference"> |
| <xsd:sequence> |
| <xsd:group ref="GserviceReferenceElements" /> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" |
| processContents="strict" /> |
| </xsd:sequence> |
| <xsd:attribute name="id" use="prohibited" /> |
| <xsd:attribute name="depends-on" type="TdependsOn" /> |
| <xsd:attribute name="activation" use="prohibited" |
| fixed="lazy" /> |
| <xsd:attribute name="interface" type="Tclass" /> |
| <xsd:attribute name="filter" type="xsd:normalizedString" /> |
| <xsd:attribute name="component-name" type="Tidref" /> |
| <xsd:attribute name="availability" type="Tavailability" /> |
| <xsd:attribute name="timeout" type="Ttimeout" /> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:restriction> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- reference-list --> |
| <xsd:complexType name="Treference-list"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Treference-list builds in the characteristics of the |
| TserviceReference type to define characteristics of the |
| <reference-list>. This adds in the characteristics that |
| only apply to collections of references (e.g., member-type). |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="TserviceReference"> |
| <xsd:sequence> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" |
| processContents="strict" /> |
| </xsd:sequence> |
| <xsd:attribute name="member-type" type="Tservice-use" |
| default="service-object"> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tinlined-reference-list"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tinlined-reference-list type is used for inlined (i.e. non top level) |
| <reference-list> elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:restriction base="Treference-list"> |
| <xsd:sequence> |
| <xsd:group ref="GserviceReferenceElements" /> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" |
| processContents="strict" /> |
| </xsd:sequence> |
| <xsd:attribute name="id" use="prohibited" /> |
| <xsd:attribute name="depends-on" type="TdependsOn" /> |
| <xsd:attribute name="activation" use="prohibited" |
| fixed="lazy" /> |
| <xsd:attribute name="interface" type="Tclass" /> |
| <xsd:attribute name="filter" type="xsd:normalizedString" /> |
| <xsd:attribute name="component-name" type="Tidref" /> |
| <xsd:attribute name="availability" type="Tavailability" /> |
| <xsd:attribute name="member-type" type="Tservice-use" |
| default="service-object" /> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:restriction> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- Reference base class --> |
| <xsd:complexType name="TserviceReference"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TserviceReference is the base element type used for <reference> |
| and <reference-list> elements. This type defines all of the |
| characteristics common to both sorts of references. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="Tcomponent"> |
| <xsd:sequence> |
| <xsd:group ref="GserviceReferenceElements" /> |
| </xsd:sequence> |
| |
| <xsd:attribute name="interface" type="Tclass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The interface that the OSGi service must implement and that will be |
| implemented by the proxy object. |
| This attribute is optional. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="filter" type="xsd:normalizedString"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A filter string used to narrow the search for a matching service |
| reference. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="component-name" type="Tidref"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| An optional specifier that can be used to match a service definition |
| to one created by a specific blueprint component. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="availability" type="Tavailability"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Use to control the initial processing of service references at |
| blueprint context startup. "mandatory" indicates the context |
| should not start unless the service is available within the |
| specified context startup period. "optional" indicates availability |
| of this service is not a requirement at bundle startup. |
| |
| NOTE: No default is specified because this can be overridden |
| by the default-availability attribute of the <blueprint> element. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:group name="GserviceReferenceElements"> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <!-- listener --> |
| <xsd:element name="reference-listener" type="TreferenceListener" |
| minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A definition of a listener that will watch for bind/unbind events |
| associated with the service reference. The targetted listener can |
| be a <ref> to a <bean> or <reference> element, or an inline |
| <bean> or <reference>. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:complexType name="TreferenceListener"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TReferenceListener defines a reference listener that is attached |
| to a <reference> or <reference-list> element. The listener |
| object can be specified as a <ref> or as an inline <bean> or |
| <reference> component. Listener events are mapped to the indicated |
| bind or unbind methods. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:group ref="GtargetComponent" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="ref" type="Tidref" /> |
| <xsd:attribute name="bind-method" type="Tmethod" /> |
| <xsd:attribute name="unbind-method" type="Tmethod" /> |
| </xsd:complexType> |
| |
| <xsd:simpleType name="Tactivation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tactivation defines the activation type for components. This is used in this |
| schema by the <blueprint> default-activation attribute and the |
| activation attribute. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="eager" /> |
| <xsd:enumeration value="lazy" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Tavailability"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tavailability defines an availability attribute type. This is used in this |
| schema by the <blueprint> default-availability attribute and the |
| <reference> and <reference-list> availability attribute. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="mandatory" /> |
| <xsd:enumeration value="optional" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <!-- service --> |
| |
| <xsd:complexType name="Tservice"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tservice is the type for services exported by this blueprint bundle. |
| Services are sourced by either a <ref> to a <bean> component or an |
| <inline> bean component. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="Tcomponent"> |
| <xsd:sequence> |
| <xsd:group ref="GserviceElements" /> |
| </xsd:sequence> |
| <xsd:attribute name="interface" type="Tclass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The interface that this OSGi service will provide. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ref" type="Tidref"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The ref attribute can be used to specify the component that provides |
| the object exported as an OSGi service. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="auto-export" type="TautoExportModes" |
| default="disabled"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| If set to a value different from "disabled", the Blueprint Container |
| will introspect the target to discover the set of interfaces or classes |
| that the service will be registered under. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ranking" type="xsd:int" default="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A service ranking value that is added to the service properties |
| the service will be published with. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tinlined-service"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The Tinlined-service type is used for inlined (i.e. non top level) |
| <service> elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:restriction base="Tservice"> |
| <xsd:sequence> |
| <xsd:group ref="GserviceElements" /> |
| </xsd:sequence> |
| <xsd:attribute name="id" use="prohibited" /> |
| <xsd:attribute name="depends-on" type="TdependsOn" /> |
| <xsd:attribute name="activation" use="prohibited" |
| fixed="lazy" /> |
| <xsd:attribute name="interface" type="Tclass" /> |
| <xsd:attribute name="ref" type="Tidref" /> |
| <xsd:attribute name="auto-export" type="TautoExportModes" |
| default="disabled" /> |
| <xsd:attribute name="ranking" type="xsd:int" default="0" /> |
| <xsd:anyAttribute namespace="##other" |
| processContents="strict" /> |
| </xsd:restriction> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:group name="GbaseServiceElements"> |
| <xsd:sequence> |
| <xsd:element name="description" type="Tdescription" |
| minOccurs="0" /> |
| <xsd:element name="interfaces" type="Tinterfaces" |
| minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A collection of one or more interface class names this service |
| will be registered under. The <service> element also has |
| a shortcut interface attribute for the usual case of just |
| a single interface being used. This also cannot be used if |
| the auto-export attribute is used. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="service-properties" type="TserviceProperties" |
| minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The service provided when the service is registered. The service |
| properties are similar to map elements, but the keys must always |
| be strings, and the values are required to be in a narrower range. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="registration-listener" type="TregistrationListener" |
| minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A set of 0 or more registration listeners attached to this service |
| component. The registration listeners will be notified whenever the |
| service is registered or unregistered from the framework service |
| registry. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:group name="GserviceElements"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A set of service elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:group ref="GbaseServiceElements" /> |
| <xsd:group ref="GtargetComponent" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A service definition can use any of the target types as an inline element |
| as well. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:group> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:complexType name="TregistrationListener"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A registration listener definition. The target registration listener |
| can be either a <ref> to a <bean> or <service> component, or an inline |
| <bean> or <service> component definition. The registration-method and |
| unregistration-method attributes define the methods that will be called |
| for the respective events. |
| |
| For the very common case of using a <ref> to a listener component, the |
| ref attribute may also be used as a shortcut. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:group ref="GtargetComponent" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="ref" type="Tidref" /> |
| <xsd:attribute name="registration-method" type="Tmethod" /> |
| <xsd:attribute name="unregistration-method" type="Tmethod" /> |
| </xsd:complexType> |
| |
| <!-- Values --> |
| |
| <xsd:group name="Gvalue"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The set of "value" types that can be used in any place a value |
| can be specified. This set includes the <ref> and <idref> elements, any of the |
| component types (<bean>, <service>, etc.) as inline components, the |
| generic <value> element for types sourced from string values, any of the |
| collection types (<set>, <list>, <array>, <map>, <props>), and the |
| <null> type to inject a null value. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice> |
| <xsd:group ref="GnonNullValue" /> |
| <xsd:element name="null" type="Tnull" /> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:complexType name="Tnull"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The definition for a <null> value type. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| |
| <xsd:group name="GnonNullValue"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The set of "value" types that can be used in any place a non-null value |
| can be specified. This set includes the <ref> and <idref> elements, any of the |
| component types (<bean>, <service>, etc.) as inline components, the |
| generic <value> element for types sourced from string values, and any of the |
| collection types (<set>, <list>, <array>, <map>, <props>). |
| |
| The <null> type is NOT a member of this group. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice> |
| <xsd:group ref="GallComponents" /> |
| <xsd:element name="idref" type="Tref" /> |
| <xsd:element name="value" type="Tvalue" /> |
| <xsd:element name="list" type="Tcollection" /> |
| <xsd:element name="set" type="Tcollection" /> |
| <xsd:element name="map" type="Tmap" /> |
| <xsd:element name="array" type="Tcollection" /> |
| <xsd:element name="props" type="Tprops" /> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:complexType name="Tref"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tref is the type used for <ref> elements. This specifies a required |
| component id for the reference component. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="component-id" type="Tidref" use="required" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tvalue" mixed="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tvalue is the type used for <value> elements. The <value> element |
| is used for types that can be created from a single string value. |
| The string value is the data value for the element. The optional |
| type attribute allows a target conversion value to be explicitly |
| specified. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="type" type="Ttype" /> |
| </xsd:complexType> |
| |
| <!-- Collection Values --> |
| |
| <xsd:complexType name="TtypedCollection"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TtypeCollection defines comment attributes shared among different |
| collection types that allow a default value type to be specified. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="value-type" type="Ttype" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tcollection"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tcollection is the base schema type for different ordered collection |
| types. This is shared between the <array>, <list>, and <set> elements. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="TtypedCollection"> |
| <xsd:group ref="Gvalue" minOccurs="0" maxOccurs="unbounded" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tprops"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tprops is the type used by the <props> value element. The prop elements |
| are pairs of string-valued keys and values. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="prop" type="Tprop" minOccurs="0" |
| maxOccurs="unbounded" /> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tprop" mixed="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tprop is a single property element for a <props> value type. The property |
| value can be specified using either the attribute, or as value data for |
| the property element. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="key" type="TstringValue" use="required" /> |
| <xsd:attribute name="value" type="TstringValue" /> |
| </xsd:complexType> |
| |
| <!-- 'map' element type --> |
| <xsd:complexType name="Tmap"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tmap is the base type used for <map> elements. A map may have a |
| default value type specified, so it inherits from the TtypeCollection |
| type. A key type can also be specified, and the map members are |
| created from the entry elements, which require a key/value pair. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="TtypedCollection"> |
| <xsd:sequence> |
| <xsd:element name="entry" type="TmapEntry" minOccurs="0" |
| maxOccurs="unbounded" /> |
| </xsd:sequence> |
| <xsd:attribute name="key-type" type="Ttype" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- 'entry' element type --> |
| <xsd:complexType name="TmapEntry"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TmapEntry is used for <entry> elements nested inside of a <map> element. |
| Each <entry> instance defines a key/value pair that will be added to the |
| Map. Both the keys and values may be arbitrary types. Keys must not |
| be <null> but <null> is permitted for entry values. A default type |
| can be specified for both the keys and the values, but individual keys |
| or values can override the default. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="key" type="Tkey" minOccurs="0" /> |
| <xsd:group ref="Gvalue" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="key" type="TstringValue" /> |
| <xsd:attribute name="key-ref" type="Tidref" /> |
| <xsd:attribute name="value" type="TstringValue" /> |
| <xsd:attribute name="value-ref" type="Tidref" /> |
| </xsd:complexType> |
| |
| <!-- 'service property' element type --> |
| <xsd:complexType name="TserviceProperties"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TserviceProperty is used for <service-properties> elements. |
| The syntax is similar to what is defined for <map>, but keys must be |
| string values and there are no type defaults that can be specified. |
| created from the entry elements, which require a key/value pair. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="entry" type="TservicePropertyEntry" |
| minOccurs="0" maxOccurs="unbounded" /> |
| <xsd:any namespace="##other" processContents="strict" |
| minOccurs="0" maxOccurs="unbounded" /> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <!-- 'entry' element type --> |
| <xsd:complexType name="TservicePropertyEntry"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TservicePropertyEntry is an entry value used for the <service-properties> |
| element. This does not allow a child <key> element and there are no |
| key-ref or value-ref attributes. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:group ref="Gvalue" minOccurs="0" /> |
| </xsd:sequence> |
| <xsd:attribute name="key" type="TstringValue" use="required" /> |
| <xsd:attribute name="value" type="TstringValue" /> |
| </xsd:complexType> |
| |
| <!-- General types --> |
| |
| <xsd:complexType name="Tdescription" mixed="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| A generic <description> element type to allow documentation to added to the |
| blueprint configuration. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice minOccurs="0" maxOccurs="unbounded" /> |
| </xsd:complexType> |
| |
| <xsd:complexType name="Tinterfaces"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| The type definition for the <interfaces> element used for <service> |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> |
| <xsd:element name="value" type="TinterfaceValue" /> |
| </xsd:choice> |
| </xsd:complexType> |
| |
| <xsd:simpleType name="TinterfaceValue"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TinterfaceValue is used for subelements of the <interfaces> element. |
| This is just a <value>xxxxx</value> element where the contained |
| value is the name of an interface class. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="Tclass" /> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Tclass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tclass is a base type that should be used for all attributes that |
| refer to java class names. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NCName" /> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Ttype"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Ttype is a base type that refer to java types such as classes or |
| arrays. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:token"> |
| <xsd:pattern value="[\i-[:]][\c-[:]]*(\[\])*" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Tmethod"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tmethod is a base type that should be used for all attributes that |
| refer to java method names. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NCName" /> |
| </xsd:simpleType> |
| |
| <!-- |
| Should be used for all attributes and elements that refer to method |
| names |
| --> |
| <xsd:simpleType name="Tidref"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Tidref is a base type that should be used for all attributes that |
| refer to component ids. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NCName" /> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="TstringValue"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TstringValue is a base type that should be used for all attributes that |
| refer to raw string values |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:normalizedString" /> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="TautoExportModes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TautoExportModes is a base type that should be used for export-mode |
| attributes. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="disabled" /> |
| <xsd:enumeration value="interfaces" /> |
| <xsd:enumeration value="class-hierarchy" /> |
| <xsd:enumeration value="all-classes" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Ttimeout"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Ttimeout is a base type that should be used for all attributes that |
| specify timeout values |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:unsignedLong" /> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="TdependsOn"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| TdependsOn is a base type that should be used for all attributes that |
| specify depends-on relationships |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction> |
| <xsd:simpleType> |
| <xsd:list itemType="Tidref" /> |
| </xsd:simpleType> |
| <xsd:minLength value="1" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Tscope"> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="singleton" /> |
| <xsd:enumeration value="prototype" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="Tservice-use"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <![CDATA[ |
| Indicates the type of object that will be placed within the |
| reference collection. "service-object" indicates the |
| collection contains blueprint proxies for imported services. |
| "service-reference" indicates the collection contains |
| ServiceReference objects matching the target service type. |
| ]]> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="service-object" /> |
| <xsd:enumeration value="service-reference" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| </xsd:schema> |