一、添加Provider.config

<?xml version="1.0" encoding="utf-8"?>
<providers
xmlns="http://ibatis.apache.org/providers"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <clear/>
<provider
name="sqlServer1.0"
description="Microsoft SQL Server 7.0/2000, provider V1.0.3300.0 in framework .NET V1.0"
enabled="true"
assemblyName="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"/>
<provider
name="sqlServer1.1"
description="Microsoft SQL Server 7.0/2000, provider V1.0.5000.0 in framework .NET V1.1"
enabled="true"
default="true"
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"/>
<provider
name="sqlServer2.0"
enabled="true"
description="Microsoft SQL Server 2005, provider V2.0.50215.0 in framework .NET V2.0"
assemblyName="System.Data, Version=2.0.50215.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
/>
<provider
name="sqlServer4.0"
enabled="true"
default="true"
description="Microsoft SQL Server, provider V4.0.0.0 in framework .NET V4.0"
assemblyName="System.Data, Version=4.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.SqlClient.SqlConnection"
commandClass="System.Data.SqlClient.SqlCommand"
parameterClass="System.Data.SqlClient.SqlParameter"
parameterDbTypeClass="System.Data.SqlDbType"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
allowMARS="true"
/>
<provider name="OleDb1.1"
description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"
enabled="true"
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.OleDb.OleDbConnection"
commandClass="System.Data.OleDb.OleDbCommand"
parameterClass="System.Data.OleDb.OleDbParameter"
parameterDbTypeClass="System.Data.OleDb.OleDbType"
parameterDbTypeProperty="OleDbType"
dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""/>
<provider
name="Odbc1.1"
description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"
enabled="true"
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.Odbc.OdbcConnection"
commandClass="System.Data.Odbc.OdbcCommand"
parameterClass="System.Data.Odbc.OdbcParameter"
parameterDbTypeClass="System.Data.Odbc.OdbcType"
parameterDbTypeProperty="OdbcType"
dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"
commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix="@"/>
<provider
name="oracle9.2"
description="Oracle, Oracle provider V9.2.0.401"
enabled="false"
assemblyName="Oracle.DataAccess, Version=9.2.0.401, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"
commandClass="Oracle.DataAccess.Client.OracleCommand"
parameterClass="Oracle.DataAccess.Client.OracleParameter"
parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
parameterDbTypeProperty="OracleDbType"
dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="false"
parameterPrefix=":"
useDeriveParameters="false"/>
<provider
name="oracle10.1"
description="Oracle, oracle provider V10.1.0.301"
enabled="false"
assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"
commandClass="Oracle.DataAccess.Client.OracleCommand"
parameterClass="Oracle.DataAccess.Client.OracleParameter"
parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"
parameterDbTypeProperty="OracleDbType"
dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"
commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix=":"
useDeriveParameters="false"/>
<provider
name="oracleClient1.0"
description="Oracle, Microsoft provider V1.0.5000.0"
enabled="false"
assemblyName="System.Data.OracleClient, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.OracleClient.OracleConnection"
commandClass="System.Data.OracleClient.OracleCommand"
parameterClass="System.Data.OracleClient.OracleParameter"
parameterDbTypeClass="System.Data.OracleClient.OracleType"
parameterDbTypeProperty="OracleType"
dataAdapterClass="System.Data.OracleClient.OracleDataAdapter"
commandBuilderClass="System.Data.OracleClient.OracleCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="false"
parameterPrefix=":"/>
<provider
name="ByteFx"
description="MySQL, ByteFx provider V0.7.6.15073"
enabled="false"
assemblyName="ByteFX.MySqlClient, Version=0.7.6.15073, Culture=neutral, PublicKeyToken=f2fef6fed1732fc1" connectionClass="ByteFX.Data.MySqlClient.MySqlConnection"
commandClass="ByteFX.Data.MySqlClient.MySqlCommand"
parameterClass="ByteFX.Data.MySqlClient.MySqlParameter"
parameterDbTypeClass="ByteFX.Data.MySqlClient.MySqlDbType"
parameterDbTypeProperty="MySqlDbType"
dataAdapterClass="ByteFX.Data.MySqlClient.MySqlDataAdapter"
commandBuilderClass="ByteFX.Data.MySqlClient.MySqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"/>
<provider
name="MySql"
description="MySQL, MySQL provider V1.0.5.13785"
enabled="false"
assemblyName="MySql.Data, Version=1.0.5.13785, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"
commandClass="MySql.Data.MySqlClient.MySqlCommand"
parameterClass="MySql.Data.MySqlClient.MySqlParameter"
parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"
parameterDbTypeProperty="MySqlDbType"
dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"
commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="?"/>
<provider name="SQLite3"
description="SQLite, SQLite.NET provider V0.21.1869.3794"
enabled="false"
assemblyName="SQLite.NET, Version=0.21.1869.3794, Culture=neutral, PublicKeyToken=c273bd375e695f9c"
connectionClass="Finisar.SQLite.SQLiteConnection"
commandClass="Finisar.SQLite.SQLiteCommand"
parameterClass="Finisar.SQLite.SQLiteParameter"
parameterDbTypeClass="System.Data.DbType, System.Data"
parameterDbTypeProperty="DbType"
dataAdapterClass="Finisar.SQLite.SQLiteDataAdapter"
commandBuilderClass="Finisar.SQLite.SQLiteCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"
setDbParameterPrecision="false"
setDbParameterScale="false"/>
<provider
name="Firebird1.7"
description="Firebird, Firebird SQL .NET provider V1.7.0.33200"
enabled="false"
assemblyName="FirebirdSql.Data.Firebird, Version=1.7.0.33200, Culture=neutral, PublicKeyToken=fa843d180294369d" connectionClass="FirebirdSql.Data.Firebird.FbConnection"
commandClass="FirebirdSql.Data.Firebird.FbCommand"
parameterClass="FirebirdSql.Data.Firebird.FbParameter"
parameterDbTypeClass="FirebirdSql.Data.Firebird.FbDbType"
parameterDbTypeProperty="FbDbType"
dataAdapterClass="FirebirdSql.Data.Firebird.FbDataAdapter"
commandBuilderClass="FirebirdSql.Data.Firebird.FbCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"/>
<provider
name="PostgreSql0.7"
description="PostgreSql, Npgsql provider V0.7.0.0"
enabled="false"
assemblyName="Npgsql, Version=0.7.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
connectionClass="Npgsql.NpgsqlConnection"
commandClass="Npgsql.NpgsqlCommand"
parameterClass="Npgsql.NpgsqlParameter"
parameterDbTypeClass="NpgsqlTypes.NpgsqlDbType"
parameterDbTypeProperty="NpgsqlDbType"
dataAdapterClass="Npgsql.NpgsqlDataAdapter"
commandBuilderClass="Npgsql.NpgsqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix=":"/>
<provider
name="PostgreSql0.7.1"
description="PostgreSql, Npgsql provider V0.7.1.0"
enabled="false"
assemblyName="Npgsql, Version=0.7.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
connectionClass="Npgsql.NpgsqlConnection"
commandClass="Npgsql.NpgsqlCommand"
parameterClass="Npgsql.NpgsqlParameter"
parameterDbTypeClass="NpgsqlTypes.NpgsqlDbType"
parameterDbTypeProperty="NpgsqlDbType"
dataAdapterClass="Npgsql.NpgsqlDataAdapter"
commandBuilderClass="Npgsql.NpgsqlCommandBuilder"
usePositionalParameters="false"
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix=":"/>
<provider
name="iDb2.10"
description="IBM DB2 Provider, V 10.0"
enabled="false"
assemblyName="IBM.Data.DB2.iSeries, Version=10.0.0.0,Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26, Custom=null" connectionClass="IBM.Data.DB2.iSeries.iDB2Connection"
commandClass="IBM.Data.DB2.iSeries.iDB2Command"
parameterClass="IBM.Data.DB2.iSeries.iDB2Parameter"
parameterDbTypeClass="IBM.Data.DB2.iSeries.iDB2DbType"
parameterDbTypeProperty="iDB2DbType"
dataAdapterClass="IBM.Data.DB2.iSeries.iDB2DataAdapter"
commandBuilderClass="IBM.Data.DB2.iSeries.iDB2CommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""/>
<provider
name="Informix"
description="Informix NET Provider, 2.81.0.0"
enabled="false"
assemblyName="IBM.Data.Informix, Version=2.81.0.0, Culture=neutral, PublicKeyToken=7c307b91aa13d208"
connectionClass="IBM.Data.Informix.IfxConnection"
commandClass="IBM.Data.Informix.IfxCommand"
parameterClass="IBM.Data.Informix.IfxParameter"
parameterDbTypeClass="IBM.Data.Informix.IfxType"
parameterDbTypeProperty="IfxType"
dataAdapterClass="IBM.Data.Informix.IfxDataAdapter"
commandBuilderClass="IBM.Data.Informix.IfxCommandBuilder"
usePositionalParameters = "true"
useParameterPrefixInSql = "false"
useParameterPrefixInParameter = "false"
useDeriveParameters="false"
/>
</providers>

