zoukankan      html  css  js  c++  java
  • IBatis.Net XML文件配置

    一、添加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>
  • 相关阅读:
    33、VCF格式
    10、Perl5中19个最重要的文件系统工具
    9、perldoc文档阅读器
    32、Differential Gene Expression using RNA-Seq (Workflow)
    31、NGS 常用分析软件
    16、SGE作业调度系统的简介
    8、非root权限下安装perl以及perl模块
    31、SAM文件中flag含义解释工具--转载
    30、 bowtie和bowtie2使用条件区别及用法
    C#中委托。
  • 原文地址:https://www.cnblogs.com/caoyc/p/6163300.html
Copyright © 2011-2022 走看看