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.0.xsd"/>
12 <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.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>
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.
75 ]]></xsd:documentation>
79 <xsd:element name="include" type="includeType" minOccurs="0" maxOccurs="unbounded">
81 <xsd:documentation><![CDATA[
82 Indicates that only @AspectJ beans with names matched by the (regex)
83 pattern will be considered as defining aspects to use for Spring autoproxying.
84 ]]></xsd:documentation>
88 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="false">
90 <xsd:documentation><![CDATA[
91 Are class-based (CGLIB) proxies to be created? By default, standard
92 Java interface-based proxies are created.
93 ]]></xsd:documentation>
96 <xsd:attribute name="expose-proxy" type="xsd:boolean" default="false">
98 <xsd:documentation><![CDATA[
99 Indicate that the proxy should be exposed by the AOP framework as a
100 ThreadLocal for retrieval via the AopContext class. Off by default,
101 i.e. no guarantees that AopContext access will work.
102 ]]></xsd:documentation>
108 <xsd:element name="scoped-proxy">
111 <xsd:documentation source="java:org.springframework.aop.scope.ScopedProxyFactoryBean"><![CDATA[
112 Marks a bean definition as being a scoped proxy.
114 A bean marked as such will be exposed via a proxy, with the 'real'
115 bean instance being retrieved from some other source (such as a
116 HttpSession) as and when required.
117 ]]></xsd:documentation>
119 <xsd:attribute name="proxy-target-class" type="xsd:boolean" default="true">
121 <xsd:documentation><![CDATA[
122 Are class-based (CGLIB) proxies to be created? This is the default; in order to
123 switch to standard Java interface-based proxies, turn this flag to "false".
124 ]]></xsd:documentation>
130 <xsd:complexType name="aspectType">
131 <xsd:choice minOccurs="0" maxOccurs="unbounded">
132 <xsd:element name="pointcut" type="pointcutType">
134 <xsd:documentation><![CDATA[
135 A named pointcut definition.
136 ]]></xsd:documentation>
139 <xsd:element name="declare-parents" type="declareParentsType">
141 <xsd:documentation><![CDATA[
142 Allows this aspect to introduce additional interfaces that the advised
143 object will transparently implement.
144 ]]></xsd:documentation>
147 <xsd:element name="before" type="basicAdviceType">
149 <xsd:documentation><![CDATA[
150 A before advice definition.
151 ]]></xsd:documentation>
154 <xsd:element name="after" type="basicAdviceType">
156 <xsd:documentation><![CDATA[
157 An after advice definition.
158 ]]></xsd:documentation>
161 <xsd:element name="after-returning" type="afterReturningAdviceType">
163 <xsd:documentation><![CDATA[
164 An after-returning advice definition.
165 ]]></xsd:documentation>
168 <xsd:element name="after-throwing" type="afterThrowingAdviceType">
170 <xsd:documentation><![CDATA[
171 An after-throwing advice definition.
172 ]]></xsd:documentation>
175 <xsd:element name="around" type="basicAdviceType">
177 <xsd:documentation><![CDATA[
178 An around advice definition.
179 ]]></xsd:documentation>
183 <xsd:attribute name="id" type="xsd:ID">
185 <xsd:documentation><![CDATA[
186 The unique identifier for an aspect.
187 ]]></xsd:documentation>
190 <xsd:attribute name="ref" type="xsd:string">
192 <xsd:documentation><![CDATA[
193 The name of the (backing) bean that encapsulates the aspect.
194 ]]></xsd:documentation>
197 <xsd:attribute name="order" type="xsd:int">
199 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
200 Controls the ordering of the execution of this aspect when multiple
201 advice executes at a specific joinpoint.
202 ]]></xsd:documentation>
207 <xsd:complexType name="includeType">
208 <xsd:attribute name="name" type="xsd:string">
210 <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
211 The regular expression defining which beans are to be included in the
212 list of @AspectJ beans; beans with names matched by the pattern will
214 ]]></xsd:documentation>
219 <xsd:complexType name="pointcutType">
223 <tool:exports type="org.springframework.aop.Pointcut"/>
227 <xsd:attribute name="id" type="xsd:ID" use="required">
229 <xsd:documentation><![CDATA[
230 The unique identifier for a pointcut.
231 ]]></xsd:documentation>
234 <xsd:attribute name="expression" use="required" type="xsd:string">
236 <xsd:documentation><![CDATA[
237 The pointcut expression.
239 For example : 'execution(* com.xyz.myapp.service.*.*(..))'
240 ]]></xsd:documentation>
245 <xsd:complexType name="declareParentsType">
246 <xsd:attribute name="types-matching" type="xsd:string" use="required">
248 <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
249 The AspectJ type expression that defines what types (classes) the
250 introduction is restricted to.
252 An example would be 'org.springframework.beans.ITestBean+'.
253 ]]></xsd:documentation>
256 <xsd:attribute name="implement-interface" type="xsd:string" use="required">
258 <xsd:documentation source="java:java.lang.Class"><![CDATA[
259 The fully qualified name of the interface that will be introduced.
260 ]]></xsd:documentation>
263 <xsd:attribute name="default-impl" type="xsd:string">
265 <xsd:documentation source="java:java.lang.Class"><![CDATA[
266 The fully qualified name of the class that will be instantiated to serve
267 as the default implementation of the introduced interface.
268 ]]></xsd:documentation>
271 <xsd:attribute name="delegate-ref" type="xsd:string">
273 <xsd:documentation><![CDATA[
274 A reference to the bean that will serve
275 as the default implementation of the introduced interface.
276 ]]></xsd:documentation>
278 <tool:annotation kind="ref"/>
284 <xsd:complexType name="basicAdviceType">
285 <xsd:attribute name="pointcut" type="xsd:string">
287 <xsd:documentation><![CDATA[
288 The associated pointcut expression.
289 ]]></xsd:documentation>
292 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
294 <xsd:documentation><![CDATA[
295 The name of an associated pointcut definition.
296 ]]></xsd:documentation>
298 <tool:annotation kind="ref">
299 <tool:expected-type type="org.springframework.aop.Pointcut"/>
304 <xsd:attribute name="method" type="xsd:string" use="required">
306 <xsd:documentation><![CDATA[
307 The name of the method that defines the logic of the advice.
308 ]]></xsd:documentation>
311 <xsd:attribute name="arg-names" type="xsd:string">
313 <xsd:documentation><![CDATA[
314 The comma-delimited list of advice method argument (parameter) names
315 that will be matched from pointcut parameters.
316 ]]></xsd:documentation>
321 <xsd:complexType name="afterReturningAdviceType">
323 <xsd:extension base="basicAdviceType">
324 <xsd:attribute name="returning" type="xsd:string">
326 <xsd:documentation><![CDATA[
327 The name of the method parameter to which the return value must
329 ]]></xsd:documentation>
333 </xsd:complexContent>
336 <xsd:complexType name="afterThrowingAdviceType">
338 <xsd:extension base="basicAdviceType">
339 <xsd:attribute name="throwing" type="xsd:string">
341 <xsd:documentation><![CDATA[
342 The name of the method parameter to which the thrown exception must
344 ]]></xsd:documentation>
348 </xsd:complexContent>
351 <xsd:complexType name="advisorType">
355 <tool:exports type="org.springframework.aop.Advisor"/>
359 <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
360 <xsd:attribute name="id" type="xsd:ID"/>
361 <xsd:attribute name="advice-ref" type="xsd:string" use="required">
363 <xsd:documentation><![CDATA[
364 A reference to an advice bean.
365 ]]></xsd:documentation>
367 <tool:annotation kind="ref">
368 <tool:expected-type type="org.aopalliance.aop.Advice"/>
373 <xsd:attribute name="pointcut" type="xsd:string">
375 <xsd:documentation><![CDATA[
376 A pointcut expression.
377 ]]></xsd:documentation>
380 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
382 <xsd:documentation><![CDATA[
383 A reference to a pointcut definition.
384 ]]></xsd:documentation>
387 <xsd:attribute name="order" type="xsd:int">
389 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
390 Controls the ordering of the execution of this advice when multiple
391 advice executes at a specific joinpoint.
392 ]]></xsd:documentation>
397 <xsd:simpleType name="pointcutRefType">
400 <tool:annotation kind="ref">
401 <tool:expected-type type="org.springframework.aop.Pointcut"/>
405 <xsd:union memberTypes="xsd:string"/>