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

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

	<xsd:annotation>
		<xsd:documentation><![CDATA[
Defines the configuration elements in the XML namespace for Spring Data Cassandra.
		]]></xsd:documentation>
	</xsd:annotation>

	<xsd:element name="cluster" type="clusterType">
		<xsd:annotation>
			<xsd:documentation
				source="org.springframework.cassandra.config.xml.CassandraClusterFactoryBean"><![CDATA[
Defines a Cassandra cluster.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:annotation>
					<tool:exports type="com.datastax.driver.core.Cluster" />
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="session" type="sessionType">
		<xsd:annotation>
			<xsd:documentation
				source="org.springframework.data.cassandra.config.xml.CassandraDataSessionFactoryBean"><![CDATA[
Defines a Cassandra session.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:annotation>
					<tool:exports type="com.datastax.driver.core.Session" />
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
	</xsd:element>

	<xsd:element name="template" type="templateType">
		<xsd:annotation>
			<xsd:documentation
				source="org.springframework.data.cassandra.config.xml.CassandraDataTemplateFactoryBean"><![CDATA[
Defines a CassandraTemplate.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:annotation>
					<tool:exports
						type="org.springframework.data.cassandra.CassandraTemplate" />
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
	</xsd:element>

	<xsd:simpleType name="clusterRef" final="union">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="com.datastax.driver.core.Cluster"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string" />
	</xsd:simpleType>

	<xsd:complexType name="clusterType">
		<xsd:sequence>
			<xsd:element name="local-pooling-options" type="poolingOptionsType" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Local pooling options.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="remote-pooling-options" type="poolingOptionsType" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Remote pooling options.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="socket-options" type="socketOptionsType" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Socket options.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="keyspace" type="keyspaceType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Provides the ability to define a keyspace.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="startup-cql" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
				<!-- TODO: cql could come from a resource via a resource attribute... -->
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Arbitrary CQL script to be executed against the system keyspace during bean initialization.  Multiple elements will be executed in document order.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="shutdown-cql" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
				<!-- TODO: cql could come from a resource via a resource attribute... -->
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Arbitrary CQL script to be executed against the system keyspace during bean destruction.  Multiple elements will be executed in document order.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:ID" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the Cassandra Cluster definition; default is "cassandra-cluster".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="contact-points" type="xsd:string"
					   use="optional" default="localhost">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The comma separated list of Cassandra servers. Default is "localhost".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="port" type="xsd:string" use="optional"
					   default="9042">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The native CQL port to connect to.  Default is 9042.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="compression" default="NONE" use="optional"
					   type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The protocol compression option. Default is "NONE".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="username" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
When Authentication is enabled, the username to use when connecting to the Cluster.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="password" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
When Authentication is enabled, the password to use when connecting to the Cluster.
				]]>
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="metrics-enabled" type="xsd:string"
					   default="true">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Determine whether or not to collect metrics.  Defaults to true.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="jmx-reporting-enabled" type="xsd:string"
					   default="true">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Determine whether or not to enable JMX Reporting.  Defaults to true.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="ssl-enabled" type="xsd:string"
					   default="false">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Determine if SSL is used for Cassandra communication. Defaults to false.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="auth-info-provider-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
AuthInfoProvider implementation.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="com.datastax.driver.core.AuthInfoProvider"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="load-balancing-policy-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
LoadBalancingPolicy implementation.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to
									type="com.datastax.driver.core.policies.LoadBalancingPolicy"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="reconnection-policy-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
ReconnectionPolicy implementation.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to
									type="com.datastax.driver.core.policies.ReconnectionPolicy"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="retry-policy-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
RetryPolicy implementation.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to
									type="com.datastax.driver.core.policies.RetryPolicy"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="ssl-options-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Custom SSL Options. sslEnabled must be true for sslOptions to be used.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="com.datastax.driver.core.SSLOptions"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="host-state-listener-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Custom Host State Listener for the Cassandra Cluster.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="com.datastax.driver.core.Host.StateListener"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="latency-tracker-ref" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Custom Latency Tracker for the Cassandra Cluster.
				]]></xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:annotation>
					<xsd:appinfo>
						<tool:annotation kind="ref">
							<tool:assignable-to type="com.datastax.driver.core.LatencyTracker"/>
						</tool:annotation>
					</xsd:appinfo>
				</xsd:annotation>
				<xsd:union memberTypes="xsd:string"/>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:simpleType name="sessionRef" final="union">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to type="com.datastax.driver.core.Session"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:complexType name="poolingOptionsType">
		<xsd:attribute name="min-simultaneous-requests" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
If the utilisation of opened connections drops below by this configured threshold, then cassandra drops connections till core-connections.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="max-simultaneous-requests" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
If the utilisation of connections reaches this configurable threshold, then cassandra creates more connections up to max-connections.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="core-connections" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
For each host, the driver keeps a core amount of connections open at all time.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="max-connections" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
More connections are created up to a configurable maximum number of connections.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="socketOptionsType">
		<xsd:attribute name="connect-timeout-millis" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets connection timeout for client socket in milliseconds.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="keep-alive" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_KEEPALIVE socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="read-timeout-millis" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets read timeout for client socket in milliseconds.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="reuse-address" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_REUSEADDR socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="so-linger" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_LINGER socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="tcp-no-delay" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_TCPNODELAY socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="receive-buffer-size" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_RCVBUF socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="send-buffer-size" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Sets the SO_SNDBUF socket option.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="sessionType">
		<xsd:sequence>
			<xsd:element name="startup-cql" type="xsd:string"
						 minOccurs="0" maxOccurs="unbounded">
				<!-- TODO: cql could come from a resource via a resource attribute... -->
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Arbitrary CQL script to be executed against the session's keyspace during bean initialization.  Multiple elements will be executed in document order.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="shutdown-cql" type="xsd:string"
						 minOccurs="0" maxOccurs="unbounded">
				<!-- TODO: cql could come from a resource via a resource attribute... -->
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Arbitrary CQL script to be executed against the session's keyspace during bean destruction.  Multiple elements will be executed in document order.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>

		<xsd:attribute name="id" type="xsd:ID" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the session definition; default is "cassandra-session".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="cluster-ref" type="clusterRef" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The reference to a Cassandra cluster; default is "cassandra-cluster".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="keyspace-name" type="xsd:string"
					   use="required">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of a Cassandra Keyspace.  No default; for the system keyspace, use the empty string.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="cassandra-converter-ref" type="cassandraConverterRef"
					   use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The reference to a CassandraConverter; default is "cassandraConverter".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="schema-action" type="xsd:string"
					   use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The schema action to perform; default is NONE.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="templateType">
		<xsd:attribute name="id" type="xsd:ID" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the template; default is "cassandraTemplate".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="session-ref" type="sessionRef" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The reference to a Cassandra session; default is "cassandra-session".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="cassandra-converter-ref" type="cassandraConverterRef"
					   use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The reference to a CassandraConverter; default is "cassandraConverter".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="keyspaceType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Provides the ability to define keyspaces.
					]]></xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="replication" type="replicationType"
						 minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Provides the ability to configure the keyspace's replication settings.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of this keyspace.  Required.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="action" use="required" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The keyspace action to take at startup and possibly shutdown.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="durable-writes" type="xsd:string"
					   use="optional" default="false">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Whether or not the keyspace supports durable writes.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="replicationType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Provides the ability to configure the keyspace's replication settings.
					]]></xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="data-center" type="datacenterType"
						 minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
