blob: fb7d055ea65dbac18a426d1236a7d496d2fdaab6 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.springframework.org/schema/osgi-compendium"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:tool="http://www.springframework.org/schema/tool"
targetNamespace="http://www.springframework.org/schema/osgi-compendium"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.1">
<xsd:import namespace="http://www.springframework.org/schema/beans"/>
<xsd:import namespace="http://www.springframework.org/schema/tool"/>
<xsd:annotation>
<xsd:documentation><![CDATA[
Namespace support for the compendium services provided by Spring Dynamic Modules.
]]></xsd:documentation>
</xsd:annotation>
<!-- property placeholder -->
<xsd:element name="property-placeholder" type="TpropertyPlaceholder">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a property placeholder that replaces property values using
delimited values ( ${...} by default) with properties sourced from
the Configuration Admin service under the given persistent id.
]]></xsd:documentation>
<xsd:appinfo>
<tool:annotation>
<tool:exports type="java.util.Properties"/>
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="TpropertyPlaceholder">
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:sequence minOccurs="0" maxOccurs="1">
<!-- nested properties declaration -->
<xsd:element name="default-properties" type="beans:propsType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation><![CDATA[
Default property value to use for placeholder replacement
when the associated keys cannot be found under the given
persistent id.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="persistent-id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation><![CDATA[
The persistent-id to lookup in Configuration Admin. Must refer to the pid of
a managed service, and not a managed service factory.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="placeholder-prefix" type="xsd:string" use="optional" default="${">
<xsd:annotation>
<xsd:documentation><![CDATA[
The prefix to use for placeholder values. The default is '${'.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="placeholder-suffix" type="xsd:string" use="optional" default="}">
<xsd:annotation>
<xsd:documentation><![CDATA[
The suffix to use for placeholder values. The default is '}'.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="defaults-ref" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
Refers to a bean of type Properties or Map that supplies default placeholder
replacement values to be used when the associated keys cannot be found under the given
persistent id.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ELEMENTS BELOW THIS LINE ARE NOT SUPPORTED IN THE 1.0 RELEASE -->
<!-- managed-service -->
<xsd:element name="managed-service" type="TmanagedService">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a bean based on the given class name, and with properties autowired-by-name based
on the configuration stored under the given persistent id.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="TmanagedService">
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:group ref="beans:beanElements"/>
<xsd:attributeGroup ref="beans:beanAttributes"/>
<xsd:attribute name="persistent-id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation><![CDATA[
The persistent-id under which the configuration for this bean is stored in
the Configuration Admin service.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="updateStrategy" type="TupdateStrategyType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The strategy to use when the configuration data backing the beans defined by this element is
updated. The default value is 'none', meaning that any update after the initial configuration
of the beans is ignored. A value of 'bean-managed' means that the method specified in the
'update-method' attribute will be invoked. A value of 'container-managed' means that the container
will autowire the bean instance by name with the new property set.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="update-method" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The update-method to invoke when using a 'bean-managed' update strategy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- managed-service-factory -->
<xsd:element name="managed-service-factory" type="TmanagedServiceFactory">
<xsd:annotation>
<xsd:documentation><![CDATA[
Defines a collection of beans based on the given class name, and with properties autowired-by-name based
on the configuration sets stored under the given factory persistent id.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="TmanagedServiceFactory">
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:group ref="beans:beanElements"/>
<xsd:attributeGroup ref="beans:beanAttributes"/>
<xsd:attribute name="factory-pid" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation><![CDATA[
The factory persistent id under which the configuration sets for the beans defined by
this element are stored in the Configuration Admin service.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="updateStrategy" type="TupdateStrategyType" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The strategy to use when the configuration data backing the beans defined by this element is
updated. The default value is 'none', meaning that any update after the initial configuration
of the beans is ignored. A value of 'bean-managed' means that the method specified in the
'update-method' attribute will be invoked. A value of 'container-managed' means that the container
will autowire the bean instance by name with the new property set.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="update-method" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[
The update-method to invoke when using a 'bean-managed' update strategy.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="TupdateStrategyType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="none"/>
<xsd:enumeration value="bean-managed"/>
<xsd:enumeration value="container-managed"/>
</xsd:restriction>
</xsd:simpleType>
<!-- config-properties -->
<xsd:element name="config-properties" type="TconfigProperties">
<xsd:annotation>
<xsd:documentation><![CDATA[
Declares that the properties found in the Configuration Admin service under the given
persistent id should be exported as properties of the registered service.
]]></xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="TconfigProperties">
<xsd:attribute name="persistent-id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation><![CDATA[
The persistent id under which the properties to be exported are registered.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>