[jboss-cvs] JBossAS SVN: r71691 - in projects/microcontainer/trunk/kernel/src: tests/org/jboss/test/kernel and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 3 07:47:53 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-04-03 07:47:53 -0400 (Thu, 03 Apr 2008)
New Revision: 71691

Added:
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/validateschema/
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/validateschema/ValidateBeansSchemaTestCase.java
Removed:
   projects/microcontainer/trunk/kernel/src/resources/main/schema/temp-bean-deployer_2_0.xsd
Modified:
   projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
Log:
[JBMICROCONT-259] Update bean-deployer_2_0.xsd to use the common schema

Modified: projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd	2008-04-03 11:40:45 UTC (rev 71690)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/bean-deployer_2_0.xsd	2008-04-03 11:47:53 UTC (rev 71691)
@@ -22,6 +22,228 @@
       </xsd:documentation>
    </xsd:annotation>
 
+   <xsd:redefine schemaLocation="jboss-beans-common_2_0.xsd">
+      <xsd:complexType name="beanType">
+         <xsd:complexContent>
+            <xsd:extension base="beanType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="classloaderType">
+         <xsd:complexContent>
+            <xsd:extension base="classloaderType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="abstractBeanfactoryType">
+         <xsd:complexContent>
+            <xsd:extension base="abstractBeanfactoryType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="beanfactoryType">
+         <xsd:complexContent>
+            <xsd:extension base="beanfactoryType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="lazyType">
+         <xsd:complexContent>
+            <xsd:extension base="lazyType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="constructorType">
+         <xsd:complexContent>
+            <xsd:extension base="constructorType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="lifecycleType">
+         <xsd:complexContent>
+            <xsd:extension base="lifecycleType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="installType">
+         <xsd:complexContent>
+            <xsd:extension base="installType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="uninstallCallbackType">
+         <xsd:complexContent>
+            <xsd:extension base="uninstallCallbackType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="installCallbackType">
+         <xsd:complexContent>
+            <xsd:extension base="installCallbackType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="dependencyType">
+         <xsd:complexContent>
+            <xsd:extension base="dependencyType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="injectionType">
+         <xsd:complexContent>
+            <xsd:extension base="injectionType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="valueFactoryType">
+         <xsd:complexContent>
+            <xsd:extension base="valueFactoryType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="factoryType">
+         <xsd:complexContent>
+            <xsd:extension base="factoryType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="aliasType">
+         <xsd:complexContent>
+            <xsd:extension base="aliasType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="namedAliasType">
+         <xsd:complexContent>
+            <xsd:extension base="namedAliasType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="parameterType">
+         <xsd:complexContent>
+            <xsd:extension base="parameterType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="propertyType">
+         <xsd:complexContent>
+            <xsd:extension base="propertyType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="annotationType">
+         <xsd:complexContent>
+            <xsd:extension base="annotationType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="interfaceType">
+         <xsd:complexContent>
+            <xsd:extension base="interfaceType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:simpleType name="classNameType">
+         <xsd:restriction base="classNameType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:group name="valueGroup">
+         <xsd:choice>
+            <xsd:element name="value" type="plainValueType"/>
+            <xsd:element name="inject" type="injectionType"/>
+            <xsd:element name="value-factory" type="valueFactoryType"/>
+            <xsd:element name="collection" type="collectionType"/>
+            <xsd:element name="list" type="listType"/>
+            <xsd:element name="set" type="setType"/>
+            <xsd:element name="array" type="arrayType"/>
+            <xsd:element name="map" type="mapType"/>
+            <xsd:element name="null">
+               <xsd:complexType/>
+            </xsd:element>
+            <xsd:element name="this">
+               <xsd:complexType/>
+            </xsd:element>
+            <xsd:any namespace="##other" processContents="strict">
+               <xsd:annotation>
+                  <xsd:documentation>An extension value</xsd:documentation>
+               </xsd:annotation>
+            </xsd:any>
+         </xsd:choice>
+      </xsd:group>
+      <xsd:complexType name="plainValueType">
+         <xsd:complexContent>
+            <xsd:extension base="plainValueType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="valueType">
+         <xsd:complexContent>
+            <xsd:extension base="valueType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="classLoaderValueType">
+         <xsd:complexContent>
+            <xsd:extension base="classLoaderValueType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="annotatedValueType">
+         <xsd:complexContent>
+            <xsd:extension base="annotatedValueType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="namedValueType">
+         <xsd:complexContent>
+            <xsd:extension base="namedValueType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="baseCollectionType">
+         <xsd:complexContent>
+            <xsd:extension base="baseCollectionType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="collectionType">
+         <xsd:complexContent>
+            <xsd:extension base="collectionType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="listType">
+         <xsd:complexContent>
+            <xsd:extension base="listType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="setType">
+         <xsd:complexContent>
+            <xsd:extension base="setType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="arrayType">
+         <xsd:complexContent>
+            <xsd:extension base="arrayType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="mapType">
+         <xsd:complexContent>
+            <xsd:extension base="mapType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="entryType">
+         <xsd:complexContent>
+            <xsd:extension base="entryType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="dependsType">
+         <xsd:complexContent>
+            <xsd:extension base="dependsType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="demandType">
+         <xsd:complexContent>
+            <xsd:extension base="demandType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="supplyType">
+         <xsd:complexContent>
+            <xsd:extension base="supplyType"/>
+         </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:simpleType name="controllerStateType">
+         <xsd:restriction base="controllerStateType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:simpleType name="controllerModeType">
+         <xsd:restriction base="controllerModeType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:simpleType name="autowireTypeType">
+         <xsd:restriction base="autowireTypeType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:simpleType name="accessModeType">
+         <xsd:restriction base="accessModeType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:simpleType name="optionType">
+         <xsd:restriction base="optionType"></xsd:restriction>
+      </xsd:simpleType>
+      <xsd:simpleType name="contextType">
+         <xsd:restriction base="contextType"></xsd:restriction>
+      </xsd:simpleType>
+   </xsd:redefine>
+
    <xsd:element name="deployment" type="deploymentType">
       <xsd:annotation>
          <xsd:documentation>
