| <!-- |
| 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: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 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="proxy" type="xs:boolean" use="optional"> |
| <xs:annotation> |
| <xs:documentation>Enables or Disable the proxy injection (on field |
| injection)</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 value="composite"/> |
| <xs:enumeration value="composite+global"/> |
| </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 value="unbind"/> |
| <xs:enumeration value="modified"/> |
| </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 value="invalidate"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| <xs:element name="provides" type="ProvidesType" id="provides"/> |
| <xs:complexType name="ProvidesType"> |
| <xs:annotation> |
| <xs:documentation>Provided service(s) description.</xs:documentation> |
| </xs:annotation> |
| <xs:sequence minOccurs="0" maxOccurs="unbounded"> |
| <xs:choice> |
| <xs:element name="property" type="PropertyType"> |
| <xs:annotation> |
| <xs:documentation>List of service specific properties.</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="controller" minOccurs="0" maxOccurs="1" type="ServiceControllerType"> |
| <xs:annotation> |
| <xs:documentation>Service Controller impacting the current provided |
| service</xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:choice> |
| </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:attribute name="post-registration" type="xs:string" use="optional"> |
| <xs:annotation> |
| <xs:documentation>Defines a callback called after the service registration. The callback takes a ServiceReference |
| as parameter</xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="post-unregistration" type="xs:string" use="optional"> |
| <xs:annotation> |
| <xs:documentation>Defines a callback called after the service unregistration. The callback takes a ServiceReference |
| as parameter</xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:complexType> |
| <xs:complexType name="ServiceControllerType"> |
| <xs:annotation> |
| <xs:documentation> Defines a service controller. </xs:documentation> |
| </xs:annotation> |
| <xs:attribute name="field" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> Field of the controller </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="value" type="xs:string" use="optional"> |
| <xs:annotation> |
| <xs:documentation> Intiail value of the controller </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 name="controller" type="ControllerType" id="controller"> |
| <xs:annotation> |
| <xs:documentation/> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="requires" type="RequiresType" id="requires"/> |
| <xs:element name="component" type="ComponentType" id="component"/> |
| <xs:element name="handler" type="HandlerType" id="handler"/> |
| <xs:element name="instance" type="InstanceType" id="instance"/> |
| |
| <xs:element name="properties" type="PropertiesType" id="properties"/> |
| <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 value="static"/> |
| <xs:enumeration value="dynamic-priority"/> |
| </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> |