Provides the ability to specify replication factors by data center.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="class" type="xsd:string" use="optional"
					   default="SimpleStrategy">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the replication class; default is "SIMPLE_STRATEGY".
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="replication-factor" type="xsd:string"
					   use="optional" default="1">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The replication factor; default is 1.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="datacenterType">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Provides the ability to specify replication factors by data center.
					]]></xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="name" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the data center.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="replication-factor" type="xsd:string"
					   use="required">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The replication factor for the data center.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:simpleType name="cassandraConverterRef" final="union">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to
							type="org.springframework.data.cassandra.convert.CassandraConverter"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:complexType name="entityType">
		<xsd:sequence>
			<xsd:element name="table" type="tableType" minOccurs="0"
						 maxOccurs="1">
			</xsd:element>
			<xsd:element name="property" type="propertyType"
						 minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="class" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Entity class name.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="tableType">
		<xsd:attribute name="name" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Table name override.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>

		<xsd:attribute name="force-quote" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Whether to force-quote the table name.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>

		<!-- TODO: allow specification of C* table options here -->
	</xsd:complexType>

	<xsd:complexType name="propertyType">
		<xsd:attribute name="name" use="required" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The name of the property.  Required.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="column-name" use="optional" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The column-name that the property should be mapped to.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="force-quote" use="optional" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
Whether the column name should be force-quoted.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:simpleType name="cassandraTemplateRef" final="union">
		<xsd:annotation>
			<xsd:appinfo>
				<tool:annotation kind="ref">
					<tool:assignable-to
							type="org.springframework.data.cassandra.core.CassandraTemplate"/>
				</tool:annotation>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:union memberTypes="xsd:string"/>
	</xsd:simpleType>

	<xsd:attributeGroup name="cassandra-repository-attributes">
		<xsd:attribute name="cassandra-template-ref" type="cassandraTemplateRef">
			<xsd:annotation>
				<xsd:documentation><![CDATA[
The reference to a cassandraTemplate. Will default to 'cassandraTemplate'.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

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

	<xsd:element name="mapping">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a CassandraMappingContext for holding rich entity mapping information.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:exports
						type="org.springframework.data.cassandra.core.mapping.CassandraMappingContext"/>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="entity" type="entityType" minOccurs="0"
							 maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="entity-base-packages" type="xsd:string"
						   use="optional">
				<xsd:annotation>
					<xsd:documentation><![CDATA[
The comma-delimited base packages in which to scan for entities and their mapping information.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="converter">
		<xsd:annotation>
			<xsd:documentation><![CDATA[
Defines a CassandraConverter for getting rich mapping functionality.
			]]></xsd:documentation>
			<xsd:appinfo>
				<tool:exports
						type="org.springframework.data.cassandra.convert.CassandraConverter"/>
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="mapping-ref" type="mappingContextRef"
						   use="optional">
				<xsd:annotation>
					<xsd:documentation
							source="org.springframework.data.cassandra.core.mapping.CassandraMappingContext"><![CDATA[
The reference to a CassandraMappingContext. Will default to 'cassandraMapping'.
					]]></xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

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