@@ -69,1083 +291,6 @@
       <xsd:attribute name="mode" type="controllerModeType" use="optional"/>
    </xsd:complexType>
 
-   <xsd:complexType name="beanType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The bean is an instance of a pojo.
-           
-           e.g.
-           <bean name="MyName" class="com.acme.POJO">
-              <classloader .../>
-              <constructor .../>
-              <property .../>
-              <property .../>
-              <depends .../>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="alias" type="aliasType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="classloader" type="classloaderType" minOccurs="0"/>
-         <xsd:element name="constructor" type="constructorType" minOccurs="0"/>
-         <xsd:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="create" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="start" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="stop" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="destroy" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="depends" type="dependsType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="demand" type="demandType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="supply" type="supplyType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="install" type="installType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="uninstall" type="installType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="incallback" type="installCallbackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="uncallback" type="uninstallCallbackType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="class" type="xsd:token" use="optional"/>
-      <xsd:attribute name="mode" type="controllerModeType" use="optional"/>
-      <xsd:attribute name="parent" type="xsd:string" use="optional"/>
-      <xsd:attribute name="abstract" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="autowire-type" type="autowireTypeType" use="optional"/>
-      <xsd:attribute name="autowire-candidate" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="access-mode" type="accessModeType" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="classloaderType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The classloader is to load the bean
-           
-           e.g. 
-           <bean ...>
-              <classloader><inject bean="Classloader"/></classloader>
-           </bean>
-           
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="classLoaderValueType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="abstractBeanfactoryType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           Base type for beanfatoryType.
-           ]]>
-           
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="alias" type="aliasType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="classloader" type="classloaderType" minOccurs="0"/>
-         <xsd:element name="constructor" type="constructorType" minOccurs="0"/>
-         <xsd:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="create" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="start" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="depends" type="dependsType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="demand" type="demandType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="supply" type="supplyType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="install" type="installType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="uninstall" type="installType" minOccurs="0" maxOccurs="unbounded"/>
-<!--
-         <xsd:element name="incallback" type="intallCallbackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="uncallback" type="uninstallCallbackType" minOccurs="0" maxOccurs="unbounded"/>
--->
-      </xsd:sequence>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="beanfactoryType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The beanfactory is a org.jboss.beans.metadata.plugins.factory.GenericBeanFactory deployment.
-           This gives you a factory such you can invoke createBean() multiple times with the guarantee
-           that the injected objects are "installed".
-
-           e.g.
-           <bean name="User" class="com.acme.User">
-              <property name="factory"><inject bean="Factory"/></property>
-           </bean>
-           
-           <beanfactory name="Factory" class="com.acme.SomeBean">
-              <property name="someProperty"><inject bean="SomeOtherBean"/></property>
-           </beanFactory>
-           
-           package com.acme.User;
-           public class User {
-              // factory has been configured at this point
-              public void setFactory(GenericBeanFactory factory) { 
-                 SomeBean bean1 = factory.createBean();
-                 System.out.println(bean1.getSomeProperty()); // "SomeOtherBean"
-                 SomeBean bean2 = factory.createBean();
-                 System.out.println(bean2.getSomeProperty()); // "SomeOtherBean"
-              }
-           }
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="abstractBeanfactoryType">
-            <xsd:attribute name="class" type="xsd:token" use="required"/>
-            <xsd:attribute name="access-mode" type="accessModeType" use="optional"/>
-            <xsd:attribute name="factoryClass" type="xsd:token" use="optional"/>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="lazyType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           Wrap the existing bean into lazy proxy.
-           Expose the full class or just interfaces.
-           Name is optional, and if no name is provided bean+'Proxy' will be used.
-
-           e.g.
-           <lazy name="UserProxy" bean="User">
-              <interface>org.acme.domain.IUser</interface>
-           </lazy>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="interface" type="interfaceType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="bean" type="xsd:string" use="required"/>
-      <xsd:attribute name="exposeClass" type="xsd:boolean" default="false" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="constructorType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The constructor for this bean(factory) instance.
-           
-           e.g. simple constructor - new POJO(new String("String value"));
-           <bean name="MyBean" class="com.acme.POJO">
-              <constructor>
-                 <parameter>String value</parameter>
-              </constructor>
-           </bean>
-           
-           e.g. static factory - com.acme.Factory.newInstance(new String("String value"));
-           <bean name="MyBean" class="com.acme.POJO">
-              <constructor factoryClass="com.acme.Factory" factoryMethod="newInstance">
-                 <parameter>String value</parameter>
-              </constructor>
-           </bean>
-
-           e.g. instance factory - "SomeOtherBean".newInstance(new String("String value"));
-           <bean name="MyBean" class="com.acme.POJO">
-              <constructor factoryMethod="newInstance">
-                 <factory bean="SomeOtherBean"/>
-                 <parameter>String value</parameter>
-              </constructor>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:choice minOccurs="0">
-            <xsd:sequence>        
-               <xsd:element name="factory" type="factoryType" minOccurs="0"/>
-               <xsd:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
-            </xsd:sequence>
-            <xsd:element name="bean" type="beanType"/>
-            <xsd:element name="lazy" type="lazyType"/>
-            <xsd:element name="value" type="plainValueType"/>
-            <xsd:element name="collection" type="collectionType"/>
-            <xsd:element name="list" type="listType"/>
-            <xsd:element name="set" type="setType"/>
-            <xsd:element name="array" type="arrayType"/>
-            <xsd:element name="map" type="mapType"/>
-            <xsd:element name="inject" type="injectionType"/>
-            <xsd:element name="value-factory" type="valueFactoryType"/>
-            <xsd:any namespace="##other" processContents="strict">
-               <xsd:annotation>
-                  <xsd:documentation>An extension value</xsd:documentation>
-               </xsd:annotation>
-            </xsd:any>
-         </xsd:choice>
-      </xsd:sequence>
-      <xsd:attribute name="factoryClass" type="classNameType" use="optional"/>
-      <xsd:attribute name="factoryMethod" type="xsd:token" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="lifecycleType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The lifecycle lets you override the method parameters passed to the
-           create, start, stop, destroy lifecycle callbacks.
-           
-           e.g.
-           <bean>
-              <create method="initialize">
-                 <parameter>String value</parameter>
-              </create>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="method" type="xsd:token" use="optional"/>
-      <xsd:attribute name="ignored" type="xsd:boolean" use="optional" default="false"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="installType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The install type you write your installation methods state operations.
-           The install operation is invoked after the start lifecycle.
-           The uninstall operation is invoked before the stop lifecycle.
-           
-           e.g.
-           <bean>
-              <install bean="Repository" method="add">
-                 <parameter><this/></parameter>
-              </install>
-              <uninstall bean="Repository" method="remove">
-                 <parameter><this/></parameter>
-              </uninstall>
-           </bean>
-           
-           If you don't include a bean attribute, the method is invoked on your bean
-           
-           e.g.
-           <bean>
-              <install method="install"/>
-              <uninstall bean="method="uninstall"/>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="bean" type="xsd:string" use="optional"/>
-      <xsd:attribute name="method" type="xsd:token" use="required"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="uninstallCallbackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           Callback item description.
-           Define you methods for callback invocation.
-
-           e.g.
-           <bean>
-              <uncallback method="addSomething" />
-              <uncallback property="items" cardinality="2..n" />
-              <uncallback property="info" signature="org.jboss.test.Info"/>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="method" type="xsd:token" use="optional"/>
-      <xsd:attribute name="property" type="xsd:token" use="optional"/>
-      <xsd:attribute name="cardinality" type="xsd:token" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="signature" type="xsd:token" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="installCallbackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           Callback item description.
-           Define you methods for callback invocation.
-
-           e.g.
-           <bean>
-              <incallback method="addSomething" />
-              <incallback property="items" cardinality="2..n" />
-              <incallback property="info" signature="org.jboss.test.Info"/>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="method" type="xsd:token" use="optional"/>
-      <xsd:attribute name="property" type="xsd:token" use="optional"/>
-      <xsd:attribute name="cardinality" type="xsd:token" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="signature" type="xsd:token" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="dependencyType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A dependency represents an injection into the bean.
-           They can be used anywhere a string value can appear.
-           
-           e.g. Bean instance - "InjectedIntoMe".setSomeProperty("BeanInjected");
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty"><inject bean="BeanInjected"/>
-           </bean>
-           <bean name="BeanInjected" .../>
-           
-           e.g. Bean property - "InjectedIntoMe".setSomeProperty("BeanInjected".getOtherProperty());
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty"><inject bean="BeanInjected" property="otherProperty"/>
-           </bean>
-           <bean name="BeanInjected" .../>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="bean" type="xsd:string" use="required"/>
-      <xsd:attribute name="property" type="xsd:string" use="optional"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="injectionType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A dependency represents an injection into the bean.
-           They can be used anywhere a string value can appear.
-
-           e.g. Bean instance - "InjectedIntoMe".setSomeProperty("BeanInjected");
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty"><inject bean="BeanInjected"/>
-           </bean>
-           <bean name="BeanInjected" .../>
-
-           e.g. Bean property - "InjectedIntoMe".setSomeProperty("BeanInjected".getOtherProperty());
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty"><inject bean="BeanInjected" property="otherProperty"/>
-           </bean>
-           <bean name="BeanInjected" .../>
-
-           e.g. Contextual injection - finding exactly one instance which matches property's class type
-           <bean name="InjectedIntoMe" ...>
-              <property name="transactionManager"><inject/></property>
-           </bean>
-
-           e.g. Contextual injection - finding exactly one instance which matches property's name
-           <bean name="InjectedIntoMe" ...>
-              <property name="transactionManager"><inject type="ByName"/></property>
-           </bean>
-
-           e.g. Contextual injection - set optional injection; execute callback if currently no matching context exists 
-           <bean name="InjectedIntoMe" ...>
-              <property name="transactionManager"><inject option="Callback"/></property>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="bean" type="xsd:string" use="optional"/>
-      <xsd:attribute name="property" type="xsd:string" use="optional"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="type" type="autowireTypeType" use="optional" default="ByClass"/>
-      <xsd:attribute name="option" type="optionType" use="optional" default="Strict"/>
-      <xsd:attribute name="fromContext" type="contextType" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="valueFactoryType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A dependency represents an value injection into the bean.
-           They can be used anywhere a string value can appear.
-
-           e.g. Bean instance - "InjectedIntoMe".setSomeProperty("ValueFactory".getValue("foo.bar.prop", "mydefault"));
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty">
-                  <value-factory bean="BeanInjected" method="getValue">
-                     <parameter>foo.bar.prop</parameter>
-                     <parameter>mydefault</parameter>
-                  </value-factory>
-              </property>
-           </bean>
-           <bean name="BeanInjected" .../>
-
-           e.g. Bean instance - "InjectedIntoMe".setSomeProperty("ValueFactory".getValue("foo.bar.prop"));
-           <bean name="InjectedIntoMe" ...>
-              <property name="someProperty">
-                  <value-factory bean="BeanInjected" method="getValue" parameter="foo.bar.prop" default="mydefault" />
-              </property>
-           </bean>
-           <bean name="BeanInjected" .../>
-
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="bean" type="xsd:string"/>
-      <xsd:attribute name="method" type="xsd:string"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="parameter" type="xsd:string" use="optional"/>
-      <xsd:attribute name="default" type="xsd:string" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="factoryType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A factory represents another bean used to construct an object.
-           
-           e.g. Bean instance - "InjectedIntoMe".setSomeProperty("BeanInjected");
-           <bean name="ConstructMe" ...>
-              <constructor factoryMethod="someMethod">
-                 <factory bean="Factory"/>
-              </constructor>
-           </bean>
-           <bean name="Factory" .../>
-           
-           You can also inject a property of the bean bean
-           e.g. 
-           <bean name="ConstructMe" ...>
-              <constructor factoryMethod="someMethod">
-                 <factory bean="Builder" property="getFactory"/>
-              </constructor>
-           </bean>
-           
-           Or you can construct a factory in place using a different schema/namsapce
-           e.g. 
-           <bean name="ConstructMe" ...>
-              <constructor factoryMethod="someMethod">
-                 <factory>
-                    <javabean xmlns="someOtherNamespace" class="com.acme.FactoryClass"/>
-                 </factory>
-              </constructor>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0">
-         <xsd:any namespace="##other" processContents="strict"/>
-      </xsd:choice>
-      <xsd:attribute name="bean" type="xsd:string" use="optional"/>
-      <xsd:attribute name="property" type="xsd:string" use="optional"/>
-      <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-      <xsd:attribute name="whenRequired" type="controllerStateType" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="aliasType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            Bean's aliases.
-
-            e.g.
-            <bean name="MyName" class="com.acme.POJO">
-               <alias>YourName</alias>
-               <alias><javabean xmlns="urn:jboss:javabean:2.0" class="whatevever"/></alias>
-            </bean>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0">
-         <xsd:any namespace="##other" processContents="strict"/>
-      </xsd:choice>
-   </xsd:complexType>
-
-   <xsd:complexType name="namedAliasType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An alias that has a name attribute.
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="aliasType">
-            <xsd:attribute name="name" type="xsd:string" use="required"/>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-   
-   <xsd:complexType name="parameterType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A parameter is used to define the constructor, factory
-           and lifecycle method usage.
-
-           e.g. Using number of parameters when this is unique enough
-           <bean ...>
-              <constructor>
-                 <parameter>1st Parameter</parameter>
-                 <parameter>2nd Parameter</parameter>
-              </constructor>
-           </bean>
-
-           e.g. Explicitly stating the parameter type to resolve overloading
-           <bean ...>
-              <constructor>
-                 <parameter>1st Parameter</parameter>
-                 <parameter class="java.lang.String">2nd Parameter</parameter>
-              </constructor>
-           </bean>
-
-           e.g. To override the injected type use <value/>
-           <bean ...>
-              <constructor>
-                 <parameter>1st Parameter</parameter>
-                 <!-- Parameter is java.lang.Object, but we inject a String -->
-                 <parameter class="java.lang.Object">
-                    <value class="java.lang.String">2nd Parameter</value>
-                 </parameter>
-              </constructor>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="annotatedValueType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="propertyType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A property defines values passed to the setters.
-           
-           e.g. Using the type from the setter argument
-           <bean ...>
-              <property name="someProperty">Some value</property>
-           </bean>
-           
-           e.g. Overridding the injected type
-           <bean ...>
-              <property name="someProperty" class="java.lang.String">Some value</property>
-           </bean>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="namedValueType">
-            <xsd:attribute name="preinstantiate" type="xsd:boolean" use="optional" default="true"/>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="annotationType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The annotation type represents a Java5 annotation on the particular join point.
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute name="replace" type="xsd:boolean"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="interfaceType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The interface type represents an interface class.
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string" />
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:simpleType name="classNameType">
-      <xsd:annotation>
-         <xsd:documentation> The elements that use this type designate the name
-            of a Java class or interface. The name is in the form of a "binary
-            name", as defined in the JLS and as used in Class.forName().
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:group name="valueGroup">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The value group represents the comment elements of the other configurations
-           <parameter/>, <property/> or collection components
-           e.g.
-
-           <property name="someProperty">
-              <list><value class="java.lang.String">Hello</value></list>
-           </property>
-           
-           e.g. This also defines the null value
-           <property name="someProperty"><null/></property>
-           as opposed to the empty string
-           <property name="someProperty"></property>
-           or the string "null"
-           <property name="someProperty">null</property>
-
-           The this operation lets you pass yourself as a parameter.
-           e.g.
-           <install bean="SomeOtherBean> method="install">
-              <parameter><this/></parameter>
-           </install>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice>
-         <!--<xsd:element name="bean" type="beanType"/>-->
-         <!--<xsd:element name="lazy" type="lazyType"/>-->
-         <xsd:element name="value" type="plainValueType"/>
-         <xsd:element name="inject" type="injectionType"/>
-         <xsd:element name="value-factory" type="valueFactoryType"/>
-         <xsd:element name="collection" type="collectionType"/>
-         <xsd:element name="list" type="listType"/>
-         <xsd:element name="set" type="setType"/>
-         <xsd:element name="array" type="arrayType"/>
-         <xsd:element name="map" type="mapType"/>
-         <xsd:element name="null">
-            <xsd:complexType/>
-         </xsd:element>
-         <xsd:element name="this">
-            <xsd:complexType/>
-         </xsd:element>
-         <xsd:any namespace="##other" processContents="strict">
-            <xsd:annotation>
-               <xsd:documentation>An extension value</xsd:documentation>
-            </xsd:annotation>
-         </xsd:any>
-      </xsd:choice>
-   </xsd:group>
-
-   <xsd:complexType name="plainValueType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A simple value, used in collections and to specify a type for parameters.
-           
-           e.g.
-           <parameter><value class="com.acme.MyClass">xxx</value></parameter>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="class" type="classNameType" use="optional"/>
-      <xsd:attribute name="replace" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="trim" type="xsd:boolean" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="valueType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A value that can take other values, i.e. properties and parameters.
-           
-           e.g.
-           <parameter><value class="com.acme.MyClass">xxx</value></parameter>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="plainValueType">
-            <xsd:sequence>
-               <xsd:choice minOccurs="0">
-                  <xsd:group ref="valueGroup"/>
-               </xsd:choice>
-            </xsd:sequence>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="classLoaderValueType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A value that represents a classloader.
-           
-           e.g.
-           <classloader><inject bean="SomeClassLoader"/></parameter>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice>
-         <xsd:element name="bean" type="beanType"/>
-         <xsd:element name="inject" type="dependencyType"/>
-         <xsd:element name="null">
-            <xsd:complexType/>
-         </xsd:element>
-         <xsd:any namespace="##other" processContents="strict">
-            <xsd:annotation>
-               <xsd:documentation>An extension value</xsd:documentation>
-            </xsd:annotation>
-         </xsd:any>
-      </xsd:choice>
-   </xsd:complexType>
-
-   <xsd:complexType name="annotatedValueType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A value that can take annotations.
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="valueType">
-            <xsd:sequence>
-               <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-            </xsd:sequence>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="namedValueType" mixed="true">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A value that has a name, currently only a property.
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="annotatedValueType">
-            <xsd:attribute name="name" type="xsd:string" use="required"/>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="baseCollectionType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            A collection defines a java.util.Collection object.
-            It has two class definitions:
-            class: The implementation class of the collection
-            elementClass: The default implementation class of the elements
-            The default "class" is a java.util.ArrayList unless the point of injection
-            defines a concrete type, e.g. in the signature of the setter
-            
-            example:
-            <property name="whatever" class="java.util.ArrayList" elementClass="java.net.URL">
-               <value>http://localhost</value> <!-- Creates a URL -->
-               <value class="java.lang.String">http://localhost</value> <!-- Creates a String -->
-            </property>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="unbounded">
-         <xsd:group ref="valueGroup"/>
-      </xsd:choice>
-      <xsd:attribute name="class" type="classNameType" use="optional"/>
-      <xsd:attribute name="elementClass" type="classNameType" use="optional"/>      
-   </xsd:complexType>
-
-   <xsd:complexType name="collectionType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A collection, see baseCollectionType
-           the default collection is a java.util.ArrayList
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="baseCollectionType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="listType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A list, see baseCollectionType
-           the default list is a java.util.ArrayList
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="baseCollectionType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="setType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A set, see baseCollectionType
-           the default set is a java.util.HashSet
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="baseCollectionType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="arrayType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An array, see baseCollectionType
-           the default array is a java.lang.Object[]
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="baseCollectionType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="mapType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            A map defines a java.util.Map object.
-            It has three class definitions:
-            class: The implementation class of the class
-            keyClass: The default implementation class of the keys
-            valueClass: The default implementation class of the values
-            The default "class" is a java.util.HashMap unless the point of injection
-            defines a concrete type, e.g. in the signature of the setter
-            
-            e.g.:
-            <property name="whatever" class="java.util.HashMap" keyClass="java.lang.String" valueClas="java.net.URL">
-               <!-- map.put(new String("default"), new URL("http://localhost"));
-               <entry><key>default</key><value>http://localhost</value>
-               <!-- map.put(new String("default"), new String("http://localhost"));
-               <entry><key>default</key><value class="java.lang.String">http://localhost</value>
-            </property>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="entry" type="entryType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="class" type="classNameType" use="optional"/>
-      <xsd:attribute name="keyClass" type="classNameType" use="optional"/>      
-      <xsd:attribute name="valueClass" type="classNameType" use="optional"/>      
-   </xsd:complexType>
-
-   <xsd:complexType name="entryType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            An entry in map. These are made of key/value pairs
-            
-            e.g.:
-            <entry><key>default</key><value>http://localhost</value>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-         <xsd:element name="key" type="valueType" minOccurs="0"/>
-         <xsd:element name="value" type="valueType" minOccurs="0"/>
-      </xsd:sequence>
-   </xsd:complexType>
-
-   <xsd:complexType name="dependsType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            The depends element is used to define that one bean depends upon
-            another for the create/start/stop/destroy lifecycle
-            
-            e.g.:
-            <bean name="IGoFirst" .../>
-            <bean name="IGoSecond" ...>
-               <depends>IGoFirst</depends>
-            </bean>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string"/>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="demandType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            The demand is used to specify a dependency on a supply
-            and when the demand is should be deplied
-            
-            e.g.:
-            ISupply must be installed before IDemand is constructed
-
-            <bean name="IDemand">
-               <demand state="Instantiated">theSupply</demand>
-            </bean>
-            <bean name="ISupply" ...>
-               <supply>theSupply</supply>
-            </bean>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute name="state" type="controllerStateType" use="optional"/>
-            <xsd:attribute name="transformer" type="xsd:token" use="optional"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="supplyType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            The supply is used to specify that the bean supplies a demanded dependency
-            
-            e.g.:
-            <bean name="IDemand" ...>
-               <demand>theSupply</demand>
-            </bean>
-            <bean name="ISupply" ...>
-               <supply>theSupply</supply>
-            </bean>
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute name="class" type="classNameType" use="optional"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:simpleType name="controllerStateType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            The controller state is used to say when dependencies must be satisfied.
-            Valid values include:
-            Described
-            Instantiated
-            Configured
-            Create
-            Start
-            Installed
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:simpleType name="controllerModeType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            The controller mode, used to control how automatic the bean progresses
-            through the controller lifecyle (the states).
-            Valid values include:
-            Automatic (default) - the controller takes the bean to "Installed"
-            Manual - the user must tell the controller the required state
-            On Demand - the controller takes the bean to "Installed" when another bean depends on it
-            Disabled - the controller or user cannot change the state
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:simpleType name="accessModeType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            Access type, valid values include:
-            property (default)
-            field
-            public_member
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:simpleType name="autowireTypeType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            You can set the type of lookup requirement - class type (ByClass) or property name (ByName)
-            Valid values include:
-            None
-            ByClass (default)
-            ByName
-            Constructor
-            Auto
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:simpleType name="optionType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            You can set the type of lookup option - Strict or Callback
-            Valid values include:
-            Strict (default)
-            Callback
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
-   <xsd:simpleType name="contextType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-            You can set the type of context property lookup
-            Valid values include:
-            name
-            metadata
-            scope
-            ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-         <xsd:whiteSpace value="collapse"/>
-      </xsd:restriction>
-   </xsd:simpleType>
-
    <!--
      WARN:
      Do not use this in the bean deployer, it won't work!

