| <?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.4.0" |
| xmlns:tns="http://karaf.apache.org/xmlns/features/v1.4.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 Feature definition. It contains an required attribute for |
| designating from which repository this feature should be loaded. 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 feature repository where dependencies are stored. |
| ]]></xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="resource-repository" type="xs:anyURI"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Additional OSGi Resource Repository where OSGi resources 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" use="required"/> |
| </xs:complexType> |
| |
| <xs:complexType name="feature"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Definition of the Feature. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:sequence> |
| <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 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:element name="conditional" type="tns:conditional" /> |
| <xs:element name="requirement" type="tns:requirement" /> |
| <xs:element name="capability" type="tns:capability" /> |
| <xs:element name="library" type="tns:library" /> |
| </xs:choice> |
| <xs:element name="scoping" minOccurs="0" maxOccurs="1" type="tns:scoping" /> |
| </xs:sequence> |
| <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="install" type="tns:install"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Marks if the feaute will be automatically started when thrown to 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 this feature different |
| from the default start level defined in Karaf's config.properties. |
| ]]> |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="hidden" type="xs:boolean" default="false" /> |
| </xs:complexType> |
| |
| <xs:complexType name="conditional"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Definition of the Conditional. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:choice minOccurs="0" maxOccurs="unbounded"> |
| <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:element name="condition" type="tns:dependency" minOccurs="0" maxOccurs="1" /> |
| </xs:choice> |
| </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 the 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 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:attribute name="prerequisite" type="xs:boolean" default="false"/> |
| <xs:attribute name="dependency" type="xs:boolean" default="false"/> |
| </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:attribute name="append" type="xs:boolean" use="optional"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Optional flag to append unknown values to the configuration. |
| ]]> |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </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. |
| ]]></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:complexType name="requirement"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Additional requirements of this feature. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="prerequisite" type="xs:boolean" default="false"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="capability"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Additional capability of this feature. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="library"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Additional capability of this feature. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="type" type="tns:libraryType" default="default"/> |
| <xs:attribute name="export" type="xs:boolean" default="false"/> |
| <xs:attribute name="delegate" type="xs:boolean" default="false"/> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:simpleType name="libraryType"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="default"/> |
| <xs:enumeration value="endorsed"/> |
| <xs:enumeration value="extension"/> |
| <xs:enumeration value="boot"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <xs:complexType name="scoping"> |
| <xs:annotation> |
| <xs:documentation><![CDATA[ |
| Scoping definition for this feature. |
| ]]></xs:documentation> |
| </xs:annotation> |
| <xs:choice minOccurs="0" maxOccurs="unbounded"> |
| <xs:element name="import" type="tns:scopeFilter"/> |
| <xs:element name="export" type="tns:scopeFilter"/> |
| </xs:choice> |
| <xs:attribute name="acceptDependencies" type="xs:boolean"/> |
| </xs:complexType> |
| |
| <xs:complexType name="scopeFilter"> |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="namespace" type="xs:string" use="required"/> |
| </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="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> |