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.5.xsd"/>
12 <xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-2.5.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:complexType name="aspectType">
113 <xsd:choice minOccurs="0" maxOccurs="unbounded">
114 <xsd:element name="pointcut" type="pointcutType">
116 <xsd:documentation><![CDATA[
117 A named pointcut definition.
118 ]]></xsd:documentation>
121 <xsd:element name="declare-parents" type="declareParentsType">
123 <xsd:documentation><![CDATA[
124 Allows this aspect to introduce additional interfaces that the advised
125 object will transparently implement.
126 ]]></xsd:documentation>
129 <xsd:element name="before" type="basicAdviceType">
131 <xsd:documentation><![CDATA[
132 A before advice definition.
133 ]]></xsd:documentation>
136 <xsd:element name="after" type="basicAdviceType">
138 <xsd:documentation><![CDATA[
139 An after advice definition.
140 ]]></xsd:documentation>
143 <xsd:element name="after-returning" type="afterReturningAdviceType">
145 <xsd:documentation><![CDATA[
146 An after-returning advice definition.
147 ]]></xsd:documentation>
150 <xsd:element name="after-throwing" type="afterThrowingAdviceType">
152 <xsd:documentation><![CDATA[
153 An after-throwing advice definition.
154 ]]></xsd:documentation>
157 <xsd:element name="around" type="basicAdviceType">
159 <xsd:documentation><![CDATA[
160 An around advice definition.
161 ]]></xsd:documentation>
165 <xsd:attribute name="id" type="xsd:ID">
167 <xsd:documentation><![CDATA[
168 The unique identifier for an aspect.
169 ]]></xsd:documentation>
172 <xsd:attribute name="ref" type="xsd:string">
174 <xsd:documentation><![CDATA[
175 The name of the (backing) bean that encapsulates the aspect.
176 ]]></xsd:documentation>
179 <xsd:attribute name="order" type="xsd:int">
181 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
182 Controls the ordering of the execution of this aspect when multiple
183 advice executes at a specific joinpoint.
184 ]]></xsd:documentation>
189 <xsd:complexType name="includeType">
190 <xsd:attribute name="name" type="xsd:string">
192 <xsd:documentation source="java:java.util.regex.Pattern"><![CDATA[
193 The regular expression defining which beans are to be included in the
194 list of @AspectJ beans; beans with names matched by the pattern will
196 ]]></xsd:documentation>
201 <xsd:complexType name="pointcutType">
205 <tool:exports type="org.springframework.aop.Pointcut"/>
209 <xsd:attribute name="id" type="xsd:ID" use="required">
211 <xsd:documentation><![CDATA[
212 The unique identifier for a pointcut.
213 ]]></xsd:documentation>
216 <xsd:attribute name="expression" use="required" type="xsd:string">
218 <xsd:documentation><![CDATA[
219 The pointcut expression.
221 For example : 'execution(* com.xyz.myapp.service.*.*(..))'
222 ]]></xsd:documentation>
227 <xsd:complexType name="declareParentsType">
228 <xsd:attribute name="types-matching" type="xsd:string" use="required">
230 <xsd:documentation source="java:org.springframework.aop.aspectj.TypePatternClassFilter"><![CDATA[
231 The AspectJ type expression that defines what types (classes) the
232 introduction is restricted to.
234 An example would be 'org.springframework.beans.ITestBean+'.
235 ]]></xsd:documentation>
238 <xsd:attribute name="implement-interface" type="xsd:string" use="required">
240 <xsd:documentation source="java:java.lang.Class"><![CDATA[
241 The fully qualified name of the interface that will be introduced.
242 ]]></xsd:documentation>
245 <xsd:attribute name="default-impl" type="xsd:string">
247 <xsd:documentation source="java:java.lang.Class"><![CDATA[
248 The fully qualified name of the class that will be instantiated to serve
249 as the default implementation of the introduced interface.
250 ]]></xsd:documentation>
253 <xsd:attribute name="delegate-ref" type="xsd:string">
255 <xsd:documentation><![CDATA[
256 A reference to the bean that will serve
257 as the default implementation of the introduced interface.
258 ]]></xsd:documentation>
260 <tool:annotation kind="ref"/>
266 <xsd:complexType name="basicAdviceType">
267 <xsd:attribute name="pointcut" type="xsd:string">
269 <xsd:documentation><![CDATA[
270 The associated pointcut expression.
271 ]]></xsd:documentation>
274 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
276 <xsd:documentation><![CDATA[
277 The name of an associated pointcut definition.
278 ]]></xsd:documentation>
280 <tool:annotation kind="ref">
281 <tool:expected-type type="org.springframework.aop.Pointcut"/>
286 <xsd:attribute name="method" type="xsd:string" use="required">
288 <xsd:documentation><![CDATA[
289 The name of the method that defines the logic of the advice.
290 ]]></xsd:documentation>
293 <xsd:attribute name="arg-names" type="xsd:string">
295 <xsd:documentation><![CDATA[
296 The comma-delimited list of advice method argument (parameter) names
297 that will be matched from pointcut parameters.
298 ]]></xsd:documentation>
303 <xsd:complexType name="afterReturningAdviceType">
305 <xsd:extension base="basicAdviceType">
306 <xsd:attribute name="returning" type="xsd:string">
308 <xsd:documentation><![CDATA[
309 The name of the method parameter to which the return value must
311 ]]></xsd:documentation>
315 </xsd:complexContent>
318 <xsd:complexType name="afterThrowingAdviceType">
320 <xsd:extension base="basicAdviceType">
321 <xsd:attribute name="throwing" type="xsd:string">
323 <xsd:documentation><![CDATA[
324 The name of the method parameter to which the thrown exception must
326 ]]></xsd:documentation>
330 </xsd:complexContent>
333 <xsd:complexType name="advisorType">
337 <tool:exports type="org.springframework.aop.Advisor"/>
341 <!-- Rick : ID type written explicitly as opposed to being imported (c.f. [SPR-2290] -->
342 <xsd:attribute name="id" type="xsd:ID"/>
343 <xsd:attribute name="advice-ref" type="xsd:string" use="required">
345 <xsd:documentation><![CDATA[
346 A reference to an advice bean.
347 ]]></xsd:documentation>
349 <tool:annotation kind="ref">
350 <tool:expected-type type="org.aopalliance.aop.Advice"/>
355 <xsd:attribute name="pointcut" type="xsd:string">
357 <xsd:documentation><![CDATA[
358 A pointcut expression.
359 ]]></xsd:documentation>
362 <xsd:attribute name="pointcut-ref" type="pointcutRefType">
364 <xsd:documentation><![CDATA[
365 A reference to a pointcut definition.
366 ]]></xsd:documentation>
369 <xsd:attribute name="order" type="xsd:int">
371 <xsd:documentation source="java:org.springframework.core.Ordered"><![CDATA[
372 Controls the ordering of the execution of this advice when multiple
373 advice executes at a specific joinpoint.
374 ]]></xsd:documentation>
379 <xsd:simpleType name="pointcutRefType">
382 <tool:annotation kind="ref">
383 <tool:expected-type type="org.springframework.aop.Pointcut"/>
387 <xsd:union memberTypes="xsd:string"/>