<?xml version="1.0" encoding="UTF-8"?>
<!--
    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="http://karaf.apache.org/xmlns/features/v1.0.0"
    xmlns:tns="http://karaf.apache.org/xmlns/features/v1.0.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:annotation>
        <xs:documentation><![CDATA[
Karaf features mechanism. For documentation please visit the
<a href="http://karaf.apache.org/">Karaf website</a>.
        ]]></xs:documentation>
    </xs:annotation>

    <xs:complexType name="features">
        <xs:annotation>
            <xs:documentation><![CDATA[
Root element of the Feature definition. It contains an optional attribute for
designating the name of the repository of this feature. The Karaf shell will
show the repository name when displaying information about the feature.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="repository" type="xs:anyURI">
                <xs:annotation>
                    <xs:documentation><![CDATA[
Additional repositories where dependencies are stored.
                    ]]></xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="feature" type="tns:feature">
                <xs:annotation>
                    <xs:documentation><![CDATA[
Feature definition.
                    ]]></xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:choice>
        <xs:attribute name="name" type="xs:string" />
    </xs:complexType>

    <xs:complexType name="feature">
        <xs:annotation>
            <xs:documentation><![CDATA[
Definition of the Feature.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="details" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation><![CDATA[
The help text shown for this feature when using the feature:info console command.
                    ]]>
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="config" type="tns:config" />
            <xs:element name="configfile" type="tns:configFile" />
            <xs:element name="feature" type="tns:dependency" />
            <xs:element name="bundle" type="tns:bundle" />
        </xs:choice>
        <xs:attribute name="name" type="tns:featureName" use="required" />
        <xs:attribute name="version" type="xs:string" default="0.0.0" />
        <xs:attribute name="description" type="xs:string" />
        <xs:attribute name="resolver" type="tns:resolver">
            <xs:annotation>
                <xs:documentation><![CDATA[
Optional alternative resolver to use for determining the list of bundles to install for a given feature.
                ]]>
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="install" type="tns:install">
            <xs:annotation>
                <xs:documentation><![CDATA[
If true, marks that the feature should start automatically when placed in the deploy folder.
                ]]>
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="start-level" type="xs:int">
             <xs:annotation>
                <xs:documentation><![CDATA[
Set this attribute to have an OSGi start level for the bundles in this feature different
from the default start level defined in Karaf's config.properties.
                ]]>
                </xs:documentation>
             </xs:annotation>
         </xs:attribute>
         <xs:attribute name="region" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="bundle">
        <xs:annotation>
            <xs:documentation><![CDATA[
Deployable element to install.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:anyURI">
                <xs:attribute name="start-level" type="xs:int">
                    <xs:annotation>
                        <xs:documentation><![CDATA[
Set this attribute to have an OSGi start level for this bundle different
from the default start level defined in Karaf's config.properties.

                        ]]>
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="start" type="xs:boolean" default="true">
                    <xs:annotation>
                        <xs:documentation><![CDATA[
If false, leaves the bundle in resolved state rather than the default active state.
                        ]]>
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="dependency" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation><![CDATA[
Mark this bundle as a dependency for the resolver.
                        ]]>
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="dependency">
        <xs:annotation>
            <xs:documentation><![CDATA[
Dependency of feature.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="tns:featureName">
                <xs:attribute name="version" type="xs:string" default="0.0.0" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="config">
        <xs:annotation>
            <xs:documentation><![CDATA[
Configuration entries which should be created during feature installation. This
configuration may be used with OSGi Configuration Admin. The element content is
read in as a properties file.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="name" type="xs:string" use="required" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="configFile">
        <xs:annotation>
            <xs:documentation><![CDATA[
Additional configuration files which should be created during feature installation.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:anyURI">
                <xs:attribute name="finalname" type="xs:string" use="required">
                    <xs:annotation>
                        <xs:documentation><![CDATA[
The final destination path and name for the configuration file (relative to the KARAF_BASE).
                        ]]></xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="override" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation><![CDATA[
If the configFile already exists at the finalname location, whether or not to replace it.
                        ]]></xs:documentation>
                    </xs:annotation>
                </xs:attribute>

            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="featureName">
        <xs:annotation>
            <xs:documentation><![CDATA[
Feature name should be non empty string.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="resolver">
        <xs:annotation>
            <xs:documentation><![CDATA[
Resolver to use. Karaf will look for OSGi service which has following properties:
objectClass: org.apache.karaf.features.Resolver
name: the value
            ]]></xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="install">
        <xs:annotation>
            <xs:documentation><![CDATA[
Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when
dropped inside the deploy folder. Note: This attribute doesn't affect feature descriptors that are installed from the
command line or as part of the org.apache.karaf.features.cfg.
            ]]></xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="features" type="tns:features" />

</xs:schema>
