You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/07/06 21:50:27 UTC
svn commit: r791585 [3/3] - in /geronimo/sandbox/blueprint:
blueprint-api/src/main/java/org/osgi/service/blueprint/container/
blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/
blueprint-bundle/ blueprint-cm/src/main/resources/org/apache/g...
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd Mon Jul 6 19:50:26 2009
@@ -18,1181 +18,1207 @@
* 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. The default is "eager".
- ]]>
- </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="targetComponent">
- <xsd:annotation>
- <xsd:documentation>
- <![CDATA[
- A targetcomponent 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="allComponents">
- <xsd:annotation>
- <xsd:documentation>
- <![CDATA[
- allComponents is used in contexts where all component element
- types are value. 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="targetComponent" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:group name="beanElements">
- <xsd:annotation>
- <xsd:documentation>
- <![CDATA[
- A reusable definition of the elements allowed on a <bean> element.
- This definition is also used by the <bpcm:managed-component>
- element used in the blueprint-cm schema.
- ]]>
- </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.
- This definition is also used by the <bpcm:managed-component>
- element used in the blueprint-cm schema. 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="beanElements" />
- <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="beanElements" />
- <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="value" 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="value" 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="nonNullValue" />
- </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="serviceReferenceElements"/>
- <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., memberType).
- ]]>
- </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: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 ServiceReferenc objects matching
- the target service type.
- ]]>
- </xsd:documentation>
- </xsd:annotation>
- </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="serviceReferenceElements"/>
- <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="serviceReferenceElements"/>
- </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.
- It is allowed to not specify this attribute.
- ]]>
- </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="serviceReferenceElements">
- <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="targetComponent" 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="serviceElements" />
- </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="serviceElements" />
- </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="baseServiceElements">
- <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="serviceElements">
- <xsd:annotation>
- <xsd:documentation>
- <![CDATA[
- A set of service elements that is shared by the <service> element
- in this schema and the <managed-service-factory> element in the
- blueprint-cm schema.
- ]]>
- </xsd:documentation>
- </xsd:annotation>
- <xsd:sequence>
- <xsd:group ref="baseServiceElements"/>
- <xsd:group ref="targetComponent" 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="targetComponent" 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>
+<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" />
- <!--
- Values
+ <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. The default is "eager".
+ ]]>
+ </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="value">
- <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="nonNullValue" />
- <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="nonNullValue">
- <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="allComponents"/>
- <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="value" 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="value" 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="value" 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>
+ <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">
[... 230 lines stripped ...]