<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->
<xs:schema elementFormDefault="qualified" targetNamespace="org.apache.felix.ipojo"
  xmlns="org.apache.felix.ipojo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:annotation>
      <xs:documentation>iPOJO Core XML-Schema. This grammars models iPOJO descriptor using core features. It provides several extensibility mechanism in order to compose this schema with external handlers and other component implementation type such as compositions.</xs:documentation></xs:annotation>
    <xs:element name="ipojo">
    <xs:complexType>
            <xs:annotation>
              <xs:documentation>iPOJO top level element.</xs:documentation>
            </xs:annotation>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="handler" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>The handler declarations.</xs:documentation>
                    </xs:annotation>
        </xs:element>
        <xs:element ref="instance" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>The instance declarations.</xs:documentation>
                    </xs:annotation>
        </xs:element>
        <xs:element ref="component" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>The component type declarations.</xs:documentation>
                    </xs:annotation>
        </xs:element>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
        </xs:any>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="HandlerType">
        <xs:annotation>
          <xs:documentation>Description of the handler.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
      <xs:extension base="RootElementType">
        <xs:sequence maxOccurs="unbounded" minOccurs="0">
          <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any"
            processContents="skip">
          </xs:any>
        </xs:sequence>
        <xs:attribute name="classname" type="xs:string" use="required">
                    <xs:annotation>
                      <xs:documentation>The implementation class of the handler. The specified class must implement (direcly or not) the "org.apache.felix.ipojo.Handler" interface.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="xs:string" use="required">
                    <xs:annotation>
                      <xs:documentation>The name of the handler.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespace" type="xs:string" use="optional">
                    <xs:annotation>
                      <xs:documentation>The XML namespace of the handler.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="architecture" type="xs:boolean"
          use="optional" fixed="false">
                    <xs:annotation>
                      <xs:documentation>Enables or disables the architecture exposition. By default, the architecture is not exposed. This allows handler introspection.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="level" type="xs:int" use="optional">
                    <xs:annotation>
                      <xs:documentation>The start level of the handler.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="InstanceType">
        <xs:annotation>
          <xs:documentation>Describes an instance of a component.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
      <xs:extension base="RootElementType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="property" type="InstancePropertyType">
            <xs:annotation>
              <xs:documentation>The instance properties.</xs:documentation>
            </xs:annotation></xs:element>
        </xs:sequence>
        <xs:attribute name="component" type="xs:string">
          <xs:annotation>
            <xs:documentation>The name of the instance component type.</xs:documentation>
          </xs:annotation></xs:attribute>
        <xs:attribute name="name" type="xs:string" use="optional">
                    <xs:annotation>
                      <xs:documentation>The (unique) name of the instance.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
        <xs:attribute name="version" type="xs:string" use="optional">
                    <xs:annotation>
                      <xs:documentation>The version of the factory to use.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="InstancePropertyType">
        <xs:annotation>
          <xs:documentation>Defines a property of an instance configuration.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
      <xs:element name="property" type="InstancePropertyType" minOccurs="0" maxOccurs="unbounded"></xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Name of the property. Can be optional if a property is inside a structure.