二、添加SqlMapConfig.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://ibatis.apache.org/dataMapper"
elementFormDefault="qualified"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://ibatis.apache.org/dataMapper"
xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
vs:friendlyname="iBATIS.NET DataMapper Configuration Schema"
vs:ishtmlschema="false"
vs:iscasesensitive="true"
vs:requireattributequotes="true"
vs:defaultnamespacequalifier=""
vs:defaultnsprefix=""> <xs:annotation>
<xs:documentation>
DataMapper XML Schema Definition
</xs:documentation>
</xs:annotation>
<xs:element name="typeAlias">
<xs:complexType>
<xs:attribute name="alias" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="typeHandler">
<xs:complexType>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="callback" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="typeHandlers">
<xs:complexType>
<xs:sequence>
<xs:element ref="typeHandler" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="alias">
<xs:complexType>
<xs:sequence>
<xs:element ref="typeAlias" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dataSource">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="connectionString" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="database">
<xs:complexType>
<xs:sequence>
<xs:element ref="provider"/>
<xs:element ref="dataSource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="properties">
<xs:complexType>
<xs:sequence>
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="resource" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="embedded" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:attribute name="resource" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="embedded" type="xs:string"/>
<xs:attribute name="key" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="provider">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="setting">
<xs:complexType>
<xs:attribute name="useStatementNamespaces" type="xs:string" default="false"/>
<xs:attribute name="cacheModelsEnabled" type="xs:string"/>
<xs:attribute name="validateSqlMap" type="xs:string" default="false"/>
<xs:attribute name="useEmbedStatementParams" type="xs:boolean" default="false"/>
<xs:attribute name="useReflectionOptimizer" type="xs:boolean" default="true"/>
</xs:complexType>
</xs:element>
<xs:element name="settings">
<xs:complexType>
<xs:sequence>
<xs:element ref="setting" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sqlMap">
<xs:complexType>
<xs:attribute name="resource" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="embedded" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="providers">
<xs:complexType>
<xs:attribute name="resource" type="xs:string"/>
<xs:attribute name="url" type="xs:string"/>
<xs:attribute name="embedded" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>
The document root.
</xs:documentation>
</xs:annotation>
<xs:element name="sqlMapConfig">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="properties" minOccurs="0"/>
<xs:element ref="settings" minOccurs="0"/>
<xs:element ref="providers" minOccurs="0"/>
<xs:element ref="database" minOccurs="0"/>
<xs:element ref="alias" minOccurs="0"/>
<xs:element ref="typeHandlers" minOccurs="0"/>
<xs:element ref="sqlMaps" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sqlMaps">
<xs:complexType>
<xs:sequence>
<xs:element ref="sqlMap" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

