<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
    /*
    * $Revision: 948300 $
    *
    * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    *      http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    -->
<xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    elementFormDefault="qualified" attributeFormDefault="unqualified"
    version="1.0.0">

    <xsd:annotation>
        <xsd:documentation>
            <![CDATA[
                This is the XML Schema for the OSGi Blueprint service 1.0.0
                development descriptor.  Blueprint configuration files
                using this schema must indicate the schema using the
                blueprint/v1.0.0 namespace.  For example,

                <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

                if used as a qualified namespace, "bp" is the recommended
                namespace prefix.
            ]]>
        </xsd:documentation>
    </xsd:annotation>

    <!-- Schema elements for core component declarations -->

    <xsd:complexType name="Tcomponent" abstract="true">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                    The Tcomponent type is the base type for top-level
                    Blueprint components.  The <bean> <reference>, <service>,
                    and <reference-list> elements are all derived from
                    the Tcomponent type.  This type defines an id attribute
                    that is used create references between different components.
                    Component elements can also be inlined within other component
                    definitions.  The id attribute is not valid when inlined.
                ]]>
            </xsd:documentation>
        </xsd:annotation>

        <xsd:attribute name="id" type="xsd:ID" />

        <xsd:attribute name="activation" type="Tactivation">
            <xsd:annotation>
                <xsd:documentation>
                    <![CDATA[
                    The activation attribute for this component.  This can either
                    be "eager" or "lazy".  If not specified, it
                    defaults to default-activation attribute of the enclosing
                    <blueprint> element.
                    ]]>
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>

        <xsd:attribute name="depends-on" type="TdependsOn">
            <xsd:annotation>
                <xsd:documentation>
                    <![CDATA[
                    depends-on identifies (by id) other components that this component
                    depends on.  The component only be activated after the
                    depends-on components are successfully activated.  Also, if there
                    are <reference> or <reference-list> elements with unstatisfied
                    manadatory references, then the depends-on relationship will also
                    be used to determine whether this service is enabled or not.
                    ]]>
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:complexType>

    <xsd:element name="blueprint" type="Tblueprint">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The <blueprint> element is the root element for a blueprint
                configuration file.  A blueprint configuration has two sections.
                The first section (contained within the <type-converters> element)
                identifies components that are used for converting values into
                different target types.  The type converters are optional, so
                the file does not need to specify a type converter section.

                Following the type converters are the component definitions.
                Components are <bean>, <service>, <reference>, and
                <reference-list> elements that identify the bundle components that will
                be managed by the blueprint service.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="Tblueprint">
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <xsd:element name="type-converters" type="Ttype-converters"
                minOccurs="0" maxOccurs="1" />
            <!-- top-level components -->
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
                <xsd:element name="service" type="Tservice" />
                <xsd:element name="reference-list" type="Treference-list" />
                <xsd:element name="bean" type="Tbean" />
                <xsd:element name="reference" type="Treference" />
                <xsd:any namespace="##other" processContents="strict" />
            </xsd:choice>
        </xsd:sequence>

        <!-- Defaults-->
        <xsd:attribute name="default-activation" default="eager"
            type="Tactivation">
            <xsd:annotation>
                <xsd:documentation>
                    <![CDATA[
                    Specifies the default activation setting that will be defined
                    for components.  If not specified, the global default is "eager".
                    Individual components may override the default value.
                    ]]>
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="default-timeout" type="Ttimeout"
            default="300000">
            <xsd:annotation>
                <xsd:documentation>
                    <![CDATA[
                    Specifies the default timeout value to be used when operations
                    are invoked on unstatisfied service references.  If the
                    reference does not change to a satisfied state within the timeout
                    window, an error is raised on the method invocation.  The
                    default timeout value is 300000 milliseconds and individual
                    <reference> element can override the specified configuration
                    default.
                    ]]>
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="default-availability" type="Tavailability"
            default="mandatory">
            <xsd:annotation>
                <xsd:documentation>
                    <![CDATA[
                    Specifies the default availability value to be used for
                    <reference>, and <reference-list> components.  The
                    normal default is "mandatory", and can be changed by individual
                    service reference components.
                    ]]>
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:anyAttribute namespace="##other"
            processContents="strict" />
    </xsd:complexType>

    <xsd:complexType name="Ttype-converters">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The type used for the <type-converters> element.  The
                <type-converters> section is a set of <bean>, <ref>, or
                <reference> elements that identify the type converter components.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="bean" type="Tbean" />
            <xsd:element name="reference" type="Treference" />
            <xsd:element name="ref" type="Tref" />
            <xsd:any namespace="##other" processContents="strict" />
        </xsd:choice>
    </xsd:complexType>

    <!--
        Components that provide a reasonable target for injection used for
        listeners, etc.
    -->

    <xsd:group name="GtargetComponent">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A target component is one that can be a target for a
                listener, registration-listener or service elements.
                This is used in contexts where the requirement is a single
                provided object that will implement a particular interface.
                The provided object is obtained either from a <ref> element
                or an inlined <bean> or <reference>.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
            <xsd:element name="bean" type="Tinlined-bean" />
            <xsd:element name="reference" type="Tinlined-reference" />
            <xsd:element name="ref" type="Tref" />
            <xsd:any namespace="##other" processContents="strict" />
        </xsd:choice>
    </xsd:group>

    <xsd:group name="GallComponents">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                An all components is used in contexts where all component element
                types are values.  The set of component elements contains
                <bean>, <service>, <reference>, <reference-list> and <ref>.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
            <xsd:element name="service" type="Tinlined-service" />
            <xsd:element name="reference-list" type="Tinlined-reference-list" />
            <xsd:group ref="GtargetComponent" />
        </xsd:choice>
    </xsd:group>

    <xsd:group name="GbeanElements">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A bean elements is a reusable definition of the elements allowed on 
                a <bean> element.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
                <xsd:element name="argument" type="Targument" />
                <xsd:element name="property" type="Tproperty" />
                <xsd:any namespace="##other" processContents="strict" />
            </xsd:choice>
        </xsd:sequence>
    </xsd:group>

    <xsd:complexType name="Tbean">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The type definition for a <bean> component.  The <bean> 
                attributes provide the characteristics for how to create a
                bean instance.  Constructor arguments and injected properties
                are specified via child <argument> and <property> elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="Tcomponent">
                <xsd:group ref="GbeanElements" />
                <xsd:attribute name="class" type="Tclass" />
                <xsd:attribute name="init-method" type="Tmethod" />
                <xsd:attribute name="destroy-method" type="Tmethod" />
                <xsd:attribute name="factory-method" type="Tmethod" />
                <xsd:attribute name="factory-ref" type="Tidref" />
                <xsd:attribute name="scope" type="Tscope" />
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Tinlined-bean">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Tinlined-bean type is used for inlined (i.e. non top level)
                <bean> elements.  Those elements have some restrictions on
                the attributes that can be used to define them.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:restriction base="Tbean">
                <xsd:group ref="GbeanElements" />
                <xsd:attribute name="id" use="prohibited" />
                <xsd:attribute name="depends-on" type="TdependsOn" />
                <xsd:attribute name="activation" use="prohibited"
                    fixed="lazy" />
                <xsd:attribute name="class" type="Tclass" />
                <xsd:attribute name="init-method" type="Tmethod" />
                <xsd:attribute name="destroy-method" use="prohibited" />
                <xsd:attribute name="factory-method" type="Tmethod" />
                <xsd:attribute name="factory-ref" type="Tidref" />
                <xsd:attribute name="scope" use="prohibited" />
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Targument">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                An argument used to create an object defined by a <bean>
                component.  The <argument> elements are the arguments for the
                bean class constructor or passed to the bean factory method.

                The type, if specified, is used to disambiguate the constructor
                or method signature.  Arguments may also be matched up with
                arguments by explicitly specifying the index position.  If the
                index is used, then all <argument> elements for the bean must
                also specify the index.

                The value and ref attributes are convenience shortcuts to make
                the <argument> tag easier to code.  A fuller set of injected
                values and types can be specified using one of the "value"
                type elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <xsd:group ref="Gvalue" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="index" type="xsd:nonNegativeInteger" />
        <xsd:attribute name="type" type="Ttype" />
        <xsd:attribute name="ref" type="Tidref" />
        <xsd:attribute name="value" type="TstringValue" />
    </xsd:complexType>

    <xsd:complexType name="Tproperty">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A property that will be injected into a created <bean>
                component.  The <property> elements correspond to named
                JavaBean setting methods for a created bean object.

                The value and ref attributes are convenience shortcuts to make
                the <argument> tag easier to code.  A fuller set of injected
                values and types can be specified using one of the "value"
                type elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <xsd:group ref="Gvalue" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="name" type="Tmethod" use="required" />
        <xsd:attribute name="ref" type="Tidref" />
        <xsd:attribute name="value" type="TstringValue" />
    </xsd:complexType>

    <xsd:complexType name="Tkey">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Tkey type defines the element types that are permitted
                for Map key situations.  These can be any of the "value"
                types other than the <null> element.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:group ref="GnonNullValue" />
    </xsd:complexType>

    <!-- reference -->
    <xsd:complexType name="Treference">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Treference type defines the <reference> element.  These
                are instances of the TserviceReference type, with the addition
                of a timeout attribute.  If the timeout is not specified,
                the default-timeout value is inherited from the encapsulating
                <blueprint> definition.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="TserviceReference">
                <xsd:sequence>
                    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
                        processContents="strict" />
                </xsd:sequence>
                <xsd:attribute name="timeout" type="Ttimeout" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Tinlined-reference">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Tinlined-reference type is used for inlined (i.e. non top level)
                <reference> elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:restriction base="Treference">
                <xsd:sequence>
                    <xsd:group ref="GserviceReferenceElements" />
                    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
                        processContents="strict" />
                </xsd:sequence>
                <xsd:attribute name="id" use="prohibited" />
                <xsd:attribute name="depends-on" type="TdependsOn" />
                <xsd:attribute name="activation" use="prohibited"
                    fixed="lazy" />
                <xsd:attribute name="interface" type="Tclass" />
                <xsd:attribute name="filter" type="xsd:normalizedString" />
                <xsd:attribute name="component-name" type="Tidref" />
                <xsd:attribute name="availability" type="Tavailability" />
                <xsd:attribute name="timeout" type="Ttimeout" />
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <!-- reference-list -->
    <xsd:complexType name="Treference-list">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Treference-list builds in the characteristics of the
                TserviceReference type to define characteristics of the
                <reference-list>.  This adds in the characteristics that
                only apply to collections of references (e.g., member-type).
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="TserviceReference">
                <xsd:sequence>
                    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
                        processContents="strict" />
                </xsd:sequence>
                <xsd:attribute name="member-type" type="Tservice-use"
                    default="service-object">
                </xsd:attribute>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Tinlined-reference-list">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Tinlined-reference-list type is used for inlined (i.e. non top level)
                <reference-list> elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:restriction base="Treference-list">
                <xsd:sequence>
                    <xsd:group ref="GserviceReferenceElements" />
                    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
                        processContents="strict" />
                </xsd:sequence>
                <xsd:attribute name="id" use="prohibited" />
                <xsd:attribute name="depends-on" type="TdependsOn" />
                <xsd:attribute name="activation" use="prohibited"
                    fixed="lazy" />
                <xsd:attribute name="interface" type="Tclass" />
                <xsd:attribute name="filter" type="xsd:normalizedString" />
                <xsd:attribute name="component-name" type="Tidref" />
                <xsd:attribute name="availability" type="Tavailability" />
                <xsd:attribute name="member-type" type="Tservice-use"
                    default="service-object" />
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <!-- Reference base class -->
    <xsd:complexType name="TserviceReference">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TserviceReference is the base element type used for <reference>
                and <reference-list> elements.  This type defines all of the
                characteristics common to both sorts of references.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="Tcomponent">
                <xsd:sequence>
                    <xsd:group ref="GserviceReferenceElements" />
                </xsd:sequence>

                <xsd:attribute name="interface" type="Tclass">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            The interface that the OSGi service must implement and that will be
                            implemented by the proxy object.
                            This attribute is optional.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="filter" type="xsd:normalizedString">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            A filter string used to narrow the search for a matching service
                            reference.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="component-name" type="Tidref">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            An optional specifier that can be used to match a service definition
                            to one created by a specific blueprint component.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="availability" type="Tavailability">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            Use to control the initial processing of service references at
                            blueprint context startup.  "mandatory" indicates the context
                            should not start unless the service is available within the
                            specified context startup period.  "optional" indicates availability
                            of this service is not a requirement at bundle startup.

                            NOTE:  No default is specified because this can be overridden
                            by the default-availability attribute of the <blueprint> element.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:group name="GserviceReferenceElements">
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <!-- listener -->
            <xsd:element name="reference-listener" type="TreferenceListener"
                minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>
                        <![CDATA[
                        A definition of a listener that will watch for bind/unbind events
                        associated with the service reference.  The targetted listener can
                        be a <ref> to a <bean> or <reference> element, or an inline
                        <bean> or <reference>.
                        ]]>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:group>

    <xsd:complexType name="TreferenceListener">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TReferenceListener defines a reference listener that is attached
                to a <reference> or <reference-list> element.  The listener
                object can be specified as a <ref> or as an inline <bean> or
                <reference> component.  Listener events are mapped to the indicated
                bind or unbind methods.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:group ref="GtargetComponent" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="ref" type="Tidref" />
        <xsd:attribute name="bind-method" type="Tmethod" />
        <xsd:attribute name="unbind-method" type="Tmethod" />
    </xsd:complexType>

    <xsd:simpleType name="Tactivation">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tactivation defines the activation type for components.  This is used in this
                schema by the <blueprint> default-activation attribute and the
                activation attribute.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="eager" />
            <xsd:enumeration value="lazy" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Tavailability">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tavailability defines an availability attribute type.  This is used in this
                schema by the <blueprint> default-availability attribute and the
                <reference> and <reference-list> availability attribute.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="mandatory" />
            <xsd:enumeration value="optional" />
        </xsd:restriction>
    </xsd:simpleType>

    <!-- service -->

    <xsd:complexType name="Tservice">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tservice is the type for services exported by this blueprint bundle.
                Services are sourced by either a <ref> to a <bean> component or an
                <inline> bean component.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="Tcomponent">
                <xsd:sequence>
                    <xsd:group ref="GserviceElements" />
                </xsd:sequence>
                <xsd:attribute name="interface" type="Tclass">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            The interface that this OSGi service will provide.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="ref" type="Tidref">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            The ref attribute can be used to specify the component that provides
                            the object exported as an OSGi service.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="auto-export" type="TautoExportModes"
                    default="disabled">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            If set to a value different from "disabled", the Blueprint Container
                            will introspect the target to discover the set of interfaces or classes
                            that the service will be registered under.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="ranking" type="xsd:int" default="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            <![CDATA[
                            A service ranking value that is added to the service properties
                            the service will be published with.
                            ]]>
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Tinlined-service">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The Tinlined-service type is used for inlined (i.e. non top level)
                <service> elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:restriction base="Tservice">
                <xsd:sequence>
                    <xsd:group ref="GserviceElements" />
                </xsd:sequence>
                <xsd:attribute name="id" use="prohibited" />
                <xsd:attribute name="depends-on" type="TdependsOn" />
                <xsd:attribute name="activation" use="prohibited"
                    fixed="lazy" />
                <xsd:attribute name="interface" type="Tclass" />
                <xsd:attribute name="ref" type="Tidref" />
                <xsd:attribute name="auto-export" type="TautoExportModes"
                    default="disabled" />
                <xsd:attribute name="ranking" type="xsd:int" default="0" />
                <xsd:anyAttribute namespace="##other"
                    processContents="strict" />
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:group name="GbaseServiceElements">
        <xsd:sequence>
            <xsd:element name="description" type="Tdescription"
                minOccurs="0" />
            <xsd:element name="interfaces" type="Tinterfaces"
                minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        <![CDATA[
                        A collection of one or more interface class names this service
                        will be registered under.  The <service> element also has
                        a shortcut interface attribute for the usual case of just
                        a single interface being used.  This also cannot be used if
                        the auto-export attribute is used.
                        ]]>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>

            <xsd:element name="service-properties" type="TserviceProperties"
                minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        <![CDATA[
                        The service provided when the service is registered.  The service
                        properties are similar to map elements, but the keys must always
                        be strings, and the values are required to be in a narrower range.
                        ]]>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="registration-listener" type="TregistrationListener"
                minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>
                        <![CDATA[
                        A set of 0 or more registration listeners attached to this service
                        component.  The registration listeners will be notified whenever the
                        service is registered or unregistered from the framework service
                        registry.
                        ]]>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:group>

    <xsd:group name="GserviceElements">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A set of service elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:group ref="GbaseServiceElements" />
            <xsd:group ref="GtargetComponent" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>
                        <![CDATA[
                        A service definition can use any of the target types as an inline element
                        as well.
                        ]]>
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:group>
        </xsd:sequence>
    </xsd:group>

    <xsd:complexType name="TregistrationListener">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A registration listener definition.  The target registration listener
                can be either a <ref> to a <bean> or <service> component, or an inline
                <bean> or <service> component definition.  The registration-method and
                unregistration-method attributes define the methods that will be called
                for the respective events.

                For the very common case of using a <ref> to a listener component, the
                ref attribute may also be used as a shortcut.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:group ref="GtargetComponent" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="ref" type="Tidref" />
        <xsd:attribute name="registration-method" type="Tmethod" />
        <xsd:attribute name="unregistration-method" type="Tmethod" />
    </xsd:complexType>

    <!-- Values -->

    <xsd:group name="Gvalue">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The set of "value" types that can be used in any place a value
                can be specified.  This set includes the <ref> and <idref> elements, any of the
                component types (<bean>, <service>, etc.) as inline components, the
                generic <value> element for types sourced from string values, any of the
                collection types (<set>, <list>, <array>, <map>, <props>), and the
                <null> type to inject a null value.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
            <xsd:group ref="GnonNullValue" />
            <xsd:element name="null" type="Tnull" />
        </xsd:choice>
    </xsd:group>

    <xsd:complexType name="Tnull">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The definition for a <null> value type.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
    </xsd:complexType>

    <xsd:group name="GnonNullValue">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The set of "value" types that can be used in any place a non-null value
                can be specified.  This set includes the <ref> and <idref> elements, any of the
                component types (<bean>, <service>, etc.) as inline components, the
                generic <value> element for types sourced from string values, and any of the
                collection types (<set>, <list>, <array>, <map>, <props>).

                The <null> type is NOT a member of this group.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
            <xsd:group ref="GallComponents" />
            <xsd:element name="idref" type="Tref" />
            <xsd:element name="value" type="Tvalue" />
            <xsd:element name="list" type="Tcollection" />
            <xsd:element name="set" type="Tcollection" />
            <xsd:element name="map" type="Tmap" />
            <xsd:element name="array" type="Tcollection" />
            <xsd:element name="props" type="Tprops" />
        </xsd:choice>
    </xsd:group>

    <xsd:complexType name="Tref">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tref is the type used for <ref> elements.  This specifies a required
                component id for the reference component.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="component-id" type="Tidref" use="required" />
    </xsd:complexType>

    <xsd:complexType name="Tvalue" mixed="true">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tvalue is the type used for <value> elements.  The <value> element
                is used for types that can be created from a single string value.
                The string value is the data value for the element.  The optional
                type attribute allows a target conversion value to be explicitly
                specified.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="type" type="Ttype" />
    </xsd:complexType>

    <!-- Collection Values -->

    <xsd:complexType name="TtypedCollection">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TtypeCollection defines comment attributes shared among different
                collection types that allow a default value type to be specified.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="value-type" type="Ttype" />
    </xsd:complexType>

    <xsd:complexType name="Tcollection">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tcollection is the base schema type for different ordered collection
                types.  This is shared between the <array>, <list>, and <set> elements.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="TtypedCollection">
                <xsd:group ref="Gvalue" minOccurs="0" maxOccurs="unbounded" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="Tprops">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tprops is the type used by the <props> value element.  The prop elements
                are pairs of string-valued keys and values.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="prop" type="Tprop" minOccurs="0"
                maxOccurs="unbounded" />
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="Tprop" mixed="true">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tprop is a single property element for a <props> value type.  The property
                value can be specified using either the attribute, or as value data for
                the property element.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="key" type="TstringValue" use="required" />
        <xsd:attribute name="value" type="TstringValue" />
    </xsd:complexType>

    <!-- 'map' element type -->
    <xsd:complexType name="Tmap">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tmap is the base type used for <map> elements.  A map may have a
                default value type specified, so it inherits from the TtypeCollection
                type.  A key type can also be specified, and the map members are
                created from the entry elements, which require a key/value pair.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:extension base="TtypedCollection">
                <xsd:sequence>
                    <xsd:element name="entry" type="TmapEntry" minOccurs="0"
                        maxOccurs="unbounded" />
                </xsd:sequence>
                <xsd:attribute name="key-type" type="Ttype" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <!-- 'entry' element type -->
    <xsd:complexType name="TmapEntry">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TmapEntry is used for <entry> elements nested inside of a <map> element.
                Each <entry> instance defines a key/value pair that will be added to the
                Map.  Both the keys and values may be arbitrary types.  Keys must not
                be <null> but <null> is permitted for entry values.  A default type
                can be specified for both the keys and the values, but individual keys
                or values can override the default.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="key" type="Tkey" minOccurs="0" />
            <xsd:group ref="Gvalue" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="key" type="TstringValue" />
        <xsd:attribute name="key-ref" type="Tidref" />
        <xsd:attribute name="value" type="TstringValue" />
        <xsd:attribute name="value-ref" type="Tidref" />
    </xsd:complexType>

    <!-- 'service property' element type -->
    <xsd:complexType name="TserviceProperties">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TserviceProperty is used for <service-properties> elements.
                The syntax is similar to what is defined for <map>, but keys must be
                string values and there are no type defaults that can be specified.
                created from the entry elements, which require a key/value pair.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="entry" type="TservicePropertyEntry"
                minOccurs="0" maxOccurs="unbounded" />
            <xsd:any namespace="##other" processContents="strict"
                minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
    </xsd:complexType>

    <!-- 'entry' element type -->
    <xsd:complexType name="TservicePropertyEntry">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TservicePropertyEntry is an entry value used for the <service-properties>
                element.  This does not allow a child <key> element and there are no
                key-ref or value-ref attributes.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:group ref="Gvalue" minOccurs="0" />
        </xsd:sequence>
        <xsd:attribute name="key" type="TstringValue" use="required" />
        <xsd:attribute name="value" type="TstringValue" />
    </xsd:complexType>

    <!-- General types -->

    <xsd:complexType name="Tdescription" mixed="true">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                A generic <description> element type to allow documentation to added to the
                blueprint configuration.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice minOccurs="0" maxOccurs="unbounded" />
    </xsd:complexType>

    <xsd:complexType name="Tinterfaces">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                The type definition for the <interfaces> element used for <service>
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice minOccurs="1" maxOccurs="unbounded">
            <xsd:element name="value" type="TinterfaceValue" />
        </xsd:choice>
    </xsd:complexType>

    <xsd:simpleType name="TinterfaceValue">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TinterfaceValue is used for subelements of the <interfaces> element.
                This is just a <value>xxxxx</value> element where the contained
                value is the name of an interface class.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="Tclass" />
    </xsd:simpleType>

    <xsd:simpleType name="Tclass">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tclass is a base type that should be used for all attributes that
                refer to java class names.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NCName" />
    </xsd:simpleType>

    <xsd:simpleType name="Ttype">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Ttype is a base type that refer to java types such as classes or
                arrays.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="[\i-[:]][\c-[:]]*(\[\])*" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Tmethod">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tmethod is a base type that should be used for all attributes that
                refer to java method names.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NCName" />
    </xsd:simpleType>

    <!--
        Should be used for all attributes and elements that refer to method
        names
    -->
    <xsd:simpleType name="Tidref">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Tidref is a base type that should be used for all attributes that
                refer to component ids.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NCName" />
    </xsd:simpleType>

    <xsd:simpleType name="TstringValue">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TstringValue is a base type that should be used for all attributes that
                refer to raw string values
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:normalizedString" />
    </xsd:simpleType>

    <xsd:simpleType name="TautoExportModes">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TautoExportModes is a base type that should be used for export-mode
                attributes.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="disabled" />
            <xsd:enumeration value="interfaces" />
            <xsd:enumeration value="class-hierarchy" />
            <xsd:enumeration value="all-classes" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Ttimeout">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Ttimeout is a base type that should be used for all attributes that
                specify timeout values
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:unsignedLong" />
    </xsd:simpleType>

    <xsd:simpleType name="TdependsOn">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                TdependsOn is a base type that should be used for all attributes that
                specify depends-on relationships
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction>
            <xsd:simpleType>
                <xsd:list itemType="Tidref" />
            </xsd:simpleType>
            <xsd:minLength value="1" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Tscope">
        <xsd:union>
            <xsd:simpleType>
                <xsd:restriction base="xsd:NMTOKEN">
                    <xsd:enumeration value="singleton" />
                    <xsd:enumeration value="prototype" />
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType>
                <xsd:restriction base="xsd:QName">
                    <xsd:pattern value=".+:.+" />
                </xsd:restriction>
            </xsd:simpleType>
        </xsd:union>
    </xsd:simpleType>

    <xsd:simpleType name="Tservice-use">
        <xsd:annotation>
            <xsd:documentation>
                <![CDATA[
                Indicates the type of object that will be placed within the
                reference collection.  "service-object" indicates the 
                collection contains blueprint proxies for imported services.  
                "service-reference" indicates the collection contains 
                ServiceReference objects matching the target service type.
                ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="service-object" />
            <xsd:enumeration value="service-reference" />
        </xsd:restriction>
    </xsd:simpleType>

</xsd:schema>
