<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:tool="http://www.springframework.org/schema/tool"
	targetNamespace="http://www.springframework.org/schema/mvc"
	elementFormDefault="qualified" attributeFormDefault="unqualified">

	<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" />
	<xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.0.xsd" />

	<xsd:element name="annotation-driven">
		<xsd:annotation>
			<xsd:documentation
				source="java:org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><![CDATA[
	Configures the annotation-driven Spring MVC Controller programming model.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="conversion-service" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation source="java:org.springframework.core.convert.ConversionService"><![CDATA[
	The bean name of the ConversionService that is to be used for type conversion during field binding.
	This attribute is not required, and only needs to be specified explicitly if custom converters need to be configured.
	If not specified, a default FormattingConversionService is registered that contains converters to/from standard JDK types.
	In addition, full support for date/time formatting will be installed if the Joda Time library is present on the classpath.
					]]></xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:expected-type type="java:org.springframework.core.convert.ConversionService" />
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="validator" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation source="java:org.springframework.validation.Validator"><![CDATA[
	The bean name of the Validator that is to be used to validate Controller model objects.
	This attribute is not required, and only needs to be specified explicitly if a custom Validator needs to be configured.
	If not specified, JSR-303 validation will be installed if a JSR-303 provider is present on the classpath.
					]]></xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:expected-type type="java:org.springframework.validation.Validator" />
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="interceptors">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
	The ordered set of interceptors that intercept HTTP Servlet Requests handled by Controllers.
	Interceptors allow requests to be pre/post processed before/after handling.
	Each inteceptor must implement the org.springframework.web.servlet.HandlerInterceptor or org.springframework.web.context.request.WebRequestInterceptor interface.
	The interceptors in this set are automatically configured on each registered HandlerMapping.
	The URI paths each interceptor applies to are configurable.
			]]></xsd:documentation>
		</xsd:annotation>			
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">
				<xsd:element ref="beans:bean">
					<xsd:annotation>
						<xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[
	Registers an interceptor that intercepts every request regardless of its URI path.
						]]></xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="interceptor">
					<xsd:annotation>
						<xsd:documentation source="java:org.springframework.web.servlet.handler.MappedInterceptor"><![CDATA[
	Registers an interceptor that interceptors requests sent to one or more URI paths.
						]]></xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="mapping" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:attribute name="path" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:documentation><![CDATA[
	A path into the application intercepted by this interceptor.
	Exact path mapping URIås (such as "/myPath") are supported as well as Ant-stype path patterns (such as /myPath/**).
											]]></xsd:documentation>
										</xsd:annotation>
									</xsd:attribute>								
								</xsd:complexType>
							</xsd:element>
							<xsd:element ref="beans:bean">
										<xsd:annotation>
											<xsd:documentation><![CDATA[
	The interceptor's bean definition.
											]]></xsd:documentation>
										</xsd:annotation>							
							</xsd:element>						
						</xsd:sequence>
					</xsd:complexType>			
				</xsd:element>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="view-controller">
		<xsd:annotation>
			<xsd:documentation
				source="java:org.springframework.web.servlet.mvc.ParameterizableViewController"><![CDATA[
	Defines a simple Controller that selects a view to render the response.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="path" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
	The URL path the view is mapped to.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="view-name" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
	The name of the view to render.  Optional.
	If not specified, the view name will be determined from the current HttpServletRequest by the DispatcherServlet's RequestToViewNameTranslator.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>