The 'instance.name' property has a special semantic as it will be used as the instance name.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="value" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Value of the property. Can be null for property containing other properties.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="type" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Type of the property, used to create the adequate object. Supported values are list, array, dictionary and map.</xs:documentation>
      </xs:annotation></xs:attribute>
  </xs:complexType>
  <xs:complexType name="RootElementType"></xs:complexType>
  <xs:complexType name="ComponentType">
    <xs:annotation>
      <xs:documentation>Declares an atomic (i.e. primitive) component type.</xs:documentation>
    </xs:annotation>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="callback" minOccurs="0"
        maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Describes the method(s) to invoke when the component's state changes.</xs:documentation>
                </xs:annotation>
      </xs:element>
      <xs:element ref="provides" minOccurs="0"
        maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Indicates the component provided service(s). By default, all implemented interfaces are published.</xs:documentation>
                </xs:annotation>
      </xs:element>
      <xs:element ref="requires" minOccurs="0"
        maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Indicates the service requirements of the component.</xs:documentation>
                </xs:annotation>
      </xs:element>
      <xs:element ref="properties" minOccurs="0"
        maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Describes the properties of the component.</xs:documentation>
                </xs:annotation>
      </xs:element>
      <xs:element ref="controller" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Lifecycle controller for this component.</xs:documentation>
        </xs:annotation></xs:element>
      <xs:any namespace="##other" processContents="lax"
        minOccurs="0" maxOccurs="unbounded">
      </xs:any>
    </xs:choice>
    <xs:attribute name="name" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the name of the component type. This name is used to identify the factory attached to this 	type. If not specified, the factory name is the implementation class name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="public" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Determines if the component type is public or private. A public factory (default) can be used from any bundles.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="classname" type="xs:string"
      use="required">
      <xs:annotation>
        <xs:documentation>Specifies the implementation class of the component type.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="architecture" type="xs:boolean"
      use="optional">
      <xs:annotation>
        <xs:documentation>Enables or disables the architecture exposition. By default, the architecture is exposed. This allows instance introspection.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="immediate" type="xs:boolean"
      use="optional">
            <xs:annotation>
              <xs:documentation>Creates the object of the component implementation type as soon as the component instance becomes valid. The default value is "true" if the component doesn't provide any service, "false" otherwise.</xs:documentation>
            </xs:annotation>
    </xs:attribute>
    <xs:attribute name="factory-method" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Factory method called to create POJO objects instead of the constructor. The specified method must be a static method of the implementation class returning an instance of this implementation class. The factory method can receive the bundle context in argument.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="version" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Set the version of this component type</xs:documentation>
      </xs:annotation></xs:attribute>
  </xs:complexType>
  <xs:complexType name="RequiresType">
        <xs:annotation>
          <xs:documentation>Description of component services requirements.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
      <xs:extension base="ServiceDependencyType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="callback"
            type="DependencyCallbackType">
                        <xs:annotation>
                          <xs:documentation>Service requirement method invocation description. Here can be specified a bind method called when a service appears and an unbind method called when a service disappears.</xs:documentation>
                        </xs:annotation>
          </xs:element>
        </xs:sequence>

        <xs:attribute name="interface" type="xs:string"
            use="prohibited">
                    <xs:annotation>
                      <xs:documentation>The interface describing the required service type. This attribute is needed only when using aggregate dependencies with field injection and when the type of this field is a list, vector, collection and set. This attribute is deprecated, use 'specification'.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>

        <xs:attribute name="field" type="xs:string"
          use="optional">
                    <xs:annotation>
                      <xs:documentation>The name of the field representing the service dependency in the implementation class.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>

        <xs:attribute name="nullable" type="xs:boolean"
          use="optional">
                    <xs:annotation>
                      <xs:documentation>Enable or disable the Nullable pattern on optional service dependencies. By default, Nullable pattern is enabled. If disabled, iPOJO will inject null instead of a Nullable object.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>

        <xs:attribute name="default-implementation"
          type="xs:string" use="optional">
                    <xs:annotation>
                      <xs:documentation>Specifies the default implementation class for an optional service dependency. If no providers are found, iPOJO creates an instance of the default-implementation (nullary constructor) and injects it. The given class must implement the required service interface.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>

        <xs:attribute name="from" type="xs:string"
          use="optional">
                    <xs:annotation>
                      <xs:documentation>Specific service provider. The dependency can only be fulfilled by the component with the matching name, or by the service with a matching PID.</xs:documentation>
                    </xs:annotation>
        </xs:attribute>

        <xs:attribute name="scope" use="optional">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="global"></xs:enumeration>
              <xs:enumeration value="composite"></xs:enumeration>
              <xs:enumeration value="composite+global"></xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>

      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DependencyCallbackType">
        <xs:annotation>
          <xs:documentation>Dependency callbacks are used to receive notification when service providers arrive and leave.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="method" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation>Method to call</xs:documentation>
          </xs:annotation></xs:attribute>
    <xs:attribute name="type" use="required">
            <xs:annotation>
              <xs:documentation>
                Type of callback (bind, unbind, or updated). Bind means that the method will be called when a provider arrives. Unbind means that the method will be called when a provider leaves.
                Updated means that a service was modified but is still valid for the service dependency.
              </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="bind"></xs:enumeration>
          <xs:enumeration value="unbind"></xs:enumeration>
          <xs:enumeration value="modified"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="CallbackType">
        <xs:annotation>
          <xs:documentation>Lifecycle Callback. Allows a POJO to be notified when the instance becomes valid or invalid.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="method" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation>Specifies the method to call on the transition.</xs:documentation>
          </xs:annotation></xs:attribute>
    <xs:attribute name="transition" use="required">
            <xs:annotation>
              <xs:documentation>Specifies the transition when the callback needs to be invoked.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:annotation>
                  <xs:documentation>Lifecycle transition state. "validate" means that the component's instance was invalid and becomes valid, "invalidate" means that the component's intance was valid and becomes invalid.</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
          <xs:enumeration value="validate"></xs:enumeration>
          <xs:enumeration value="invalidate"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="provides" type="ProvidesType" id="provides"></xs:element>
    <xs:complexType name="ProvidesType">
        <xs:annotation>
          <xs:documentation>Provided service(s) description.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="property" type="PropertyType">
        <xs:annotation>
          <xs:documentation>List of service specific properties.</xs:documentation>
        </xs:annotation></xs:element>
    </xs:sequence>
    <xs:attribute name="interface" type="xs:string" use="prohibited">
      <xs:annotation>
        <xs:documentation>Deprecated attribute, use 'specifications' instead of 'interface'</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="specifications" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>The list of service specifications (i.e. interfaces) to expose. By default, all interfaces implemented by the component implementation class are published.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="factory" type="xs:string" use="prohibited">
      <xs:annotation>
        <xs:documentation>Use 'strategy' instead of 'factory'</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="strategy" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>POJO creation strategy. By default, the POJO object is created once (singleton). If the factory is set to "SERVICE", the creation policy follows the OSGi service factory policy (one object object per asking bundle).
        INSTANCE allows creating one different POJO object per asking instance. Finally, a custom strategy can be used by specifying the qualified name of the class extending CreationPolicy</xs:documentation>
      </xs:annotation></xs:attribute>
  </xs:complexType>
  <xs:complexType name="PropertyType">
    <xs:annotation>
      <xs:documentation>
        Defines a component property.
      </xs:documentation>
    </xs:annotation>
    <xs:attribute name="field" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>
          Field of the property
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="method" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>
          Setter method of the property. This method is called
          to inject property value.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="name" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>
          Name of the property.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="value" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>
          Default value of the property.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>
          Type of the property.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
        <xs:attribute name="mandatory" type="xs:boolean" use="optional" default="false">
          <xs:annotation>
            <xs:documentation>Set the property as mandatory. A mandatory property MUST receive a value either in the component type description or in the instance configuration. Properties are optional by default.</xs:documentation>
          </xs:annotation></xs:attribute>
    </xs:complexType>
  <xs:element name="callback" type="CallbackType" id="callback"></xs:element>
  <xs:element name="controller" type="ControllerType" id="controller">
    <xs:annotation>
      <xs:documentation></xs:documentation>
    </xs:annotation></xs:element>
  <xs:element name="requires" type="RequiresType" id="requires"></xs:element>
  <xs:element name="component" type="ComponentType" id="component"></xs:element>
  <xs:element name="handler" type="HandlerType" id="handler"></xs:element>
  <xs:element name="instance" type="InstanceType" id="instance"></xs:element>

    <xs:element name="properties" type="PropertiesType" id="properties"></xs:element>
  <xs:complexType name="PropertiesType">
        <xs:annotation>
          <xs:documentation>List of component, instance or service properties. This field will receive the property value.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="property" type="PropertyType">
        <xs:annotation>
          <xs:documentation>The list of properties.</xs:documentation>
        </xs:annotation></xs:element>
    </xs:sequence>
    <xs:attribute name="propagation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Propagation of the component properties to the provided services. If this parameter is set to "true", each time properties are reconfigured, they are propagated to each service published by the component.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="pid" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Unique identifier used to reconfigure components properties (via  Managed Services) with the Configuration Admin.</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="updated" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Method called when a reconfiguration is done</xs:documentation>
      </xs:annotation></xs:attribute>
  </xs:complexType>

  <xs:complexType name="ServiceDependencyType">
      <xs:attribute name="specification" type="xs:string" use="optional">
        <xs:annotation>
          <xs:documentation>The specification describing the required service type. This attribute is needed only when using aggregate dependencies with field injection and when the type of this field is a list, vector, collection and set.</xs:documentation>
        </xs:annotation></xs:attribute>
    <xs:attribute name="optional" type="xs:boolean" use="optional">
            <xs:annotation>
              <xs:documentation>Sets the service dependency optionality</xs:documentation>
            </xs:annotation>
    </xs:attribute>
    <xs:attribute name="aggregate" type="xs:boolean" use="optional">
            <xs:annotation>
              <xs:documentation>Sets the service dependency cardinality.</xs:documentation>
            </xs:annotation>
    </xs:attribute>
    <xs:attribute name="policy" use="optional">
            <xs:annotation>
              <xs:documentation>Sets the binding policy of the dependency. Three policies are supported. The dynamic policy supports service providers dynamism. The static policy freezes the provider set as soon as the dependency is used. The dynamic-priority policy is an extension of the dynamic policy, but providers are ranked.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="dynamic"></xs:enumeration>
          <xs:enumeration value="static"></xs:enumeration>
          <xs:enumeration value="dynamic-priority"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="comparator" type="xs:string" use="optional">
            <xs:annotation>
              <xs:documentation>The comparator attribute allows specifying the class used to compare providers. This class must implemented the java.util.Comparator class and must support the comparison of service references.</xs:documentation>
            </xs:annotation>
    </xs:attribute>
    <xs:attribute name="filter" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>LDAP filter used to filter providers</xs:documentation>
      </xs:annotation></xs:attribute>
    <xs:attribute name="id" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>id of the service dependency. The id allows to indentify and to refert to this dependency.</xs:documentation>
      </xs:annotation></xs:attribute>
  </xs:complexType>

    <xs:complexType name="ControllerType">
        <xs:annotation>
          <xs:documentation>Specifies the lifecycle controller of a component, which allows to validate or invalidate component instances.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="field" type="xs:string" use="required">
            <xs:annotation>
              <xs:documentation>The name of the component lifecycle controller field. The type of the specified field must be boolean. Setting the value of the specified field to "true" means the validation of the component instance while setting it to "false" means the invalidation of the component instance.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
</xs:schema>
