<!--
  ~ 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 props.</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
                    props.
                </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 props.</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:attribute name="immutable" type="xs:boolean" use="optional" default="false">
            <xs:annotation>
                <xs:documentation>Set the property as immutable. An immutable property is inherited by the component
                    instance but the value cannot be overridden.
                </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 props. 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 props.</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>
