--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>3dparty_src</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
--- /dev/null
+hibernate-distribution-3.5.3-Final-dist.zip
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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, <import> 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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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><util:constant static-field="java.lang.Integer.MAX_VALUE"/></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 <util:property-path path="order.customer.name"/>.
+ </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>
--- /dev/null
+<?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><util:constant static-field="java.lang.Integer.MAX_VALUE"/></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 <util:property-path path="order.customer.name"/>.
+ </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>
--- /dev/null
+<?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><util:constant static-field="java.lang.Integer.MAX_VALUE"/></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 <util:property-path path="order.customer.name"/>.
+ </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>
--- /dev/null
+<?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><util:constant static-field="java.lang.Integer.MAX_VALUE"/></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 <util:property-path path="order.customer.name"/>.
+ </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>