Deleted: projects/microcontainer/trunk/kernel/src/resources/main/schema/temp-bean-deployer_2_0.xsd
===================================================================
--- projects/microcontainer/trunk/kernel/src/resources/main/schema/temp-bean-deployer_2_0.xsd	2008-04-03 11:40:45 UTC (rev 71690)
+++ projects/microcontainer/trunk/kernel/src/resources/main/schema/temp-bean-deployer_2_0.xsd	2008-04-03 11:47:53 UTC (rev 71691)
@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- A prototype xsd schema for the pojoserver xml deployer
-$Id: bean-deployer_2_0.xsd 71060 2008-03-20 14:36:12Z alesj $
- -->
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-   targetNamespace="urn:jboss:bean-deployer:2.0"
-   xmlns="urn:jboss:bean-deployer:2.0"
-   elementFormDefault="qualified"
-   attributeFormDefault="unqualified"
-   version="1.0">
-
-   <xsd:annotation>
-      <xsd:documentation>
-         <![CDATA[
-         The xml deployer schema. The deployment document instance
-         root element should reference the schema in the root
-         deployment element using something like:
-
-         <deployment xmlns="urn:jboss:bean-deployer:2.0">
-         ...
-         ]]>
-      </xsd:documentation>
-   </xsd:annotation>
-
-   <xsd:redefine schemaLocation="jboss-beans-common_2_0.xsd">
-      <xsd:complexType name="beanType">
-         <xsd:complexContent>
-            <xsd:extension base="beanType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="classloaderType">
-         <xsd:complexContent>
-            <xsd:extension base="classloaderType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="abstractBeanfactoryType">
-         <xsd:complexContent>
-            <xsd:extension base="abstractBeanfactoryType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="beanfactoryType">
-         <xsd:complexContent>
-            <xsd:extension base="beanfactoryType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="lazyType">
-         <xsd:complexContent>
-            <xsd:extension base="lazyType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="constructorType">
-         <xsd:complexContent>
-            <xsd:extension base="constructorType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="lifecycleType">
-         <xsd:complexContent>
-            <xsd:extension base="lifecycleType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="installType">
-         <xsd:complexContent>
-            <xsd:extension base="installType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="uninstallCallbackType">
-         <xsd:complexContent>
-            <xsd:extension base="uninstallCallbackType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="installCallbackType">
-         <xsd:complexContent>
-            <xsd:extension base="installCallbackType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="dependencyType">
-         <xsd:complexContent>
-            <xsd:extension base="dependencyType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="injectionType">
-         <xsd:complexContent>
-            <xsd:extension base="injectionType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="valueFactoryType">
-         <xsd:complexContent>
-            <xsd:extension base="valueFactoryType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="factoryType">
-         <xsd:complexContent>
-            <xsd:extension base="factoryType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="aliasType">
-         <xsd:complexContent>
-            <xsd:extension base="aliasType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="namedAliasType">
-         <xsd:complexContent>
-            <xsd:extension base="namedAliasType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="parameterType">
-         <xsd:complexContent>
-            <xsd:extension base="parameterType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="propertyType">
-         <xsd:complexContent>
-            <xsd:extension base="propertyType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="annotationType">
-         <xsd:complexContent>
-            <xsd:extension base="annotationType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="interfaceType">
-         <xsd:complexContent>
-            <xsd:extension base="interfaceType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:simpleType name="classNameType">
-         <xsd:restriction base="classNameType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:group name="valueGroup">
-         <xsd:choice>
-            <xsd:element name="value" type="plainValueType"/>
-            <xsd:element name="inject" type="injectionType"/>
-            <xsd:element name="value-factory" type="valueFactoryType"/>
-            <xsd:element name="collection" type="collectionType"/>
-            <xsd:element name="list" type="listType"/>
-            <xsd:element name="set" type="setType"/>
-            <xsd:element name="array" type="arrayType"/>
-            <xsd:element name="map" type="mapType"/>
-            <xsd:element name="null">
-               <xsd:complexType/>
-            </xsd:element>
-            <xsd:element name="this">
-               <xsd:complexType/>
-            </xsd:element>
-            <xsd:any namespace="##other" processContents="strict">
-               <xsd:annotation>
-                  <xsd:documentation>An extension value</xsd:documentation>
-               </xsd:annotation>
-            </xsd:any>
-         </xsd:choice>
-      </xsd:group>
-      <xsd:complexType name="plainValueType">
-         <xsd:complexContent>
-            <xsd:extension base="plainValueType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="valueType">
-         <xsd:complexContent>
-            <xsd:extension base="valueType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="classLoaderValueType">
-         <xsd:complexContent>
-            <xsd:extension base="classLoaderValueType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="annotatedValueType">
-         <xsd:complexContent>
-            <xsd:extension base="annotatedValueType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="namedValueType">
-         <xsd:complexContent>
-            <xsd:extension base="namedValueType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="baseCollectionType">
-         <xsd:complexContent>
-            <xsd:extension base="baseCollectionType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="collectionType">
-         <xsd:complexContent>
-            <xsd:extension base="collectionType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="listType">
-         <xsd:complexContent>
-            <xsd:extension base="listType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="setType">
-         <xsd:complexContent>
-            <xsd:extension base="setType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="arrayType">
-         <xsd:complexContent>
-            <xsd:extension base="arrayType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="mapType">
-         <xsd:complexContent>
-            <xsd:extension base="mapType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="entryType">
-         <xsd:complexContent>
-            <xsd:extension base="entryType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="dependsType">
-         <xsd:complexContent>
-            <xsd:extension base="dependsType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="demandType">
-         <xsd:complexContent>
-            <xsd:extension base="demandType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:complexType name="supplyType">
-         <xsd:complexContent>
-            <xsd:extension base="supplyType"/>
-         </xsd:complexContent>
-      </xsd:complexType>
-      <xsd:simpleType name="controllerStateType">
-         <xsd:restriction base="controllerStateType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:simpleType name="controllerModeType">
-         <xsd:restriction base="controllerModeType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:simpleType name="autowireTypeType">
-         <xsd:restriction base="autowireTypeType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:simpleType name="accessModeType">
-         <xsd:restriction base="accessModeType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:simpleType name="optionType">
-         <xsd:restriction base="optionType"></xsd:restriction>
-      </xsd:simpleType>
-      <xsd:simpleType name="contextType">
-         <xsd:restriction base="contextType"></xsd:restriction>
-      </xsd:simpleType>
-   </xsd:redefine>
-
-   <xsd:element name="deployment" type="deploymentType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The root of the xml deployer instance document
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="deploymentType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The deployment contains a number of beans and bean factories.
-           
-           e.g.
-           <deployment ...>
-              <bean .../>          
-              <bean .../>    
-              <beanfactory .../>
-           </deployment>
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="unbounded">
-         <xsd:element name="annotation" type="annotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="classloader" type="classloaderType" minOccurs="0"/>
-         <xsd:element name="alias" type="namedAliasType" minOccurs="0"/>
-         <xsd:element name="create" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="start" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="stop" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="destroy" type="lifecycleType" minOccurs="0"/>
-         <xsd:element name="bean" type="beanType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="beanfactory" type="beanfactoryType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="lazy" type="lazyType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-            <xsd:annotation>
-               <xsd:documentation>An extension value</xsd:documentation>
-            </xsd:annotation>
-         </xsd:any>
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="scoped" type="xsd:boolean" use="optional"/>
-      <xsd:attribute name="mode" type="controllerModeType" use="optional"/>
-   </xsd:complexType>
-
-   <!--
-     WARN:
-     Do not use this in the bean deployer, it won't work!
-     FIXME:
-     The correct way to do this is to have two separate
-     schemas (one for deployments the other for beans) 
-     then use schema imports.
-   -->
-   <xsd:element name="bean" type="beanType"/>
-
-   <!-- 
-     WARN:
-     Do not use this in the bean deployer, it won't work!
-     FIXME:
-     The correct way to do this is to have two separate
-     schemas (one for deployments the other for beans) 
-     then use schema imports.
-   -->
-   <xsd:element name="beanfactory" type="beanfactoryType"/>
-
-   <!--
-     WARN:
-     Do not use this in the bean deployer, it won't work!
-     FIXME:
-     The correct way to do this is to have two separate
-     schemas (one for deployments the other for beans)
-     then use schema imports.
-   -->
-   <xsd:element name="lazy" type="lazyType"/>
-
-</xsd:schema>

Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/validateschema/ValidateBeansSchemaTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/validateschema/ValidateBeansSchemaTestCase.java	                        (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/xml/validateschema/ValidateBeansSchemaTestCase.java	2008-04-03 11:47:53 UTC (rev 71691)
@@ -0,0 +1,81 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors. 
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/ 
+package org.jboss.test.kernel.xml.validateschema;
+
+import java.io.InputStream;
+
+import junit.framework.Test;
+
+import org.jboss.test.kernel.junit.MicrocontainerTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ValidateBeansSchemaTestCase extends MicrocontainerTest
+{
+   public static Test suite()
+   {
+      return suite(ValidateBeansSchemaTestCase.class);
+   }
+   
+   public ValidateBeansSchemaTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testSchemaIsValid() throws Exception
+   {
+      InputStream aopbeans = Thread.currentThread().getContextClassLoader().getResourceAsStream("schema/bean-deployer_2_0.xsd");
+      assertNotNull(aopbeans);
+      org.jboss.xb.binding.Util.loadSchema(aopbeans, null, new SchemaBindingResolver()
+      {
+         public String getBaseURI()
+         {
+            return null;
+         }
+
+         public SchemaBinding resolve(String nsUri, String baseURI, String schemaLocation)
+         {
+            return null;
+         }
+
+         public org.w3c.dom.ls.LSInput resolveAsLSInput(String nsUri, String baseUri, String schemaLocation)
+         {
+            if (schemaLocation.equals("jboss-beans-common_2_0.xsd"))
+            {
+               schemaLocation = "schema/" + schemaLocation;
+            }
+            InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(schemaLocation);
+            assertNotNull(stream);
+            return new org.jboss.xb.binding.sunday.unmarshalling.LSInputAdaptor(stream, null);
+         }
+
+         public void setBaseURI(String baseURI)
+         {
+         }
+      });
+   }
+}




More information about the jboss-cvs-commits mailing list