三、添加SqlMap.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="http://ibatis.apache.org/mapping"
elementFormDefault="qualified"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://ibatis.apache.org/mapping"
xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
vs:friendlyname="iBATIS.NET mapping file Configuration Schema"
vs:ishtmlschema="false"
vs:iscasesensitive="true"
vs:requireattributequotes="true"
vs:defaultnamespacequalifier=""
vs:defaultnsprefix="" > <xs:annotation>
<xs:documentation>
Mapping XML Schema Definition
</xs:documentation>
</xs:annotation> <xs:element name="alias">
<xs:complexType>
<xs:sequence>
<xs:element ref="typeAlias" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element> <xs:element name="discriminator">
<xs:complexType>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="typeHandler" type="xs:string"/>
</xs:complexType>
</xs:element> <xs:element name="subMap">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:string"/>
<xs:attribute name="resultMapping" use="required" type="xs:string"/>
</xs:complexType>
</xs:element> <xs:element name="cacheModel">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="flushInterval" minOccurs="0"/>
<xs:element ref="flushOnExecute" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="serialize" type="xs:string" default="false"/>
<xs:attribute name="readOnly" type="xs:string" default="true"/>
<xs:attribute name="implementation" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="LRU"/>
<xs:enumeration value="MEMORY"/>
<xs:enumeration value="FIFO"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="cacheModels">
<xs:complexType>
<xs:sequence>
<xs:element ref="cacheModel" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="procedure">
<xs:complexType mixed="true">
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parameterMap" type="xs:string" />
<xs:attribute name="resultMap" type="xs:string"/>
<xs:attribute name="resultClass" type="xs:string"/>
<xs:attribute name="cacheModel" type="xs:string"/>
<xs:attribute name="listClass" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="delete">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="generate"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="id" use="required"/>
<xs:attribute name="parameterMap" type="xs:string"/>
<xs:attribute name="parameterClass" type="xs:string"/>
<xs:attribute name="extends" type="xs:string"/>
<xs:attribute name="remapResults">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="include">
<xs:complexType mixed="true">
<xs:attribute name="refid" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="dynamic">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="flushInterval">
<xs:complexType>
<xs:attribute name="milliseconds" type="xs:byte"/>
<xs:attribute name="seconds" type="xs:byte"/>
<xs:attribute name="minutes" type="xs:byte"/>
<xs:attribute name="hours" type="xs:byte"/>
</xs:complexType>
</xs:element>
<xs:element name="flushOnExecute">
<xs:complexType>
<xs:attribute name="statement" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="generate">
<xs:complexType>
<xs:attribute name="table" type="xs:string" use="required"/>
<xs:attribute name="by" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="insert">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="selectKey"/>
<xs:element ref="generate"/>
<xs:element ref="dynamic"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parameterClass" type="xs:string"/>
<xs:attribute name="parameterMap" type="xs:string"/>
<xs:attribute name="resultClass" type="xs:string"/>
<xs:attribute name="remapResults">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="isNotParameterPresent">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isNotPropertyAvailable">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="isEmpty">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isEqual">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isNull">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isGreaterEqual">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isGreaterThan">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isLessEqual">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isLessThan">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isNotEmpty">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isNotEqual">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="compareProperty" type="xs:string"/>
<xs:attribute name="compareValue" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isNotNull">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isParameterPresent">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="isPropertyAvailable">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="prepend" type="xs:string"/>
<xs:attribute name="property" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="iterate">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="open" type="xs:string" use="required"/>
<xs:attribute name="close" type="xs:string" use="required"/>
<xs:attribute name="conjunction" type="xs:string" use="required"/>
<xs:attribute name="property" type="xs:string"/>
<xs:attribute name="prepend" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="parameter">
<xs:complexType>
<xs:attribute name="property" type="xs:string" use="required"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="nullValue" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="size" type="xs:string"/>
<xs:attribute name="scale" type="xs:string"/>
<xs:attribute name="precision" type="xs:string"/>
<xs:attribute name="typeHandler" type="xs:string"/>
<xs:attribute name="direction">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Input"/>
<xs:enumeration value="Output"/>
<xs:enumeration value="InputOutput"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="parameterMap">
<xs:complexType>
<xs:sequence>
<xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="class" type="xs:string" />
<xs:attribute name="extends" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="parameterMaps">
<xs:complexType>
<xs:sequence>
<xs:element ref="parameterMap" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="result">
<xs:complexType>
<xs:attribute name="property" type="xs:string" use="required"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="lazyLoad">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="select" type="xs:string"/>
<xs:attribute name="nullValue" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="columnIndex" type="xs:string"/>
<xs:attribute name="resultMapping" type="xs:string"/>
<xs:attribute name="typeHandler" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="argument">
<xs:complexType>
<xs:attribute name="argumentName" type="xs:string" use="required"/>
<xs:attribute name="column" type="xs:string"/>
<xs:attribute name="select" type="xs:string"/>
<xs:attribute name="nullValue" type="xs:string"/>
<xs:attribute name="type" type="xs:string"/>
<xs:attribute name="dbType" type="xs:string"/>
<xs:attribute name="columnIndex" type="xs:string"/>
<xs:attribute name="resultMapping" type="xs:string"/>
<xs:attribute name="typeHandler" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="constructor">
<xs:complexType>
<xs:sequence>
<xs:element ref="argument" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="resultMap">
<xs:complexType>
<xs:sequence>
<xs:element ref="constructor" minOccurs="0" maxOccurs="1"/>
<xs:element ref="result" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="discriminator" minOccurs="0" maxOccurs="1"/>
<xs:element ref="subMap" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="class" type="xs:string" use="required"/>
<xs:attribute name="extends" type="xs:string"/>
<xs:attribute name="groupBy" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="resultMaps">
<xs:complexType>
<xs:sequence>
<xs:element ref="resultMap" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="select">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="dynamic"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
<xs:element ref="generate"/>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parameterClass" type="xs:string"/>
<xs:attribute name="resultMap" type="xs:string"/>
<xs:attribute name="resultClass" type="xs:string"/>
<xs:attribute name="parameterMap" type="xs:string"/>
<xs:attribute name="cacheModel" type="xs:string"/>
<xs:attribute name="listClass" type="xs:string"/>
<xs:attribute name="extends" type="xs:string"/>
<xs:attribute name="remapResults">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="selectKey">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="property" type="xs:string" use="required"/>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="post"/>
<xs:enumeration value="pre"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="resultClass" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="sqlMap">
<xs:complexType>
<xs:all>
<xs:element ref="alias" minOccurs="0"/>
<xs:element ref="cacheModels" minOccurs="0"/>
<xs:element ref="resultMaps" minOccurs="0"/>
<xs:element ref="statements" minOccurs="0" />
<xs:element ref="parameterMaps" minOccurs="0"/>
</xs:all>
<xs:attribute name="namespace" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="sql">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="dynamic"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="statement">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="dynamic"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parameterClass" type="xs:string"/>
<xs:attribute name="resultMap" type="xs:string"/>
<xs:attribute name="resultClass" type="xs:string"/>
<xs:attribute name="parameterMap" type="xs:string"/>
<xs:attribute name="listClass" type="xs:string"/>
<xs:attribute name="cacheModel" type="xs:string"/>
<xs:attribute name="remapResults">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="statements">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="sql"/>
<xs:element ref="statement"/>
<xs:element ref="insert"/>
<xs:element ref="update"/>
<xs:element ref="delete"/>
<xs:element ref="select"/>
<xs:element ref="procedure"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="typeAlias">
<xs:complexType>
<xs:attribute name="alias" type="xs:string" use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="update">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element ref="generate"/>
<xs:element ref="dynamic"/>
<xs:element ref="isEmpty"/>
<xs:element ref="isEqual"/>
<xs:element ref="isGreaterEqual"/>
<xs:element ref="isGreaterThan"/>
<xs:element ref="isLessThan"/>
<xs:element ref="isLessEqual"/>
<xs:element ref="isNotEmpty"/>
<xs:element ref="isNotEqual"/>
<xs:element ref="isNotNull"/>
<xs:element ref="isNotParameterPresent"/>
<xs:element ref="isNotPropertyAvailable"/>
<xs:element ref="isNull"/>
<xs:element ref="isParameterPresent"/>
<xs:element ref="isPropertyAvailable"/>
<xs:element ref="iterate"/>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parameterMap" type="xs:string"/>
<xs:attribute name="parameterClass" type="xs:string"/>
<xs:attribute name="extends" type="xs:string"/>
<xs:attribute name="remapResults">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

