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

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

	<xsd:element name="mongo-client" type="mongoClientType">
	  <xsd:annotation>
		<xsd:documentation source="org.springframework.data.mongodb.core.MongoClientFactoryBean"><![CDATA[
Defines a MongoClient instance used for accessing MongoDB.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:annotation>
					<tool:exports type="com.mongodb.MongoClient"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="db-factory">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a MongoDbFactory for connecting to a specific database
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="id" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the MongoDbFactory definition (by default "mongoDbFactory").]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="mongo-ref" type="mongoRef" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The reference to a MongoClient instance. If not configured a default com.mongodb.MongoClient instance will be created.
					]]>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="dbname" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the database to connect to. Default is 'db'.
							]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="client-uri" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The MongoClientURI string.]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="write-concern">
				<xsd:annotation>
					<xsd:documentation>
					The WriteConcern that will be the default value used when asking the MongoDbFactory for a DB object
					</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:union memberTypes="writeConcernEnumeration xsd:string"/>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:attributeGroup name="mongo-repository-attributes">
		<xsd:attribute name="mongo-template-ref" type="mongoTemplateRef" default="mongoTemplate">
			<xsd:annotation>
				<xsd:documentation>
					The reference to a MongoTemplate. Will default to 'mongoTemplate'.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="create-query-indexes" default="false">
			<xsd:annotation>
				<xsd:documentation>
					Enables creation of indexes for queries that get derived from the method name
					and thus reference domain class properties. Defaults to false.
				</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:union memberTypes="booleanType xsd:string" />
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:element name="repositories">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="repository:repositories">
					<xsd:attributeGroup ref="mongo-repository-attributes"/>
					<xsd:attributeGroup ref="repository:repository-attributes"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="mapping-converter">
		<xsd:annotation>
			<xsd:documentation><![CDATA[Defines a MongoConverter for getting rich mapping functionality.]]></xsd:documentation>
			<xsd:appinfo>
				<tool:exports type="org.springframework.data.mongodb.core.convert.MappingMongoConverter" />
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="custom-converters" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation><![CDATA[
		Top-level element that contains one or more custom converters to be used for mapping
		domain objects to and from Mongo's Document]]>
						</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="converter" type="customConverterType" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="base-package" type="xsd:string" />
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the MappingMongoConverter instance (by default "mappingConverter").]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="base-package" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The base package in which to scan for entities annotated with @Document
							]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="db-factory-ref" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>
						The reference to a DbFactory.
					</xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="org.springframework.data.mongodb.MongoDbFactory" />
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="type-mapper-ref" type="typeMapperRef" use="optional">
				<xsd:annotation>
					<xsd:documentation>
						The reference to a MongoTypeMapper to be used by this MappingMongoConverter.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="mapping-context-ref" type="mappingContextRef" use="optional">
				<xsd:annotation>
					<xsd:documentation source="org.springframework.data.mapping.model.MappingContext">
						The reference to a MappingContext. Will default to 'mappingContext'.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="disable-validation" use="optional">
				<xsd:annotation>
					<xsd:documentation source="org.springframework.data.mongodb.core.mapping.event.ValidatingMongoEventListener">
						Disables JSR-303 validation on MongoDB documents before they are saved. By default it is set to false.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:union memberTypes="xsd:boolean xsd:string"/>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="abbreviate-field-names" use="optional">
				<xsd:annotation>
					<xsd:documentation source="org.springframework.data.mongodb.core.mapping.CamelCaseAbbreviatingFieldNamingStrategy">
						Enables abbreviating the field names for domain class properties to the
						first character of their camel case names, e.g. fooBar -> fb. Defaults to false.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:union memberTypes="xsd:boolean xsd:string"/>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="field-naming-strategy-ref" type="fieldNamingStrategyRef" use="optional">
				<xsd:annotation>
					<xsd:documentation source="org.springframework.data.mongodb.core.mapping.FieldNamingStrategy">
						The reference to a FieldNamingStrategy.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="jmx">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a JMX Model MBeans for monitoring a MongoDB server'.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="mongo-ref" type="mongoRef" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the MongoClient object that determines what server to monitor. (by default "mongoClient").]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="auditing">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation>
					<tool:exports type="org.springframework.data.mongodb.core.mapping.event.AuditingEventListener" />
					<tool:exports type="org.springframework.data.auditing.IsNewAwareAuditingHandler" />
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attributeGroup ref="repository:auditing-attributes" />
			<xsd:attribute name="mapping-context-ref" type="mappingContextRef" />
		</xsd:complexType>
	</xsd:element>

	<xsd:simpleType name="typeMapperRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mongodb.core.convert.MongoTypeMapper"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="mappingContextRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mapping.model.MappingContext"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="fieldNamingStrategyRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mongodb.core.mapping.FieldNamingStrategy"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="mongoTemplateRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mongodb.core.MongoTemplate"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="mongoRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mongodb.core.MongoClientFactoryBean"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="sslSocketFactoryRef">
	<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="javax.net.ssl.SSLSocketFactory"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:simpleType name="writeConcernEnumeration">
		<xsd:restriction base="xsd:token">
			<xsd:enumeration value="NONE" />
			<xsd:enumeration value="NORMAL" />
			<xsd:enumeration value="SAFE" />
			<xsd:enumeration value="FSYNC_SAFE" />
			<xsd:enumeration value="REPLICAS_SAFE" />
			<xsd:enumeration value="JOURNAL_SAFE" />
			<xsd:enumeration value="MAJORITY" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="readPreferenceEnumeration">
		<xsd:restriction base="xsd:token">
			<xsd:enumeration value="PRIMARY" />
			<xsd:enumeration value="PRIMARY_PREFERRED" />
			<xsd:enumeration value="SECONDARY" />
			<xsd:enumeration value="SECONDARY_PREFERRED" />
			<xsd:enumeration value="NEAREST" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="booleanType">
		<xsd:restriction base="xsd:token">
			<xsd:enumeration value="true" />
			<xsd:enumeration value="false" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="mongoClientType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Configuration options for 'MongoClient' - @since 1.7
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0" maxOccurs="1">
			<xsd:element name="client-options" type="clientOptionsType">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The Mongo driver options
							]]></xsd:documentation>
					<xsd:appinfo>
						<tool:annotation>
							<tool:exports type="com.mongodb.MongoClientOptions"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the MongoClient definition (by default "mongoClient").]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="port" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The port to connect to MongoDB server.  Default is 27017
							]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="host" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The host to connect to a MongoDB server.  Default is localhost
							]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="replica-set" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The comma delimited list of host:port entries to use for replica set/pairs.
							]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="credentials" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The comma delimited list of username:password@database entries to use for authentication. Appending ?uri.authMechanism allows to specify the authentication challenge mechanism. If the credential you're trying to pass contains a comma itself, quote it with single quotes: '…'.
							]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="clientOptionsType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Configuration options for 'MongoClientOptions' - @since 1.7
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="description" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The MongoClient description.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="min-connections-per-host" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The minimum number of connections per host.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="connections-per-host" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The number of connections allowed per host.  Will block if run out.	 Default is 100.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="threads-allowed-to-block-for-connection-multiplier" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The multiplier for connectionsPerHost for # of threads that can block.  Default is 5.
If connectionsPerHost is 10, and threadsAllowedToBlockForConnectionMultiplier is 5,
then 50 threads can block more than that and an exception will be thrown.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="max-wait-time" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The max wait time of a blocking thread for a connection. Default is 120000 ms (2 minutes).
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="max-connection-idle-time" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The maximum idle time for a pooled connection.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="max-connection-life-time" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The maximum life time for a pooled connection.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="connect-timeout" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The connect timeout in milliseconds. 0 is default and infinite.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="socket-timeout" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The socket timeout.  0 is default and infinite.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="socket-keep-alive" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The keep alive flag, controls whether or not to have socket keep alive timeout. Defaults to false.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="server-selection-timeout" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The server selection timeout in milliseconds, which defines how long the driver will wait for server selection to succeed before throwing an exception. Default is 30 seconds.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="read-preference">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The read preference.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:union memberTypes="readPreferenceEnumeration xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="write-concern">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The WriteConcern that will be the default value used when asking the MongoDbFactory for a DB object
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:union memberTypes="writeConcernEnumeration xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="heartbeat-frequency" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
This is the frequency that the driver will attempt to determine the current state of each server in the cluster.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="min-heartbeat-frequency" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="heartbeat-connect-timeout" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The connect timeout for connections used for the cluster heartbeat.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="heartbeat-socket-timeout" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The socket timeout for connections used for the cluster heartbeat.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="ssl" default="false">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
This controls if the driver should us an SSL connection.  Defaults to false.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:union memberTypes="booleanType xsd:string" />
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="ssl-socket-factory-ref" type="sslSocketFactoryRef" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The SSLSocketFactory to use for the SSL connection. If none is configured here, SSLSocketFactory#getDefault() will be used.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:group name="beanElementGroup">
		<xsd:choice>
			<xsd:element ref="beans:bean"/>
			<xsd:element ref="beans:ref"/>
		</xsd:choice>
	</xsd:group>

	<xsd:complexType name="customConverterType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
	Element defining a custom converter.
	]]></xsd:documentation>
		</xsd:annotation>
		<xsd:group ref="beanElementGroup" minOccurs="0" maxOccurs="1"/>
		<xsd:attribute name="ref" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					A reference to a custom converter.
				</xsd:documentation>
				<xsd:appinfo>
					<tool:annotation kind="ref"/>
				</xsd:appinfo>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:simpleType name="converterRef">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="org.springframework.data.mongodb.core.convert.MongoConverter"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:element name="template">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a MongoTemplate.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="id" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the MongoTemplate definition (by default "mongoTemplate").]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="converter-ref" type="converterRef" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The reference to a MappingMongoConverter instance.
					]]>
					</xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="org.springframework.data.mongodb.core.convert.MongoConverter"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="db-factory-ref" type="xsd:string"
				use="optional">
				<xsd:annotation>
					<xsd:documentation>
						The reference to a DbFactory.
					</xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to
								type="org.springframework.data.mongodb.MongoDbFactory" />
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="write-concern">
				<xsd:annotation>
					<xsd:documentation>
					The WriteConcern that will be the default value used when asking the MongoDbFactory for a DB object
					</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:union memberTypes="writeConcernEnumeration xsd:string"/>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="gridFsTemplate">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a GridFsTemplate.
			]]></xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="id" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The name of the GridFsTemplate definition (by default "gridFsTemplate").]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="converter-ref" type="converterRef" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The reference to a MappingMongoConverter instance.
					]]>
					</xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="org.springframework.data.mongodb.core.convert.MongoConverter"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="db-factory-ref" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>
						The reference to a DbFactory.
					</xsd:documentation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="org.springframework.data.mongodb.MongoDbFactory" />
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="bucket" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The GridFs bucket string.]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
