]> SALOME platform Git repositories - tools/siman.git/commitdiff
Salome HOME
*** empty log message ***
authorrkv <rkv@opencascade.com>
Wed, 10 Oct 2012 08:53:26 +0000 (08:53 +0000)
committerrkv <rkv@opencascade.com>
Wed, 10 Oct 2012 08:53:26 +0000 (08:53 +0000)
45 files changed:
Workspace/3dparty_src/.project [new file with mode: 0644]
Workspace/3dparty_src/hibernate/.cvsignore [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-aop-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-aop-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-aop-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-aop-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-beans-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-beans-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-beans-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-beans-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-cache-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-context-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-context-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-context-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jdbc-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jdbc-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jee-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jee-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jee-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jee-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jms-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jms-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-jms-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-lang-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-lang-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-lang-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-lang-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-mvc-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-mvc-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-oxm-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-oxm-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-task-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-task-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tool-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tool-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tool-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tool-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tx-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tx-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tx-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-tx-3.1.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-util-2.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-util-2.5.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-util-3.0.xsd [new file with mode: 0644]
Workspace/3dparty_src/spring/schema/spring-util-3.1.xsd [new file with mode: 0644]

diff --git a/Workspace/3dparty_src/.project b/Workspace/3dparty_src/.project
new file mode 100644 (file)
index 0000000..11071ef
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>3dparty_src</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+       </buildSpec>
+       <natures>
+       </natures>
+</projectDescription>
diff --git a/Workspace/3dparty_src/hibernate/.cvsignore b/Workspace/3dparty_src/hibernate/.cvsignore
new file mode 100644 (file)
index 0000000..b037465
--- /dev/null
@@ -0,0 +1 @@
+hibernate-distribution-3.5.3-Final-dist.zip
diff --git a/Workspace/3dparty_src/spring/schema/spring-aop-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-aop-2.0.xsd
new file mode 100644 (file)
index 0000000..22fd8fc
--- /dev/null
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/aop"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/aop"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
+                       
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's AOP support.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A section (compartmentalization) of AOP-specific configuration (including
+       aspects, pointcuts, etc).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="advisor" type="advisorType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.aop.Advisor"><![CDATA[
+       A named advisor definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="aspect" type="aspectType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named aspect definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="aspectj-autoproxy">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
+       Enables the use of the @AspectJ style of Spring AOP.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Indicates that only @AspectJ beans with names matched by the (regex)
+       pattern will be considered as defining aspects to use for Spring autoproxying.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scoped-proxy">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
+       Marks a bean definition as being a scoped proxy.
+
+       A bean marked as such will be exposed via a proxy, with the 'real'
+       bean instance being retrieved from some other source (such as a
+       HttpSession) as and when required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? This is the default; in order to
+       switch to standard Java interface-based proxies, turn this flag to "false".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="spring-configured">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"><![CDATA[
+       Signals the current application context to apply dependency injection
+       to non-managed objects that are instantiated outside of the Spring bean
+       factory (typically classes annotated with the @Configurable annotation).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:simpleType>
+                       <xsd:restriction base="xsd:string"/>
+               </xsd:simpleType>
+       </xsd:element>
+
+       <xsd:complexType name="aspectType">
+               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                       <xsd:element name="pointcut" type="pointcutType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="declare-parents" type="declareParentsType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Allows this aspect to introduce additional interfaces that the advised
+       object will transparently implement.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="before" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A before advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-returning" type="afterReturningAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-returning advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-throwing" type="afterThrowingAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-throwing advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="around" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An around advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+               </xsd:choice>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for an aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the (backing) bean that encapsulates the aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this aspect when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="includeType">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
+       The regular expression defining which beans are to be included in the
+       list of @AspectJ beans; beans with names matched by the pattern will
+       be included.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="pointcutType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a pointcut.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" use="required" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The pointcut expression.
+       
+       For example : 'execution(* com.xyz.myapp.service.*.*(..))'
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="type" default="aspectj">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The type of pointcut expression (see the associated enumeration).
+       DEPRECATED: Only AspectJ expression pointcuts are supported.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:string">
+                                       <xsd:enumeration value="aspectj"/>
+                                       <xsd:enumeration value="regex"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="declareParentsType">
+               <xsd:attribute name="types-matching" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
+       The AspectJ type expression that defines what types (classes) the
+       introduction is restricted to.
+
+       An example would be 'org.springframework.beans.ITestBean+'.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="implement-interface" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the interface that will be introduced. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="default-impl" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the class that will be instantiated to serve
+       as the default implementation of the introduced interface. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="basicAdviceType">
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The associated pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of an associated pointcut definition.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method that defines the logic of the advice.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="arg-names" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The comma-delimited list of advice method argument (parameter) names 
+       that will be matched from pointcut parameters.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterReturningAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="returning" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the return value must
+       be passed.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterThrowingAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="throwing" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the thrown exception must
+       be passed.      
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="advisorType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Advisor"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
+               <xsd:attribute name="id" type="xsd:ID"/>
+               <xsd:attribute name="advice-ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to an advice bean.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.aopalliance.aop.Advice"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to a pointcut definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this advice when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="pointcutRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-aop-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-aop-2.5.xsd
new file mode 100644 (file)
index 0000000..e6ba181
--- /dev/null
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/aop"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/aop"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's AOP support.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A section (compartmentalization) of AOP-specific configuration (including
+       aspects, pointcuts, etc).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="advisor" type="advisorType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.aop.Advisor"><![CDATA[
+       A named advisor definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="aspect" type="aspectType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named aspect definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="aspectj-autoproxy">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
+       Enables the use of the @AspectJ style of Spring AOP.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Indicates that only @AspectJ beans with names matched by the (regex)
+       pattern will be considered as defining aspects to use for Spring autoproxying.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scoped-proxy">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
+       Marks a bean definition as being a scoped proxy.
+
+       A bean marked as such will be exposed via a proxy, with the 'real'
+       bean instance being retrieved from some other source (such as a
+       HttpSession) as and when required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? This is the default; in order to
+       switch to standard Java interface-based proxies, turn this flag to "false".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="aspectType">
+               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                       <xsd:element name="pointcut" type="pointcutType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="declare-parents" type="declareParentsType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Allows this aspect to introduce additional interfaces that the advised
+       object will transparently implement.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="before" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A before advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-returning" type="afterReturningAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-returning advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-throwing" type="afterThrowingAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-throwing advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="around" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An around advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+               </xsd:choice>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for an aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the (backing) bean that encapsulates the aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this aspect when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="includeType">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
+       The regular expression defining which beans are to be included in the
+       list of @AspectJ beans; beans with names matched by the pattern will
+       be included.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="pointcutType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a pointcut.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" use="required" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The pointcut expression.
+       
+       For example : 'execution(* com.xyz.myapp.service.*.*(..))'
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="declareParentsType">
+               <xsd:attribute name="types-matching" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
+       The AspectJ type expression that defines what types (classes) the
+       introduction is restricted to.
+
+       An example would be 'org.springframework.beans.ITestBean+'.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="implement-interface" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the interface that will be introduced. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="default-impl" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the class that will be instantiated to serve
+       as the default implementation of the introduced interface. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="delegate-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to the bean that will serve 
+       as the default implementation of the introduced interface.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="basicAdviceType">
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The associated pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of an associated pointcut definition.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method that defines the logic of the advice.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="arg-names" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The comma-delimited list of advice method argument (parameter) names 
+       that will be matched from pointcut parameters.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterReturningAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="returning" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the return value must
+       be passed.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterThrowingAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="throwing" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the thrown exception must
+       be passed.      
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="advisorType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Advisor"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
+               <xsd:attribute name="id" type="xsd:ID"/>
+               <xsd:attribute name="advice-ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to an advice bean.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.aopalliance.aop.Advice"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to a pointcut definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this advice when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="pointcutRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-aop-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-aop-3.0.xsd
new file mode 100644 (file)
index 0000000..879f57f
--- /dev/null
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/aop"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/aop"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's AOP support.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A section (compartmentalization) of AOP-specific configuration (including
+       aspects, pointcuts, etc).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="advisor" type="advisorType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.aop.Advisor"><![CDATA[
+       A named advisor definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="aspect" type="aspectType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named aspect definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicate that the proxy should be exposed by the AOP framework as a
+       ThreadLocal for retrieval via the AopContext class. Off by default,
+       i.e. no guarantees that AopContext access will work.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="aspectj-autoproxy">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
+       Enables the use of the @AspectJ style of Spring AOP.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Indicates that only @AspectJ beans with names matched by the (regex)
+       pattern will be considered as defining aspects to use for Spring autoproxying.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicate that the proxy should be exposed by the AOP framework as a
+       ThreadLocal for retrieval via the AopContext class. Off by default,
+       i.e. no guarantees that AopContext access will work.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scoped-proxy">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
+       Marks a bean definition as being a scoped proxy.
+
+       A bean marked as such will be exposed via a proxy, with the 'real'
+       bean instance being retrieved from some other source (such as a
+       HttpSession) as and when required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? This is the default; in order to
+       switch to standard Java interface-based proxies, turn this flag to "false".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="aspectType">
+               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                       <xsd:element name="pointcut" type="pointcutType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="declare-parents" type="declareParentsType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Allows this aspect to introduce additional interfaces that the advised
+       object will transparently implement.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="before" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A before advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-returning" type="afterReturningAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-returning advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-throwing" type="afterThrowingAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-throwing advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="around" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An around advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+               </xsd:choice>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for an aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the (backing) bean that encapsulates the aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this aspect when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="includeType">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
+       The regular expression defining which beans are to be included in the
+       list of @AspectJ beans; beans with names matched by the pattern will
+       be included.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="pointcutType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a pointcut.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" use="required" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The pointcut expression.
+       
+       For example : 'execution(* com.xyz.myapp.service.*.*(..))'
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="declareParentsType">
+               <xsd:attribute name="types-matching" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
+       The AspectJ type expression that defines what types (classes) the
+       introduction is restricted to.
+
+       An example would be 'org.springframework.beans.ITestBean+'.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="implement-interface" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the interface that will be introduced. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="default-impl" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the class that will be instantiated to serve
+       as the default implementation of the introduced interface. 
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="delegate-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to the bean that will serve 
+       as the default implementation of the introduced interface.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="basicAdviceType">
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The associated pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of an associated pointcut definition.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method that defines the logic of the advice.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="arg-names" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The comma-delimited list of advice method argument (parameter) names 
+       that will be matched from pointcut parameters.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterReturningAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="returning" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the return value must
+       be passed.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterThrowingAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="throwing" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the thrown exception must
+       be passed.      
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="advisorType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Advisor"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
+               <xsd:attribute name="id" type="xsd:ID"/>
+               <xsd:attribute name="advice-ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to an advice bean.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.aopalliance.aop.Advice"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to a pointcut definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this advice when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="pointcutRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-aop-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-aop-3.1.xsd
new file mode 100644 (file)
index 0000000..0c79746
--- /dev/null
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/aop"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/aop"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's AOP support.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A section (compartmentalization) of AOP-specific configuration (including
+       aspects, pointcuts, etc).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="advisor" type="advisorType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.aop.Advisor"><![CDATA[
+       A named advisor definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="aspect" type="aspectType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A named aspect definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicate that the proxy should be exposed by the AOP framework as a
+       ThreadLocal for retrieval via the AopContext class. Off by default,
+       i.e. no guarantees that AopContext access will work.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="aspectj-autoproxy">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
+       Enables the use of the @AspectJ style of Spring AOP.
+
+       See org.springframework.context.annotation.EnableAspectJAutoProxy Javadoc
+       for information on code-based alternatives to this XML element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Indicates that only @AspectJ beans with names matched by the (regex)
+       pattern will be considered as defining aspects to use for Spring autoproxying.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicate that the proxy should be exposed by the AOP framework as a
+       ThreadLocal for retrieval via the AopContext class. Off by default,
+       i.e. no guarantees that AopContext access will work.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scoped-proxy">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
+       Marks a bean definition as being a scoped proxy.
+
+       A bean marked as such will be exposed via a proxy, with the 'real'
+       bean instance being retrieved from some other source (such as a
+       HttpSession) as and when required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? This is the default; in order to
+       switch to standard Java interface-based proxies, turn this flag to "false".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="aspectType">
+               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                       <xsd:element name="pointcut" type="pointcutType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A named pointcut definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="declare-parents" type="declareParentsType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Allows this aspect to introduce additional interfaces that the advised
+       object will transparently implement.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="before" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A before advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-returning" type="afterReturningAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-returning advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="after-throwing" type="afterThrowingAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An after-throwing advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+                       <xsd:element name="around" type="basicAdviceType">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       An around advice definition.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:element>
+               </xsd:choice>
+               <xsd:attribute name="id" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for an aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the (backing) bean that encapsulates the aspect.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this aspect when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="includeType">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
+       The regular expression defining which beans are to be included in the
+       list of @AspectJ beans; beans with names matched by the pattern will
+       be included.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="pointcutType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a pointcut.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" use="required" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The pointcut expression.
+
+       For example : 'execution(* com.xyz.myapp.service.*.*(..))'
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="declareParentsType">
+               <xsd:attribute name="types-matching" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
+       The AspectJ type expression that defines what types (classes) the
+       introduction is restricted to.
+
+       An example would be 'org.springframework.beans.ITestBean+'.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="implement-interface" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the interface that will be introduced.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="default-impl" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the class that will be instantiated to serve
+       as the default implementation of the introduced interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="delegate-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to the bean that will serve
+       as the default implementation of the introduced interface.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="basicAdviceType">
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The associated pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of an associated pointcut definition.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method that defines the logic of the advice.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="arg-names" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The comma-delimited list of advice method argument (parameter) names
+       that will be matched from pointcut parameters.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterReturningAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="returning" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the return value must
+       be passed.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="afterThrowingAdviceType">
+               <xsd:complexContent>
+                       <xsd:extension base="basicAdviceType">
+                               <xsd:attribute name="throwing" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of the method parameter to which the thrown exception must
+       be passed.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="advisorType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.aop.Advisor"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:string"/>
+               <xsd:attribute name="advice-ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to an advice bean.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref">
+                                               <tool:expected-type type="org.aopalliance.aop.Advice"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A pointcut expression.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="pointcut-ref" type="pointcutRefType">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to a pointcut definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:int">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of this advice when multiple
+       advice executes at a specific joinpoint.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="pointcutRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="org.springframework.aop.Pointcut"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-beans-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-beans-2.0.xsd
new file mode 100644 (file)
index 0000000..3bceb75
--- /dev/null
@@ -0,0 +1,1077 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/beans">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Spring XML Beans Schema, version 2.0
+       Authors: Rob Harrop, Juergen Hoeller
+
+       This defines a simple and consistent way of creating a namespace
+       of JavaBeans objects, managed by a Spring BeanFactory, read by
+       XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+       This document type is used by most Spring functionality, including
+       web application contexts, which are based on bean factories.
+
+       Each "bean" element in this document defines a JavaBean.
+       Typically the bean class is specified, along with JavaBean properties
+       and/or constructor arguments.
+
+       A bean instance can be a "singleton" (shared instance) or a "prototype"
+       (independent instance). Further scopes can be provided by extended
+       bean factories, for example in a web environment.
+
+       References among beans are supported, that is, setting a JavaBean property
+       or a constructor argument to refer to another bean in the same factory
+       (or an ancestor factory).
+
+       As alternative to bean references, "inner bean definitions" can be used.
+       Singleton flags of such inner bean definitions are effectively ignored:
+       inner beans are typically anonymous prototypes.
+
+       There is also support for lists, sets, maps, and java.util.Properties
+       as bean property types or constructor argument types.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <!-- base types -->
+       <xsd:complexType name="identifiedType" abstract="true">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The unique identifier for a bean. The scope of the identifier
+       is the enclosing bean factory.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Top-level <beans> tag -->
+       <xsd:element name="beans">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The top level (typically root) element. Allows the definition
+       of default values for all nested bean definitions.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="import"/>
+                                       <xsd:element ref="alias"/>
+                                       <xsd:element ref="bean"/>
+                                       <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="default-lazy-init" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'lazy-init' value; see the documentation for the
+       'lazy-init' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-merge" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'merge' value; see the documentation for the
+       'merge' attribute of the various collection elements.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire" default="no">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'autowire' value; see the documentation for the
+       'autowire' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="no"/>
+                                               <xsd:enumeration value="byName"/>
+                                               <xsd:enumeration value="byType"/>
+                                               <xsd:enumeration value="constructor"/>
+                                               <xsd:enumeration value="autodetect"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-dependency-check" default="none">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'dependency-check' value; see the documentation for the
+       'dependency-check' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="none"/>
+                                               <xsd:enumeration value="simple"/>
+                                               <xsd:enumeration value="objects"/>
+                                               <xsd:enumeration value="all"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-init-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'init-method' value; see the documentation for the
+       'init-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-destroy-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'destroy-method' value; see the documentation for the
+       'destroy-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="description">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains informative text describing the purpose of the enclosing element.
+       Used primarily for user documentation of XML bean definition documents.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="import">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       Specifies an XML bean definition resource to import.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="resource" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The relative resource location of the XML (bean definition) file to import,
+       for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="alias">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines an alias for a bean (which can reside in a different definition
+       resource).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean to define an alias for.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="alias" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The alias name to define for the bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:group name="beanElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="constructor-arg"/>
+                               <xsd:element ref="property"/>
+                               <xsd:element ref="lookup-method"/>
+                               <xsd:element ref="replaced-method"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:attributeGroup name="beanAttributes">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Can be used to create one or more aliases illegal in an (XML) id.
+       Multiple aliases can be separated by any number of spaces, commas,
+       or semi-colons (or indeed any mixture of the three).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="class" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the bean's class, except if it serves only
+       as a parent definition for child bean definitions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="parent" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the parent bean definition.
+
+       Will use the bean class of the parent if none is specified, but can
+       also override it. In the latter case, the child bean class must be
+       compatible with the parent, i.e. accept the parent's property values
+       and constructor argument values, if any.
+
+       A child bean definition will inherit constructor argument values,
+       property values and method overrides from the parent, with the option
+       to add new values. If init method, destroy method, factory bean and/or
+       factory method are specified, they will override the corresponding
+       parent settings.
+
+       The remaining settings will always be taken from the child definition:
+       depends on, autowire mode, dependency check, scope, lazy init.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="scope" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The scope of this bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+
+       Inner bean definitions inherit the singleton status of their containing
+       bean definition, unless explicitly specified: The inner bean will be a
+       singleton if the containing bean is a singleton, and a prototype if
+       the containing bean has any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="abstract" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Is this bean "abstract", that is, not meant to be instantiated itself
+       but rather just serving as parent for concrete child bean definitions?
+       The default is "false". Specify "true" to tell the bean factory to not
+       try to instantiate that particular bean in any case.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per abstract bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean is to be lazily initialized.
+       If false, it will be instantiated on startup by bean factories
+       that perform eager initialization of singletons. The default is
+       "false".
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether bean properties are "autowired".
+       This is an automagical process in which bean references don't need
+       to be coded explicitly in the XML bean definition file, but rather the
+       Spring container works out dependencies.
+
+       There are 5 modes:
+
+       1. "no"
+       The traditional Spring default. No automagical wiring. Bean references
+       must be defined in the XML file via the <ref/> element (or "ref"
+       attribute). We recommend this in most cases as it makes documentation
+       more explicit.
+
+       2. "byName"
+       Autowiring by property name. If a bean of class Cat exposes a "dog"
+       property, Spring will try to set this to the value of the bean "dog"
+       in the current container. If there is no matching bean by name, nothing
+       special happens; use dependency-check="objects" to raise an error in
+       that case.
+
+       3. "byType"
+       Autowiring if there is exactly one bean of the property type in the
+       container. If there is more than one, a fatal error is raised, and
+       you cannot use byType autowiring for that bean. If there is none,
+       nothing special happens; use dependency-check="objects" to raise an
+       error in that case.
+
+       4. "constructor"
+       Analogous to "byType" for constructor arguments. If there is not exactly
+       one bean of the constructor argument type in the bean factory, a fatal
+       error is raised.
+
+       5. "autodetect"
+       Chooses "constructor" or "byType" through introspection of the bean
+       class. If a default constructor is found, "byType" gets applied.
+
+       Note that explicit dependencies, i.e. "property" and "constructor-arg"
+       elements, always override autowiring. Autowire behavior can be combined
+       with dependency checking, which will be performed after all autowiring
+       has been completed.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="no"/>
+                                       <xsd:enumeration value="byName"/>
+                                       <xsd:enumeration value="byType"/>
+                                       <xsd:enumeration value="constructor"/>
+                                       <xsd:enumeration value="autodetect"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="dependency-check" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether or not to check whether all of this
+       bean's dependencies, expressed in its properties, are satisfied.
+       The default is to perform no dependency checking.
+
+       "simple" type dependency checking includes primitives and String;
+       "objects" includes collaborators (other beans in the factory);
+       "all" includes both types of dependency checking.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="none"/>
+                                       <xsd:enumeration value="simple"/>
+                                       <xsd:enumeration value="objects"/>
+                                       <xsd:enumeration value="all"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="depends-on" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The names of the beans that this bean depends on being initialized.
+       The bean factory will guarantee that these beans get initialized
+       before this bean.
+
+       Note that dependencies are normally expressed through bean properties
+       or constructor arguments. This property should just be necessary for
+       other kinds of dependencies like statics (*ugh*) or database preparation
+       on startup.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire-candidate" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean should be considered when looking
+       for matching candidates to satisfy another bean's autowiring requirements.
+       Note that this does not affect explicit references by name, which will get
+       resolved even if the specified bean is not marked as an autowire candidate.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="init-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom initialization method to invoke after setting
+       bean properties. The method must have no arguments, but may throw any
+       exception.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destroy-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom destroy method to invoke on bean factory
+       shutdown. The method must have no arguments, but may throw any
+       exception.
+
+       Note: Only invoked on beans whose lifecycle is under the full
+       control of the factory - which is always the case for singletons,
+       but not guaranteed for any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of a factory method to use to create this object. Use
+       constructor-arg elements to specify arguments to the factory method,
+       if it takes arguments. Autowiring does not apply to factory methods.
+
+       If the "class" attribute is present, the factory method will be a static
+       method on the class specified by the "class" attribute on this bean
+       definition. Often this will be the same class as that of the constructed
+       object - for example, when the factory method is used as an alternative
+       to a constructor. However, it may be on a different class. In that case,
+       the created object will *not* be of the class specified in the "class"
+       attribute. This is analogous to FactoryBean behavior.
+
+       If the "factory-bean" attribute is present, the "class" attribute is not
+       used, and the factory method will be an instance method on the object
+       returned from a getBean call with the specified bean name. The factory
+       bean may be defined as a singleton or a prototype.
+
+       The factory method can have any number of arguments. Autowiring is not
+       supported. Use indexed constructor-arg elements in conjunction with the
+       factory-method attribute.
+
+       Setter Injection can be used in conjunction with a factory method.
+       Method Injection cannot, as the factory method returns an instance,
+       which will be used when the container creates the bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-bean" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Alternative to class attribute for factory-method usage.
+       If this is specified, no class attribute should be used.
+       This must be set to the name of a bean in the current or
+       ancestor factories that contains the relevant factory method.
+       This allows the factory itself to be configured using Dependency
+       Injection, and an instance (rather than static) method to be used.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+       </xsd:attributeGroup>
+
+       <xsd:element name="meta" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Arbitrary metadata attached to a bean definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="metaType">
+               <xsd:attribute name="key" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The key name of the metadata attribute being defined.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The value of the metadata attribute being defined (as a simple String).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="bean">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+       Defines a single (usually named) bean.
+
+       A bean definition may contain nested tags for constructor arguments,
+       property values, lookup methods, and replaced methods. Mixing constructor
+       injection and setter injection on the same bean is explicitly supported.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="identifiedType">
+                                       <xsd:group ref="beanElements"/>
+                                       <xsd:attributeGroup ref="beanAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="constructor-arg">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+                               <![CDATA[
+       Bean definitions can specify zero or more constructor arguments.
+       This is an alternative to "autowire constructor".
+       Arguments correspond to either a specific index of the constructor
+       argument list or are supposed to be matched generically by type.
+
+       Note: A single generic argument value will just be used once, rather
+       than potentially matched multiple times (as of Spring 1.1).
+
+       constructor-arg elements are also used in conjunction with the
+       factory-method element to construct beans using static or instance
+       factory methods.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="1">
+                                       <xsd:element ref="bean"/>
+                                       <xsd:element ref="ref"/>
+                                       <xsd:element ref="idref"/>
+                                       <xsd:element ref="value"/>
+                                       <xsd:element ref="null"/>
+                                       <xsd:element ref="list"/>
+                                       <xsd:element ref="set"/>
+                                       <xsd:element ref="map"/>
+                                       <xsd:element ref="props"/>
+                                       <xsd:any namespace="##other" processContents="strict"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="index" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact index of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type of the constructor argument. Only needed to avoid
+       ambiguities, e.g. in case of 2 single argument constructors
+       that can both be converted from a String.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="value" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...<value/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property" type="propertyType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="lookup-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A lookup method causes the IoC container to override the given method
+       and return the bean with the name given in the bean attribute. This is
+       a form of Method Injection. It is particularly useful as an alternative
+       to implementing the BeanFactoryAware interface, in order to be able to
+       make getBean() calls for non-singleton instances at runtime. In this
+       case, Method Injection is a less invasive alternative.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the lookup method. This method must take no arguments.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean in the current or ancestor factories that
+       the lookup method should resolve to. Often this bean will be a
+       prototype, in which case the lookup method will return a distinct
+       instance on every invocation. This is useful for single-threaded objects.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="replaced-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Similar to the lookup method mechanism, the replaced-method element
+       is used to control IoC container method overriding: Method Injection.
+       This mechanism allows the overriding of a method with arbitrary code.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="arg-type"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the method whose implementation must be replaced by the
+       IoC container. If this method is not overloaded, there is no need
+       to use arg-type subelements. If this method is overloaded, arg-type
+       subelements must be used for all override definitions for the method.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="replacer" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+       Bean name of an implementation of the MethodReplacer interface in the
+       current or ancestor factories. This may be a singleton or prototype
+       bean. If it is a prototype, a new instance will be used for each
+       method replacement. Singleton usage is the norm.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="arg-type">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Identifies an argument for a replaced method in the event of
+       method overloading.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="match" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specification of the type of an overloaded method argument as a String.
+       For convenience, this may be a substring of the FQN. E.g. all the
+       following would match "java.lang.String":
+       - java.lang.String
+       - String
+       - Str
+
+       As the number of arguments will be checked also, this convenience
+       can often be used to save typing.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="ref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a reference to another bean in this factory or an external
+       factory (parent or included factory).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can
+       be checked by the XML parser. This is therefore the preferred technique
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="parent" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean in a parent factory.
+                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="idref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The id of another bean in this factory or an external factory
+       (parent or included factory).
+       While a regular 'value' element could instead be used for the
+       same effect, using idref in this case allows validation of local
+       bean ids by the XML parser, and name completion by supporting tools.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can
+       be checked by the XML parser. This is therefore the preferred technique
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="value">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains a string representation of a property value.
+       The property may be a string, or may be converted to the required
+       type using the JavaBeans PropertyEditor machinery. This makes it
+       possible for application developers to write custom PropertyEditor
+       implementations that can convert strings to arbitrary target objects.
+
+       Note that this is recommended for simple objects only. Configure
+       more complex objects by populating JavaBean properties with
+       references to other beans.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type that the value should be converted to. Only needed
+       if the type of the target property or constructor argument is
+       too generic: for example, in case of a collection element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="null">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Denotes a Java null value. Necessary because an empty "value" tag
+       will resolve to an empty String, which will not be resolved to a
+       null value unless a special PropertyEditor does so.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- Collection Elements -->
+       <xsd:group name="collectionElements">
+               <xsd:sequence>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:element name="list" type="listOrSetType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A list can contain multiple inner bean, ref, collection, or value elements.
+       A list can also map to an array type; the necessary conversion is performed
+       automatically.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="set" type="listOrSetType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A set can contain multiple inner bean, ref, collection, or value elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="map" type="mapType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A mapping from a key to an object. Maps may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="entry" type="entryType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A map entry can be an inner bean, ref, value, or collection.
+       The key of the entry is given by the "key" attribute or child element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="props" type="propsType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Props elements differ from map elements in that values must be strings.
+       Props may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="key">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A key element can contain an inner bean, ref, value, or collection.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="prop">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The string value of the property. Note that whitespace is trimmed
+       off to avoid unwanted whitespace caused by typical XML formatting.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="key" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The key of the property entry.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="propertyType">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="1">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict"/>
+                       </xsd:choice>
+               </xsd:sequence>
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the property, following JavaBean naming conventions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>"
+       element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Collection Types -->
+
+       <!-- base collection type -->
+       <xsd:complexType name="baseCollectionType">
+               <xsd:attribute name="merge" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- base type for collections that have (possibly) typed nested values -->
+       <xsd:complexType name="typedCollectionType">
+               <xsd:complexContent>
+                       <xsd:extension base="baseCollectionType">
+                               <xsd:attribute name="value-type" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested values. Must be a fully qualified
+       class name.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'list' and 'set' collection type -->
+       <xsd:complexType name="listOrSetType">
+               <xsd:complexContent>
+                       <xsd:extension base="typedCollectionType">
+                               <xsd:group ref="collectionElements"/>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'map' element type -->
+       <xsd:complexType name="mapType">
+               <xsd:complexContent>
+                       <xsd:extension base="typedCollectionType">
+                               <xsd:sequence>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="entry"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                               <xsd:attribute name="key-type" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested entry keys. Must be a fully qualified
+       class name.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'entry' element type -->
+       <xsd:complexType name="entryType">
+               <xsd:sequence>
+                       <xsd:element ref="key" minOccurs="0"/>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:sequence>
+               <xsd:attribute name="key" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Each map element must specify its key as attribute or as child element.
+       A key attribute is always a String value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="key-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a to a "key" element with a nested
+       "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>"
+       element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'props' collection type -->
+       <xsd:complexType name="propsType">
+               <xsd:complexContent>
+                       <xsd:extension base="baseCollectionType">
+                               <xsd:sequence>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="prop"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- simple internal types -->
+       <xsd:simpleType name="defaultable-boolean">
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="default"/>
+                       <xsd:enumeration value="true"/>
+                       <xsd:enumeration value="false"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-beans-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-beans-2.5.xsd
new file mode 100644 (file)
index 0000000..eb01556
--- /dev/null
@@ -0,0 +1,1164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/beans">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Spring XML Beans Schema, version 2.5
+       Authors: Rob Harrop, Juergen Hoeller, Mark Fisher
+
+       This defines a simple and consistent way of creating a namespace
+       of JavaBeans objects, managed by a Spring BeanFactory, read by
+       XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+       This document type is used by most Spring functionality, including
+       web application contexts, which are based on bean factories.
+
+       Each "bean" element in this document defines a JavaBean.
+       Typically the bean class is specified, along with JavaBean properties
+       and/or constructor arguments.
+
+       A bean instance can be a "singleton" (shared instance) or a "prototype"
+       (independent instance). Further scopes can be provided by extended
+       bean factories, for example in a web environment.
+
+       References among beans are supported, that is, setting a JavaBean property
+       or a constructor argument to refer to another bean in the same factory
+       (or an ancestor factory).
+
+       As alternative to bean references, "inner bean definitions" can be used.
+       Singleton flags of such inner bean definitions are effectively ignored:
+       inner beans are typically anonymous prototypes.
+
+       There is also support for lists, sets, maps, and java.util.Properties
+       as bean property types or constructor argument types.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <!-- base types -->
+       <xsd:complexType name="identifiedType" abstract="true">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The unique identifier for a bean. The scope of the identifier
+       is the enclosing bean factory.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Top-level <beans> tag -->
+       <xsd:element name="beans">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The top level (typically root) element. Allows the definition
+       of default values for all nested bean definitions.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="import"/>
+                                       <xsd:element ref="alias"/>
+                                       <xsd:element ref="bean"/>
+                                       <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="default-lazy-init" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'lazy-init' value; see the documentation for the
+       'lazy-init' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-merge" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'merge' value; see the documentation for the
+       'merge' attribute of the various collection elements.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire" default="no">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'autowire' value; see the documentation for the
+       'autowire' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="no"/>
+                                               <xsd:enumeration value="byName"/>
+                                               <xsd:enumeration value="byType"/>
+                                               <xsd:enumeration value="constructor"/>
+                                               <xsd:enumeration value="autodetect"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-dependency-check" default="none">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'dependency-check' value; see the documentation for the
+       'dependency-check' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="none"/>
+                                               <xsd:enumeration value="simple"/>
+                                               <xsd:enumeration value="objects"/>
+                                               <xsd:enumeration value="all"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire-candidates" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A default bean name pattern for identifying autowire candidates:
+       e.g. "*Service", "data*", "*Service*", "data*Service".
+       Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+       See the documentation for the 'autowire-candidate' attribute of the
+       '<bean/>' element for the semantic details of autowire candidate beans.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-init-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'init-method' value; see the documentation for the
+       'init-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-destroy-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'destroy-method' value; see the documentation for the
+       'destroy-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:anyAttribute namespace="##other" processContents="lax"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="description">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains informative text describing the purpose of the enclosing element.
+       Used primarily for user documentation of XML bean definition documents.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="import">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       Specifies an XML bean definition resource to import.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="resource" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The relative resource location of the XML (bean definition) file to import,
+       for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="alias">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines an alias for a bean (which can reside in a different definition
+       resource).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean to define an alias for.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="alias" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The alias name to define for the bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:group name="beanElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="constructor-arg"/>
+                               <xsd:element ref="property"/>
+                               <xsd:element ref="qualifier"/>
+                               <xsd:element ref="lookup-method"/>
+                               <xsd:element ref="replaced-method"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:attributeGroup name="beanAttributes">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Can be used to create one or more aliases illegal in an (XML) id.
+       Multiple aliases can be separated by any number of spaces, commas,
+       or semi-colons (or indeed any mixture of the three).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="class" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the bean's class, except if it serves only
+       as a parent definition for child bean definitions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="parent" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the parent bean definition.
+
+       Will use the bean class of the parent if none is specified, but can
+       also override it. In the latter case, the child bean class must be
+       compatible with the parent, i.e. accept the parent's property values
+       and constructor argument values, if any.
+
+       A child bean definition will inherit constructor argument values,
+       property values and method overrides from the parent, with the option
+       to add new values. If init method, destroy method, factory bean and/or
+       factory method are specified, they will override the corresponding
+       parent settings.
+
+       The remaining settings will always be taken from the child definition:
+       depends on, autowire mode, dependency check, scope, lazy init.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="scope" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The scope of this bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+
+       Inner bean definitions inherit the singleton status of their containing
+       bean definition, unless explicitly specified: The inner bean will be a
+       singleton if the containing bean is a singleton, and a prototype if
+       the containing bean has any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="abstract" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Is this bean "abstract", that is, not meant to be instantiated itself
+       but rather just serving as parent for concrete child bean definitions?
+       The default is "false". Specify "true" to tell the bean factory to not
+       try to instantiate that particular bean in any case.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per abstract bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean is to be lazily initialized.
+       If false, it will be instantiated on startup by bean factories
+       that perform eager initialization of singletons. The default is
+       "false".
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether bean properties are "autowired".
+       This is an automagical process in which bean references don't need
+       to be coded explicitly in the XML bean definition file, but rather the
+       Spring container works out dependencies.
+
+       There are 5 modes:
+
+       1. "no"
+       The traditional Spring default. No automagical wiring. Bean references
+       must be defined in the XML file via the <ref/> element (or "ref"
+       attribute). We recommend this in most cases as it makes documentation
+       more explicit.
+
+       2. "byName"
+       Autowiring by property name. If a bean of class Cat exposes a "dog"
+       property, Spring will try to set this to the value of the bean "dog"
+       in the current container. If there is no matching bean by name, nothing
+       special happens; use dependency-check="objects" to raise an error in
+       that case.
+
+       3. "byType"
+       Autowiring if there is exactly one bean of the property type in the
+       container. If there is more than one, a fatal error is raised, and
+       you cannot use byType autowiring for that bean. If there is none,
+       nothing special happens; use dependency-check="objects" to raise an
+       error in that case.
+
+       4. "constructor"
+       Analogous to "byType" for constructor arguments. If there is not exactly
+       one bean of the constructor argument type in the bean factory, a fatal
+       error is raised.
+
+       5. "autodetect"
+       Chooses "constructor" or "byType" through introspection of the bean
+       class. If a default constructor is found, "byType" gets applied.
+
+       Note that explicit dependencies, i.e. "property" and "constructor-arg"
+       elements, always override autowiring. Autowire behavior can be combined
+       with dependency checking, which will be performed after all autowiring
+       has been completed.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="no"/>
+                                       <xsd:enumeration value="byName"/>
+                                       <xsd:enumeration value="byType"/>
+                                       <xsd:enumeration value="constructor"/>
+                                       <xsd:enumeration value="autodetect"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="dependency-check" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether or not to check whether all of this
+       bean's dependencies, expressed in its properties, are satisfied.
+       The default is to perform no dependency checking.
+
+       "simple" type dependency checking includes primitives and String;
+       "objects" includes collaborators (other beans in the factory);
+       "all" includes both types of dependency checking.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="none"/>
+                                       <xsd:enumeration value="simple"/>
+                                       <xsd:enumeration value="objects"/>
+                                       <xsd:enumeration value="all"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="depends-on" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The names of the beans that this bean depends on being initialized.
+       The bean factory will guarantee that these beans get initialized
+       before this bean.
+
+       Note that dependencies are normally expressed through bean properties
+       or constructor arguments. This property should just be necessary for
+       other kinds of dependencies like statics (*ugh*) or database preparation
+       on startup.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean should be considered when looking
+       for matching candidates to satisfy another bean's autowiring requirements.
+       Note that this does not affect explicit references by name, which will get
+       resolved even if the specified bean is not marked as an autowire candidate.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="primary" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies that this bean should be given preference when multiple
+       candidates are qualified to autowire a single-valued dependency.
+       If exactly one 'primary' bean exists among the candidates, it
+       will be the autowired value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="init-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom initialization method to invoke after setting
+       bean properties. The method must have no arguments, but may throw any
+       exception.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destroy-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom destroy method to invoke on bean factory
+       shutdown. The method must have no arguments, but may throw any
+       exception.
+
+       Note: Only invoked on beans whose lifecycle is under the full
+       control of the factory - which is always the case for singletons,
+       but not guaranteed for any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of a factory method to use to create this object. Use
+       constructor-arg elements to specify arguments to the factory method,
+       if it takes arguments. Autowiring does not apply to factory methods.
+
+       If the "class" attribute is present, the factory method will be a static
+       method on the class specified by the "class" attribute on this bean
+       definition. Often this will be the same class as that of the constructed
+       object - for example, when the factory method is used as an alternative
+       to a constructor. However, it may be on a different class. In that case,
+       the created object will *not* be of the class specified in the "class"
+       attribute. This is analogous to FactoryBean behavior.
+
+       If the "factory-bean" attribute is present, the "class" attribute is not
+       used, and the factory method will be an instance method on the object
+       returned from a getBean call with the specified bean name. The factory
+       bean may be defined as a singleton or a prototype.
+
+       The factory method can have any number of arguments. Autowiring is not
+       supported. Use indexed constructor-arg elements in conjunction with the
+       factory-method attribute.
+
+       Setter Injection can be used in conjunction with a factory method.
+       Method Injection cannot, as the factory method returns an instance,
+       which will be used when the container creates the bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-bean" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Alternative to class attribute for factory-method usage.
+       If this is specified, no class attribute should be used.
+       This must be set to the name of a bean in the current or
+       ancestor factories that contains the relevant factory method.
+       This allows the factory itself to be configured using Dependency
+       Injection, and an instance (rather than static) method to be used.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+       </xsd:attributeGroup>
+
+       <xsd:element name="meta" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Arbitrary metadata attached to a bean definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="metaType">
+               <xsd:attribute name="key" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The key name of the metadata attribute being defined.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The value of the metadata attribute being defined (as a simple String).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="bean">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+       Defines a single (usually named) bean.
+
+       A bean definition may contain nested tags for constructor arguments,
+       property values, lookup methods, and replaced methods. Mixing constructor
+       injection and setter injection on the same bean is explicitly supported.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="identifiedType">
+                                       <xsd:group ref="beanElements"/>
+                                       <xsd:attributeGroup ref="beanAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="constructor-arg">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+                               <![CDATA[
+       Bean definitions can specify zero or more constructor arguments.
+       This is an alternative to "autowire constructor".
+       Arguments correspond to either a specific index of the constructor
+       argument list or are supposed to be matched generically by type.
+
+       Note: A single generic argument value will just be used once, rather
+       than potentially matched multiple times (as of Spring 1.1).
+
+       constructor-arg elements are also used in conjunction with the
+       factory-method element to construct beans using static or instance
+       factory methods.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="1">
+                                       <xsd:element ref="bean"/>
+                                       <xsd:element ref="ref"/>
+                                       <xsd:element ref="idref"/>
+                                       <xsd:element ref="value"/>
+                                       <xsd:element ref="null"/>
+                                       <xsd:element ref="list"/>
+                                       <xsd:element ref="set"/>
+                                       <xsd:element ref="map"/>
+                                       <xsd:element ref="props"/>
+                                       <xsd:any namespace="##other" processContents="strict"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="index" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact index of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type of the constructor argument. Only needed to avoid
+       ambiguities, e.g. in case of 2 single argument constructors
+       that can both be converted from a String.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="value" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...<value/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property" type="propertyType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="qualifier">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can provide qualifiers to match against annotations
+       on a field or parameter for fine-grained autowire candidate resolution.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+                       <xsd:attribute name="value" type="xsd:string"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="attribute" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A qualifier element may contain attribute child elements as key-value
+       pairs. These will be available for matching against attributes of a
+       qualifier annotation on an autowired field or parameter if present.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="lookup-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A lookup method causes the IoC container to override the given method
+       and return the bean with the name given in the bean attribute. This is
+       a form of Method Injection. It is particularly useful as an alternative
+       to implementing the BeanFactoryAware interface, in order to be able to
+       make getBean() calls for non-singleton instances at runtime. In this
+       case, Method Injection is a less invasive alternative.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the lookup method. This method must take no arguments.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean in the current or ancestor factories that
+       the lookup method should resolve to. Often this bean will be a
+       prototype, in which case the lookup method will return a distinct
+       instance on every invocation. This is useful for single-threaded objects.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="replaced-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Similar to the lookup method mechanism, the replaced-method element
+       is used to control IoC container method overriding: Method Injection.
+       This mechanism allows the overriding of a method with arbitrary code.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="arg-type"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the method whose implementation must be replaced by the
+       IoC container. If this method is not overloaded, there is no need
+       to use arg-type subelements. If this method is overloaded, arg-type
+       subelements must be used for all override definitions for the method.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="replacer" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+       Bean name of an implementation of the MethodReplacer interface in the
+       current or ancestor factories. This may be a singleton or prototype
+       bean. If it is a prototype, a new instance will be used for each
+       method replacement. Singleton usage is the norm.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="arg-type">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Identifies an argument for a replaced method in the event of
+       method overloading.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="match" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specification of the type of an overloaded method argument as a String.
+       For convenience, this may be a substring of the FQN. E.g. all the
+       following would match "java.lang.String":
+       - java.lang.String
+       - String
+       - Str
+
+       As the number of arguments will be checked also, this convenience
+       can often be used to save typing.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="ref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a reference to another bean in this factory or an external
+       factory (parent or included factory).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can 
+       be checked by the XML parser. This is therefore the preferred technique 
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="parent" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean in a parent factory.
+                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="idref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The id of another bean in this factory or an external factory
+       (parent or included factory).
+       While a regular 'value' element could instead be used for the
+       same effect, using idref in this case allows validation of local
+       bean ids by the XML parser, and name completion by supporting tools.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can 
+       be checked by the XML parser. This is therefore the preferred technique 
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="value">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains a string representation of a property value.
+       The property may be a string, or may be converted to the required
+       type using the JavaBeans PropertyEditor machinery. This makes it
+       possible for application developers to write custom PropertyEditor
+       implementations that can convert strings to arbitrary target objects.
+
+       Note that this is recommended for simple objects only. Configure
+       more complex objects by populating JavaBean properties with
+       references to other beans.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type that the value should be converted to. Only needed
+       if the type of the target property or constructor argument is
+       too generic: for example, in case of a collection element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="null">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Denotes a Java null value. Necessary because an empty "value" tag
+       will resolve to an empty String, which will not be resolved to a
+       null value unless a special PropertyEditor does so.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- Collection Elements -->
+       <xsd:group name="collectionElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A list can contain multiple inner bean, ref, collection, or value elements.
+       A list can also map to an array type; the necessary conversion is performed
+       automatically.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A set can contain multiple inner bean, ref, collection, or value elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A mapping from a key to an object. Maps may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="mapType">
+                                       <xsd:attribute name="merge" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="entry" type="entryType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A map entry can be an inner bean, ref, value, or collection.
+       The key of the entry is given by the "key" attribute or child element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="props">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Props elements differ from map elements in that values must be strings.
+       Props may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propsType">
+                                       <xsd:attribute name="merge" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="key">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A key element can contain an inner bean, ref, value, or collection.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="prop">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The string value of the property. Note that whitespace is trimmed
+       off to avoid unwanted whitespace caused by typical XML formatting.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="key" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The key of the property entry.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="propertyType">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="1">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict"/>
+                       </xsd:choice>
+               </xsd:sequence>
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the property, following JavaBean naming conventions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>" element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Collection Types -->
+
+       <!-- base type for collections that have (possibly) typed nested values -->
+       <xsd:complexType name="collectionType">
+               <xsd:attribute name="value-type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested values. Must be a fully qualified
+       class name.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'list' and 'set' collection type -->
+       <xsd:complexType name="listOrSetType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:group ref="collectionElements"/>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'map' element type -->
+       <xsd:complexType name="mapType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:element ref="description" minOccurs="0"/>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="entry"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                               <xsd:attribute name="key-type" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested entry keys. Must be a fully qualified
+       class name.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'entry' element type -->
+       <xsd:complexType name="entryType">
+               <xsd:sequence>
+                       <xsd:element ref="key" minOccurs="0"/>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:sequence>
+               <xsd:attribute name="key" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Each map element must specify its key as attribute or as child element.
+       A key attribute is always a String value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="key-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a to a "key" element with a nested
+       "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>"
+       element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'props' collection type -->
+       <xsd:complexType name="propsType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="prop"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- simple internal types -->
+       <xsd:simpleType name="defaultable-boolean">
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="default"/>
+                       <xsd:enumeration value="true"/>
+                       <xsd:enumeration value="false"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-beans-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-beans-3.0.xsd
new file mode 100644 (file)
index 0000000..dce67a3
--- /dev/null
@@ -0,0 +1,1152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/beans">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Spring XML Beans Schema, version 3.0
+       Authors: Juergen Hoeller, Rob Harrop, Mark Fisher
+
+       This defines a simple and consistent way of creating a namespace
+       of JavaBeans objects, managed by a Spring BeanFactory, read by
+       XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+       This document type is used by most Spring functionality, including
+       web application contexts, which are based on bean factories.
+
+       Each "bean" element in this document defines a JavaBean.
+       Typically the bean class is specified, along with JavaBean properties
+       and/or constructor arguments.
+
+       A bean instance can be a "singleton" (shared instance) or a "prototype"
+       (independent instance). Further scopes can be provided by extended
+       bean factories, for example in a web environment.
+
+       References among beans are supported, that is, setting a JavaBean property
+       or a constructor argument to refer to another bean in the same factory
+       (or an ancestor factory).
+
+       As alternative to bean references, "inner bean definitions" can be used.
+       Singleton flags of such inner bean definitions are effectively ignored:
+       inner beans are typically anonymous prototypes.
+
+       There is also support for lists, sets, maps, and java.util.Properties
+       as bean property types or constructor argument types.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <!-- base types -->
+       <xsd:complexType name="identifiedType" abstract="true">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The unique identifier for a bean. The scope of the identifier
+       is the enclosing bean factory.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Top-level <beans> tag -->
+       <xsd:element name="beans">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The top level (typically root) element. Allows the definition
+       of default values for all nested bean definitions.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="import"/>
+                                       <xsd:element ref="alias"/>
+                                       <xsd:element ref="bean"/>
+                                       <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="default-lazy-init" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'lazy-init' value; see the documentation for the
+       'lazy-init' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-merge" default="false" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'merge' value; see the documentation for the
+       'merge' attribute of the various collection elements.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire" default="no">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'autowire' value; see the documentation for the
+       'autowire' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="no"/>
+                                               <xsd:enumeration value="byName"/>
+                                               <xsd:enumeration value="byType"/>
+                                               <xsd:enumeration value="constructor"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire-candidates" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A default bean name pattern for identifying autowire candidates:
+       e.g. "*Service", "data*", "*Service*", "data*Service".
+       Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+       See the documentation for the 'autowire-candidate' attribute of the
+       '<bean/>' element for the semantic details of autowire candidate beans.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-init-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'init-method' value; see the documentation for the
+       'init-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-destroy-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'destroy-method' value; see the documentation for the
+       'destroy-method' attribute of the '<bean>' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:anyAttribute namespace="##other" processContents="lax"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="description">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains informative text describing the purpose of the enclosing element.
+       Used primarily for user documentation of XML bean definition documents.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="import">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       Specifies an XML bean definition resource to import.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="resource" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The relative resource location of the XML (bean definition) file to import,
+       for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="alias">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines an alias for a bean (which can reside in a different definition
+       resource).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean to define an alias for.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="alias" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The alias name to define for the bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:group name="beanElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="constructor-arg"/>
+                               <xsd:element ref="property"/>
+                               <xsd:element ref="qualifier"/>
+                               <xsd:element ref="lookup-method"/>
+                               <xsd:element ref="replaced-method"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:attributeGroup name="beanAttributes">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Can be used to create one or more aliases illegal in an (XML) id.
+       Multiple aliases can be separated by any number of spaces, commas,
+       or semi-colons (or indeed any mixture of the three).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="class" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the bean's class, except if it serves only
+       as a parent definition for child bean definitions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="parent" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the parent bean definition.
+
+       Will use the bean class of the parent if none is specified, but can
+       also override it. In the latter case, the child bean class must be
+       compatible with the parent, i.e. accept the parent's property values
+       and constructor argument values, if any.
+
+       A child bean definition will inherit constructor argument values,
+       property values and method overrides from the parent, with the option
+       to add new values. If init method, destroy method, factory bean and/or
+       factory method are specified, they will override the corresponding
+       parent settings.
+
+       The remaining settings will always be taken from the child definition:
+       depends on, autowire mode, scope, lazy init.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="scope" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The scope of this bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+
+       By default, a bean will be a singleton, unless the bean has a parent
+       bean definition in which case it will inherit the parent's scope.
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+
+       Inner bean definitions inherit the singleton status of their containing
+       bean definition, unless explicitly specified: The inner bean will be a
+       singleton if the containing bean is a singleton, and a prototype if
+       the containing bean has any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="abstract" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Is this bean "abstract", that is, not meant to be instantiated itself
+       but rather just serving as parent for concrete child bean definitions?
+       The default is "false". Specify "true" to tell the bean factory to not
+       try to instantiate that particular bean in any case.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per abstract bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean is to be lazily initialized.
+       If false, it will be instantiated on startup by bean factories
+       that perform eager initialization of singletons. The default is
+       "false".
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether bean properties are "autowired".
+       This is an automagical process in which bean references don't need
+       to be coded explicitly in the XML bean definition file, but rather the
+       Spring container works out dependencies.
+
+       There are 4 modes:
+
+       1. "no"
+       The traditional Spring default. No automagical wiring. Bean references
+       must be defined in the XML file via the <ref/> element (or "ref"
+       attribute). We recommend this in most cases as it makes documentation
+       more explicit.
+
+       Note that this default mode also allows for annotation-driven autowiring,
+       if activated. "no" refers to externally driven autowiring only, not
+       affecting any autowiring demands that the bean class itself expresses.
+
+       2. "byName"
+       Autowiring by property name. If a bean of class Cat exposes a "dog"
+       property, Spring will try to set this to the value of the bean "dog"
+       in the current container. If there is no matching bean by name, nothing
+       special happens.
+
+       3. "byType"
+       Autowiring if there is exactly one bean of the property type in the
+       container. If there is more than one, a fatal error is raised, and
+       you cannot use byType autowiring for that bean. If there is none,
+       nothing special happens.
+
+       4. "constructor"
+       Analogous to "byType" for constructor arguments. If there is not exactly
+       one bean of the constructor argument type in the bean factory, a fatal
+       error is raised.
+
+       Note that explicit dependencies, i.e. "property" and "constructor-arg"
+       elements, always override autowiring.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="no"/>
+                                       <xsd:enumeration value="byName"/>
+                                       <xsd:enumeration value="byType"/>
+                                       <xsd:enumeration value="constructor"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="depends-on" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The names of the beans that this bean depends on being initialized.
+       The bean factory will guarantee that these beans get initialized
+       before this bean.
+
+       Note that dependencies are normally expressed through bean properties
+       or constructor arguments. This property should just be necessary for
+       other kinds of dependencies like statics (*ugh*) or database preparation
+       on startup.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean should be considered when looking
+       for matching candidates to satisfy another bean's autowiring requirements.
+       Note that this does not affect explicit references by name, which will get
+       resolved even if the specified bean is not marked as an autowire candidate.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="primary" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies that this bean should be given preference when multiple
+       candidates are qualified to autowire a single-valued dependency.
+       If exactly one 'primary' bean exists among the candidates, it
+       will be the autowired value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="init-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom initialization method to invoke after setting
+       bean properties. The method must have no arguments, but may throw any
+       exception.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destroy-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom destroy method to invoke on bean factory
+       shutdown. The method must have no arguments, but may throw any
+       exception.
+
+       Note: Only invoked on beans whose lifecycle is under the full
+       control of the factory - which is always the case for singletons,
+       but not guaranteed for any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of a factory method to use to create this object. Use
+       constructor-arg elements to specify arguments to the factory method,
+       if it takes arguments. Autowiring does not apply to factory methods.
+
+       If the "class" attribute is present, the factory method will be a static
+       method on the class specified by the "class" attribute on this bean
+       definition. Often this will be the same class as that of the constructed
+       object - for example, when the factory method is used as an alternative
+       to a constructor. However, it may be on a different class. In that case,
+       the created object will *not* be of the class specified in the "class"
+       attribute. This is analogous to FactoryBean behavior.
+
+       If the "factory-bean" attribute is present, the "class" attribute is not
+       used, and the factory method will be an instance method on the object
+       returned from a getBean call with the specified bean name. The factory
+       bean may be defined as a singleton or a prototype.
+
+       The factory method can have any number of arguments. Autowiring is not
+       supported. Use indexed constructor-arg elements in conjunction with the
+       factory-method attribute.
+
+       Setter Injection can be used in conjunction with a factory method.
+       Method Injection cannot, as the factory method returns an instance,
+       which will be used when the container creates the bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-bean" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Alternative to class attribute for factory-method usage.
+       If this is specified, no class attribute should be used.
+       This must be set to the name of a bean in the current or
+       ancestor factories that contains the relevant factory method.
+       This allows the factory itself to be configured using Dependency
+       Injection, and an instance (rather than static) method to be used.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+       </xsd:attributeGroup>
+
+       <xsd:element name="meta" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Arbitrary metadata attached to a bean definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="metaType">
+               <xsd:attribute name="key" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The key name of the metadata attribute being defined.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The value of the metadata attribute being defined (as a simple String).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="bean">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+       Defines a single (usually named) bean.
+
+       A bean definition may contain nested tags for constructor arguments,
+       property values, lookup methods, and replaced methods. Mixing constructor
+       injection and setter injection on the same bean is explicitly supported.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="identifiedType">
+                                       <xsd:group ref="beanElements"/>
+                                       <xsd:attributeGroup ref="beanAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="constructor-arg">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+                               <![CDATA[
+       Bean definitions can specify zero or more constructor arguments.
+       This is an alternative to "autowire constructor".
+       Arguments correspond to either a specific index of the constructor
+       argument list or are supposed to be matched generically by type.
+
+       Note: A single generic argument value will just be used once, rather
+       than potentially matched multiple times (as of Spring 1.1).
+
+       constructor-arg elements are also used in conjunction with the
+       factory-method element to construct beans using static or instance
+       factory methods.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="1">
+                                       <xsd:element ref="bean"/>
+                                       <xsd:element ref="ref"/>
+                                       <xsd:element ref="idref"/>
+                                       <xsd:element ref="value"/>
+                                       <xsd:element ref="null"/>
+                                       <xsd:element ref="array"/>
+                                       <xsd:element ref="list"/>
+                                       <xsd:element ref="set"/>
+                                       <xsd:element ref="map"/>
+                                       <xsd:element ref="props"/>
+                                       <xsd:any namespace="##other" processContents="strict"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="index" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact index of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type of the constructor argument. Only needed to avoid
+       ambiguities, e.g. in case of 2 single argument constructors
+       that can both be converted from a String.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact name of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type. Note: This requires debug symbols to be
+       stored in the class file in order to introspect argument names!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="value" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...<value/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property" type="propertyType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="qualifier">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can provide qualifiers to match against annotations
+       on a field or parameter for fine-grained autowire candidate resolution.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+                       <xsd:attribute name="value" type="xsd:string"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="attribute" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A qualifier element may contain attribute child elements as key-value
+       pairs. These will be available for matching against attributes of a
+       qualifier annotation on an autowired field or parameter if present.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="lookup-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A lookup method causes the IoC container to override the given method
+       and return the bean with the name given in the bean attribute. This is
+       a form of Method Injection. It is particularly useful as an alternative
+       to implementing the BeanFactoryAware interface, in order to be able to
+       make getBean() calls for non-singleton instances at runtime. In this
+       case, Method Injection is a less invasive alternative.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the lookup method. This method must take no arguments.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean in the current or ancestor factories that
+       the lookup method should resolve to. Often this bean will be a
+       prototype, in which case the lookup method will return a distinct
+       instance on every invocation. This is useful for single-threaded objects.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="replaced-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Similar to the lookup method mechanism, the replaced-method element
+       is used to control IoC container method overriding: Method Injection.
+       This mechanism allows the overriding of a method with arbitrary code.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="arg-type"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the method whose implementation must be replaced by the
+       IoC container. If this method is not overloaded, there is no need
+       to use arg-type subelements. If this method is overloaded, arg-type
+       subelements must be used for all override definitions for the method.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="replacer" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+       Bean name of an implementation of the MethodReplacer interface in the
+       current or ancestor factories. This may be a singleton or prototype
+       bean. If it is a prototype, a new instance will be used for each
+       method replacement. Singleton usage is the norm.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="arg-type">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Identifies an argument for a replaced method in the event of
+       method overloading.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="match" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specification of the type of an overloaded method argument as a String.
+       For convenience, this may be a substring of the FQN. E.g. all the
+       following would match "java.lang.String":
+       - java.lang.String
+       - String
+       - Str
+
+       As the number of arguments will be checked also, this convenience
+       can often be used to save typing.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="ref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a reference to another bean in this factory or an external
+       factory (parent or included factory).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can 
+       be checked by the XML parser. This is therefore the preferred technique 
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="parent" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean in a parent factory.
+                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="idref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The id of another bean in this factory or an external factory
+       (parent or included factory).
+       While a regular 'value' element could instead be used for the
+       same effect, using idref in this case allows validation of local
+       bean ids by the XML parser, and name completion by supporting tools.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:IDREF">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and thus can 
+       be checked by the XML parser. This is therefore the preferred technique 
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="value">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains a string representation of a property value.
+       The property may be a string, or may be converted to the required
+       type using the JavaBeans PropertyEditor machinery. This makes it
+       possible for application developers to write custom PropertyEditor
+       implementations that can convert strings to arbitrary target objects.
+
+       Note that this is recommended for simple objects only. Configure
+       more complex objects by populating JavaBean properties with
+       references to other beans.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type that the value should be converted to. Only needed
+       if the type of the target property or constructor argument is
+       too generic: for example, in case of a collection element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="null">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Denotes a Java null value. Necessary because an empty "value" tag
+       will resolve to an empty String, which will not be resolved to a
+       null value unless a special PropertyEditor does so.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- Collection Elements -->
+       <xsd:group name="collectionElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="array"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:element name="array">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       An array can contain multiple inner bean, ref, collection, or value elements.
+       This configuration element will always result in an array, even when being
+       defined e.g. as a value for a map with value type Object.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A list can contain multiple inner bean, ref, collection, or value elements.
+       A list can also map to an array type; the necessary conversion is performed
+       automatically.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A set can contain multiple inner bean, ref, collection, or value elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A mapping from a key to an object. Maps may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="mapType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="entry" type="entryType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A map entry can be an inner bean, ref, value, or collection.
+       The key of the entry is given by the "key" attribute or child element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="props">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Props elements differ from map elements in that values must be strings.
+       Props may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propsType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="key">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A key element can contain an inner bean, ref, value, or collection.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="prop">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The string value of the property. Note that whitespace is trimmed
+       off to avoid unwanted whitespace caused by typical XML formatting.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="key" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The key of the property entry.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="propertyType">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="1">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="array"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict"/>
+                       </xsd:choice>
+               </xsd:sequence>
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the property, following JavaBean naming conventions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>" element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Collection Types -->
+
+       <!-- base type for collections that have (possibly) typed nested values -->
+       <xsd:complexType name="collectionType">
+               <xsd:attribute name="value-type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested values. Must be a fully qualified
+       class name.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'list' and 'set' collection type -->
+       <xsd:complexType name="listOrSetType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:group ref="collectionElements"/>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'map' element type -->
+       <xsd:complexType name="mapType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:element ref="description" minOccurs="0"/>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="entry"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                               <xsd:attribute name="key-type" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested entry keys. Must be a fully qualified
+       class name.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'entry' element type -->
+       <xsd:complexType name="entryType">
+               <xsd:sequence>
+                       <xsd:element ref="key" minOccurs="0"/>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:sequence>
+               <xsd:attribute name="key" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Each map element must specify its key as attribute or as child element.
+       A key attribute is always a String value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="key-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a to a "key" element with a nested
+       "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>"
+       element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'props' collection type -->
+       <xsd:complexType name="propsType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="prop"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- simple internal types -->
+       <xsd:simpleType name="defaultable-boolean">
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="default"/>
+                       <xsd:enumeration value="true"/>
+                       <xsd:enumeration value="false"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-beans-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-beans-3.1.xsd
new file mode 100644 (file)
index 0000000..e540098
--- /dev/null
@@ -0,0 +1,1180 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/beans">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Spring XML Beans Schema, version 3.1
+       Authors: Juergen Hoeller, Rob Harrop, Mark Fisher, Chris Beams
+
+       This defines a simple and consistent way of creating a namespace
+       of JavaBeans objects, managed by a Spring BeanFactory, read by
+       XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+       This document type is used by most Spring functionality, including
+       web application contexts, which are based on bean factories.
+
+       Each "bean" element in this document defines a JavaBean.
+       Typically the bean class is specified, along with JavaBean properties
+       and/or constructor arguments.
+
+       A bean instance can be a "singleton" (shared instance) or a "prototype"
+       (independent instance). Further scopes can be provided by extended
+       bean factories, for example in a web environment.
+
+       References among beans are supported, that is, setting a JavaBean property
+       or a constructor argument to refer to another bean in the same factory
+       (or an ancestor factory).
+
+       As alternative to bean references, "inner bean definitions" can be used.
+       Singleton flags of such inner bean definitions are effectively ignored:
+       inner beans are typically anonymous prototypes.
+
+       There is also support for lists, sets, maps, and java.util.Properties
+       as bean property types or constructor argument types.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <!-- base types -->
+       <xsd:complexType name="identifiedType" abstract="true">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The unique identifier for a bean. The scope of the identifier
+       is the enclosing bean factory.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="id" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a bean. A bean id may not be used more than once
+       within the same <beans> element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Top-level <beans> tag -->
+       <xsd:element name="beans">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Container for <bean> and other elements, typically the root element in the document.
+       Allows the definition of default values for all nested bean definitions. May itself
+       be nested for the purpose of defining a subset of beans with certain default values or
+       to be registered only when certain profile(s) are active. Any such nested <beans> element
+       must be declared as the last element in the document.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="import"/>
+                                       <xsd:element ref="alias"/>
+                                       <xsd:element ref="bean"/>
+                                       <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                               </xsd:choice>
+                               <xsd:element ref="beans" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="profile" use="optional" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The set of profiles for which this <beans> element may be parsed. Multiple profiles can be
+       separated by any number of spaces, commas, or semi-colons (or indeed any mixture of the three).
+       If one or more of the specified profiles are active at time of parsing, the <beans> element
+       will be parsed, and all of its <bean> elements registered, &lt;import&gt; elements followed,
+       etc.  If none of the specified profiles are active at time of parsing, then the entire element
+       and its contents will be ignored.
+
+       Profiles are activated in one of two ways:
+               Programmatic:
+                       ConfigurableEnvironment#setActiveProfiles(String...)
+                       ConfigurableEnvironment#setDefaultProfiles(String...)
+
+               Properties (typically through -D system properties, environment variables, or servlet context init params):
+                       spring.profiles.active=p1,p2
+                       spring.profiles.default=p1,p2
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-lazy-init" default="default" type="defaultable-boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'lazy-init' value; see the documentation for the
+       'lazy-init' attribute of the 'bean' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-merge" default="default" type="defaultable-boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'merge' value; see the documentation for the
+       'merge' attribute of the various collection elements. The default
+       is 'false'.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire" default="default">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'autowire' value; see the documentation for the
+       'autowire' attribute of the 'bean' element. The default is 'default'.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="default"/>
+                                               <xsd:enumeration value="no"/>
+                                               <xsd:enumeration value="byName"/>
+                                               <xsd:enumeration value="byType"/>
+                                               <xsd:enumeration value="constructor"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-autowire-candidates" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A default bean name pattern for identifying autowire candidates:
+       e.g. "*Service", "data*", "*Service*", "data*Service".
+       Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+       See the documentation for the 'autowire-candidate' attribute of the
+       'bean' element for the semantic details of autowire candidate beans.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-init-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'init-method' value; see the documentation for the
+       'init-method' attribute of the 'bean' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="default-destroy-method" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default 'destroy-method' value; see the documentation for the
+       'destroy-method' attribute of the 'bean' element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:anyAttribute namespace="##other" processContents="lax"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="description">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains informative text describing the purpose of the enclosing element.
+       Used primarily for user documentation of XML bean definition documents.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="import">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       Specifies an XML bean definition resource to import.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="resource" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The relative resource location of the XML (bean definition) file to import,
+       for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="alias">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines an alias for a bean (which can reside in a different definition
+       resource).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean to define an alias for.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="alias" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The alias name to define for the bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:group name="beanElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="constructor-arg"/>
+                               <xsd:element ref="property"/>
+                               <xsd:element ref="qualifier"/>
+                               <xsd:element ref="lookup-method"/>
+                               <xsd:element ref="replaced-method"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:attributeGroup name="beanAttributes">
+               <xsd:attribute name="name" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Can be used to create one or more aliases illegal in an (XML) id.
+       Multiple aliases can be separated by any number of spaces, commas,
+       or semi-colons (or indeed any mixture of the three).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="class" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The fully qualified name of the bean's class, except if it serves only
+       as a parent definition for child bean definitions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="parent" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the parent bean definition.
+
+       Will use the bean class of the parent if none is specified, but can
+       also override it. In the latter case, the child bean class must be
+       compatible with the parent, i.e. accept the parent's property values
+       and constructor argument values, if any.
+
+       A child bean definition will inherit constructor argument values,
+       property values and method overrides from the parent, with the option
+       to add new values. If init method, destroy method, factory bean and/or
+       factory method are specified, they will override the corresponding
+       parent settings.
+
+       The remaining settings will always be taken from the child definition:
+       depends on, autowire mode, scope, lazy init.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="scope" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The scope of this bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+
+       By default, a bean will be a singleton, unless the bean has a parent
+       bean definition in which case it will inherit the parent's scope.
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+
+       Inner bean definitions inherit the singleton status of their containing
+       bean definition, unless explicitly specified: The inner bean will be a
+       singleton if the containing bean is a singleton, and a prototype if
+       the containing bean has any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="abstract" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Is this bean "abstract", that is, not meant to be instantiated itself
+       but rather just serving as parent for concrete child bean definitions?
+       The default is "false". Specify "true" to tell the bean factory to not
+       try to instantiate that particular bean in any case.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per abstract bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean is to be lazily initialized.
+       If false, it will be instantiated on startup by bean factories
+       that perform eager initialization of singletons. The default is
+       "false".
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire" default="default">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Controls whether bean properties are "autowired".
+       This is an automagical process in which bean references don't need
+       to be coded explicitly in the XML bean definition file, but rather the
+       Spring container works out dependencies.
+
+       There are 4 modes:
+
+       1. "no"
+       The traditional Spring default. No automagical wiring. Bean references
+       must be defined in the XML file via the <ref/> element (or "ref"
+       attribute). We recommend this in most cases as it makes documentation
+       more explicit.
+
+       Note that this default mode also allows for annotation-driven autowiring,
+       if activated. "no" refers to externally driven autowiring only, not
+       affecting any autowiring demands that the bean class itself expresses.
+
+       2. "byName"
+       Autowiring by property name. If a bean of class Cat exposes a "dog"
+       property, Spring will try to set this to the value of the bean "dog"
+       in the current container. If there is no matching bean by name, nothing
+       special happens.
+
+       3. "byType"
+       Autowiring if there is exactly one bean of the property type in the
+       container. If there is more than one, a fatal error is raised, and
+       you cannot use byType autowiring for that bean. If there is none,
+       nothing special happens.
+
+       4. "constructor"
+       Analogous to "byType" for constructor arguments. If there is not exactly
+       one bean of the constructor argument type in the bean factory, a fatal
+       error is raised.
+
+       Note that explicit dependencies, i.e. "property" and "constructor-arg"
+       elements, always override autowiring.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="default"/>
+                                       <xsd:enumeration value="no"/>
+                                       <xsd:enumeration value="byName"/>
+                                       <xsd:enumeration value="byType"/>
+                                       <xsd:enumeration value="constructor"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="depends-on" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The names of the beans that this bean depends on being initialized.
+       The bean factory will guarantee that these beans get initialized
+       before this bean.
+
+       Note that dependencies are normally expressed through bean properties
+       or constructor arguments. This property should just be necessary for
+       other kinds of dependencies like statics (*ugh*) or database preparation
+       on startup.
+
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean should be considered when looking
+       for matching candidates to satisfy another bean's autowiring requirements.
+       Note that this does not affect explicit references by name, which will get
+       resolved even if the specified bean is not marked as an autowire candidate.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="primary" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies that this bean should be given preference when multiple
+       candidates are qualified to autowire a single-valued dependency.
+       If exactly one 'primary' bean exists among the candidates, it
+       will be the autowired value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="init-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom initialization method to invoke after setting
+       bean properties. The method must have no arguments, but may throw any
+       exception.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destroy-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the custom destroy method to invoke on bean factory
+       shutdown. The method must have no arguments, but may throw any
+       exception.
+
+       Note: Only invoked on beans whose lifecycle is under the full
+       control of the factory - which is always the case for singletons,
+       but not guaranteed for any other scope.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of a factory method to use to create this object. Use
+       constructor-arg elements to specify arguments to the factory method,
+       if it takes arguments. Autowiring does not apply to factory methods.
+
+       If the "class" attribute is present, the factory method will be a static
+       method on the class specified by the "class" attribute on this bean
+       definition. Often this will be the same class as that of the constructed
+       object - for example, when the factory method is used as an alternative
+       to a constructor. However, it may be on a different class. In that case,
+       the created object will *not* be of the class specified in the "class"
+       attribute. This is analogous to FactoryBean behavior.
+
+       If the "factory-bean" attribute is present, the "class" attribute is not
+       used, and the factory method will be an instance method on the object
+       returned from a getBean call with the specified bean name. The factory
+       bean may be defined as a singleton or a prototype.
+
+       The factory method can have any number of arguments. Autowiring is not
+       supported. Use indexed constructor-arg elements in conjunction with the
+       factory-method attribute.
+
+       Setter Injection can be used in conjunction with a factory method.
+       Method Injection cannot, as the factory method returns an instance,
+       which will be used when the container creates the bean.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="factory-bean" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Alternative to class attribute for factory-method usage.
+       If this is specified, no class attribute should be used.
+       This must be set to the name of a bean in the current or
+       ancestor factories that contains the relevant factory method.
+       This allows the factory itself to be configured using Dependency
+       Injection, and an instance (rather than static) method to be used.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+       </xsd:attributeGroup>
+
+       <xsd:element name="meta" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Arbitrary metadata attached to a bean definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="metaType">
+               <xsd:attribute name="key" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The key name of the metadata attribute being defined.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The value of the metadata attribute being defined (as a simple String).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="bean">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+       Defines a single (usually named) bean.
+
+       A bean definition may contain nested tags for constructor arguments,
+       property values, lookup methods, and replaced methods. Mixing constructor
+       injection and setter injection on the same bean is explicitly supported.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="identifiedType">
+                                       <xsd:group ref="beanElements"/>
+                                       <xsd:attributeGroup ref="beanAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="constructor-arg">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+                               <![CDATA[
+       Bean definitions can specify zero or more constructor arguments.
+       This is an alternative to "autowire constructor".
+       Arguments correspond to either a specific index of the constructor
+       argument list or are supposed to be matched generically by type.
+
+       Note: A single generic argument value will just be used once, rather
+       than potentially matched multiple times (as of Spring 1.1).
+
+       constructor-arg elements are also used in conjunction with the
+       factory-method element to construct beans using static or instance
+       factory methods.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="description" minOccurs="0"/>
+                               <xsd:choice minOccurs="0" maxOccurs="1">
+                                       <xsd:element ref="bean"/>
+                                       <xsd:element ref="ref"/>
+                                       <xsd:element ref="idref"/>
+                                       <xsd:element ref="value"/>
+                                       <xsd:element ref="null"/>
+                                       <xsd:element ref="array"/>
+                                       <xsd:element ref="list"/>
+                                       <xsd:element ref="set"/>
+                                       <xsd:element ref="map"/>
+                                       <xsd:element ref="props"/>
+                                       <xsd:any namespace="##other" processContents="strict"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="index" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact index of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type of the constructor argument. Only needed to avoid
+       ambiguities, e.g. in case of 2 single argument constructors
+       that can both be converted from a String.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact name of the argument in the constructor argument list.
+       Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+       the exact same type. Note: This requires debug symbols to be
+       stored in the class file in order to introspect argument names!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="value" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...<value/>" element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property" type="propertyType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="qualifier">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Bean definitions can provide qualifiers to match against annotations
+       on a field or parameter for fine-grained autowire candidate resolution.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+                       <xsd:attribute name="value" type="xsd:string"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="attribute" type="metaType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A qualifier element may contain attribute child elements as key-value
+       pairs. These will be available for matching against attributes of a
+       qualifier annotation on an autowired field or parameter if present.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="lookup-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A lookup method causes the IoC container to override the given method
+       and return the bean with the name given in the bean attribute. This is
+       a form of Method Injection. It is particularly useful as an alternative
+       to implementing the BeanFactoryAware interface, in order to be able to
+       make getBean() calls for non-singleton instances at runtime. In this
+       case, Method Injection is a less invasive alternative.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="name" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the lookup method. This method must take no arguments.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the bean in the current or ancestor factories that
+       the lookup method should resolve to. Often this bean will be a
+       prototype, in which case the lookup method will return a distinct
+       instance on every invocation. This is useful for single-threaded objects.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="replaced-method">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Similar to the lookup method mechanism, the replaced-method element
+       is used to control IoC container method overriding: Method Injection.
+       This mechanism allows the overriding of a method with arbitrary code.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element ref="arg-type"/>
+                               </xsd:choice>
+                       </xsd:sequence>
+                       <xsd:attribute name="name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the method whose implementation must be replaced by the
+       IoC container. If this method is not overloaded, there is no need
+       to use arg-type subelements. If this method is overloaded, arg-type
+       subelements must be used for all override definitions for the method.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="replacer" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+       Bean name of an implementation of the MethodReplacer interface in the
+       current or ancestor factories. This may be a singleton or prototype
+       bean. If it is a prototype, a new instance will be used for each
+       method replacement. Singleton usage is the norm.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="arg-type">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Identifies an argument for a replaced method in the event of
+       method overloading.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="match" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specification of the type of an overloaded method argument as a String.
+       For convenience, this may be a substring of the FQN. E.g. all the
+       following would match "java.lang.String":
+       - java.lang.String
+       - String
+       - Str
+
+       As the number of arguments will be checked also, this convenience
+       can often be used to save typing.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="ref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a reference to another bean in this factory or an external
+       factory (parent or included factory).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and will be
+       checked by the Spring container. This is therefore the preferred technique
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="parent" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean in a parent factory.
+                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="idref">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The id of another bean in this factory or an external factory
+       (parent or included factory).
+       While a regular 'value' element could instead be used for the
+       same effect, using idref indicates that the Spring container
+       should check that the value actually corresponds to a bean id.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:restriction base="xsd:anyType">
+                                       <xsd:attribute name="bean" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The name of the referenced bean. The value must be a bean ID and will be
+       checked by the Spring container. This is therefore the preferred technique
+       for referencing beans within the same bean factory XML file.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:restriction>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="value">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Contains a string representation of a property value.
+       The property may be a string, or may be converted to the required
+       type using the JavaBeans PropertyEditor machinery. This makes it
+       possible for application developers to write custom PropertyEditor
+       implementations that can convert strings to arbitrary target objects.
+
+       Note that this is recommended for simple objects only. Configure
+       more complex objects by populating JavaBean properties with
+       references to other beans.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="type" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The exact type that the value should be converted to. Only needed
+       if the type of the target property or constructor argument is
+       too generic: for example, in case of a collection element.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="null">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Denotes a Java null value. Necessary because an empty "value" tag
+       will resolve to an empty String, which will not be resolved to a
+       null value unless a special PropertyEditor does so.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- Collection Elements -->
+       <xsd:group name="collectionElements">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="array"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:choice>
+               </xsd:sequence>
+       </xsd:group>
+
+       <xsd:element name="array">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       An array can contain multiple inner bean, ref, collection, or value elements.
+       This configuration element will always result in an array, even when being
+       defined e.g. as a value for a map with value type Object.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A list can contain multiple inner bean, ref, collection, or value elements.
+       A list can also map to an array type; the necessary conversion is performed
+       automatically.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A set can contain multiple inner bean, ref, collection, or value elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="listOrSetType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A mapping from a key to an object. Maps may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="mapType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="entry" type="entryType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A map entry can be an inner bean, ref, value, or collection.
+       The key of the entry is given by the "key" attribute or child element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="props">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Props elements differ from map elements in that values must be strings.
+       Props may be empty.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propsType">
+                                       <xsd:attribute name="merge" default="default" type="defaultable-boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Enables/disables merging for collections when using parent/child beans.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="key">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A key element can contain an inner bean, ref, value, or collection.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="prop">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The string value of the property. Note that whitespace is trimmed
+       off to avoid unwanted whitespace caused by typical XML formatting.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType mixed="true">
+                       <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+                       <xsd:attribute name="key" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The key of the property entry.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="propertyType">
+               <xsd:sequence>
+                       <xsd:element ref="description" minOccurs="0"/>
+                       <xsd:choice minOccurs="0" maxOccurs="1">
+                               <xsd:element ref="meta"/>
+                               <xsd:element ref="bean"/>
+                               <xsd:element ref="ref"/>
+                               <xsd:element ref="idref"/>
+                               <xsd:element ref="value"/>
+                               <xsd:element ref="null"/>
+                               <xsd:element ref="array"/>
+                               <xsd:element ref="list"/>
+                               <xsd:element ref="set"/>
+                               <xsd:element ref="map"/>
+                               <xsd:element ref="props"/>
+                               <xsd:any namespace="##other" processContents="strict"/>
+                       </xsd:choice>
+               </xsd:sequence>
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the property, following JavaBean naming conventions.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>" element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- Collection Types -->
+
+       <!-- base type for collections that have (possibly) typed nested values -->
+       <xsd:complexType name="collectionType">
+               <xsd:attribute name="value-type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested values. Must be a fully qualified
+       class name.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'list' and 'set' collection type -->
+       <xsd:complexType name="listOrSetType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:group ref="collectionElements"/>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'map' element type -->
+       <xsd:complexType name="mapType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:element ref="description" minOccurs="0"/>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="entry"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                               <xsd:attribute name="key-type" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The default Java type for nested entry keys. Must be a fully qualified
+       class name.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- 'entry' element type -->
+       <xsd:complexType name="entryType">
+               <xsd:sequence>
+                       <xsd:element ref="key" minOccurs="0"/>
+                       <xsd:group ref="collectionElements"/>
+               </xsd:sequence>
+               <xsd:attribute name="key" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Each map element must specify its key as attribute or as child element.
+       A key attribute is always a String value.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="key-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a to a "key" element with a nested
+       "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<value>...</value>"
+       element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="value-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A short-cut alternative to a nested "<ref bean='...'/>".
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <!-- 'props' collection type -->
+       <xsd:complexType name="propsType">
+               <xsd:complexContent>
+                       <xsd:extension base="collectionType">
+                               <xsd:sequence>
+                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:element ref="prop"/>
+                                       </xsd:choice>
+                               </xsd:sequence>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <!-- simple internal types -->
+       <xsd:simpleType name="defaultable-boolean">
+               <xsd:restriction base="xsd:NMTOKEN">
+                       <xsd:enumeration value="default"/>
+                       <xsd:enumeration value="true"/>
+                       <xsd:enumeration value="false"/>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-cache-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-cache-3.1.xsd
new file mode 100644 (file)
index 0000000..eab936d
--- /dev/null
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/cache"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/cache"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's declarative
+       cache management infrastructure.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="annotation-driven">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.cache.annotation.AnnotationCacheOperationDefinitionSource"><![CDATA[
+       Indicates that cache configuration is defined by Java 5
+       annotations on bean classes, and that proxies are automatically
+       to be created for the relevant annotated beans.
+
+       The default annotations supported are Spring's @Cacheable and @CacheEvict.
+
+       See org.springframework.cache.annotation.EnableCaching Javadoc
+       for information on code-based alternatives to this XML element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="cache-manager" type="xsd:string" default="cacheManager">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.cache.CacheManager"><![CDATA[
+       The bean name of the CacheManager that is to be used to retrieve the backing caches.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired CacheManager
+       is not 'cacheManager'.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.cache.CacheManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="key-generator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.cache.interceptor.KeyGenerator"><![CDATA[
+       The bean name of the KeyGenerator that is to be used to retrieve the backing caches.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the default strategy (DefaultKeyGenerator) is not sufficient.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.cache.interceptor.KeyGenerator"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="mode" default="proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Should annotated beans be proxied using Spring's AOP framework,
+       or should they rather be weaved with an AspectJ transaction aspect?
+
+       AspectJ weaving requires spring-aspects.jar on the classpath,
+       as well as load-time weaving (or compile-time weaving) enabled.
+
+       Note: The weaving-based aspect requires the @Cacheable and @CacheInvalidate
+       annotations to be defined on the concrete class. Annotations in interfaces
+       will not work in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="proxy"/>
+                                               <xsd:enumeration value="aspectj"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+
+       Note: Class-based proxies require the @Cacheable and @CacheInvalidate annotations
+       to be defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of the cache advisor
+       when multiple advice executes at a specific joinpoint.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="advice">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.cache.interceptor.CacheInterceptor"><![CDATA[
+       Defines the cache semantics of the AOP advice that is to be
+       executed.
+
+       That is, this advice element is where the cacheable semantics of
+       any     number of methods are defined (where cacheable semantics
+       includes the backing cache(s), the key, cache condition rules, and suchlike).
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="java:org.springframework.cache.interceptor.CacheInterceptor"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="caching" type="definitionsType" minOccurs="0" maxOccurs="unbounded"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="cache-manager" type="xsd:string" default="cacheManager">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.cache.CacheManager"><![CDATA[
+       The bean name of the CacheManager that is to be used
+       for storing and retrieving data.
+
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired CacheManager
+       is not 'cacheManager'.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.cache.CacheManager"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="key-generator" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.cache.interceptor.KeyGenerator"><![CDATA[
+       The bean name of the KeyGenerator that is to be used to retrieve the backing caches.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the default strategy (DefaultKeyGenerator) is not sufficient.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.cache.interceptor.KeyGenerator"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>                                        
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="basedefinitionType">
+               <xsd:attribute name="cache" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the backing cache(s). Multiple caches can be specified by separating them using comma: 'orders, books']]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="key" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The SpEL expression used for computing the cache key.]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="condition" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The SpEL expression used for conditioning the method caching.]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The method name(s) with which the cache attributes are to be
+       associated. The wildcard (*) character can be used to associate the
+       same cache attribute settings with a number of methods; for
+       example, 'get*', 'handle*', '*Order', 'on*Event', etc.]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               
+       </xsd:complexType>
+       
+       <xsd:complexType name="definitionsType">
+               <xsd:complexContent>
+                       <xsd:extension base="basedefinitionType">
+                               <xsd:sequence>
+                                 <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:element name="cacheable" minOccurs="0" maxOccurs="unbounded" type="basedefinitionType"/>
+                                       <xsd:element name="cache-put" minOccurs="0" maxOccurs="unbounded" type="basedefinitionType"/>                                   
+                                       <xsd:element name="cache-evict" minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:complexType>
+                                                       <xsd:complexContent>
+                                                               <xsd:extension base="basedefinitionType">
+                                                                       <xsd:attribute name="all-entries" type="xsd:boolean" use="optional">
+                                                                               <xsd:annotation>
+                                                                                       <xsd:documentation><![CDATA[
+       Whether all the entries should be evicted.]]></xsd:documentation>
+                                                                               </xsd:annotation>
+                                                                       </xsd:attribute>
+                                                                       <xsd:attribute name="before-invocation" type="xsd:boolean" use="optional">
+                                                                               <xsd:annotation>
+                                                                                       <xsd:documentation><![CDATA[
+       Whether the eviction should occur after the method is successfully 
+       invoked (default) or before.]]></xsd:documentation>
+                                                                               </xsd:annotation>
+                                                                       </xsd:attribute>
+                                                                       
+                                                               </xsd:extension>
+                                                       </xsd:complexContent>
+                                               </xsd:complexType>
+                                       </xsd:element>
+                                 </xsd:choice>                 
+                               </xsd:sequence>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-context-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-context-2.5.xsd
new file mode 100644 (file)
index 0000000..c5573a7
--- /dev/null
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/context" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/context" elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's application
+       context support. Effects the activation of various configuration styles
+       for the containing Spring ApplicationContext.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="property-placeholder">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates replacement of ${...} placeholders, resolved against the specified properties file or
+       Properties object (if any). Falls back to resolving placeholders against JVM system properties.
+       Alternatively, define a parameterized PropertyPlaceholderConfigurer bean in the context.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="location" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The location of the properties file to resolve placeholders against, as a Spring
+       resource location: a URL, a "classpath:" pseudo URL, or a relative file path.
+       Multiple locations may be specified, separated by commas. If neither location nor properties-ref is
+       specified, placeholders will be resolved against system properties.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="properties-ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:java.util.Properties"><![CDATA[
+       The bean name of a Java Properties object that will be used for property substitution.
+       If neither location nor properties-ref is specified, placeholders will be resolved against system properties.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-override">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates pushing of override values into bean properties, based on configuration
+       lines of the following format: beanName.property=value
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.beans.factory.config.PropertyOverrideConfigurer"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="location" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The location of the properties file to read property overrides from, as a Spring
+       resource location: a URL, a "classpath:" pseudo URL, or a relative file path.
+       Multiple locations may be specified, separated by commas.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="properties-ref" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:java.util.Properties"><![CDATA[
+       The bean name of a Java Properties object that will be used for property overrides.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates various annotations to be detected in bean classes: Spring's @Required and
+       @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available),
+       JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's
+       @PersistenceContext and @PersistenceUnit (if available). Alternatively, you may
+       choose to activate the individual BeanPostProcessors for those annotations.
+
+       Note: This tag does not activate processing of Spring's @Transactional or EJB3's
+       @TransactionAttribute annotation. Consider the use of the <tx:annotation-driven>
+       tag for that purpose.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="component-scan">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Scans the classpath for annotated components that will be auto-registered as 
+       Spring beans. By default, the Spring-provided @Component, @Repository, 
+       @Service, and @Controller stereotypes will be detected.
+
+       Note: This tag implies the effects of the 'annotation-config' tag, activating @Required,
+       @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit
+       annotations in the component classes, which is usually desired for autodetected components
+       (without external configuration). Turn off the 'annotation-config' attribute to deactivate
+       this default behavior, for example in order to use custom BeanPostProcessor definitions
+       for handling those annotations.
+
+       Note: You may use placeholders in package paths, but only resolved against system
+       properties (analogous to resource paths). A component scan results in new bean definition
+       being registered; Spring's PropertyPlaceholderConfigurer will apply to those bean
+       definitions just like to regular bean definitions, but it won't apply to the component
+       scan settings themselves.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include-filter" type="filterType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to include for component scanning.
+                                                       ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="exclude-filter" type="filterType" minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to exclude for component scanning.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="base-package" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The comma-separated list of packages to scan for annotated components.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="resource-pattern" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Controls the class files eligible for component detection. Defaults to "**/*.class", the recommended value.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="use-default-filters" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether automatic detection of classes annotated with @Component, @Repository, @Service,
+       or @Controller should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="annotation-config" type="xsd:boolean" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether the implicit annotation post-processors should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="name-generator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the BeanNameGenerator to be used for naming detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.beans.factory.support.BeanNameGenerator"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scope-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the ScopeMetadataResolver to be used for resolving the scope of
+       detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.context.annotation.ScopeMetadataResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scoped-proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether proxies should be generated for detected components, which may be necessary
+       when using scopes in a proxy-style fashion. Default is to generate no such proxies.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="no"/>
+                                               <xsd:enumeration value="interfaces"/>
+                                               <xsd:enumeration value="targetClass"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="load-time-weaver">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates a Spring LoadTimeWeaver for this application context, available as
+       a bean with the name "loadTimeWeaver". Any bean that implements the
+       LoadTimeWeaverAware interface will then receive the LoadTimeWeaver reference
+       automatically; for example, Spring's JPA bootstrap support.
+
+       The default weaver is determined automatically. As of Spring 2.5: detecting
+       Sun's GlassFish, Oracle's OC4J, Spring's VM agent and any ClassLoader
+       supported by Spring's ReflectiveLoadTimeWeaver (for example, the
+       TomcatInstrumentableClassLoader).
+
+       The activation of AspectJ load-time weaving is specified via a simple flag
+       (the 'aspectj-weaving' attribute), with the AspectJ class transformer
+       registered through Spring's LoadTimeWeaver. AspectJ weaving will be activated
+       by default if a "META-INF/aop.xml" resource is present in the classpath.
+
+       This also activates the current application context for applying dependency
+       injection to non-managed classes that are instantiated outside of the Spring
+       bean factory (typically classes annotated with the @Configurable annotation).
+       This will only happen if the AnnotationBeanConfigurerAspect is on the classpath
+       (i.e. spring-aspects.jar), effectively activating "spring-configured" by default.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.instrument.classloading.LoadTimeWeaver"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="weaver-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified classname of the LoadTimeWeaver that is to be activated.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.instrument.classloading.LoadTimeWeaver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="aspectj-weaving" default="autodetect">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="on">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving on.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="off">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="autodetect">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches AspectJ load-time weaving on if a "META-INF/aop.xml" resource
+       is present in the classpath. If there is no such resource, then AspectJ
+       load-time weaving will be switched off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="spring-configured">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect">
+                               <![CDATA[
+       Signals the current application context to apply dependency injection
+       to non-managed classes that are instantiated outside of the Spring bean
+       factory (typically classes annotated with the @Configurable annotation).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:simpleType>
+                       <xsd:restriction base="xsd:string"/>
+               </xsd:simpleType>
+       </xsd:element>
+
+       <xsd:element name="mbean-export">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jmx.export.annotation.AnnotationMBeanExporter"><![CDATA[
+       Activates default exporting of MBeans by detecting standard MBeans in the Spring
+       context as well as @ManagedResource annotations on Spring-defined beans.
+
+       The resulting MBeanExporter bean is defined under the name "mbeanExporter".
+       Alternatively, consider defining a custom AnnotationMBeanExporter bean explicitly.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jmx.export.annotation.AnnotationMBeanExporter"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="default-domain" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default domain to use when generating JMX ObjectNames.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="server" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name of the MBeanServer to which MBeans should be exported.
+       Default is to use the platform's default MBeanServer (autodetecting
+       WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="registration">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The registration behavior, indicating how to deal with existing MBeans
+       of the same name: fail with an exception, ignore and keep the existing
+       MBean, or replace the existing one with the new MBean.
+
+       Default is to fail with an exception.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="failOnExisting"/>
+                                               <xsd:enumeration value="ignoreExisting"/>
+                                               <xsd:enumeration value="replaceExisting"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="mbean-server">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jmx.support.MBeanServerFactoryBean"><![CDATA[
+       Exposes a default MBeanServer for the current platform.
+       Autodetects WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer.
+
+       The default bean name for the exposed MBeanServer is "mbeanServer".
+       This may be customized through specifying the "id" attribute.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="javax.management.MBeanServer"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="agent-id" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The agent id of the target MBeanServer, if any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="filterType">
+               <xsd:attribute name="type" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Controls the type of filtering to apply to the expression.
+
+    "annotation" indicates an annotation to be present at the type level in target components;
+    "assignable" indicates a class (or interface) that the target components are assignable to (extend/implement);
+    "aspectj" indicates an AspectJ type expression to be matched by the target components;
+    "regex" indicates a regex expression to be matched by the target components' class names;
+    "custom" indicates a custom implementation of the org.springframework.core.type.TypeFilter interface.
+
+    Note: This attribute will not be inherited by child bean definitions.
+    Hence, it needs to be specified per concrete bean definition.
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:string">
+                                       <xsd:enumeration value="annotation"/>
+                                       <xsd:enumeration value="assignable"/>
+                                       <xsd:enumeration value="aspectj"/>
+                                       <xsd:enumeration value="regex"/>
+                                       <xsd:enumeration value="custom"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="expression" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Indicates the filter expression, the type of which is indicated by "type".
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-context-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-context-3.0.xsd
new file mode 100644 (file)
index 0000000..bc3a1b7
--- /dev/null
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/context"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/context"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans"
+               schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool"
+               schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd" />
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's application
+       context support. Effects the activation of various configuration styles
+       for the containing Spring ApplicationContext.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:complexType name="propertyPlaceholder">
+               <xsd:attribute name="location" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The location of the properties file to resolve placeholders against, as a Spring
+       resource location: a URL, a "classpath:" pseudo URL, or a relative file path.
+       Multiple locations may be specified, separated by commas. If neither location nor properties-ref is
+       specified, placeholders will be resolved against system properties.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="properties-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.Properties"><![CDATA[
+       The bean name of a Java Properties object that will be used for property substitution.
+       If neither location nor properties-ref is specified, placeholders will be resolved against system properties.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="file-encoding" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies the encoding to use for parsing properties files.  Default is none,
+       using the java.util.Properties default encoding.  Only applies to classic
+       properties files, not to XML files.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:integer">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies the order for this placeholder configurer.  If more than one is present in a context
+       the order can be important since the first one to be match a placeholder will win.  Often used
+       in conjunction with
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ignore-resource-not-found" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies if failure to find the property resource location should be ignored.  Default
+       is "false", meaning that if there is no file in the location specified an exception will
+       be raised at runtime.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ignore-unresolvable" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies if failure to find the property value to replace a key should be ignored.  Default
+       is "false", meaning that this placeholder configurer will raise an exception if it cannot resolve
+       a key.  Set to "true" to allow the configurer to pass on the key to any others in
+       the context that have not yet visited the key in question.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="local-override" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies whether local properties override properties from files.  Default
+       is "false": Properties from files override local defaults.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="property-placeholder">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates replacement of ${...} placeholders, resolved against the specified properties file or
+       Properties object (if any). Falls back to resolving placeholders against JVM system properties.
+       Alternatively, define a parameterized PropertyPlaceholderConfigurer bean in the context.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propertyPlaceholder">
+                                       <xsd:attribute name="system-properties-mode" default="FALLBACK">
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="FALLBACK"/>
+                                                               <xsd:enumeration value="OVERRIDE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-override">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates pushing of override values into bean properties, based on configuration
+       lines of the following format: beanName.property=value
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.beans.factory.config.PropertyOverrideConfigurer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propertyPlaceholder" />
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates various annotations to be detected in bean classes: Spring's @Required and
+       @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available),
+       JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's
+       @PersistenceContext and @PersistenceUnit (if available). Alternatively, you may
+       choose to activate the individual BeanPostProcessors for those annotations.
+
+       Note: This tag does not activate processing of Spring's @Transactional or EJB3's
+       @TransactionAttribute annotation. Consider the use of the <tx:annotation-driven>
+       tag for that purpose.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="component-scan">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Scans the classpath for annotated components that will be auto-registered as 
+       Spring beans. By default, the Spring-provided @Component, @Repository, 
+       @Service, and @Controller stereotypes will be detected.
+
+       Note: This tag implies the effects of the 'annotation-config' tag, activating @Required,
+       @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit
+       annotations in the component classes, which is usually desired for autodetected components
+       (without external configuration). Turn off the 'annotation-config' attribute to deactivate
+       this default behavior, for example in order to use custom BeanPostProcessor definitions
+       for handling those annotations.
+
+       Note: You may use placeholders in package paths, but only resolved against system
+       properties (analogous to resource paths). A component scan results in new bean definition
+       being registered; Spring's PropertyPlaceholderConfigurer will apply to those bean
+       definitions just like to regular bean definitions, but it won't apply to the component
+       scan settings themselves.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include-filter" type="filterType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to include for component scanning.
+                                                       ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="exclude-filter" type="filterType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to exclude for component scanning.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="base-package" type="xsd:string"
+                               use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The comma-separated list of packages to scan for annotated components.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="resource-pattern" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Controls the class files eligible for component detection. Defaults to "**/*.class", the recommended value.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="use-default-filters" type="xsd:boolean"
+                               default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether automatic detection of classes annotated with @Component, @Repository, @Service,
+       or @Controller should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="annotation-config" type="xsd:boolean"
+                               default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether the implicit annotation post-processors should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="name-generator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the BeanNameGenerator to be used for naming detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.beans.factory.support.BeanNameGenerator" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scope-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the ScopeMetadataResolver to be used for resolving the scope of
+       detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.context.annotation.ScopeMetadataResolver" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scoped-proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether proxies should be generated for detected components, which may be necessary
+       when using scopes in a proxy-style fashion. Default is to generate no such proxies.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="no" />
+                                               <xsd:enumeration value="interfaces" />
+                                               <xsd:enumeration value="targetClass" />
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="load-time-weaver">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates a Spring LoadTimeWeaver for this application context, available as
+       a bean with the name "loadTimeWeaver". Any bean that implements the
+       LoadTimeWeaverAware interface will then receive the LoadTimeWeaver reference
+       automatically; for example, Spring's JPA bootstrap support.
+
+       The default weaver is determined automatically. As of Spring 2.5: detecting
+       Sun's GlassFish, Oracle's OC4J, Spring's VM agent and any ClassLoader
+       supported by Spring's ReflectiveLoadTimeWeaver (for example, the
+       TomcatInstrumentableClassLoader).
+
+       The activation of AspectJ load-time weaving is specified via a simple flag
+       (the 'aspectj-weaving' attribute), with the AspectJ class transformer
+       registered through Spring's LoadTimeWeaver. AspectJ weaving will be activated
+       by default if a "META-INF/aop.xml" resource is present in the classpath.
+
+       This also activates the current application context for applying dependency
+       injection to non-managed classes that are instantiated outside of the Spring
+       bean factory (typically classes annotated with the @Configurable annotation).
+       This will only happen if the AnnotationBeanConfigurerAspect is on the classpath
+       (i.e. spring-aspects.jar), effectively activating "spring-configured" by default.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.instrument.classloading.LoadTimeWeaver" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="weaver-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified classname of the LoadTimeWeaver that is to be activated.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.instrument.classloading.LoadTimeWeaver" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="aspectj-weaving" default="autodetect">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="on">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving on.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="off">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="autodetect">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches AspectJ load-time weaving on if a "META-INF/aop.xml" resource
+       is present in the classpath. If there is no such resource, then AspectJ
+       load-time weaving will be switched off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="spring-configured">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect">
+                               <![CDATA[
+       Signals the current application context to apply dependency injection
+       to non-managed classes that are instantiated outside of the Spring bean
+       factory (typically classes annotated with the @Configurable annotation).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:simpleType>
+                       <xsd:restriction base="xsd:string" />
+               </xsd:simpleType>
+       </xsd:element>
+
+       <xsd:element name="mbean-export">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.jmx.export.annotation.AnnotationMBeanExporter"><![CDATA[
+       Activates default exporting of MBeans by detecting standard MBeans in the Spring
+       context as well as @ManagedResource annotations on Spring-defined beans.
+
+       The resulting MBeanExporter bean is defined under the name "mbeanExporter".
+       Alternatively, consider defining a custom AnnotationMBeanExporter bean explicitly.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.jmx.export.annotation.AnnotationMBeanExporter" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="default-domain" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default domain to use when generating JMX ObjectNames.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="server" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name of the MBeanServer to which MBeans should be exported.
+       Default is to use the platform's default MBeanServer (autodetecting
+       WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="registration">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The registration behavior, indicating how to deal with existing MBeans
+       of the same name: fail with an exception, ignore and keep the existing
+       MBean, or replace the existing one with the new MBean.
+
+       Default is to fail with an exception.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="failOnExisting" />
+                                               <xsd:enumeration value="ignoreExisting" />
+                                               <xsd:enumeration value="replaceExisting" />
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="mbean-server">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.jmx.support.MBeanServerFactoryBean"><![CDATA[
+       Exposes a default MBeanServer for the current platform.
+       Autodetects WebLogic 9+, WebSphere 6.1+ and the JDK 1.5+ platform MBeanServer.
+
+       The default bean name for the exposed MBeanServer is "mbeanServer".
+       This may be customized through specifying the "id" attribute.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="javax.management.MBeanServer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="agent-id" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The agent id of the target MBeanServer, if any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="filterType">
+               <xsd:attribute name="type" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Controls the type of filtering to apply to the expression.
+
+    "annotation" indicates an annotation to be present at the type level in target components;
+    "assignable" indicates a class (or interface) that the target components are assignable to (extend/implement);
+    "aspectj" indicates an AspectJ type expression to be matched by the target components;
+    "regex" indicates a regex expression to be matched by the target components' class names;
+    "custom" indicates a custom implementation of the org.springframework.core.type.TypeFilter interface.
+
+    Note: This attribute will not be inherited by child bean definitions.
+    Hence, it needs to be specified per concrete bean definition.
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:string">
+                                       <xsd:enumeration value="annotation" />
+                                       <xsd:enumeration value="assignable" />
+                                       <xsd:enumeration value="aspectj" />
+                                       <xsd:enumeration value="regex" />
+                                       <xsd:enumeration value="custom" />
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="expression" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Indicates the filter expression, the type of which is indicated by "type".
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-context-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-context-3.1.xsd
new file mode 100644 (file)
index 0000000..b2132e4
--- /dev/null
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/context"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/context"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd" />
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's application
+       context support. Effects the activation of various configuration styles
+       for the containing Spring ApplicationContext.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:complexType name="propertyPlaceholder">
+               <xsd:attribute name="location" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The location of the properties file to resolve placeholders against, as a Spring
+       resource location: a URL, a "classpath:" pseudo URL, or a relative file path.
+       Multiple locations may be specified, separated by commas. If neither location nor properties-ref is
+       specified, placeholders will be resolved against system properties.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="properties-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation source="java:java.util.Properties"><![CDATA[
+       The bean name of a Java Properties object that will be used for property substitution.
+       If neither location nor properties-ref is specified, placeholders will be resolved against system properties.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="file-encoding" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies the encoding to use for parsing properties files.  Default is none,
+       using the java.util.Properties default encoding.  Only applies to classic
+       properties files, not to XML files.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="order" type="xsd:integer">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies the order for this placeholder configurer.  If more than one is present in a context
+       the order can be important since the first one to be match a placeholder will win.  Often used
+       in conjunction with
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ignore-resource-not-found" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies if failure to find the property resource location should be ignored.  Default
+       is "false", meaning that if there is no file in the location specified an exception will
+       be raised at runtime.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ignore-unresolvable" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies if failure to find the property value to replace a key should be ignored.  Default
+       is "false", meaning that this placeholder configurer will raise an exception if it cannot resolve
+       a key.  Set to "true" to allow the configurer to pass on the key to any others in
+       the context that have not yet visited the key in question.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="local-override" type="xsd:boolean"
+                       default="false">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Specifies whether local properties override properties from files.  Default
+       is "false": Properties from files override local defaults.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:element name="property-placeholder">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates replacement of ${...} placeholders by registering a
+       PropertySourcesPlaceholderConfigurer within the application context. Properties will
+       be resolved against the specified properties file or Properties object -- so called
+       "local properties", if any, and against the Spring Environment's current set of
+       PropertySources.
+
+       Note that as of Spring 3.1 the system-properties-mode attribute has been removed in
+       favor of the more flexible PropertySources mechanism. However, Spring 3.1-based
+       applications may continue to use the 3.0 (and older) versions of the spring-context
+       schema in order to preserve system-properties-mode behavior. In this case, the
+       traditional PropertyPlaceholderConfigurer component will be registered instead of the
+       new PropertySourcesPlaceholderConfigurer.
+
+       See ConfigurableEnvironment Javadoc for more information on using.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.context.support.PropertySourcesPlaceholderConfigurer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propertyPlaceholder">
+                                       <xsd:attribute name="system-properties-mode" default="ENVIRONMENT">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls how to resolve placeholders against system properties. As of Spring 3.1, this
+       attribute value defaults to "ENVIRONMENT", indicating that resolution of placeholders
+       against system properties is handled via PropertySourcesPlaceholderConfigurer and its
+       delegation to the current Spring Environment object.
+
+       For maximum backward compatibility, this attribute is preserved going forward with the
+       3.1 version of the context schema, and any values other than the default "ENVIRONMENT"
+       will cause a traditional PropertyPlaceholderConfigurer to be registered instead of the
+       newer PropertySourcesPlaceholderConfigurer variant. In this case, the Spring Environment
+       and its property sources are not interrogated when resolving placeholders. Users are
+       encouraged to consider this attribute deprecated, and to take advantage of
+       Environment/PropertySource mechanisms. See ConfigurableEnvironment Javadoc for examples.
+
+       "ENVIRONMENT" indicates placeholders should be resolved against the current Environment and against any local properties;
+       "NEVER" indicates placeholders should be resolved only against local properties and never against system properties;
+       "FALLBACK" indicates placeholders should be resolved against any local properties and then against system properties;
+       "OVERRIDE" indicates placeholders should be resolved first against system properties and then against any local properties;
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="ENVIRONMENT"/>
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="FALLBACK"/>
+                                                               <xsd:enumeration value="OVERRIDE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-override">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates pushing of override values into bean properties, based on configuration
+       lines of the following format: beanName.property=value
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.beans.factory.config.PropertyOverrideConfigurer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="propertyPlaceholder" />
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-config">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates various annotations to be detected in bean classes: Spring's @Required and
+       @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available),
+       JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's
+       @PersistenceContext and @PersistenceUnit (if available). Alternatively, you may
+       choose to activate the individual BeanPostProcessors for those annotations.
+
+       Note: This tag does not activate processing of Spring's @Transactional or EJB3's
+       @TransactionAttribute annotation. Consider the use of the <tx:annotation-driven>
+       tag for that purpose.
+
+       See Javadoc for org.springframework.context.annotation.AnnotationConfigApplicationContext
+       for information on code-based alternatives to bootstrapping annotation-driven support.
+       from XML.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="component-scan">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Scans the classpath for annotated components that will be auto-registered as
+       Spring beans. By default, the Spring-provided @Component, @Repository,
+       @Service, and @Controller stereotypes will be detected.
+
+       Note: This tag implies the effects of the 'annotation-config' tag, activating @Required,
+       @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit
+       annotations in the component classes, which is usually desired for autodetected components
+       (without external configuration). Turn off the 'annotation-config' attribute to deactivate
+       this default behavior, for example in order to use custom BeanPostProcessor definitions
+       for handling those annotations.
+
+       Note: You may use placeholders in package paths, but only resolved against system
+       properties (analogous to resource paths). A component scan results in new bean definition
+       being registered; Spring's PropertyPlaceholderConfigurer will apply to those bean
+       definitions just like to regular bean definitions, but it won't apply to the component
+       scan settings themselves.
+
+       See Javadoc for org.springframework.context.annotation.ComponentScan for information
+       on code-based alternatives to bootstrapping component-scanning.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="include-filter" type="filterType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to include for component scanning.
+                                                       ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="exclude-filter" type="filterType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls which eligible types to exclude for component scanning.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="base-package" type="xsd:string"
+                               use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The comma-separated list of packages to scan for annotated components.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="resource-pattern" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Controls the class files eligible for component detection. Defaults to "**/*.class", the recommended value.
+       Consider use of the include-filter and exclude-filter elements for a more fine-grained approach.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="use-default-filters" type="xsd:boolean"
+                               default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether automatic detection of classes annotated with @Component, @Repository, @Service,
+       or @Controller should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="annotation-config" type="xsd:boolean"
+                               default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether the implicit annotation post-processors should be enabled. Default is "true".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="name-generator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the BeanNameGenerator to be used for naming detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.beans.factory.support.BeanNameGenerator" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scope-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified class name of the ScopeMetadataResolver to be used for resolving the scope of
+       detected components.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.context.annotation.ScopeMetadataResolver" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scoped-proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Indicates whether proxies should be generated for detected components, which may be necessary
+       when using scopes in a proxy-style fashion. Default is to generate no such proxies.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="no" />
+                                               <xsd:enumeration value="interfaces" />
+                                               <xsd:enumeration value="targetClass" />
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="load-time-weaver">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Activates a Spring LoadTimeWeaver for this application context, available as
+       a bean with the name "loadTimeWeaver". Any bean that implements the
+       LoadTimeWeaverAware interface will then receive the LoadTimeWeaver reference
+       automatically; for example, Spring's JPA bootstrap support.
+
+       The default weaver is determined automatically. As of Spring 2.5: detecting
+       Sun's GlassFish, Oracle's OC4J, Spring's VM agent and any ClassLoader
+       supported by Spring's ReflectiveLoadTimeWeaver (for example, the
+       TomcatInstrumentableClassLoader).
+
+       The activation of AspectJ load-time weaving is specified via a simple flag
+       (the 'aspectj-weaving' attribute), with the AspectJ class transformer
+       registered through Spring's LoadTimeWeaver. AspectJ weaving will be activated
+       by default if a "META-INF/aop.xml" resource is present in the classpath.
+
+       This also activates the current application context for applying dependency
+       injection to non-managed classes that are instantiated outside of the Spring
+       bean factory (typically classes annotated with the @Configurable annotation).
+       This will only happen if the AnnotationBeanConfigurerAspect is on the classpath
+       (i.e. spring-aspects.jar), effectively activating "spring-configured" by default.
+
+       See Javadoc for org.springframework.context.annotation.EnableLoadTimeWeaving
+       for information on code-based alternatives to bootstrapping load-time weaving support.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.instrument.classloading.LoadTimeWeaver" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="weaver-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The fully-qualified classname of the LoadTimeWeaver that is to be activated.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class" />
+                                                       <tool:assignable-to
+                                                               type="org.springframework.instrument.classloading.LoadTimeWeaver" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="aspectj-weaving" default="autodetect">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="on">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving on.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="off">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches Spring-based AspectJ load-time weaving off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="autodetect">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Switches AspectJ load-time weaving on if a "META-INF/aop.xml" resource
+       is present in the classpath. If there is no such resource, then AspectJ
+       load-time weaving will be switched off.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="spring-configured">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect">
+                               <![CDATA[
+       Signals the current application context to apply dependency injection
+       to non-managed classes that are instantiated outside of the Spring bean
+       factory (typically classes annotated with the @Configurable annotation).
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:simpleType>
+                       <xsd:restriction base="xsd:string" />
+               </xsd:simpleType>
+       </xsd:element>
+
+       <xsd:element name="mbean-export">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.jmx.export.annotation.AnnotationMBeanExporter"><![CDATA[
+       Activates default exporting of MBeans by detecting standard MBeans in the Spring
+       context as well as @ManagedResource annotations on Spring-defined beans.
+
+       The resulting MBeanExporter bean is defined under the name "mbeanExporter".
+       Alternatively, consider defining a custom AnnotationMBeanExporter bean explicitly.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports
+                                               type="org.springframework.jmx.export.annotation.AnnotationMBeanExporter" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="default-domain" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The default domain to use when generating JMX ObjectNames.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="server" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name of the MBeanServer to which MBeans should be exported.
+       Default is to use the platform's default MBeanServer (autodetecting
+       WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="registration">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The registration behavior, indicating how to deal with existing MBeans
+       of the same name: fail with an exception, ignore and keep the existing
+       MBean, or replace the existing one with the new MBean.
+
+       Default is to fail with an exception.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="failOnExisting" />
+                                               <xsd:enumeration value="ignoreExisting" />
+                                               <xsd:enumeration value="replaceExisting" />
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="mbean-server">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.jmx.support.MBeanServerFactoryBean"><![CDATA[
+       Exposes a default MBeanServer for the current platform.
+       Autodetects WebLogic 9+, WebSphere 6.1+ and the JDK 1.5+ platform MBeanServer.
+
+       The default bean name for the exposed MBeanServer is "mbeanServer".
+       This may be customized through specifying the "id" attribute.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="javax.management.MBeanServer" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="agent-id" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The agent id of the target MBeanServer, if any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="filterType">
+               <xsd:attribute name="type" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Controls the type of filtering to apply to the expression.
+
+    "annotation" indicates an annotation to be present at the type level in target components;
+    "assignable" indicates a class (or interface) that the target components are assignable to (extend/implement);
+    "aspectj" indicates an AspectJ type expression to be matched by the target components;
+    "regex" indicates a regex expression to be matched by the target components' class names;
+    "custom" indicates a custom implementation of the org.springframework.core.type.TypeFilter interface.
+
+    Note: This attribute will not be inherited by child bean definitions.
+    Hence, it needs to be specified per concrete bean definition.
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:string">
+                                       <xsd:enumeration value="annotation" />
+                                       <xsd:enumeration value="assignable" />
+                                       <xsd:enumeration value="aspectj" />
+                                       <xsd:enumeration value="regex" />
+                                       <xsd:enumeration value="custom" />
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+               <xsd:attribute name="expression" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+    Indicates the filter expression, the type of which is indicated by "type".
+                ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jdbc-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-jdbc-3.0.xsd
new file mode 100644 (file)
index 0000000..72c8960
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns="http://www.springframework.org/schema/jdbc"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/jdbc"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans"
+               schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool"
+               schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd" />
+
+       <xsd:element name="embedded-database">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean"><![CDATA[
+       Creates an embedded database instance and makes it available to other beans as a javax.sql.DataSource.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="javax.sql.DataSource"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="script" type="scriptType" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                       A SQL script to execute during embedded database initialization.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="type" type="databaseType" default="HSQL">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+                       The type of embedded database to create, such as HSQL, H2 or Derby. Defaults to HSQL.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="initialize-database">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jdbc.datasource.init.DataSourceInitializer"><![CDATA[
+       Initializes a database instance with SQL scripts provided in nested <script/> elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="script" type="scriptType" minOccurs="1" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+                       A SQL script to execute during database initialization.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="data-source" type="xsd:string" default="dataSource">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       A reference to a data source that should be initialized. Defaults to "dataSource".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref"/>
+                                               <tool:expected-type type="javax.sql.DataSource"/>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="enabled" type="xsd:string" use="optional" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               Is this bean "enabled", meaning the scripts will be executed?
+                                               Defaults to true, but can be used to switch on and off the initialization depending on the environment.
+                                       </xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ignore-failures" use="optional" default="NONE">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               Should failed SQL statements be ignored during initialization?
+                                       </xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="NONE">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Do not ignore failures (the default)
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="DROPS">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Ignore failed DROP statements
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="ALL">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Ignore all failures
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="scriptType">
+               <xsd:attribute name="location" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The resource location of an SQL script to execute. Can be a single script location or a pattern (e.g. classpath:/com/foo/sql/*-data.sql).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="databaseType">
+               <xsd:restriction base="xsd:string">
+                       <xsd:enumeration value="HSQL">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       Hyper SQL Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+                       <xsd:enumeration value="H2">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       H2 Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+                       <xsd:enumeration value="DERBY">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       Derby Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jdbc-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-jdbc-3.1.xsd
new file mode 100644 (file)
index 0000000..cc1fb60
--- /dev/null
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns="http://www.springframework.org/schema/jdbc"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/jdbc"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans"
+               schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool"
+               schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd" />
+
+       <xsd:element name="embedded-database">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean"><![CDATA[
+       Creates an embedded database instance and makes it available to other beans as a javax.sql.DataSource.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="javax.sql.DataSource"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="script" type="scriptType" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                       A SQL script to execute during embedded database initialization.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="type" type="databaseType" default="HSQL">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+                       The type of embedded database to create, such as HSQL, H2 or Derby. Defaults to HSQL.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="initialize-database">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jdbc.datasource.init.DataSourceInitializer"><![CDATA[
+       Initializes a database instance with SQL scripts provided in nested <script/> elements.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="script" type="scriptType" minOccurs="1" maxOccurs="unbounded">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+                       A SQL script to execute during database initialization.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                       </xsd:sequence>
+                       <xsd:attribute name="data-source" type="xsd:string" default="dataSource">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       A reference to a data source that should be initialized. Defaults to "dataSource".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref"/>
+                                               <tool:expected-type type="javax.sql.DataSource"/>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="enabled" type="xsd:string" use="optional" default="true">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               Is this bean "enabled", meaning the scripts will be executed?
+                                               Defaults to true, but can be used to switch on and off the initialization depending on the environment.
+                                       </xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ignore-failures" use="optional" default="NONE">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               Should failed SQL statements be ignored during initialization?
+                                       </xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="NONE">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Do not ignore failures (the default)
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="DROPS">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Ignore failed DROP statements
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                               <xsd:enumeration value="ALL">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+                                               Ignore all failures
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:enumeration>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="scriptType">
+               <xsd:attribute name="location" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The resource location of an SQL script to execute. Can be a single script location or a pattern (e.g. classpath:/com/foo/sql/*-data.sql).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="encoding" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The encoding for SQL scripts, if different from the platform encoding.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="separator" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The statement separator in the script (the default is to use ';' if it is present in the script, or '\n' otherwise).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="execution">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Indicate the timing of the execution of this script. Use INIT to execute on startup (as a bean initialization) and DESTROY to execute on shutdown (as a bean destruction callback).
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:string">
+                                       <xsd:enumeration value="INIT"/>
+                                       <xsd:enumeration value="DESTROY"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:simpleType name="databaseType">
+               <xsd:restriction base="xsd:string">
+                       <xsd:enumeration value="HSQL">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       Hyper SQL Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+                       <xsd:enumeration value="H2">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       H2 Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+                       <xsd:enumeration value="DERBY">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+                       Derby Java Database Engine
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:enumeration>
+               </xsd:restriction>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jee-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-jee-2.0.xsd
new file mode 100644 (file)
index 0000000..89dc353
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jee"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jee"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used to configure various Java EE (J2EE) related
+       technologies such as JNDI lookups and EJBs.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="jndi-lookup">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jndi.JndiObjectFactoryBean"><![CDATA[
+       Exposes an object reference via a JNDI lookup.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="jndiLocatingType">
+                                       <xsd:attribute name="cache" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the object returned from the JNDI lookup is cached
+       after the first lookup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="expected-type" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The type that the located JNDI object is supposed to be assignable
+       to, if indeed any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="lookup-on-startup" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the JNDI lookup is performed immediately on startup
+       (if true, the default), or on first access (if false).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="proxy-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The proxy interface to use for the JNDI object.
+
+       Needs to be specified because the actual JNDI object type is not
+       known in advance in case of a lazy lookup.
+
+       Typically used in conjunction with "lookupOnStartup"=false and/or
+       "cache"=false.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="local-slsb" type="ejbType">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a local EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="remote-slsb">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a remote EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="ejbType">
+                                       <xsd:attribute name="home-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The home interface that will be narrowed to before performing
+       the parameterless SLSB create() call that returns the actual
+       SLSB proxy.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="refresh-home-on-connect-failure" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to refresh the EJB home on connect failure.
+
+       Can be turned on to allow for hot restart of the EJB server.
+       If a cached EJB home throws an RMI exception that indicates a
+       remote connect failure, a fresh home will be fetched and the
+       invocation will be retried.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- base types -->
+       <xsd:complexType name="jndiLocatingType" abstract="true">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="environment" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The newline-separated, key-value pairs for the JNDI environment
+       (in standard Properties format, namely 'key=value' pairs)
+                                                ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string"/>
+                                               </xsd:simpleType>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="environment-ref" type="environmentRefType">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A reference to JNDI environment properties, indicating the name of a
+       shared bean of type [java.util.Properties}.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="jndi-name" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The JNDI name to look up. This needs to be the fully-qualified JNDI
+       path unless the "resource-ref" attributes is set to "true" in which
+       case the prefix "java:comp/env/" will be prepended if applicable.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="resource-ref" type="xsd:boolean">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup occurs in a J2EE container, i.e. if the
+       prefix "java:comp/env/" needs to be added if the JNDI name doesn't
+       already contain it. Default is "false".
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="ejbType">
+               <xsd:complexContent>
+                       <xsd:extension base="jndiLocatingType">
+                               <xsd:attribute name="lookup-home-on-startup" type="xsd:boolean">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup of the EJB home object is performed
+       immediately on startup (if true, the default), or on first access
+       (if false).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="cache-home" type="xsd:boolean">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the EJB home object is cached once it has been located.
+       On by default; turn this flag off to always reobtain fresh home objects.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="business-interface" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The business interface of the EJB being proxied.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:simpleType name="environmentRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jee-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-jee-2.5.xsd
new file mode 100644 (file)
index 0000000..f7bbed1
--- /dev/null
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jee"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jee"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines configuration elements for access to traditional Java EE components
+       such as JNDI resources and EJB session beans.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="jndi-lookup">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jndi.JndiObjectFactoryBean"><![CDATA[
+       Exposes an object reference via a JNDI lookup.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="jndiLocatingType">
+                                       <xsd:attribute name="cache" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the object returned from the JNDI lookup is cached
+       after the first lookup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="expected-type" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The type that the located JNDI object is supposed to be assignable
+       to, if indeed any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="lookup-on-startup" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the JNDI lookup is performed immediately on startup
+       (if true, the default), or on first access (if false).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="proxy-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The proxy interface to use for the JNDI object.
+       
+       Needs to be specified because the actual JNDI object type is not
+       known in advance in case of a lazy lookup.
+       
+       Typically used in conjunction with "lookupOnStartup"=false and/or
+       "cache"=false.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-value" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default literal value to fall back to if the JNDI lookup fails.
+       This is typically used for literal values in scenarios where the JNDI environment
+       might define specific config settings but those are not required to be present.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-ref" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default bean reference to fall back to if the JNDI lookup fails.
+       This might for example point to a local fallback DataSource.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="local-slsb" type="ejbType">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a local EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="remote-slsb">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a remote EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="ejbType">
+                                       <xsd:attribute name="home-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The home interface that will be narrowed to before performing
+       the parameterless SLSB create() call that returns the actual
+       SLSB proxy.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="refresh-home-on-connect-failure" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to refresh the EJB home on connect failure.
+       
+       Can be turned on to allow for hot restart of the EJB server.
+       If a cached EJB home throws an RMI exception that indicates a
+       remote connect failure, a fresh home will be fetched and the
+       invocation will be retried.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="cache-session-bean" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to cache the actual session bean object.
+
+       Off by default for standard EJB compliance. Turn this flag
+       on to optimize session bean access for servers that are
+       known to allow for caching the actual session bean object.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- base types -->
+       <xsd:complexType name="jndiLocatingType" abstract="true">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="environment" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The newline-separated, key-value pairs for the JNDI environment
+       (in standard Properties format, namely 'key=value' pairs)
+                                                ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string"/>
+                                               </xsd:simpleType>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="environment-ref" type="environmentRefType">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A reference to JNDI environment properties, indicating the name of a
+       shared bean of type [java.util.Properties}.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="jndi-name" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The JNDI name to look up. This may be a fully-qualified JNDI path
+       or a local Java EE environment naming context path in which case the
+       prefix "java:comp/env/" will be prepended if applicable.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="resource-ref" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup occurs in a Java EE container, i.e. if the
+       prefix "java:comp/env/" needs to be added if the JNDI name doesn't
+       already contain it. Default is "true" (since Spring 2.5).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="expose-access-context" type="xsd:boolean" default="false">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Set whether to expose the JNDI environment context for all access to the target
+       EJB, i.e. for all method invocations on the exposed object reference.
+       Default is "false", i.e. to only expose the JNDI context for object lookup.
+
+       Switch this flag to "true" in order to expose the JNDI environment (including
+       the authorization context) for each EJB invocation, as needed by WebLogic
+       for EJBs with authorization requirements.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="ejbType">
+               <xsd:complexContent>
+                       <xsd:extension base="jndiLocatingType">
+                               <xsd:attribute name="lookup-home-on-startup" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup of the EJB home object is performed
+       immediately on startup (if true, the default), or on first access
+       (if false).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="cache-home" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the EJB home object is cached once it has been located.
+       On by default; turn this flag off to always reobtain fresh home objects.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="business-interface" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The business interface of the EJB being proxied.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:simpleType name="environmentRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jee-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-jee-3.0.xsd
new file mode 100644 (file)
index 0000000..1267917
--- /dev/null
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jee"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jee"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines configuration elements for access to traditional Java EE components
+       such as JNDI resources and EJB session beans.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="jndi-lookup">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jndi.JndiObjectFactoryBean"><![CDATA[
+       Exposes an object reference via a JNDI lookup.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="jndiLocatingType">
+                                       <xsd:attribute name="cache" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the object returned from the JNDI lookup is cached
+       after the first lookup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="expected-type" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The type that the located JNDI object is supposed to be assignable
+       to, if indeed any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="lookup-on-startup" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the JNDI lookup is performed immediately on startup
+       (if true, the default), or on first access (if false).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="proxy-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The proxy interface to use for the JNDI object.
+       
+       Needs to be specified because the actual JNDI object type is not
+       known in advance in case of a lazy lookup.
+       
+       Typically used in conjunction with "lookupOnStartup"=false and/or
+       "cache"=false.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-value" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default literal value to fall back to if the JNDI lookup fails.
+       This is typically used for literal values in scenarios where the JNDI environment
+       might define specific config settings but those are not required to be present.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-ref" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default bean reference to fall back to if the JNDI lookup fails.
+       This might for example point to a local fallback DataSource.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="local-slsb" type="ejbType">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a local EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="remote-slsb">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a remote EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="ejbType">
+                                       <xsd:attribute name="home-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The home interface that will be narrowed to before performing
+       the parameterless SLSB create() call that returns the actual
+       SLSB proxy.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="refresh-home-on-connect-failure" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to refresh the EJB home on connect failure.
+       
+       Can be turned on to allow for hot restart of the EJB server.
+       If a cached EJB home throws an RMI exception that indicates a
+       remote connect failure, a fresh home will be fetched and the
+       invocation will be retried.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="cache-session-bean" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to cache the actual session bean object.
+
+       Off by default for standard EJB compliance. Turn this flag
+       on to optimize session bean access for servers that are
+       known to allow for caching the actual session bean object.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- base types -->
+       <xsd:complexType name="jndiLocatingType" abstract="true">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="environment" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The newline-separated, key-value pairs for the JNDI environment
+       (in standard Properties format, namely 'key=value' pairs)
+                                                ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string"/>
+                                               </xsd:simpleType>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="environment-ref" type="environmentRefType">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A reference to JNDI environment properties, indicating the name of a
+       shared bean of type [java.util.Properties}.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="jndi-name" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The JNDI name to look up. This may be a fully-qualified JNDI path
+       or a local Java EE environment naming context path in which case the
+       prefix "java:comp/env/" will be prepended if applicable.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="resource-ref" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup occurs in a Java EE container, i.e. if the
+       prefix "java:comp/env/" needs to be added if the JNDI name doesn't
+       already contain it. Default is "true" (since Spring 2.5).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="expose-access-context" type="xsd:boolean" default="false">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Set whether to expose the JNDI environment context for all access to the target
+       EJB, i.e. for all method invocations on the exposed object reference.
+       Default is "false", i.e. to only expose the JNDI context for object lookup.
+
+       Switch this flag to "true" in order to expose the JNDI environment (including
+       the authorization context) for each EJB invocation, as needed by WebLogic
+       for EJBs with authorization requirements.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="ejbType">
+               <xsd:complexContent>
+                       <xsd:extension base="jndiLocatingType">
+                               <xsd:attribute name="lookup-home-on-startup" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup of the EJB home object is performed
+       immediately on startup (if true, the default), or on first access
+       (if false).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="cache-home" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the EJB home object is cached once it has been located.
+       On by default; turn this flag off to always reobtain fresh home objects.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="business-interface" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The business interface of the EJB being proxied.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:simpleType name="environmentRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jee-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-jee-3.1.xsd
new file mode 100644 (file)
index 0000000..014077d
--- /dev/null
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jee"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jee"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines configuration elements for access to traditional Java EE components
+       such as JNDI resources and EJB session beans.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="jndi-lookup">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.jndi.JndiObjectFactoryBean"><![CDATA[
+       Exposes an object reference via a JNDI lookup.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="jndiLocatingType">
+                                       <xsd:attribute name="cache" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the object returned from the JNDI lookup is cached
+       after the first lookup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="expected-type" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The type that the located JNDI object is supposed to be assignable
+       to, if indeed any.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="lookup-on-startup" type="xsd:boolean" default="true">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether the JNDI lookup is performed immediately on startup
+       (if true, the default), or on first access (if false).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="proxy-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The proxy interface to use for the JNDI object.
+
+       Needs to be specified because the actual JNDI object type is not
+       known in advance in case of a lazy lookup.
+
+       Typically used in conjunction with "lookupOnStartup"=false and/or
+       "cache"=false.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-value" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default literal value to fall back to if the JNDI lookup fails.
+       This is typically used for literal values in scenarios where the JNDI environment
+       might define specific config settings but those are not required to be present.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="default-ref" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specify a default bean reference to fall back to if the JNDI lookup fails.
+       This might for example point to a local fallback DataSource.
+
+       Default is none. Note: This is only supported for lookup on startup.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="local-slsb" type="ejbType">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.LocalStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a local EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="remote-slsb">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean"><![CDATA[
+       Exposes a reference to a remote EJB Stateless SessionBean.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="ejbType">
+                                       <xsd:attribute name="home-interface" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The home interface that will be narrowed to before performing
+       the parameterless SLSB create() call that returns the actual
+       SLSB proxy.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="refresh-home-on-connect-failure" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to refresh the EJB home on connect failure.
+
+       Can be turned on to allow for hot restart of the EJB server.
+       If a cached EJB home throws an RMI exception that indicates a
+       remote connect failure, a fresh home will be fetched and the
+       invocation will be retried.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="cache-session-bean" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Controls whether to cache the actual session bean object.
+
+       Off by default for standard EJB compliance. Turn this flag
+       on to optimize session bean access for servers that are
+       known to allow for caching the actual session bean object.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- base types -->
+       <xsd:complexType name="jndiLocatingType" abstract="true">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="environment" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The newline-separated, key-value pairs for the JNDI environment
+       (in standard Properties format, namely 'key=value' pairs)
+                                                ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string"/>
+                                               </xsd:simpleType>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="environment-ref" type="environmentRefType">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       A reference to JNDI environment properties, indicating the name of a
+       shared bean of type [java.util.Properties}.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="jndi-name" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The JNDI name to look up. This may be a fully-qualified JNDI path
+       or a local Java EE environment naming context path in which case the
+       prefix "java:comp/env/" will be prepended if applicable.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="resource-ref" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup occurs in a Java EE container, i.e. if the
+       prefix "java:comp/env/" needs to be added if the JNDI name doesn't
+       already contain it. Default is "true" (since Spring 2.5).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="expose-access-context" type="xsd:boolean" default="false">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Set whether to expose the JNDI environment context for all access to the target
+       EJB, i.e. for all method invocations on the exposed object reference.
+       Default is "false", i.e. to only expose the JNDI context for object lookup.
+
+       Switch this flag to "true" in order to expose the JNDI environment (including
+       the authorization context) for each EJB invocation, as needed by WebLogic
+       for EJBs with authorization requirements.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="lazy-init" default="default" type="beans:defaultable-boolean">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Indicates whether or not this bean is to be lazily initialized.
+       If false, it will be instantiated on startup by bean factories
+       that perform eager initialization of singletons. The default is
+       "false".
+       
+       Note: This attribute will not be inherited by child bean definitions.
+       Hence, it needs to be specified per concrete bean definition.
+                                       ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="ejbType">
+               <xsd:complexContent>
+                       <xsd:extension base="jndiLocatingType">
+                               <xsd:attribute name="lookup-home-on-startup" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the lookup of the EJB home object is performed
+       immediately on startup (if true, the default), or on first access
+       (if false).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="cache-home" type="xsd:boolean" default="true">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Controls whether the EJB home object is cached once it has been located.
+       On by default; turn this flag off to always reobtain fresh home objects.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="business-interface" type="xsd:string" use="required">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The business interface of the EJB being proxied.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:simpleType name="environmentRefType">
+               <xsd:annotation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="ref">
+                                       <tool:expected-type type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jms-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-jms-2.5.xsd
new file mode 100644 (file)
index 0000000..7d50cd1
--- /dev/null
@@ -0,0 +1,439 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jms"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jms"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's JMS support.
+       Allows for configuring JMS listener containers in XML 'shortcut' style.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JMS
+       listener containers, operating against a specified JMS ConnectionFactory.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                               </tool:annotation>      
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="container-type" default="default">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The type of this listener container: "default" or "simple", choosing
+       between DefaultMessageListenerContainer and SimpleMessageListenerContainer.
+       The "102" suffix adapts to a JMS provider that implements JMS 1.0.2 only.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="default"/>
+                                               <xsd:enumeration value="default102"/>
+                                               <xsd:enumeration value="simple"/>
+                                               <xsd:enumeration value="simple102"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="container-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A custom listener container implementation class as fully qualified class name.
+       Default is Spring's standard DefaultMessageListenerContainer or
+       SimpleMessageListenerContainer, according to the "container-type" attribute.
+       Note that a custom container class will typically be a subclass of either of
+       those two Spring-provided standard container classes: Nake sure that the
+       "container-type" attribute matches the actual base type that the custom class
+       derives from ("default" will usually be fine anyway, since most custom classes
+       will derive from DefaultMessageListenerContainer).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="connection-factory" type="xsd:string" default="connectionFactory">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JMS ConnectionFactory bean.
+       Default is "connectionFactory".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.jms.ConnectionFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="task-executor" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the Spring TaskExecutor for the JMS listener invokers.
+       Default is a SimpleAsyncTaskExecutor, using internally managed threads.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.core.task.TaskExecutor"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is a DynamicDestinationResolver, using the JMS provider's queue/topic
+       name resolution. Alternatively, specify a reference to a JndiDestinationResolver
+       (typically in a J2EE environment).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       The default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="cache" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The cache level for JMS resources: "none", "connection", "session", "consumer"
+       or "auto". By default ("auto"), the cache level will effectively be "consumer",
+       unless an external transaction manager has been specified - in which case the
+       effective default will be "none" (assuming J2EE-style transaction management
+       where the given ConnectionFactory is an XA-aware pool).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="none"/>
+                                               <xsd:enumeration value="connection"/>
+                                               <xsd:enumeration value="session"/>
+                                               <xsd:enumeration value="consumer"/>
+                                               <xsd:enumeration value="auto"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to an external PlatformTransactionManager (typically an
+       XA-based transaction coordinator, e.g. Spring's JtaTransactionManager).
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and might be ignored at runtime.
+       Default is 1; keep concurrency limited to 1 in case of a topic listener
+       or if message ordering is important; consider raising it for general queues.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+       
+       <xsd:element name="jca-listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JCA-based
+       listener containers, operating against a specified JCA ResourceAdapter
+       (which needs to be provided by the JMS message broker, e.g. ActiveMQ).
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="resource-adapter" type="xsd:string" default="resourceAdapter">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JCA ResourceAdapter bean for the JMS provider.
+       Default is "resourceAdapter".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.resource.spi.ResourceAdapter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="activation-spec-factory" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JmsActivationSpecFactory.
+       Default is to autodetect the JMS provider and its ActivationSpec class
+       (see DefaultJmsActivationSpecFactory).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.listener.endpoint.JmsActivationSpecFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is to pass in the destination name Strings into the JCA ActivationSpec as-is.
+       Alternatively, specify a reference to a JndiDestinationResolver (typically in a J2EE
+       environment, in particular if the server insists on receiving Destination objects).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       Default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the Spring JtaTransactionManager or [javax.transaction.TransactionManager],
+       for kicking off an XA transaction for each incoming message.
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref"/>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and will typically be ignored
+       at runtime when using a JCA listener container. Default is 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="listenerType">
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destination" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The destination name for this listener, resolved through the
+       container-wide DestinationResolver strategy (if any). Required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="subscription" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name for the durable subscription, if any.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="selector" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The JMS message selector for this listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The bean name of the listener object, implementing
+       the MessageListener/SessionAwareMessageListener interface
+       or defining the specified listener method. Required.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the listener method to invoke. If not specified,
+       the target bean is supposed to implement the MessageListener
+       or SessionAwareMessageListener interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="response-destination" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the default response destination to send response messages to.
+       This will be applied in case of a request message that does not carry
+       a "JMSReplyTo" field. The type of this destination will be determined
+       by the listener-container's "destination-type" attribute.
+       Note: This only applies to a listener method with a return value,
+       for which each result object will be converted into a response message.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+       
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jms-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-jms-3.0.xsd
new file mode 100644 (file)
index 0000000..fa50a57
--- /dev/null
@@ -0,0 +1,472 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jms"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jms"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's JMS support.
+       Allows for configuring JMS listener containers in XML 'shortcut' style.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JMS
+       listener containers, operating against a specified JMS ConnectionFactory.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                               </tool:annotation>      
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="container-type" default="default">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The type of this listener container: "default" or "simple", choosing
+       between DefaultMessageListenerContainer and SimpleMessageListenerContainer.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="default"/>
+                                               <xsd:enumeration value="simple"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="container-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A custom listener container implementation class as fully qualified class name.
+       Default is Spring's standard DefaultMessageListenerContainer or
+       SimpleMessageListenerContainer, according to the "container-type" attribute.
+       Note that a custom container class will typically be a subclass of either of
+       those two Spring-provided standard container classes: Nake sure that the
+       "container-type" attribute matches the actual base type that the custom class
+       derives from ("default" will usually be fine anyway, since most custom classes
+       will derive from DefaultMessageListenerContainer).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="connection-factory" type="xsd:string" default="connectionFactory">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JMS ConnectionFactory bean.
+       Default is "connectionFactory".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.jms.ConnectionFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="task-executor" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to a Spring TaskExecutor (or standard JDK 1.5 Executor) for executing
+       JMS listener invokers. Default is a SimpleAsyncTaskExecutor in case of a
+       DefaultMessageListenerContainer, using internally managed threads. For a
+       SimpleMessageListenerContainer, listeners will always get invoked within the
+       JMS provider's receive thread by default.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java.util.concurrent.Executor"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is a DynamicDestinationResolver, using the JMS provider's queue/topic
+       name resolution. Alternatively, specify a reference to a JndiDestinationResolver
+       (typically in a J2EE environment).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="error-handler" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to an ErrorHandler strategy for handling any uncaught Exceptions
+       that may occur during the execution of the MessageListener.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.util.ErrorHandler"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       The default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="cache" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The cache level for JMS resources: "none", "connection", "session", "consumer"
+       or "auto". By default ("auto"), the cache level will effectively be "consumer",
+       unless an external transaction manager has been specified - in which case the
+       effective default will be "none" (assuming J2EE-style transaction management
+       where the given ConnectionFactory is an XA-aware pool).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="none"/>
+                                               <xsd:enumeration value="connection"/>
+                                               <xsd:enumeration value="session"/>
+                                               <xsd:enumeration value="consumer"/>
+                                               <xsd:enumeration value="auto"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to an external PlatformTransactionManager (typically an
+       XA-based transaction coordinator, e.g. Spring's JtaTransactionManager).
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and might be ignored at runtime.
+       Default is 1; keep concurrency limited to 1 in case of a topic listener
+       or if message ordering is important; consider raising it for general queues.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="phase" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The lifecycle phase within which this container should start and stop. The lower
+       the value the earlier this container will start and the later it will stop. The
+       default is Integer.MAX_VALUE meaning the container will start as late as possible
+       and stop as soon as possible.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+       
+       <xsd:element name="jca-listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JCA-based
+       listener containers, operating against a specified JCA ResourceAdapter
+       (which needs to be provided by the JMS message broker, e.g. ActiveMQ).
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="resource-adapter" type="xsd:string" default="resourceAdapter">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JCA ResourceAdapter bean for the JMS provider.
+       Default is "resourceAdapter".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.resource.spi.ResourceAdapter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="activation-spec-factory" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JmsActivationSpecFactory.
+       Default is to autodetect the JMS provider and its ActivationSpec class
+       (see DefaultJmsActivationSpecFactory).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.listener.endpoint.JmsActivationSpecFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is to pass in the destination name Strings into the JCA ActivationSpec as-is.
+       Alternatively, specify a reference to a JndiDestinationResolver (typically in a J2EE
+       environment, in particular if the server insists on receiving Destination objects).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       Default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the Spring JtaTransactionManager or [javax.transaction.TransactionManager],
+       for kicking off an XA transaction for each incoming message.
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref"/>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and will typically be ignored
+       at runtime when using a JCA listener container. Default is 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="phase" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The lifecycle phase within which this container should start and stop. The lower
+       the value the earlier this container will start and the later it will stop. The
+       default is Integer.MAX_VALUE meaning the container will start as late as possible
+       and stop as soon as possible.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="listenerType">
+               <xsd:attribute name="id" type="xsd:ID">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destination" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The destination name for this listener, resolved through the
+       container-wide DestinationResolver strategy (if any). Required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="subscription" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name for the durable subscription, if any.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="selector" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The JMS message selector for this listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The bean name of the listener object, implementing
+       the MessageListener/SessionAwareMessageListener interface
+       or defining the specified listener method. Required.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the listener method to invoke. If not specified,
+       the target bean is supposed to implement the MessageListener
+       or SessionAwareMessageListener interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="response-destination" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the default response destination to send response messages to.
+       This will be applied in case of a request message that does not carry
+       a "JMSReplyTo" field. The type of this destination will be determined
+       by the listener-container's "destination-type" attribute.
+       Note: This only applies to a listener method with a return value,
+       for which each result object will be converted into a response message.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+       
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-jms-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-jms-3.1.xsd
new file mode 100644 (file)
index 0000000..08f9d63
--- /dev/null
@@ -0,0 +1,480 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/jms"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/jms"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the configuration elements for the Spring Framework's JMS support.
+       Allows for configuring JMS listener containers in XML 'shortcut' style.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JMS
+       listener containers, operating against a specified JMS ConnectionFactory.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="container-type" default="default">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The type of this listener container: "default" or "simple", choosing
+       between DefaultMessageListenerContainer and SimpleMessageListenerContainer.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="default"/>
+                                               <xsd:enumeration value="simple"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="container-class" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A custom listener container implementation class as fully qualified class name.
+       Default is Spring's standard DefaultMessageListenerContainer or
+       SimpleMessageListenerContainer, according to the "container-type" attribute.
+       Note that a custom container class will typically be a subclass of either of
+       those two Spring-provided standard container classes: Nake sure that the
+       "container-type" attribute matches the actual base type that the custom class
+       derives from ("default" will usually be fine anyway, since most custom classes
+       will derive from DefaultMessageListenerContainer).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation>
+                                                       <tool:expected-type type="java.lang.Class"/>
+                                                       <tool:assignable-to type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="connection-factory" type="xsd:string" default="connectionFactory">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JMS ConnectionFactory bean.
+       Default is "connectionFactory".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.jms.ConnectionFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="task-executor" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to a Spring TaskExecutor (or standard JDK 1.5 Executor) for executing
+       JMS listener invokers. Default is a SimpleAsyncTaskExecutor in case of a
+       DefaultMessageListenerContainer, using internally managed threads. For a
+       SimpleMessageListenerContainer, listeners will always get invoked within the
+       JMS provider's receive thread by default.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java.util.concurrent.Executor"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is a DynamicDestinationResolver, using the JMS provider's queue/topic
+       name resolution. Alternatively, specify a reference to a JndiDestinationResolver
+       (typically in a J2EE environment).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="error-handler" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to an ErrorHandler strategy for handling any uncaught Exceptions
+       that may occur during the execution of the MessageListener.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.util.ErrorHandler"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       The default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="cache" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The cache level for JMS resources: "none", "connection", "session", "consumer"
+       or "auto". By default ("auto"), the cache level will effectively be "consumer",
+       unless an external transaction manager has been specified - in which case the
+       effective default will be "none" (assuming J2EE-style transaction management
+       where the given ConnectionFactory is an XA-aware pool).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="none"/>
+                                               <xsd:enumeration value="connection"/>
+                                               <xsd:enumeration value="session"/>
+                                               <xsd:enumeration value="consumer"/>
+                                               <xsd:enumeration value="auto"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to an external PlatformTransactionManager (typically an
+       XA-based transaction coordinator, e.g. Spring's JtaTransactionManager).
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and might be ignored at runtime.
+       Default is 1; keep concurrency limited to 1 in case of a topic listener
+       or if message ordering is important; consider raising it for general queues.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="receive-timeout" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The timeout to use for receive calls (in milliseconds).
+       The default is 1000 ms (1 sec); -1 indicates no timeout at all.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="phase" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The lifecycle phase within which this container should start and stop. The lower
+       the value the earlier this container will start and the later it will stop. The
+       default is Integer.MAX_VALUE meaning the container will start as late as possible
+       and stop as soon as possible.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jca-listener-container">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Each listener child element will be hosted by a container whose configuration
+       is determined by this parent element. This variant builds standard JCA-based
+       listener containers, operating against a specified JCA ResourceAdapter
+       (which needs to be provided by the JMS message broker, e.g. ActiveMQ).
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="resource-adapter" type="xsd:string" default="resourceAdapter">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JCA ResourceAdapter bean for the JMS provider.
+       Default is "resourceAdapter".
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="javax.resource.spi.ResourceAdapter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="activation-spec-factory" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the JmsActivationSpecFactory.
+       Default is to autodetect the JMS provider and its ActivationSpec class
+       (see DefaultJmsActivationSpecFactory).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.listener.endpoint.JmsActivationSpecFactory"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the DestinationResolver strategy for resolving destination names.
+       Default is to pass in the destination name Strings into the JCA ActivationSpec as-is.
+       Alternatively, specify a reference to a JndiDestinationResolver (typically in a J2EE
+       environment, in particular if the server insists on receiving Destination objects).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-converter" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the MessageConverter strategy for converting JMS Messages to
+       listener method arguments. Default is a SimpleMessageConverter.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="destination-type" default="queue">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS destination type for this listener: "queue", "topic" or "durableTopic".
+       Default is "queue".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="queue"/>
+                                               <xsd:enumeration value="topic"/>
+                                               <xsd:enumeration value="durableTopic"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="client-id" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The JMS client id for this listener container.
+       Needs to be specified when using durable subscriptions.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="acknowledge" default="auto">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
+       A value of "transacted" effectively activates a locally transacted Session;
+       as alternative, specify an external "transaction-manager" via the corresponding
+       attribute. Default is "auto".
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:NMTOKEN">
+                                               <xsd:enumeration value="auto"/>
+                                               <xsd:enumeration value="client"/>
+                                               <xsd:enumeration value="dups-ok"/>
+                                               <xsd:enumeration value="transacted"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="transaction-manager" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       A reference to the Spring JtaTransactionManager or [javax.transaction.TransactionManager],
+       for kicking off an XA transaction for each incoming message.
+       If not specified, native acknowledging will be used (see "acknowledge" attribute).
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref"/>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="concurrency" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The number of concurrent sessions/consumers to start for each listener.
+       Can either be a simple number indicating the maximum number (e.g. "5")
+       or a range indicating the lower as well as the upper limit (e.g. "3-5").
+       Note that a specified minimum is just a hint and will typically be ignored
+       at runtime when using a JCA listener container. Default is 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="prefetch" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The maximum number of messages to load into a single session.
+       Note that raising this number might lead to starvation of concurrent consumers!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="phase" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The lifecycle phase within which this container should start and stop. The lower
+       the value the earlier this container will start and the later it will stop. The
+       default is Integer.MAX_VALUE meaning the container will start as late as possible
+       and stop as soon as possible.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="listenerType">
+               <xsd:attribute name="id" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The unique identifier for a listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="destination" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The destination name for this listener, resolved through the
+       container-wide DestinationResolver strategy (if any). Required.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="subscription" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name for the durable subscription, if any.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="selector" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The JMS message selector for this listener.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The bean name of the listener object, implementing
+       the MessageListener/SessionAwareMessageListener interface
+       or defining the specified listener method. Required.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref"/>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the listener method to invoke. If not specified,
+       the target bean is supposed to implement the MessageListener
+       or SessionAwareMessageListener interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="response-destination" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the default response destination to send response messages to.
+       This will be applied in case of a request message that does not carry
+       a "JMSReplyTo" field. The type of this destination will be determined
+       by the listener-container's "destination-type" attribute.
+       Note: This only applies to a listener method with a return value,
+       for which each result object will be converted into a response message.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-lang-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-lang-2.0.xsd
new file mode 100644 (file)
index 0000000..5ec021b
--- /dev/null
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/lang"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/lang"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's dynamic language
+       support, which allows bean definitions that are backed by classes
+       written in a language other than Java.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
+
+       <xsd:element name="groovy" type="customizableScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a Groovy class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="jruby" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a JRuby class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="bsh" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a BeanShell script.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <!-- Script Types -->
+       <xsd:complexType name="simpleScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="inline-script" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The source code for the dynamic language-backed bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                                       <xsd:element name="property" type="beans:propertyType" minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Dynamic language-backed bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="refresh-check-delay" type="xsd:long">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The delay (in milliseconds) between checks for updated sources when
+       using the refreshable beans feature.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="script-source" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       The resource containing the script for the dynamic language-backed bean.
+       
+       Examples might be '/WEB-INF/scripts/Anais.groovy', 'classpath:Nin.bsh', etc.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="scope" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The scope of this scripted bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="init-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of an initialization method defined on the scripted bean.
+       Analogous to the 'init-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="destroy-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of a destruction method defined on the scripted bean.
+       Analogous to the 'destroy-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="dynamicScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="script-interfaces">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The Java interfaces that the dynamic language-backed object is to expose; comma-delimited.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="customizableScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="customizer-ref">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Reference to a GroovyObjectCustomizer or similar customizer bean.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-lang-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-lang-2.5.xsd
new file mode 100644 (file)
index 0000000..ac7c317
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/lang"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/lang"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's dynamic language
+       support, which allows bean definitions that are backed by classes
+       written in a language other than Java.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:element name="defaults">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Default settings for any scripted beans registered within this context.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attributeGroup ref="defaultableAttributes"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="groovy" type="customizableScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a Groovy class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="jruby" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a JRuby class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="bsh" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a BeanShell script.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <!-- Script Types -->
+       <xsd:complexType name="simpleScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="inline-script" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The source code for the dynamic language-backed bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                                       <xsd:element name="property" type="beans:propertyType" minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Dynamic language-backed bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attributeGroup ref="defaultableAttributes"/>
+                               <xsd:attribute name="script-source" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       The resource containing the script for the dynamic language-backed bean.
+       
+       Examples might be '/WEB-INF/scripts/Anais.groovy', 'classpath:Nin.bsh', etc.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="scope" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The scope of this scripted bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="autowire" default="default">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The autowire mode for the scripted bean.
+       Analogous to the 'autowire' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:simpleType>
+                                               <xsd:restriction base="xsd:NMTOKEN">
+                                                       <xsd:enumeration value="default"/>
+                                                       <xsd:enumeration value="no"/>
+                                                       <xsd:enumeration value="byName"/>
+                                                       <xsd:enumeration value="byType"/>
+                                               </xsd:restriction>
+                                       </xsd:simpleType>
+                               </xsd:attribute>
+                               <xsd:attribute name="dependency-check" default="default">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The dependency check setting for the scripted bean.
+       Analogous to the 'dependency-check' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:simpleType>
+                                               <xsd:restriction base="xsd:NMTOKEN">
+                                                       <xsd:enumeration value="default"/>
+                                                       <xsd:enumeration value="none"/>
+                                                       <xsd:enumeration value="simple"/>
+                                                       <xsd:enumeration value="objects"/>
+                                                       <xsd:enumeration value="all"/>
+                                               </xsd:restriction>
+                                       </xsd:simpleType>
+                               </xsd:attribute>
+                               <xsd:attribute name="depends-on" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+                       The names of the beans that this bean depends on being initialized.
+                       The bean factory will guarantee that these beans get initialized
+                       before this bean.
+
+                       Note that dependencies are normally expressed through bean properties.
+                       This property should just be necessary other kinds of dependencies
+                       like statics (*ugh*) or database preparation on startup.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="init-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of an initialization method defined on the scripted bean.
+       Analogous to the 'init-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="destroy-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of a destruction method defined on the scripted bean.
+       Analogous to the 'destroy-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="dynamicScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="script-interfaces">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The Java interfaces that the dynamic language-backed object is to expose; comma-delimited.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="customizableScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="customizer-ref">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Reference to a GroovyObjectCustomizer or similar customizer bean.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:attributeGroup name="defaultableAttributes">
+               <xsd:attribute name="refresh-check-delay" type="xsd:long">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The delay (in milliseconds) between checks for updated sources when
+       using the refreshable beans feature.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:attributeGroup>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-lang-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-lang-3.0.xsd
new file mode 100644 (file)
index 0000000..574fb05
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/lang"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/lang"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's dynamic language
+       support, which allows bean definitions that are backed by classes
+       written in a language other than Java.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:element name="defaults">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Default settings for any scripted beans registered within this context.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attributeGroup ref="defaultableAttributes"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="groovy" type="customizableScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a Groovy class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="jruby" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a JRuby class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:element name="bsh" type="dynamicScriptType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a BeanShell script.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+       </xsd:element>
+
+       <!-- Script Types -->
+       <xsd:complexType name="simpleScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="inline-script" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The source code for the dynamic language-backed bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                                       <xsd:element name="property" type="beans:propertyType" minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Dynamic language-backed bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attributeGroup ref="defaultableAttributes"/>
+                               <xsd:attribute name="script-source" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       The resource containing the script for the dynamic language-backed bean.
+       
+       Examples might be '/WEB-INF/scripts/Anais.groovy', 'classpath:Nin.bsh', etc.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="name" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of this scripted bean as an alias or replacement for the id.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="scope" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The scope of this scripted bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="autowire" default="default">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The autowire mode for the scripted bean.
+       Analogous to the 'autowire' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:simpleType>
+                                               <xsd:restriction base="xsd:NMTOKEN">
+                                                       <xsd:enumeration value="default"/>
+                                                       <xsd:enumeration value="no"/>
+                                                       <xsd:enumeration value="byName"/>
+                                                       <xsd:enumeration value="byType"/>
+                                               </xsd:restriction>
+                                       </xsd:simpleType>
+                               </xsd:attribute>
+                               <xsd:attribute name="depends-on" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+                       The names of the beans that this bean depends on being initialized.
+                       The bean factory will guarantee that these beans get initialized
+                       before this bean.
+
+                       Note that dependencies are normally expressed through bean properties.
+                       This property should just be necessary other kinds of dependencies
+                       like statics (*ugh*) or database preparation on startup.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="init-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of an initialization method defined on the scripted bean.
+       Analogous to the 'init-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="destroy-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of a destruction method defined on the scripted bean.
+       Analogous to the 'destroy-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="dynamicScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="script-interfaces">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The Java interfaces that the dynamic language-backed object is to expose; comma-delimited.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="customizableScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="customizer-ref">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Reference to a GroovyObjectCustomizer or similar customizer bean.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:attributeGroup name="defaultableAttributes">
+               <xsd:attribute name="refresh-check-delay" type="xsd:long">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The delay (in milliseconds) between checks for updated sources when
+       using the refreshable beans feature.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:attributeGroup>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-lang-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-lang-3.1.xsd
new file mode 100644 (file)
index 0000000..edce132
--- /dev/null
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/lang"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/lang"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's dynamic language
+       support, which allows bean definitions that are backed by classes
+       written in a language other than Java.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:element name="defaults">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Default settings for any scripted beans registered within this context.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attributeGroup ref="defaultableAttributes"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="groovy">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a Groovy class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="customizableScriptType">
+                               <xsd:attributeGroup ref="defaultableAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jruby">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a JRuby class definition.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="dynamicScriptType">
+                               <xsd:attributeGroup ref="vanillaScriptAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="bsh">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       A Spring bean backed by a BeanShell script.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="dynamicScriptType">
+                               <xsd:attributeGroup ref="vanillaScriptAttributes"/>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <!-- Script Types -->
+       <xsd:complexType name="simpleScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="beans:identifiedType">
+                               <xsd:sequence>
+                                       <xsd:element name="inline-script" minOccurs="0" maxOccurs="1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The source code for the dynamic language-backed bean.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                                       <xsd:element name="property" type="beans:propertyType" minOccurs="0" maxOccurs="unbounded">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Dynamic language-backed bean definitions can have zero or more properties.
+       Property elements correspond to JavaBean setter methods exposed
+       by the bean classes. Spring supports primitives, references to other
+       beans in the same or related factories, lists, maps and properties.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                               </xsd:sequence>
+                               <xsd:attribute name="script-source" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+       The resource containing the script for the dynamic language-backed bean.
+
+       Examples might be '/WEB-INF/scripts/Anais.groovy', 'classpath:Nin.bsh', etc.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="name" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of this scripted bean as an alias or replacement for the id.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="scope" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The scope of this scripted bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton".
+
+       Singletons are most commonly used, and are ideal for multi-threaded
+       service objects. Further scopes, such as "request" or "session", might
+       be supported by extended bean factories (e.g. in a web environment).
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="autowire" default="default">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The autowire mode for the scripted bean.
+       Analogous to the 'autowire' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:simpleType>
+                                               <xsd:restriction base="xsd:NMTOKEN">
+                                                       <xsd:enumeration value="default"/>
+                                                       <xsd:enumeration value="no"/>
+                                                       <xsd:enumeration value="byName"/>
+                                                       <xsd:enumeration value="byType"/>
+                                               </xsd:restriction>
+                                       </xsd:simpleType>
+                               </xsd:attribute>
+                               <xsd:attribute name="depends-on" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+                       The names of the beans that this bean depends on being initialized.
+                       The bean factory will guarantee that these beans get initialized
+                       before this bean.
+
+                       Note that dependencies are normally expressed through bean properties.
+                       This property should just be necessary other kinds of dependencies
+                       like statics (*ugh*) or database preparation on startup.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="init-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of an initialization method defined on the scripted bean.
+       Analogous to the 'init-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                               <xsd:attribute name="destroy-method" type="xsd:string">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       The name of a destruction method defined on the scripted bean.
+       Analogous to the 'destroy-method' attribute on a standard bean definition.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="dynamicScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="script-interfaces">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:java.lang.Class"><![CDATA[
+       The Java interfaces that the dynamic language-backed object is to expose; comma-delimited.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="customizableScriptType">
+               <xsd:complexContent>
+                       <xsd:extension base="simpleScriptType">
+                               <xsd:attribute name="customizer-ref">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Reference to a GroovyObjectCustomizer or similar customizer bean.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:attributeGroup name="vanillaScriptAttributes">
+               <xsd:attribute name="refresh-check-delay" type="xsd:long">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The delay (in milliseconds) between checks for updated sources when
+       using the refreshable beans feature.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:attributeGroup>
+
+       <xsd:attributeGroup name="defaultableAttributes">
+               <xsd:attribute name="proxy-target-class" type="xsd:boolean">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Flag to tell the bean factory that if this bean is proxied it should be done using the target class type, 
+       not its interfaces.  A refreshable script is normally proxied, so often this is useful in conjunction with 
+       refresh-check-delay.  Defaults to false requiring no additional library dependencies, but hiding behaviour in the
+       bean that is not defined in an interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attributeGroup ref="vanillaScriptAttributes"></xsd:attributeGroup>
+       </xsd:attributeGroup>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-mvc-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-mvc-3.0.xsd
new file mode 100644 (file)
index 0000000..f97d3b3
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns="http://www.springframework.org/schema/mvc"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/mvc"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd" />
+
+       <xsd:element name="annotation-driven">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><![CDATA[
+       Configures the annotation-driven Spring MVC Controller programming model.
+       Note that, with Spring 3.0, this tag works in Servlet MVC only!
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="conversion-service" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.convert.ConversionService"><![CDATA[
+       The bean name of the ConversionService that is to be used for type conversion during field binding.
+       This attribute is not required, and only needs to be specified explicitly if custom converters need to be configured.
+       If not specified, a default FormattingConversionService is registered that contains converters to/from standard JDK types.
+       In addition, full support for date/time formatting will be installed if the Joda Time library is present on the classpath.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java:org.springframework.core.convert.ConversionService" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="validator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.validation.Validator"><![CDATA[
+       The bean name of the Validator that is to be used to validate Controller model objects.
+       This attribute is not required, and only needs to be specified explicitly if a custom Validator needs to be configured.
+       If not specified, JSR-303 validation will be installed if a JSR-303 provider is present on the classpath.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java:org.springframework.validation.Validator" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="resources">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.resource.ResourceHttpRequestHandler"><![CDATA[
+       Configures a handler for serving static resources such as images, js, and, css files with cache headers optimized for efficient 
+       loading in a web browser. Allows resources to be served out of any path that is reachable via Spring's Resource handling.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="mapping" use="required" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The URL mapping pattern, within the current Servlet context, to use for serving resources from this handler, such as "/resources/**"
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="location" use="required" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The resource location from which to serve static content, specified at a Spring Resource pattern.
+       Each location must point to a valid directory. Multiple locations may be specified as a comma-separated list,
+       and the locations will be checked for a given resource in the order specified. For example, a value of
+       "/, classpath:/META-INF/public-web-resources/" will allow resources to be served both from the web app
+       root and from any JAR on the classpath  that contains a /META-INF/public-web-resources/ directory,
+       with resources in the web app root taking precedence.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="cache-period" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               <![CDATA[
+       Specifies the cache period for the resources served by this resource handler, in seconds.
+       The default is to not send any cache headers but rather to rely on last-modified timestamps only.
+       Set this to 0 in order to send cache headers that prevent caching, or to a positive number of
+       seconds in order to send cache headers with the given max-age value.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               <![CDATA[
+       Specifies the order of the HandlerMapping for the resource handler. The default order is Ordered.LOWEST_PRECEDENCE - 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+       
+       <xsd:element name="default-servlet-handler">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler"><![CDATA[
+       Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet.  Use of this 
+       handler allows using a "/" mapping with the DispatcherServlet while still utilizing the Servlet container to serve static 
+       resources.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="default-servlet-name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the default Servlet to forward to for static resource requests.  The handler will try to auto-detect the container's 
+       default Servlet at startup time using a list of known names.  If the default Servlet cannot be detected because of using an unknown 
+       container or because it has been manually configured, the servlet name must be set explicitly.                                                  
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>              
+       </xsd:element>
+
+       <xsd:element name="interceptors">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The ordered set of interceptors that intercept HTTP Servlet Requests handled by Controllers.
+       Interceptors allow requests to be pre/post processed before/after handling.
+       Each inteceptor must implement the org.springframework.web.servlet.HandlerInterceptor or
+       org.springframework.web.context.request.WebRequestInterceptor interface.
+       The interceptors in this set are automatically configured on each registered HandlerMapping.
+       The URI paths each interceptor applies to are configurable.
+                       ]]></xsd:documentation>
+               </xsd:annotation>                       
+               <xsd:complexType>
+                       <xsd:choice maxOccurs="unbounded">
+                               <xsd:element ref="beans:bean">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[
+       Registers an interceptor that intercepts every request regardless of its URI path.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                               </xsd:element>
+                               <xsd:element name="interceptor">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[
+       Registers an interceptor that interceptors requests sent to one or more URI paths.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element name="mapping" maxOccurs="unbounded">
+                                                               <xsd:complexType>
+                                                                       <xsd:attribute name="path" type="xsd:string" use="required">
+                                                                               <xsd:annotation>
+                                                                                       <xsd:documentation><![CDATA[
+       A path into the application intercepted by this interceptor.
+       Exact path mapping URIs (such as "/myPath") are supported as well as Ant-stype path patterns (such as /myPath/**).
+                                                                                       ]]></xsd:documentation>
+                                                                               </xsd:annotation>
+                                                                       </xsd:attribute>                                                                
+                                                               </xsd:complexType>
+                                                       </xsd:element>
+                                                       <xsd:element ref="beans:bean">
+                                                                               <xsd:annotation>
+                                                                                       <xsd:documentation><![CDATA[
+       The interceptor's bean definition.
+                                                                                       ]]></xsd:documentation>
+                                                                               </xsd:annotation>                                                       
+                                                       </xsd:element>                                          
+                                               </xsd:sequence>
+                                       </xsd:complexType>                      
+                               </xsd:element>
+                       </xsd:choice>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="view-controller">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.mvc.ParameterizableViewController"><![CDATA[
+       Defines a simple Controller that selects a view to render the response.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="path" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The URL path the view is mapped to.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="view-name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the view to render. Optional.
+       If not specified, the view name will be determined from the current HttpServletRequest
+       by the DispatcherServlet's RequestToViewNameTranslator.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-mvc-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-mvc-3.1.xsd
new file mode 100644 (file)
index 0000000..8fc5f37
--- /dev/null
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns="http://www.springframework.org/schema/mvc"
+       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+       xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:tool="http://www.springframework.org/schema/tool"
+       targetNamespace="http://www.springframework.org/schema/mvc"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" />
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd" />
+
+       <xsd:element name="annotation-driven">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><![CDATA[
+       Configures the annotation-driven Spring MVC Controller programming model.
+       Note that, with Spring 3.0, this tag works in Servlet MVC only!
+
+       See org.springframework.web.servlet.config.annotation.EnableWebMvc Javadoc for
+       information on code-based alternatives to enabling annotation-driven Spring MVC
+       support.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:all minOccurs="0">
+                               <xsd:element name="message-converters" minOccurs="0">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Configures one or more HttpMessageConverter types to use for converting @RequestBody method parameters and @ResponseBody method return values.
+       Using this configuration element is optional.
+       HttpMessageConverter registrations provided here will take precedence over HttpMessageConverter types registered by default.
+       Also see the register-defaults attribute if you want to turn off default registrations entirely.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded">
+                                                               <xsd:annotation>
+                                                                       <xsd:documentation><![CDATA[
+       The HttpMessageConverter bean definition.
+                                                                       ]]></xsd:documentation>
+                                                               </xsd:annotation>
+                                                       </xsd:element>
+                                               </xsd:sequence>
+                                               <xsd:attribute name="register-defaults" type="xsd:boolean" default="true">
+                                                       <xsd:annotation>
+                                                               <xsd:documentation><![CDATA[
+       Whether or not default HttpMessageConverter registrations should be added in addition to the ones provided within this element.
+                                                               ]]></xsd:documentation>
+                                                       </xsd:annotation>
+                                               </xsd:attribute>
+                                       </xsd:complexType>
+                               </xsd:element>
+                               <xsd:element name="argument-resolvers" minOccurs="0">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Configures HandlerMethodArgumentResolver types to support custom controller method argument types.
+    Using this option does not override the built-in support for resolving handler method arguments.
+    To customize the built-in support for argument resolution configure RequestMappingHandlerAdapter directly.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded">
+                                                               <xsd:annotation>
+                                                                       <xsd:documentation><![CDATA[
+       The HandlerMethodArgumentResolver (or WebArgumentResolver for backwards compatibility) bean definition.
+                                                                       ]]></xsd:documentation>
+                                                               </xsd:annotation>
+                                                       </xsd:element>
+                                               </xsd:sequence>
+                                       </xsd:complexType>
+                               </xsd:element>                  
+                               <xsd:element name="return-value-handlers" minOccurs="0">
+                                       <xsd:annotation>
+                                               <xsd:documentation><![CDATA[
+       Configures HandlerMethodReturnValueHandler types to support custom controller method return value handling.
+    Using this option does not override the built-in support for handling return values.
+    To customize the built-in support for handling return values configure RequestMappingHandlerAdapter directly.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element ref="beans:bean" minOccurs="1" maxOccurs="unbounded">
+                                                               <xsd:annotation>
+                                                                       <xsd:documentation><![CDATA[
+       The HandlerMethodReturnValueHandler bean definition.
+                                                                       ]]></xsd:documentation>
+                                                               </xsd:annotation>
+                                                       </xsd:element>
+                                               </xsd:sequence>
+                                       </xsd:complexType>
+                               </xsd:element>                  
+                       </xsd:all>
+                       <xsd:attribute name="conversion-service" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.convert.ConversionService"><![CDATA[
+       The bean name of the ConversionService that is to be used for type conversion during field binding.
+       This attribute is not required, and only needs to be specified explicitly if custom converters need to be configured.
+       If not specified, a default FormattingConversionService is registered that contains converters to/from standard JDK types.
+       In addition, full support for date/time formatting will be installed if the Joda Time library is present on the classpath.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java:org.springframework.core.convert.ConversionService" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="validator" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.validation.Validator"><![CDATA[
+       The bean name of the Validator that is to be used to validate Controller model objects.
+       This attribute is not required, and only needs to be specified explicitly if a custom Validator needs to be configured.
+       If not specified, JSR-303 validation will be installed if a JSR-303 provider is present on the classpath.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java:org.springframework.validation.Validator" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="message-codes-resolver" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name of a MessageCodesResolver to use to build message codes from data binding and validation error codes.
+       This attribute is not required.
+       If not specified the DefaultMessageCodesResolver is used.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="java:org.springframework.validation.MessageCodesResolver" />
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="ignoreDefaultModelOnRedirect" type="xsd:boolean">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       By default the content of the "default" model is used both during rendering and redirect scenarios. 
+       Alternatively a controller method can declare a RedirectAttributes argument and use it to provide attributes for a redirect. 
+       Setting this flag to true ensures the "default" model is never used in a redirect scenario even if a RedirectAttributes argument is not declared.
+       Setting it to false means the "default" model may be used in a redirect if the controller method doesn't declare a RedirectAttributes argument.
+       The default setting is false but new applications should consider setting it to true.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="resources">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.resource.ResourceHttpRequestHandler"><![CDATA[
+       Configures a handler for serving static resources such as images, js, and, css files with cache headers optimized for efficient
+       loading in a web browser. Allows resources to be served out of any path that is reachable via Spring's Resource handling.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="mapping" use="required" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The URL mapping pattern, within the current Servlet context, to use for serving resources from this handler, such as "/resources/**"
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="location" use="required" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The resource location from which to serve static content, specified at a Spring Resource pattern.
+       Each location must point to a valid directory. Multiple locations may be specified as a comma-separated list,
+       and the locations will be checked for a given resource in the order specified. For example, a value of
+       "/, classpath:/META-INF/public-web-resources/" will allow resources to be served both from the web app
+       root and from any JAR on the classpath  that contains a /META-INF/public-web-resources/ directory,
+       with resources in the web app root taking precedence.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="cache-period" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               <![CDATA[
+       Specifies the cache period for the resources served by this resource handler, in seconds.
+       The default is to not send any cache headers but rather to rely on last-modified timestamps only.
+       Set this to 0 in order to send cache headers that prevent caching, or to a positive number of
+       seconds in order to send cache headers with the given max-age value.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation>
+                                               <![CDATA[
+       Specifies the order of the HandlerMapping for the resource handler. The default order is Ordered.LOWEST_PRECEDENCE - 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="default-servlet-handler">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler"><![CDATA[
+       Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet.  Use of this
+       handler allows using a "/" mapping with the DispatcherServlet while still utilizing the Servlet container to serve static
+       resources.
+       This handler will forward all requests to the default Servlet. Therefore it is important that it remains last in the
+       order of all other URL HandlerMappings. That will be the case if you use the "annotation-driven" element or alternatively
+       if you are setting up your customized HandlerMapping instance be sure to set its "order" property to a value lower than
+       that of the DefaultServletHttpRequestHandler, which is Integer.MAX_VALUE.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="default-servlet-name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the default Servlet to forward to for static resource requests.  The handler will try to auto-detect the container's
+       default Servlet at startup time using a list of known names.  If the default Servlet cannot be detected because of using an unknown
+       container or because it has been manually configured, the servlet name must be set explicitly.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="interceptors">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       The ordered set of interceptors that intercept HTTP Servlet Requests handled by Controllers.
+       Interceptors allow requests to be pre/post processed before/after handling.
+       Each inteceptor must implement the org.springframework.web.servlet.HandlerInterceptor or
+       org.springframework.web.context.request.WebRequestInterceptor interface.
+       The interceptors in this set are automatically configured on each registered HandlerMapping.
+       The URI paths each interceptor applies to are configurable.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:choice maxOccurs="unbounded">
+                               <xsd:choice>
+                                       <xsd:element ref="beans:bean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Registers an interceptor that intercepts every request regardless of its URI path..
+                                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                                       <xsd:element ref="beans:ref">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Registers an interceptor that intercepts every request regardless of its URI path..
+                                                               ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:element>
+                               </xsd:choice>
+                               <xsd:element name="interceptor">
+                                       <xsd:annotation>
+                                               <xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[
+       Registers an interceptor that interceptors requests sent to one or more URI paths.
+                                               ]]></xsd:documentation>
+                                       </xsd:annotation>
+                                       <xsd:complexType>
+                                               <xsd:sequence>
+                                                       <xsd:element name="mapping" maxOccurs="unbounded">
+                                                               <xsd:complexType>
+                                                                       <xsd:attribute name="path" type="xsd:string" use="required">
+                                                                               <xsd:annotation>
+                                                                                       <xsd:documentation><![CDATA[
+       A path into the application intercepted by this interceptor.
+       Exact path mapping URIs (such as "/myPath") are supported as well as Ant-stype path patterns (such as /myPath/**).
+                                                                                       ]]></xsd:documentation>
+                                                                               </xsd:annotation>
+                                                                       </xsd:attribute>
+                                                               </xsd:complexType>
+                                                       </xsd:element>
+                                                       <xsd:choice>
+                                                               <xsd:element ref="beans:bean">
+                                                                       <xsd:annotation>
+                                                                               <xsd:documentation><![CDATA[
+               The interceptor's bean definition.
+                                                                               ]]></xsd:documentation>
+                                                                       </xsd:annotation>
+                                                               </xsd:element>
+                                                               <xsd:element ref="beans:ref">
+                                                                       <xsd:annotation>
+                                                                               <xsd:documentation><![CDATA[
+               A reference to an interceptor bean.
+                                                                               ]]></xsd:documentation>
+                                                                       </xsd:annotation>
+                                                               </xsd:element>
+                                                       </xsd:choice>
+                                               </xsd:sequence>
+                                       </xsd:complexType>
+                               </xsd:element>
+                       </xsd:choice>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="view-controller">
+               <xsd:annotation>
+                       <xsd:documentation
+                               source="java:org.springframework.web.servlet.mvc.ParameterizableViewController"><![CDATA[
+       Defines a simple Controller that selects a view to render the response.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="path" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The URL path the view is mapped to.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="view-name" type="xsd:string">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The name of the view to render. Optional.
+       If not specified, the view name will be determined from the current HttpServletRequest
+       by the DispatcherServlet's RequestToViewNameTranslator.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-oxm-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-oxm-3.0.xsd
new file mode 100644 (file)
index 0000000..c8442c5
--- /dev/null
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsd:schema xmlns="http://www.springframework.org/schema/oxm" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                       xmlns:beans="http://www.springframework.org/schema/beans"
+                       xmlns:tool="http://www.springframework.org/schema/tool"
+                       targetNamespace="http://www.springframework.org/schema/oxm" elementFormDefault="qualified"
+                       attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+    <xsd:annotation>
+        <xsd:documentation>
+            Defines the elements used in Spring's Object/XML Mapping integration.
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:element name="jaxb2-marshaller">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation source="java:org.springframework.oxm.jaxb.Jaxb2Marshaller">
+                    Defines a JAXB2 Marshaller.
+                </xsd:documentation>
+                <xsd:appinfo>
+                    <tool:annotation>
+                        <tool:exports type="org.springframework.oxm.jaxb.Jaxb2Marshaller"/>
+                    </tool:annotation>
+                </xsd:appinfo>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="beans:identifiedType">
+                    <xsd:sequence>
+                        <xsd:element name="class-to-be-bound" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:complexType>
+                                <xsd:attribute name="name" type="classType" use="required"/>
+                            </xsd:complexType>
+                        </xsd:element>
+                    </xsd:sequence>
+                    <xsd:attribute name="contextPath" type="xsd:string">
+                        <xsd:annotation>
+                            <xsd:documentation>The JAXB Context path</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="jibx-marshaller">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation source="java:org.springframework.oxm.jibx.JibxMarshaller">
+                    Defines a JiBX Marshaller.
+                </xsd:documentation>
+                <xsd:appinfo>
+                    <tool:annotation>
+                        <tool:exports type="org.springframework.oxm.jibx.JibxMarshaller"/>
+                    </tool:annotation>
+                </xsd:appinfo>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="beans:identifiedType">
+                    <xsd:attribute name="target-class" type="classType" use="required"/>
+                    <xsd:attribute name="bindingName" type="xsd:string">
+                        <xsd:annotation>
+                            <xsd:documentation>The binding name used by this marshaller.</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="xmlbeans-marshaller">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation source="java:org.springframework.oxm.xmlbeans.XmlBeansMarshaller">
+                    Defines a XMLBeans Marshaller.
+                </xsd:documentation>
+                <xsd:appinfo>
+                    <tool:annotation>
+                        <tool:exports type="org.springframework.oxm.xmlbeans.XmlBeansMarshaller"/>
+                    </tool:annotation>
+                </xsd:appinfo>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="beans:identifiedType">
+                    <xsd:attribute name="options" type="xsd:string">
+                        <xsd:annotation>
+                            <xsd:documentation source="java:org.apache.xmlbeans.XmlOptions">
+                                The bean name of the XmlOptions that is to be used for this marshaller. Typically a
+                                XmlOptionsFactoryBean definition.
+                            </xsd:documentation>
+                            <xsd:appinfo>
+                                <tool:annotation kind="ref">
+                                    <tool:expected-type type="org.apache.xmlbeans.XmlOptions"/>
+                                </tool:annotation>
+                            </xsd:appinfo>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:simpleType name="classType">
+        <xsd:annotation>
+            <xsd:documentation source="java:java.lang.Class">A class supported by a marshaller.</xsd:documentation>
+            <xsd:appinfo>
+                <tool:annotation kind="direct">
+                    <tool:expected-type type="java.lang.Class"/>
+                                       <tool:assignable-to restriction="class-only" />
+                </tool:annotation>
+            </xsd:appinfo>
+        </xsd:annotation>
+        <xsd:union memberTypes="xsd:string"/>
+    </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-oxm-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-oxm-3.1.xsd
new file mode 100644 (file)
index 0000000..b380791
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsd:schema xmlns="http://www.springframework.org/schema/oxm" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                       xmlns:beans="http://www.springframework.org/schema/beans"
+                       xmlns:tool="http://www.springframework.org/schema/tool"
+                       targetNamespace="http://www.springframework.org/schema/oxm" elementFormDefault="qualified"
+                       attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation>
+                       Defines the elements used in Spring's Object/XML Mapping integration.
+               </xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="jaxb2-marshaller">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.oxm.jaxb.Jaxb2Marshaller">
+                                       Defines a JAXB2 Marshaller.
+                               </xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.oxm.jaxb.Jaxb2Marshaller"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="class-to-be-bound" minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:complexType>
+                                                               <xsd:attribute name="name" type="classType" use="required"/>
+                                                       </xsd:complexType>
+                                               </xsd:element>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="contextPath" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The JAXB Context path</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jibx-marshaller">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.oxm.jibx.JibxMarshaller">
+                                       Defines a JiBX Marshaller.
+                               </xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.oxm.jibx.JibxMarshaller"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="target-class" type="classType" use="required"/>
+                                       <xsd:attribute name="bindingName" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The binding name used by this marshaller.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="xmlbeans-marshaller">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.oxm.xmlbeans.XmlBeansMarshaller">
+                                       Defines a XMLBeans Marshaller.
+                               </xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.oxm.xmlbeans.XmlBeansMarshaller"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="options" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.apache.xmlbeans.XmlOptions">
+                                                               The bean name of the XmlOptions that is to be used for this marshaller. Typically a
+                                                               XmlOptionsFactoryBean definition.
+                                                       </xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.apache.xmlbeans.XmlOptions"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="castor-marshaller">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation
+                                       source="java:org.springframework.oxm.castor.CastorMarshaller">
+                                       Defines a Castor Marshaller.
+                               </xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.oxm.castor.CastorMarshaller" />
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:attribute name="encoding" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The encoding to use for stream reading.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="target-class" type="classType">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The target class to be bound with Castor marshaller.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="target-package" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The target package that contains Castor descriptor classes.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="mapping-location" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation>The path to Castor mapping file.</xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:simpleType name="classType">
+               <xsd:annotation>
+                       <xsd:documentation source="java:java.lang.Class">A class supported by a marshaller.</xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation kind="direct">
+                                       <tool:expected-type type="java.lang.Class"/>
+                                       <tool:assignable-to restriction="class-only" />
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:union memberTypes="xsd:string"/>
+       </xsd:simpleType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-task-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-task-3.0.xsd
new file mode 100644 (file)
index 0000000..7e484d0
--- /dev/null
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/task"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/task"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's support for task execution and scheduling.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:element name="annotation-driven">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Enables the detection of @Async and @Scheduled annotations on any Spring-managed object. If present,
+       a proxy will be generated for executing the annotated methods asynchronously.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="executor" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specifies the java.util.Executor instance to use when invoking asynchronous methods.
+       If not provided, an instance of org.springframework.core.task.SimpleAsyncTaskExecutor
+       will be used by default.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scheduler" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specifies the org.springframework.scheduling.TaskScheduler or
+       java.util.ScheduledExecutorService instance to use when invoking scheduled
+       methods. If no reference is provided, a TaskScheduler backed by a single
+       thread scheduled executor will be used.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="mode" default="proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Should annotated beans be proxied using Spring's AOP framework,
+       or should they rather be weaved with an AspectJ async execution aspect?
+
+       AspectJ weaving requires spring-aspects.jar on the classpath,
+       as well as load-time weaving (or compile-time weaving) enabled.
+
+       Note: The weaving-based aspect requires the @Async annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="proxy"/>
+                                               <xsd:enumeration value="aspectj"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+
+       Note: Class-based proxies require the @Async annotation to be defined
+       on the concrete class. Annotations in interfaces will not work in
+       that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scheduler">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a ThreadPoolTaskScheduler instance with configurable pool size.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name for the generated ThreadPoolTaskScheduler instance.
+       It will also be used as the default thread name prefix.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="pool-size" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The size of the ScheduledExecutorService's thread pool. The default is 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="executor">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a ThreadPoolTaskExecutor instance with configurable pool size,
+       queue-capacity, keep-alive, and rejection-policy values.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name for the generated ThreadPoolTaskExecutor instance.
+       This value will also be used as the thread name prefix which is why it is
+       required even when defining the executor as an inner bean: The executor
+       won't be directly accessible then but will nevertheless use the specified
+       id as the thread name prefix of the threads that it manages.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="pool-size" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The size of the executor's thread pool as either a single value or a range
+       (e.g. 5-10). If no bounded queue-capacity value is provided, then a max value
+       has no effect unless the range is specified as 0-n. In that case, the core pool
+       will have a size of n, but the 'allowCoreThreadTimeout' flag will be set to true.
+       If a queue-capacity is provided, then the lower bound of a range will map to the
+       core size and the upper bound will map to the max size. If this attribute is not
+       provided, the default core size will be 1, and the default max size will be
+       Integer.MAX_VALUE (i.e. unbounded).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="queue-capacity" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Queue capacity for the ThreadPoolTaskExecutor. If not specified, the default will
+       be Integer.MAX_VALUE (i.e. unbounded).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="keep-alive" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Keep-alive time in seconds. Inactive threads that have been created beyond the
+       core size will timeout after the specified number of seconds elapse. If the
+       executor has an unbounded queue capacity and a size range represented as 0-n,
+       then the core threads will also be configured to timeout when inactive.
+       Otherwise, core threads will not ever timeout.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="rejection-policy" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The RejectedExecutionHandler type. When a bounded queue cannot accept any
+       additional tasks, this determines the behavior. While the default is ABORT,
+       consider using CALLER_RUNS to throttle inbound tasks. In other words, by forcing
+       the caller to run the task itself, it will not be able to provide another task
+       until after it completes the task at hand. In the meantime, one or more tasks
+       may be removed from the queue. Alternatively, if it is not critical to run every
+       task, consider using DISCARD to drop the current task or DISCARD_OLDEST to drop
+       the task at the head of the queue.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ABORT"/>
+                                               <xsd:enumeration value="CALLER_RUNS"/>
+                                               <xsd:enumeration value="DISCARD"/>
+                                               <xsd:enumeration value="DISCARD_OLDEST"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scheduled-tasks">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Top-level element that contains one or more task sub-elements to be
+       managed by a given TaskScheduler.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="scheduled" type="scheduledTaskType" minOccurs="1" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="scheduler" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Reference to an instance of TaskScheduler to manage the provided tasks. If not specified,
+       the default value will be a wrapper for a single-threaded Executor.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.scheduling.TaskScheduler"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="scheduledTaskType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Element defining a scheduled method-invoking task and its corresponding trigger.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="cron" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A cron-based trigger. See the org.springframework.scheduling.support.CronSequenceGenerator
+       JavaDoc for example patterns.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="fixed-delay" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       An interval-based trigger where the interval is measured from the completion time of the
+       previous task. The time unit value is measured in milliseconds.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="fixed-rate" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       An interval-based trigger where the interval is measured from the start time of the
+       previous task. The time unit value is measured in milliseconds.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Reference to an object that provides a method to be invoked.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref" />
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method to be invoked.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:expected-method type-ref="@ref"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-task-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-task-3.1.xsd
new file mode 100644 (file)
index 0000000..91b49de
--- /dev/null
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/task"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/task"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's support for task execution and scheduling.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:element name="annotation-driven">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Enables the detection of @Async and @Scheduled annotations on any Spring-managed
+       object. If present, a proxy will be generated for executing the annotated methods
+       asynchronously.
+
+       See Javadoc for the org.springframework.scheduling.annotation.EnableAsync and
+       org.springframework.scheduling.annotation.EnableScheduling annotations for information
+       on code-based alternatives to this XML element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="executor" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specifies the java.util.Executor instance to use when invoking asynchronous methods.
+       If not provided, an instance of org.springframework.core.task.SimpleAsyncTaskExecutor
+       will be used by default.
+       Note that as of Spring 3.1.2, individual @Async methods may qualify which executor to
+       use, meaning that the executor specified here acts as a default for all non-qualified
+       @Async methods.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="scheduler" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Specifies the org.springframework.scheduling.TaskScheduler or
+       java.util.ScheduledExecutorService instance to use when invoking scheduled
+       methods. If no reference is provided, a TaskScheduler backed by a single
+       thread scheduled executor will be used.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scheduler">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a ThreadPoolTaskScheduler instance with configurable pool size. See Javadoc
+       for the org.springframework.scheduling.annotation.EnableScheduling annotation for
+       information on a code-based alternative to this XML element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name for the generated ThreadPoolTaskScheduler instance.
+       It will also be used as the default thread name prefix.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="pool-size" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The size of the ScheduledExecutorService's thread pool. The default is 1.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="executor">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Defines a ThreadPoolTaskExecutor instance with configurable pool size,
+       queue-capacity, keep-alive, and rejection-policy values.
+
+       See Javadoc for the org.springframework.scheduling.annotation.EnableAsync annotation
+       for information on code-based alternatives to this XML element.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string" use="required">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The bean name for the generated ThreadPoolTaskExecutor instance.
+       This value will also be used as the thread name prefix which is why it is
+       required even when defining the executor as an inner bean: The executor
+       won't be directly accessible then but will nevertheless use the specified
+       id as the thread name prefix of the threads that it manages.
+       In the case of multiple task:executors, as of Spring 3.1.2 this value may be used to
+       qualify which executor should handle a given @Async method, e.g. @Async("executorId").
+       See the Javadoc for the #value attribute of Spring's @Async annotation for details.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="pool-size" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The size of the executor's thread pool as either a single value or a range
+       (e.g. 5-10). If no bounded queue-capacity value is provided, then a max value
+       has no effect unless the range is specified as 0-n. In that case, the core pool
+       will have a size of n, but the 'allowCoreThreadTimeout' flag will be set to true.
+       If a queue-capacity is provided, then the lower bound of a range will map to the
+       core size and the upper bound will map to the max size. If this attribute is not
+       provided, the default core size will be 1, and the default max size will be
+       Integer.MAX_VALUE (i.e. unbounded).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="queue-capacity" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Queue capacity for the ThreadPoolTaskExecutor. If not specified, the default will
+       be Integer.MAX_VALUE (i.e. unbounded).
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="keep-alive" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Keep-alive time in seconds. Inactive threads that have been created beyond the
+       core size will timeout after the specified number of seconds elapse. If the
+       executor has an unbounded queue capacity and a size range represented as 0-n,
+       then the core threads will also be configured to timeout when inactive.
+       Otherwise, core threads will not ever timeout.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="rejection-policy" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       The RejectedExecutionHandler type. When a bounded queue cannot accept any
+       additional tasks, this determines the behavior. While the default is ABORT,
+       consider using CALLER_RUNS to throttle inbound tasks. In other words, by forcing
+       the caller to run the task itself, it will not be able to provide another task
+       until after it completes the task at hand. In the meantime, one or more tasks
+       may be removed from the queue. Alternatively, if it is not critical to run every
+       task, consider using DISCARD to drop the current task or DISCARD_OLDEST to drop
+       the task at the head of the queue.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ABORT"/>
+                                               <xsd:enumeration value="CALLER_RUNS"/>
+                                               <xsd:enumeration value="DISCARD"/>
+                                               <xsd:enumeration value="DISCARD_OLDEST"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="scheduled-tasks">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Top-level element that contains one or more task sub-elements to be
+       managed by a given TaskScheduler.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:sequence>
+                               <xsd:element name="scheduled" type="scheduledTaskType" minOccurs="1" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="scheduler" type="xsd:string" use="optional">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Reference to an instance of TaskScheduler to manage the provided tasks. If not specified,
+       the default value will be a wrapper for a single-threaded Executor.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.scheduling.TaskScheduler"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="scheduledTaskType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Element defining a scheduled method-invoking task and its corresponding trigger.
+                       ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="cron" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A cron-based trigger. See the org.springframework.scheduling.support.CronSequenceGenerator
+       JavaDoc for example patterns.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="fixed-delay" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       An interval-based trigger where the interval is measured from the completion time of the
+       previous task. The time unit value is measured in milliseconds.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="fixed-rate" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       An interval-based trigger where the interval is measured from the start time of the
+       previous task. The time unit value is measured in milliseconds.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="trigger" type="xsd:string" use="optional">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       A reference to a bean that implements the Trigger interface.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="ref" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Reference to an object that provides a method to be invoked.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation kind="ref" />
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="method" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The name of the method to be invoked.
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:expected-method type-ref="@ref"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tool-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-tool-2.0.xsd
new file mode 100644 (file)
index 0000000..94f40e8
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tool"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/tool"
+               elementFormDefault="qualified">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the tool support annotations for Spring's configuration namespaces.
+       Used in other namespace XSD files; not intended for direct use in config files.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="annotation">
+               <xsd:complexType>
+                       <xsd:sequence minOccurs="0">
+                               <xsd:element name="expected-type" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="assignable-to" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="1"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="kind" default="direct">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ref"/>
+                                               <xsd:enumeration value="direct"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="typedParameterType">
+               <xsd:attribute name="type" type="xsd:string" use="required"/>
+       </xsd:complexType>
+
+       <xsd:complexType name="exportsType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Indicates that an annotated type exports an application visible component.
+               ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The type of the exported component. May be null if the type is not known until runtime.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="identifier" type="xsd:string" default="@id">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the identifier of any exported component.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tool-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-tool-2.5.xsd
new file mode 100644 (file)
index 0000000..17bec6d
--- /dev/null
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tool"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/tool"
+               elementFormDefault="qualified">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the tool support annotations for Spring's configuration namespaces.
+       Used in other namespace XSD files; not intended for direct use in config files.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="annotation">
+               <xsd:complexType>
+                       <xsd:sequence minOccurs="0">
+                               <xsd:element name="expected-type" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="assignable-to" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="registers-scope" type="registersScopeType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="kind" default="direct">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ref"/>
+                                               <xsd:enumeration value="direct"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="typedParameterType">
+               <xsd:attribute name="type" type="xsd:string" use="required"/>
+       </xsd:complexType>
+
+       <xsd:complexType name="exportsType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Indicates that an annotated type exports an application visible component.
+               ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The type of the exported component. May be null if the type is not known until runtime.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="identifier" type="xsd:string" default="@id">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the identifier of any exported component.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="registersScopeType">
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines the name of a custom bean scope that the annotated type registers, e.g. "conversation".
+       Such a scope will be available in addition to the standard "singleton" and "prototype" scopes
+       (plus "request", "session" and "globalSession" in a web application environment).
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tool-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-tool-3.0.xsd
new file mode 100644 (file)
index 0000000..62af970
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tool"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/tool"
+               elementFormDefault="qualified">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the tool support annotations for Spring's configuration namespaces.
+       Used in other namespace XSD files; not intended for direct use in config files.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="annotation">
+               <xsd:complexType>
+                       <xsd:sequence minOccurs="0">
+                               <xsd:element name="expected-type" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="assignable-to" type="assignableToType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xsd:element name="registers-scope" type="registersScopeType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xsd:element name="expected-method" type="expectedMethodType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="kind" default="direct">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ref"/>
+                                               <xsd:enumeration value="direct"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="typedParameterType">
+               <xsd:attribute name="type" type="xsd:string" use="required"/>
+       </xsd:complexType>
+
+       <xsd:complexType name="assignableToType">
+               <xsd:attribute name="type" type="xsd:string"/>
+               <xsd:attribute name="restriction" default="both">
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="both"/>
+                                       <xsd:enumeration value="interface-only"/>
+                                       <xsd:enumeration value="class-only"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="expectedMethodType">
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the class for which the this method is valid 
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="type-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine a referenced bean (by id or alias) for which the given method is valid 
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an AspectJ method execution pointcut expressions that matches valid methods 
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="exportsType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Indicates that an annotated type exports an application visible component.
+               ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The type of the exported component. May be null if the type is not known until runtime.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="identifier" type="xsd:string" default="@id">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the identifier of any exported component.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="registersScopeType">
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines the name of a custom bean scope that the annotated type registers, e.g. "conversation".
+       Such a scope will be available in addition to the standard "singleton" and "prototype" scopes
+       (plus "request", "session" and "globalSession" in a web application environment).
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+       
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tool-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-tool-3.1.xsd
new file mode 100644 (file)
index 0000000..9d84906
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tool"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               targetNamespace="http://www.springframework.org/schema/tool"
+               elementFormDefault="qualified">
+
+       <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the tool support annotations for Spring's configuration namespaces.
+       Used in other namespace XSD files; not intended for direct use in config files.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="annotation">
+               <xsd:complexType>
+                       <xsd:sequence minOccurs="0">
+                               <xsd:element name="expected-type" type="typedParameterType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="assignable-to" type="assignableToType" minOccurs="0" maxOccurs="1"/>
+                               <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xsd:element name="registers-scope" type="registersScopeType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xsd:element name="expected-method" type="expectedMethodType" minOccurs="0" maxOccurs="unbounded"/>
+                       </xsd:sequence>
+                       <xsd:attribute name="kind" default="direct">
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="ref"/>
+                                               <xsd:enumeration value="direct"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="typedParameterType">
+               <xsd:attribute name="type" type="xsd:string" use="required"/>
+       </xsd:complexType>
+
+       <xsd:complexType name="assignableToType">
+               <xsd:attribute name="type" type="xsd:string"/>
+               <xsd:attribute name="restriction" default="both">
+                       <xsd:simpleType>
+                               <xsd:restriction base="xsd:NMTOKEN">
+                                       <xsd:enumeration value="both"/>
+                                       <xsd:enumeration value="interface-only"/>
+                                       <xsd:enumeration value="class-only"/>
+                               </xsd:restriction>
+                       </xsd:simpleType>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="expectedMethodType">
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the class for which the this method is valid
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="type-ref" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine a referenced bean (by id or alias) for which the given method is valid
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="expression" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an AspectJ method execution pointcut expressions that matches valid methods
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="exportsType">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Indicates that an annotated type exports an application visible component.
+               ]]></xsd:documentation>
+               </xsd:annotation>
+               <xsd:attribute name="type" type="xsd:string">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       The type of the exported component. May be null if the type is not known until runtime.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+               <xsd:attribute name="identifier" type="xsd:string" default="@id">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines an XPath query that can be executed against the node annotated with this
+       type to determine the identifier of any exported component.
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+       <xsd:complexType name="registersScopeType">
+               <xsd:attribute name="name" type="xsd:string" use="required">
+                       <xsd:annotation>
+                               <xsd:documentation><![CDATA[
+       Defines the name of a custom bean scope that the annotated type registers, e.g. "conversation".
+       Such a scope will be available in addition to the standard "singleton" and "prototype" scopes
+       (plus "request", "session" and "globalSession" in a web application environment).
+               ]]></xsd:documentation>
+                       </xsd:annotation>
+               </xsd:attribute>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tx-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-tx-2.0.xsd
new file mode 100644 (file)
index 0000000..2d3837e
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tx"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/tx"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's declarative
+       transaction management infrastructure.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="advice">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.interceptor.TransactionInterceptor"><![CDATA[
+       Defines the transactional semantics of the AOP advice that is to be
+       executed.
+       
+       That is, this advice element is where the transactional semantics of
+       any     number of methods are defined (where transactional semantics
+       includes the propagation settings, the isolation level, the rollback
+       rules, and suchlike).
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.transaction.interceptor.TransactionInterceptor"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="attributes" type="attributesType" minOccurs="0" maxOccurs="1"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-driven">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"><![CDATA[
+       Indicates that transaction configuration is defined by Java 5
+       annotations on bean classes, and that proxies are automatically
+       to be created for the relevant annotated beans.
+
+       The default annotation supported is Spring's @Transactional.
+       Transaction semantics such as propagation settings, the isolation level,
+       the rollback rules, etc are all defined in the annotation metadata.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of the transaction advisor
+       when multiple advice executes at a specific joinpoint.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:complexType name="attributesType">
+               <xsd:sequence>
+                       <xsd:element name="method" minOccurs="1" maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The method name(s) with which the transaction attributes are to be
+       associated. The wildcard (*) character can be used to associate the
+       same transaction attribute settings with a number of methods; for
+       example, 'get*', 'handle*', '*Order', etc.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="propagation" default="REQUIRED">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Propagation"><![CDATA[
+       The transaction propagation behavior.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="REQUIRED"/>
+                                                               <xsd:enumeration value="SUPPORTS"/>
+                                                               <xsd:enumeration value="MANDATORY"/>
+                                                               <xsd:enumeration value="REQUIRES_NEW"/>
+                                                               <xsd:enumeration value="NOT_SUPPORTED"/>
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="NESTED"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="isolation" default="DEFAULT">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Isolation"><![CDATA[
+       The transaction isolation level.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="DEFAULT"/>
+                                                               <xsd:enumeration value="READ_UNCOMMITTED"/>
+                                                               <xsd:enumeration value="READ_COMMITTED"/>
+                                                               <xsd:enumeration value="REPEATABLE_READ"/>
+                                                               <xsd:enumeration value="SERIALIZABLE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="timeout" type="xsd:integer" default="-1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The transaction timeout value (in seconds).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="read-only" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Is this transaction read-only?
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="no-rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will *not* trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tx-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-tx-2.5.xsd
new file mode 100644 (file)
index 0000000..825024c
--- /dev/null
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tx"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/tx"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+       
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's declarative
+       transaction management infrastructure.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="advice">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.interceptor.TransactionInterceptor"><![CDATA[
+       Defines the transactional semantics of the AOP advice that is to be
+       executed.
+       
+       That is, this advice element is where the transactional semantics of
+       any     number of methods are defined (where transactional semantics
+       includes the propagation settings, the isolation level, the rollback
+       rules, and suchlike).
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.transaction.interceptor.TransactionInterceptor"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="attributes" type="attributesType" minOccurs="0" maxOccurs="1"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-driven">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"><![CDATA[
+       Indicates that transaction configuration is defined by Java 5
+       annotations on bean classes, and that proxies are automatically
+       to be created for the relevant annotated beans.
+
+       The default annotations supported are Spring's @Transactional
+       and EJB3's @TransactionAttribute (if available).
+
+       Transaction semantics such as propagation settings, the isolation level,
+       the rollback rules, etc are all defined in the annotation metadata.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="mode" default="proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Should annotated beans be proxied using Spring's AOP framework,
+       or should they rather be weaved with an AspectJ transaction aspect?
+
+       AspectJ weaving requires spring-aspects.jar on the classpath,
+       as well as load-time weaving (or compile-time weaving) enabled.
+
+       Note: The weaving-based aspect requires the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="proxy"/>
+                                               <xsd:enumeration value="aspectj"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+
+       Note: Class-based proxies require the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of the transaction advisor
+       when multiple advice executes at a specific joinpoint.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jta-transaction-manager">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Creates a default JtaTransactionManager bean with name "transactionManager",
+       matching the default bean name expected by the "annotation-driven" tag.
+       Automatically detects WebLogic, WebSphere and OC4J: creating a WebLogicJtaTransactionManager,
+       WebSphereUowTransactionManager or OC4JJtaTransactionManager, respectively.
+
+       For customization needs, consider defining a JtaTransactionManager bean as a regular
+       Spring bean definition with name "transactionManager", replacing this element.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.transaction.jta.JtaTransactionManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="attributesType">
+               <xsd:sequence>
+                       <xsd:element name="method" minOccurs="1" maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The method name(s) with which the transaction attributes are to be
+       associated. The wildcard (*) character can be used to associate the
+       same transaction attribute settings with a number of methods; for
+       example, 'get*', 'handle*', '*Order', 'on*Event', etc.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="propagation" default="REQUIRED">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Propagation"><![CDATA[
+       The transaction propagation behavior.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="REQUIRED"/>
+                                                               <xsd:enumeration value="SUPPORTS"/>
+                                                               <xsd:enumeration value="MANDATORY"/>
+                                                               <xsd:enumeration value="REQUIRES_NEW"/>
+                                                               <xsd:enumeration value="NOT_SUPPORTED"/>
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="NESTED"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="isolation" default="DEFAULT">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Isolation"><![CDATA[
+       The transaction isolation level.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="DEFAULT"/>
+                                                               <xsd:enumeration value="READ_UNCOMMITTED"/>
+                                                               <xsd:enumeration value="READ_COMMITTED"/>
+                                                               <xsd:enumeration value="REPEATABLE_READ"/>
+                                                               <xsd:enumeration value="SERIALIZABLE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="timeout" type="xsd:integer" default="-1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The transaction timeout value (in seconds).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="read-only" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Is this transaction read-only?
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="no-rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will *not* trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tx-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-tx-3.0.xsd
new file mode 100644 (file)
index 0000000..398e6f4
--- /dev/null
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tx"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/tx"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's declarative
+       transaction management infrastructure.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="advice">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.interceptor.TransactionInterceptor"><![CDATA[
+       Defines the transactional semantics of the AOP advice that is to be
+       executed.
+       
+       That is, this advice element is where the transactional semantics of
+       any     number of methods are defined (where transactional semantics
+       includes the propagation settings, the isolation level, the rollback
+       rules, and suchlike).
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.transaction.interceptor.TransactionInterceptor"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="attributes" type="attributesType" minOccurs="0" maxOccurs="1"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-driven">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"><![CDATA[
+       Indicates that transaction configuration is defined by Java 5
+       annotations on bean classes, and that proxies are automatically
+       to be created for the relevant annotated beans.
+
+       The default annotations supported are Spring's @Transactional
+       and EJB3's @TransactionAttribute (if available).
+
+       Transaction semantics such as propagation settings, the isolation level,
+       the rollback rules, etc are all defined in the annotation metadata.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+       
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="mode" default="proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Should annotated beans be proxied using Spring's AOP framework,
+       or should they rather be weaved with an AspectJ transaction aspect?
+
+       AspectJ weaving requires spring-aspects.jar on the classpath,
+       as well as load-time weaving (or compile-time weaving) enabled.
+
+       Note: The weaving-based aspect requires the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="proxy"/>
+                                               <xsd:enumeration value="aspectj"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+
+       Note: Class-based proxies require the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of the transaction advisor
+       when multiple advice executes at a specific joinpoint.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jta-transaction-manager">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Creates a default JtaTransactionManager bean with name "transactionManager",
+       matching the default bean name expected by the "annotation-driven" tag.
+       Automatically detects WebLogic, WebSphere and OC4J: creating a WebLogicJtaTransactionManager,
+       WebSphereUowTransactionManager or OC4JJtaTransactionManager, respectively.
+
+       For customization needs, consider defining a JtaTransactionManager bean as a regular
+       Spring bean definition with name "transactionManager", replacing this element.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.transaction.jta.JtaTransactionManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="attributesType">
+               <xsd:sequence>
+                       <xsd:element name="method" minOccurs="1" maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The method name(s) with which the transaction attributes are to be
+       associated. The wildcard (*) character can be used to associate the
+       same transaction attribute settings with a number of methods; for
+       example, 'get*', 'handle*', '*Order', 'on*Event', etc.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="propagation" default="REQUIRED">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Propagation"><![CDATA[
+       The transaction propagation behavior.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="REQUIRED"/>
+                                                               <xsd:enumeration value="SUPPORTS"/>
+                                                               <xsd:enumeration value="MANDATORY"/>
+                                                               <xsd:enumeration value="REQUIRES_NEW"/>
+                                                               <xsd:enumeration value="NOT_SUPPORTED"/>
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="NESTED"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="isolation" default="DEFAULT">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Isolation"><![CDATA[
+       The transaction isolation level.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="DEFAULT"/>
+                                                               <xsd:enumeration value="READ_UNCOMMITTED"/>
+                                                               <xsd:enumeration value="READ_COMMITTED"/>
+                                                               <xsd:enumeration value="REPEATABLE_READ"/>
+                                                               <xsd:enumeration value="SERIALIZABLE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="timeout" type="xsd:integer" default="-1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The transaction timeout value (in seconds).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="read-only" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Is this transaction read-only?
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="no-rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will *not* trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-tx-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-tx-3.1.xsd
new file mode 100644 (file)
index 0000000..0ae5641
--- /dev/null
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/tx"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/tx"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:annotation>
+               <xsd:documentation><![CDATA[
+       Defines the elements used in the Spring Framework's declarative
+       transaction management infrastructure.
+               ]]></xsd:documentation>
+       </xsd:annotation>
+
+       <xsd:element name="advice">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.interceptor.TransactionInterceptor"><![CDATA[
+       Defines the transactional semantics of the AOP advice that is to be
+       executed.
+
+       That is, this advice element is where the transactional semantics of
+       any     number of methods are defined (where transactional semantics
+       includes the propagation settings, the isolation level, the rollback
+       rules, and suchlike).
+                               ]]></xsd:documentation>
+                               <xsd:appinfo>
+                                       <tool:annotation>
+                                               <tool:exports type="org.springframework.transaction.interceptor.TransactionInterceptor"/>
+                                       </tool:annotation>
+                               </xsd:appinfo>
+                       </xsd:annotation>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:element name="attributes" type="attributesType" minOccurs="0" maxOccurs="1"/>
+                                       </xsd:sequence>
+                                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                                       ]]></xsd:documentation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation kind="ref">
+                                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="annotation-driven">
+               <xsd:complexType>
+                       <xsd:annotation>
+                               <xsd:documentation source="java:org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"><![CDATA[
+       Indicates that transaction configuration is defined by Java 5
+       annotations on bean classes, and that proxies are automatically
+       to be created for the relevant annotated beans.
+
+       The default annotations supported are Spring's @Transactional
+       and EJB3's @TransactionAttribute (if available).
+
+       Transaction semantics such as propagation settings, the isolation level,
+       the rollback rules, etc are all defined in the annotation metadata.
+
+       See org.springframework.transaction.annotation.EnableTransactionManagement Javadoc
+       for information on code-based alternatives to this XML element.
+                               ]]></xsd:documentation>
+                       </xsd:annotation>
+                       <xsd:attribute name="transaction-manager" type="xsd:string" default="transactionManager">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.transaction.PlatformTransactionManager"><![CDATA[
+       The bean name of the PlatformTransactionManager that is to be used
+       to drive transactions.
+
+       This attribute is not required, and only needs to be specified
+       explicitly if the bean name of the desired PlatformTransactionManager
+       is not 'transactionManager'.
+                                       ]]></xsd:documentation>
+                                       <xsd:appinfo>
+                                               <tool:annotation kind="ref">
+                                                       <tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
+                                               </tool:annotation>
+                                       </xsd:appinfo>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="mode" default="proxy">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Should annotated beans be proxied using Spring's AOP framework,
+       or should they rather be weaved with an AspectJ transaction aspect?
+
+       AspectJ weaving requires spring-aspects.jar on the classpath,
+       as well as load-time weaving (or compile-time weaving) enabled.
+
+       Note: The weaving-based aspect requires the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                               <xsd:simpleType>
+                                       <xsd:restriction base="xsd:string">
+                                               <xsd:enumeration value="proxy"/>
+                                               <xsd:enumeration value="aspectj"/>
+                                       </xsd:restriction>
+                               </xsd:simpleType>
+                       </xsd:attribute>
+                       <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
+                               <xsd:annotation>
+                                       <xsd:documentation><![CDATA[
+       Are class-based (CGLIB) proxies to be created? By default, standard
+       Java interface-based proxies are created.
+
+       Note: Class-based proxies require the @Transactional annotation to be
+       defined on the concrete class. Annotations in interfaces will not work
+       in that case (they will rather only work with interface-based proxies)!
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+                       <xsd:attribute name="order" type="xsd:int">
+                               <xsd:annotation>
+                                       <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
+       Controls the ordering of the execution of the transaction advisor
+       when multiple advice executes at a specific joinpoint.
+                                       ]]></xsd:documentation>
+                               </xsd:annotation>
+                       </xsd:attribute>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="jta-transaction-manager">
+               <xsd:annotation>
+                       <xsd:documentation><![CDATA[
+       Creates a default JtaTransactionManager bean with name "transactionManager",
+       matching the default bean name expected by the "annotation-driven" tag.
+       Automatically detects WebLogic, WebSphere and OC4J: creating a WebLogicJtaTransactionManager,
+       WebSphereUowTransactionManager or OC4JJtaTransactionManager, respectively.
+
+       For customization needs, consider defining a JtaTransactionManager bean as a regular
+       Spring bean definition with name "transactionManager", replacing this element.
+                       ]]></xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="org.springframework.transaction.jta.JtaTransactionManager"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+       </xsd:element>
+
+       <xsd:complexType name="attributesType">
+               <xsd:sequence>
+                       <xsd:element name="method" minOccurs="1" maxOccurs="unbounded">
+                               <xsd:complexType>
+                                       <xsd:attribute name="name" type="xsd:string" use="required">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The method name(s) with which the transaction attributes are to be
+       associated. The wildcard (*) character can be used to associate the
+       same transaction attribute settings with a number of methods; for
+       example, 'get*', 'handle*', '*Order', 'on*Event', etc.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="propagation" default="REQUIRED">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Propagation"><![CDATA[
+       The transaction propagation behavior.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="REQUIRED"/>
+                                                               <xsd:enumeration value="SUPPORTS"/>
+                                                               <xsd:enumeration value="MANDATORY"/>
+                                                               <xsd:enumeration value="REQUIRES_NEW"/>
+                                                               <xsd:enumeration value="NOT_SUPPORTED"/>
+                                                               <xsd:enumeration value="NEVER"/>
+                                                               <xsd:enumeration value="NESTED"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="isolation" default="DEFAULT">
+                                               <xsd:annotation>
+                                                       <xsd:documentation source="java:org.springframework.transaction.annotation.Isolation"><![CDATA[
+       The transaction isolation level.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                               <xsd:simpleType>
+                                                       <xsd:restriction base="xsd:string">
+                                                               <xsd:enumeration value="DEFAULT"/>
+                                                               <xsd:enumeration value="READ_UNCOMMITTED"/>
+                                                               <xsd:enumeration value="READ_COMMITTED"/>
+                                                               <xsd:enumeration value="REPEATABLE_READ"/>
+                                                               <xsd:enumeration value="SERIALIZABLE"/>
+                                                       </xsd:restriction>
+                                               </xsd:simpleType>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="timeout" type="xsd:integer" default="-1">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The transaction timeout value (in seconds).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="read-only" type="xsd:boolean" default="false">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Is this transaction read-only?
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="no-rollback-for" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The Exception(s) that will *not* trigger rollback; comma-delimited.
+       For example, 'com.foo.MyBusinessException,ServletException'
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:sequence>
+       </xsd:complexType>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-util-2.0.xsd b/Workspace/3dparty_src/spring/schema/spring-util-2.0.xsd
new file mode 100644 (file)
index 0000000..509c0ee
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/util"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/util"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
+
+       <xsd:element name="constant">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a public, static field on a type and expose its value as
+       a bean. For example <code>&lt;util:constant static-field=&quot;java.lang.Integer.MAX_VALUE&quot;/&gt;</code>.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="static-field" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-path">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a property on a bean (or as a nested value) and expose its values as
+       a bean. For example &lt;util:property-path path=&quot;order.customer.name&quot;/&gt;.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="path" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ListFactoryBean">
+       Builds a List instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.List"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="list-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.List"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.SetFactoryBean">
+       Builds a Set instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Set"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="set-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Set"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.MapFactoryBean">
+       Builds a Map instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Map"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:mapType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="map-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Map"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="properties">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.PropertiesFactoryBean">
+       Loads a Properties instance from the resource location specified by the '<code>location</code>' attribute.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:propsType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="location" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="org.springframework.core.io.Resource"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-util-2.5.xsd b/Workspace/3dparty_src/spring/schema/spring-util-2.5.xsd
new file mode 100644 (file)
index 0000000..eb04ecf
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/util"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/util"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.xsd"/>
+
+       <xsd:element name="constant">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a public, static field on a type and expose its value as
+       a bean. For example <code>&lt;util:constant static-field=&quot;java.lang.Integer.MAX_VALUE&quot;/&gt;</code>.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="static-field" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-path">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a property on a bean (or as a nested value) and expose its values as
+       a bean. For example &lt;util:property-path path=&quot;order.customer.name&quot;/&gt;.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="path" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ListFactoryBean">
+       Builds a List instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.List"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="list-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.List"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.SetFactoryBean">
+       Builds a Set instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Set"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="set-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Set"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.MapFactoryBean">
+       Builds a Map instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Map"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:mapType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="map-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Map"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="properties">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.PropertiesFactoryBean">
+       Loads a Properties instance from the resource location specified by the '<code>location</code>' attribute.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:propsType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="location" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="org.springframework.core.io.Resource"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local-override" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specifies whether local properties override properties from files.
+       Default is "false": properties from files override local defaults.
+       If set to "true", local properties will override defaults from files.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-util-3.0.xsd b/Workspace/3dparty_src/spring/schema/spring-util-3.0.xsd
new file mode 100644 (file)
index 0000000..287e31b
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/util"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/util"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd"/>
+
+       <xsd:element name="constant">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a public, static field on a type and expose its value as
+       a bean. For example <code>&lt;util:constant static-field=&quot;java.lang.Integer.MAX_VALUE&quot;/&gt;</code>.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="static-field" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-path">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a property on a bean (or as a nested value) and expose its values as
+       a bean. For example &lt;util:property-path path=&quot;order.customer.name&quot;/&gt;.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:ID"/>
+                       <xsd:attribute name="path" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ListFactoryBean">
+       Builds a List instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.List"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="list-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.List"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.SetFactoryBean">
+       Builds a Set instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Set"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="set-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Set"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.MapFactoryBean">
+       Builds a Map instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Map"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:mapType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="map-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Map"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="properties">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.PropertiesFactoryBean">
+       Loads a Properties instance from the resource location specified by the '<code>location</code>' attribute.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:propsType">
+                                       <xsd:attribute name="id" type="xsd:ID"/>
+                                       <xsd:attribute name="location" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="org.springframework.core.io.Resource"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local-override" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specifies whether local properties override properties from files.
+       Default is "false": properties from files override local defaults.
+       If set to "true", local properties will override defaults from files.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>
diff --git a/Workspace/3dparty_src/spring/schema/spring-util-3.1.xsd b/Workspace/3dparty_src/spring/schema/spring-util-3.1.xsd
new file mode 100644 (file)
index 0000000..9b5774a
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/util"
+               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+               xmlns:beans="http://www.springframework.org/schema/beans"
+               xmlns:tool="http://www.springframework.org/schema/tool"
+               targetNamespace="http://www.springframework.org/schema/util"
+               elementFormDefault="qualified"
+               attributeFormDefault="unqualified">
+
+       <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"/>
+       <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.xsd"/>
+
+       <xsd:element name="constant">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a public, static field on a type and expose its value as
+       a bean. For example <code>&lt;util:constant static-field=&quot;java.lang.Integer.MAX_VALUE&quot;/&gt;</code>.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string"/>
+                       <xsd:attribute name="static-field" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="property-path">
+               <xsd:annotation>
+                       <xsd:documentation>
+       Reference a property on a bean (or as a nested value) and expose its values as
+       a bean. For example &lt;util:property-path path=&quot;order.customer.name&quot;/&gt;.
+                       </xsd:documentation>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:attribute name="id" type="xsd:string"/>
+                       <xsd:attribute name="path" type="xsd:string" use="required"/>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="list">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.ListFactoryBean">
+       Builds a List instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.List"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:string"/>
+                                       <xsd:attribute name="list-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.List"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="set">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.SetFactoryBean">
+       Builds a Set instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Set"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:listOrSetType">
+                                       <xsd:attribute name="id" type="xsd:string"/>
+                                       <xsd:attribute name="set-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Set"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="map">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.MapFactoryBean">
+       Builds a Map instance of the specified type, populated with the specified content.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Map"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:mapType">
+                                       <xsd:attribute name="id" type="xsd:string"/>
+                                       <xsd:attribute name="map-class" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="java.lang.Class"/>
+                                                                       <tool:assignable-to type="java.util.Map"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="properties">
+               <xsd:annotation>
+                       <xsd:documentation source="java:org.springframework.beans.factory.config.PropertiesFactoryBean">
+       Loads a Properties instance from the resource location specified by the '<code>location</code>' attribute.
+                       </xsd:documentation>
+                       <xsd:appinfo>
+                               <tool:annotation>
+                                       <tool:exports type="java.util.Properties"/>
+                               </tool:annotation>
+                       </xsd:appinfo>
+               </xsd:annotation>
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:propsType">
+                                       <xsd:attribute name="id" type="xsd:string"/>
+                                       <xsd:attribute name="location" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:appinfo>
+                                                               <tool:annotation>
+                                                                       <tool:expected-type type="org.springframework.core.io.Resource"/>
+                                                               </tool:annotation>
+                                                       </xsd:appinfo>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="local-override" type="xsd:boolean">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       Specifies whether local properties override properties from files.
+       Default is "false": properties from files override local defaults.
+       If set to "true", local properties will override defaults from files.
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                                       <xsd:attribute name="scope" type="xsd:string">
+                                               <xsd:annotation>
+                                                       <xsd:documentation><![CDATA[
+       The scope of this collection bean: typically "singleton" (one shared instance,
+       which will be returned by all calls to getBean with the given id), or
+       "prototype" (independent instance resulting from each call to getBean).
+       Default is "singleton". Further scopes, such as "request" or "session",
+       might be supported by extended bean factories (e.g. in a web environment).
+                                                       ]]></xsd:documentation>
+                                               </xsd:annotation>
+                                       </xsd:attribute>
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+</xsd:schema>