IBatis.Net XML文件配置的更多相关文章

  1. web.xml 文件配置01

    web.xml 文件配置01   前言:一般的web工程中都会用到web.xml,方便开发web工程.web.xml主要用来配置Filter.Listener.Servlet等.但是要说明的是web. ...

  2. 在MFC程序中使用XML文件配置工具栏

    现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界 ...

  3. Spring框架入门之基于xml文件配置bean详解

    关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...

  4. springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

    前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...

  5. Spring整合Hibernate的XML文件配置,以及web.xml文件配置

    利用Spring整合Hibernate时的XML文件配置 applicationContext.xml <?xml version="1.0" encoding=" ...

  6. mybatis mapper xml文件配置resultmap时,id行和result行有什么区别?

    mybatis mapper xml文件配置resultmap时,id行和result行有什么区别? <resultMap id = "CashInvoiceMap" typ ...

  7. idea的spring整合基于xml文件配置的mybatis报Invalid bound statement (not found): com.music.dao.MusicDao.findAll的问题

    一. 题主当时就是自己尝试整合spring和mybatis的时候遇到了这个问题,当时题主只看到了用注解的方式配置的dao层,题主用的是xml文件配置的形式, 而且坑爹的是题主的两个文件的路径写的也不一 ...

  8. maven spark Scala idea搭建maven项目的 pom.xml文件配置

    1.pom.xml文件配置,直接上代码. <?xml version="1.0" encoding="UTF-8"?> <project xm ...

  9. struct2的structs.xml文件配置There is no Action mapped for action name 问题

    很久没写过博客,今天重新开始写,新技术太多,只有通过博客才可以不断积累,本人水平有限,如有错误,欢迎指正,谢谢 今天在MAVEN上配置web project的struct2,发现自己忽略了很多问题,再 ...

