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 ...]