1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
3 <xsd:schema xmlns="http://www.springframework.org/schema/aop"
4 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5 xmlns:beans="http://www.springframework.org/schema/beans"
6 xmlns:tool="http://www.springframework.org/schema/tool"
7 targetNamespace="http://www.springframework.org/schema/aop"
8 elementFormDefault="qualified"
9 attributeFormDefault="unqualified">
11 <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/>
12 <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.0.xsd"/>
15 <xsd:documentation><![CDATA[
16 Defines the configuration elements for the Spring Framework's AOP support.
17 ]]></xsd:documentation>
20 <xsd:element name="config">
22 <xsd:documentation><![CDATA[
23 A section (compartmentalization) of AOP-specific configuration (including
24 aspects, pointcuts, etc).
25 ]]></xsd:documentation>
29 <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded">
31 <xsd:documentation><![CDATA[
32 A named pointcut definition.
33 ]]></xsd:documentation>
36 <xsd:element name="advisor" type="advisorType" minOccurs="0" maxOccurs="unbounded">
38 <xsd:documentation source="java:org.springframework.aop.Advisor"><![CDATA[
39 A named advisor definition.
40 ]]></xsd:documentation>
43 <xsd:element name="aspect" type="aspectType" minOccurs="0" maxOccurs="unbounded">
45 <xsd:documentation><![CDATA[
46 A named aspect definition.
47 ]]></xsd:documentation>
51 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
53 <xsd:documentation><![CDATA[
54 Are class-based (CGLIB) proxies to be created? By default, standard
55 Java interface-based proxies are created.
56 ]]></xsd:documentation>
62 <xsd:element name="aspectj-autoproxy">
64 <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
65 Enables the use of the @AspectJ style of Spring AOP.
66 ]]></xsd:documentation>
70 <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
72 <xsd:documentation><![CDATA[
73 Indicates that only @AspectJ beans with names matched by the (regex)
74 pattern will be considered as defining aspects to use for Spring autoproxying.
75 ]]></xsd:documentation>
79 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
81 <xsd:documentation><![CDATA[
82 Are class-based (CGLIB) proxies to be created? By default, standard
83 Java interface-based proxies are created.
84 ]]></xsd:documentation>
90 <xsd:element name="scoped-proxy">
93 <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
94 Marks a bean definition as being a scoped proxy.
96 A bean marked as such will be exposed via a proxy, with the 'real'
97 bean instance being retrieved from some other source (such as a
98 HttpSession) as and when required.
99 ]]></xsd:documentation>
101 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
103 <xsd:documentation><![CDATA[
104 Are class-based (CGLIB) proxies to be created? This is the default; in order to
105 switch to standard Java interface-based proxies, turn this flag to "false".
106 ]]></xsd:documentation>
112 <xsd:element name="spring-configured">
114 <xsd:documentation source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"><![CDATA[
115 Signals the current application context to apply dependency injection
116 to non-managed objects that are instantiated outside of the Spring bean
117 factory (typically classes annotated with the @Configurable annotation).
118 ]]></xsd:documentation>
121 <xsd:restriction base="xsd:string"/>
125 <xsd:complexType name="aspectType">
126 <xsd:choice minOccurs="0" maxOccurs="unbounded">
127 <xsd:element name="pointcut" type="pointcutType">
129 <xsd:documentation><![CDATA[
130 A named pointcut definition.
131 ]]></xsd:documentation>
134 <xsd:element name="declare-parents" type="declareParentsType">
136 <xsd:documentation><![CDATA[
137 Allows this aspect to introduce additional interfaces that the advised
138 object will transparently implement.
139 ]]></xsd:documentation>
142 <xsd:element name="before" type="basicAdviceType">
144 <xsd:documentation><![CDATA[
145 A before advice definition.
146 ]]></xsd:documentation>
149 <xsd:element name="after" type="basicAdviceType">
151 <xsd:documentation><![CDATA[
152 An after advice definition.
153 ]]></xsd:documentation>
156 <xsd:element name="after-returning" type="afterReturningAdviceType">
158 <xsd:documentation><![CDATA[
159 An after-returning advice definition.
160 ]]></xsd:documentation>
163 <xsd:element name="after-throwing" type="afterThrowingAdviceType">
165 <xsd:documentation><![CDATA[
166 An after-throwing advice definition.
167 ]]></xsd:documentation>
170 <xsd:element name="around" type="basicAdviceType">
172 <xsd:documentation><![CDATA[
173 An around advice definition.
174 ]]></xsd:documentation>
178 <xsd:attribute name="id" type="xsd:ID">
180 <xsd:documentation><![CDATA[
181 The unique identifier for an aspect.
182 ]]></xsd:documentation>
185 <xsd:attribute name="ref" type="xsd:string">
187 <xsd:documentation><![CDATA[
188 The name of the (backing) bean that encapsulates the aspect.
189 ]]></xsd:documentation>
192 <xsd:attribute name="order" type="xsd:int">
194 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
195 Controls the ordering of the execution of this aspect when multiple
196 advice executes at a specific joinpoint.
197 ]]></xsd:documentation>
202 <xsd:complexType name="includeType">
203 <xsd:attribute name="name" type="xsd:string">
205 <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
206 The regular expression defining which beans are to be included in the
207 list of @AspectJ beans; beans with names matched by the pattern will
209 ]]></xsd:documentation>
214 <xsd:complexType name="pointcutType">
218 <tool:exports type="org.springframework.aop.Pointcut"/>
222 <xsd:attribute name="id" type="xsd:ID">
224 <xsd:documentation><![CDATA[
225 The unique identifier for a pointcut.
226 ]]></xsd:documentation>
229 <xsd:attribute name="expression" use="required" type="xsd:string">
231 <xsd:documentation><![CDATA[
232 The pointcut expression.
234 For example : 'execution(* com.xyz.myapp.service.*.*(..))'
235 ]]></xsd:documentation>
238 <xsd:attribute name="type" default="aspectj">
240 <xsd:documentation><![CDATA[
241 The type of pointcut expression (see the associated enumeration).
242 DEPRECATED: Only AspectJ expression pointcuts are supported.
243 ]]></xsd:documentation>
246 <xsd:restriction base="xsd:string">
247 <xsd:enumeration value="aspectj"/>
248 <xsd:enumeration value="regex"/>
254 <xsd:complexType name="declareParentsType">
255 <xsd:attribute name="types-matching" type="xsd:string" use="required">
257 <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
258 The AspectJ type expression that defines what types (classes) the
259 introduction is restricted to.
261 An example would be 'org.springframework.beans.ITestBean+'.
262 ]]></xsd:documentation>
265 <xsd:attribute name="implement-interface" type="xsd:string" use="required">
267 <xsd:documentation source="java:java.lang.Class"><![CDATA[
268 The fully qualified name of the interface that will be introduced.
269 ]]></xsd:documentation>
272 <xsd:attribute name="default-impl" type="xsd:string" use="required">
274 <xsd:documentation source="java:java.lang.Class"><![CDATA[
275 The fully qualified name of the class that will be instantiated to serve
276 as the default implementation of the introduced interface.
277 ]]></xsd:documentation>
282 <xsd:complexType name="basicAdviceType">
283 <xsd:attribute name="pointcut" type="xsd:string">
285 <xsd:documentation><![CDATA[
286 The associated pointcut expression.
287 ]]></xsd:documentation>
290 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
292 <xsd:documentation><![CDATA[
293 The name of an associated pointcut definition.
294 ]]></xsd:documentation>
296 <tool:annotation kind="ref">
297 <tool:expected-type type="org.springframework.aop.Pointcut"/>
302 <xsd:attribute name="method" type="xsd:string" use="required">
304 <xsd:documentation><![CDATA[
305 The name of the method that defines the logic of the advice.
306 ]]></xsd:documentation>
309 <xsd:attribute name="arg-names" type="xsd:string">
311 <xsd:documentation><![CDATA[
312 The comma-delimited list of advice method argument (parameter) names
313 that will be matched from pointcut parameters.
314 ]]></xsd:documentation>
319 <xsd:complexType name="afterReturningAdviceType">
321 <xsd:extension base="basicAdviceType">
322 <xsd:attribute name="returning" type="xsd:string">
324 <xsd:documentation><![CDATA[
325 The name of the method parameter to which the return value must
327 ]]></xsd:documentation>
331 </xsd:complexContent>
334 <xsd:complexType name="afterThrowingAdviceType">
336 <xsd:extension base="basicAdviceType">
337 <xsd:attribute name="throwing" type="xsd:string">
339 <xsd:documentation><![CDATA[
340 The name of the method parameter to which the thrown exception must
342 ]]></xsd:documentation>
346 </xsd:complexContent>
349 <xsd:complexType name="advisorType">
353 <tool:exports type="org.springframework.aop.Advisor"/>
357 <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
358 <xsd:attribute name="id" type="xsd:ID"/>
359 <xsd:attribute name="advice-ref" type="xsd:string" use="required">
361 <xsd:documentation><![CDATA[
362 A reference to an advice bean.
363 ]]></xsd:documentation>
365 <tool:annotation kind="ref">
366 <tool:expected-type type="org.aopalliance.aop.Advice"/>
371 <xsd:attribute name="pointcut" type="xsd:string">
373 <xsd:documentation><![CDATA[
374 A pointcut expression.
375 ]]></xsd:documentation>
378 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
380 <xsd:documentation><![CDATA[
381 A reference to a pointcut definition.
382 ]]></xsd:documentation>
385 <xsd:attribute name="order" type="xsd:int">
387 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
388 Controls the ordering of the execution of this advice when multiple
389 advice executes at a specific joinpoint.
390 ]]></xsd:documentation>
395 <xsd:simpleType name="pointcutRefType">
398 <tool:annotation kind="ref">
399 <tool:expected-type type="org.springframework.aop.Pointcut"/>
403 <xsd:union memberTypes="xsd:string"/>