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-3.1.xsd"/>
12 <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.1.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>
59 <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
61 <xsd:documentation><![CDATA[
62 Indicate that the proxy should be exposed by the AOP framework as a
63 ThreadLocal for retrieval via the AopContext class. Off by default,
64 i.e. no guarantees that AopContext access will work.
65 ]]></xsd:documentation>
71 <xsd:element name="aspectj-autoproxy">
73 <xsd:documentation source="java:org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"><![CDATA[
74 Enables the use of the @AspectJ style of Spring AOP.
76 See org.springframework.context.annotation.EnableAspectJAutoProxy Javadoc
77 for information on code-based alternatives to this XML element.
78 ]]></xsd:documentation>
82 <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
84 <xsd:documentation><![CDATA[
85 Indicates that only @AspectJ beans with names matched by the (regex)
86 pattern will be considered as defining aspects to use for Spring autoproxying.
87 ]]></xsd:documentation>
91 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
93 <xsd:documentation><![CDATA[
94 Are class-based (CGLIB) proxies to be created? By default, standard
95 Java interface-based proxies are created.
96 ]]></xsd:documentation>
99 <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
101 <xsd:documentation><![CDATA[
102 Indicate that the proxy should be exposed by the AOP framework as a
103 ThreadLocal for retrieval via the AopContext class. Off by default,
104 i.e. no guarantees that AopContext access will work.
105 ]]></xsd:documentation>
111 <xsd:element name="scoped-proxy">
114 <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
115 Marks a bean definition as being a scoped proxy.
117 A bean marked as such will be exposed via a proxy, with the 'real'
118 bean instance being retrieved from some other source (such as a
119 HttpSession) as and when required.
120 ]]></xsd:documentation>
122 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
124 <xsd:documentation><![CDATA[
125 Are class-based (CGLIB) proxies to be created? This is the default; in order to
126 switch to standard Java interface-based proxies, turn this flag to "false".
127 ]]></xsd:documentation>
133 <xsd:complexType name="aspectType">
134 <xsd:choice minOccurs="0" maxOccurs="unbounded">
135 <xsd:element name="pointcut" type="pointcutType">
137 <xsd:documentation><![CDATA[
138 A named pointcut definition.
139 ]]></xsd:documentation>
142 <xsd:element name="declare-parents" type="declareParentsType">
144 <xsd:documentation><![CDATA[
145 Allows this aspect to introduce additional interfaces that the advised
146 object will transparently implement.
147 ]]></xsd:documentation>
150 <xsd:element name="before" type="basicAdviceType">
152 <xsd:documentation><![CDATA[
153 A before advice definition.
154 ]]></xsd:documentation>
157 <xsd:element name="after" type="basicAdviceType">
159 <xsd:documentation><![CDATA[
160 An after advice definition.
161 ]]></xsd:documentation>
164 <xsd:element name="after-returning" type="afterReturningAdviceType">
166 <xsd:documentation><![CDATA[
167 An after-returning advice definition.
168 ]]></xsd:documentation>
171 <xsd:element name="after-throwing" type="afterThrowingAdviceType">
173 <xsd:documentation><![CDATA[
174 An after-throwing advice definition.
175 ]]></xsd:documentation>
178 <xsd:element name="around" type="basicAdviceType">
180 <xsd:documentation><![CDATA[
181 An around advice definition.
182 ]]></xsd:documentation>
186 <xsd:attribute name="id" type="xsd:string">
188 <xsd:documentation><![CDATA[
189 The unique identifier for an aspect.
190 ]]></xsd:documentation>
193 <xsd:attribute name="ref" type="xsd:string">
195 <xsd:documentation><![CDATA[
196 The name of the (backing) bean that encapsulates the aspect.
197 ]]></xsd:documentation>
200 <xsd:attribute name="order" type="xsd:int">
202 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
203 Controls the ordering of the execution of this aspect when multiple
204 advice executes at a specific joinpoint.
205 ]]></xsd:documentation>
210 <xsd:complexType name="includeType">
211 <xsd:attribute name="name" type="xsd:string">
213 <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
214 The regular expression defining which beans are to be included in the
215 list of @AspectJ beans; beans with names matched by the pattern will
217 ]]></xsd:documentation>
222 <xsd:complexType name="pointcutType">
226 <tool:exports type="org.springframework.aop.Pointcut"/>
230 <xsd:attribute name="id" type="xsd:string" use="required">
232 <xsd:documentation><![CDATA[
233 The unique identifier for a pointcut.
234 ]]></xsd:documentation>
237 <xsd:attribute name="expression" use="required" type="xsd:string">
239 <xsd:documentation><![CDATA[
240 The pointcut expression.
242 For example : 'execution(* com.xyz.myapp.service.*.*(..))'
243 ]]></xsd:documentation>
248 <xsd:complexType name="declareParentsType">
249 <xsd:attribute name="types-matching" type="xsd:string" use="required">
251 <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
252 The AspectJ type expression that defines what types (classes) the
253 introduction is restricted to.
255 An example would be 'org.springframework.beans.ITestBean+'.
256 ]]></xsd:documentation>
259 <xsd:attribute name="implement-interface" type="xsd:string" use="required">
261 <xsd:documentation source="java:java.lang.Class"><![CDATA[
262 The fully qualified name of the interface that will be introduced.
263 ]]></xsd:documentation>
266 <xsd:attribute name="default-impl" type="xsd:string">
268 <xsd:documentation source="java:java.lang.Class"><![CDATA[
269 The fully qualified name of the class that will be instantiated to serve
270 as the default implementation of the introduced interface.
271 ]]></xsd:documentation>
274 <xsd:attribute name="delegate-ref" type="xsd:string">
276 <xsd:documentation><![CDATA[
277 A reference to the bean that will serve
278 as the default implementation of the introduced interface.
279 ]]></xsd:documentation>
281 <tool:annotation kind="ref"/>
287 <xsd:complexType name="basicAdviceType">
288 <xsd:attribute name="pointcut" type="xsd:string">
290 <xsd:documentation><![CDATA[
291 The associated pointcut expression.
292 ]]></xsd:documentation>
295 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
297 <xsd:documentation><![CDATA[
298 The name of an associated pointcut definition.
299 ]]></xsd:documentation>
301 <tool:annotation kind="ref">
302 <tool:expected-type type="org.springframework.aop.Pointcut"/>
307 <xsd:attribute name="method" type="xsd:string" use="required">
309 <xsd:documentation><![CDATA[
310 The name of the method that defines the logic of the advice.
311 ]]></xsd:documentation>
314 <xsd:attribute name="arg-names" type="xsd:string">
316 <xsd:documentation><![CDATA[
317 The comma-delimited list of advice method argument (parameter) names
318 that will be matched from pointcut parameters.
319 ]]></xsd:documentation>
324 <xsd:complexType name="afterReturningAdviceType">
326 <xsd:extension base="basicAdviceType">
327 <xsd:attribute name="returning" type="xsd:string">
329 <xsd:documentation><![CDATA[
330 The name of the method parameter to which the return value must
332 ]]></xsd:documentation>
336 </xsd:complexContent>
339 <xsd:complexType name="afterThrowingAdviceType">
341 <xsd:extension base="basicAdviceType">
342 <xsd:attribute name="throwing" type="xsd:string">
344 <xsd:documentation><![CDATA[
345 The name of the method parameter to which the thrown exception must
347 ]]></xsd:documentation>
351 </xsd:complexContent>
354 <xsd:complexType name="advisorType">
358 <tool:exports type="org.springframework.aop.Advisor"/>
362 <xsd:attribute name="id" type="xsd:string"/>
363 <xsd:attribute name="advice-ref" type="xsd:string" use="required">
365 <xsd:documentation><![CDATA[
366 A reference to an advice bean.
367 ]]></xsd:documentation>
369 <tool:annotation kind="ref">
370 <tool:expected-type type="org.aopalliance.aop.Advice"/>
375 <xsd:attribute name="pointcut" type="xsd:string">
377 <xsd:documentation><![CDATA[
378 A pointcut expression.
379 ]]></xsd:documentation>
382 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
384 <xsd:documentation><![CDATA[
385 A reference to a pointcut definition.
386 ]]></xsd:documentation>
389 <xsd:attribute name="order" type="xsd:int">
391 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
392 Controls the ordering of the execution of this advice when multiple
393 advice executes at a specific joinpoint.
394 ]]></xsd:documentation>
399 <xsd:simpleType name="pointcutRefType">
402 <tool:annotation kind="ref">
403 <tool:expected-type type="org.springframework.aop.Pointcut"/>
407 <xsd:union memberTypes="xsd:string"/>