1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201 |
- <?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 4.3
- 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.
- Such inner beans do not have an independent lifecycle; they are typically
- anonymous nested objects that share the scope of their containing bean.
- 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 should be parsed. Multiple profiles
- can be separated by spaces, commas, or semi-colons.
- 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.
- If a profile is prefixed with the NOT operator '!', e.g.
- <beans profile="p1,!p2">
- indicates that the <beans> element should be parsed if profile "p1" is active or
- if profile "p2" is not active.
- 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. The default is "default",
- indicating inheritance from outer 'beans' sections in case of nesting,
- otherwise falling back to "false".
- ]]></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 "default",
- indicating inheritance from outer 'beans' sections in case of nesting,
- otherwise falling back to "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",
- indicating inheritance from outer 'beans' sections in case of nesting,
- otherwise falling back to "no" (i.e. no externally driven autowiring).
- ]]></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 scope 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 is a prototype, etc.
- ]]></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 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 effective default is "false".
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition. It can be
- shared through the 'default-lazy-init' attribute at the 'beans' level
- and potentially inherited from outer 'beans' defaults in case of nested
- 'beans' sections (e.g. with different profiles).
- ]]></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. The effective default is "no".
- 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. It can be
- shared through the 'default-autowire' attribute at the 'beans' level
- and potentially inherited from outer 'beans' defaults in case of nested
- 'beans' sections (e.g. with different profiles).
- ]]></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.
- This is an alternative to implementing Spring's InitializingBean
- interface or marking a method with the PostConstruct annotation.
- ]]></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.
- This is an alternative to implementing Spring's DisposableBean
- interface or the standard Java Closeable/AutoCloseable interface,
- or marking a method with the PreDestroy annotation.
- 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 may have arguments which
- will be passed on to the target constructor or factory method. Note
- that for backwards compatibility reasons, in a scenario with overloaded
- non-abstract methods of the given name, only the no-arg variant of a
- method will be turned into a container-driven lookup method.
- Consider using the @Lookup annotation for more specific demarcation.
- ]]></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. Usually this bean will be a
- prototype, in which case the lookup method will return a distinct
- instance on every invocation. If not specified, the lookup method's
- return type will be used for a type-based lookup.
- ]]></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="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: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:attribute name="value-type" type="xsd:string">
- <xsd:annotation>
- <xsd:documentation><![CDATA[
- A short-cut alternative to a 'type' attribute on a nested
- "<value type='...' >...</value>" element.
- ]]></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>
|