随机推荐

  1. Dynamics AX 2012 R3 Demo 安装与配置 - 导入测试数据 (Step 4)

        在前面三节中,Reinhard分别讲解了如何配置安装环境,安装数据库服务器,AOS和客户端,安装后的编译和配置.如果一直跟随Reinhard的脚步,到这里,已经拥有一个没有数据的系统.     ...

  2. Linux多节点互信配置

    SSH互信设置步骤:   1. 每个节点上分别生成自己的公钥和私钥   2. 将各节点的公钥文件汇总到一个总的认证文件authorized_keys中   3. 将这个包含了所有节点公钥的认证文件au ...

  3. Unix/Linux编程实践教程(0:文件、终端、信号)

    本来只打算读这本书socket等相关内容,但书写得实在好,还是决定把其余的内容都读一下. 阅读联机帮助的一个示例: open系统调用: read系统调用: Unix的time: 上面的printf可以 ...

  4. visual studio 引用lib

    方法1: 要具有lib文件和.h文件 1.加入语句 #pragma comment(lib, 'C:\\test\\Debug\\test.lib' 2.项目右键-〉属性-〉c++ -〉常规-〉附加包 ...

  5. jquery简单动画

    自定义滑入滑出动画 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defaul ...

  6. [问题2014S07] 解答

    [问题2014S07]  解答  (本解答由沈启帆同学提供) 由复旦高代教材 P265 引理 7.4.1 知 \(F(P_i(\lambda)^{e_i})\) 的不变因子组为 \[1,\cdots, ...

  7. [问题2014S13] 复旦高等代数II(13级)每周一题(第十三教学周)

    [问题2014S13]  (1)  设 \(A\) 是数域 \(\mathbb{K}\) 上的 \(n\) 阶非异阵, 若存在主对角元全为 \(1\) 的下三角阵 \(L\in M_n(\mathbb ...

  8. Maven学习(四)-- 生命周期和插件

    标签(空格分隔): 学习笔记 Maven生命周期是抽象的,不做任何实际的工作,在Maven的设计中,实际的任务都交由插件来完成. 每个构件步骤都可以绑定一个或者多个插件行为,而且Maven为大多数构建 ...

  9. sql 函数的理解

    CAST (expression AS data_type) 用于数据的转化 isnull(@s+',','select years,months,') 判断(@s+',')是否为空,注意点,即使(@ ...

  10. Scrum Meeting 9-20151211

    任务安排 姓名 今日任务 明日任务 困难 董元财 请假(参加编译测试) 无 胡亚坤 首页界面优化 无 刘猛 请假(参加编译测试) 无 马汉虎 请假(参加编译测试) 无 赖彦俞 请假(参加编译测试) 无 ...