You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/03/24 22:28:23 UTC

svn commit: r158949 [3/3] - incubator/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities incubator/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/Configuration incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/ResultMapping incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Configuration/Statements incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope

Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?view=diff&r1=158948&r2=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs Thu Mar 24 13:28:19 2005
@@ -1027,7 +1027,7 @@
 		{
 			string selectStatement = mapping.Select;
 
-			if (selectStatement.Length == 0 && mapping.ResultMap == null)
+			if (selectStatement.Length == 0 && mapping.NestedResultMap == null)
 			{
 				// If the property is not a 'select' ResultProperty 
 				//                     or a 'resultMap' ResultProperty
@@ -1068,12 +1068,12 @@
 				}
 				#endregion
 			}
-			else if (mapping.ResultMap != null) // 'resultMap' ResultProperty
+			else if (mapping.NestedResultMap != null) // 'resultMap' ResultProperty
 			{
 				object obj = null;
 
-				obj = mapping.ResultMap.CreateInstanceOfResult();
-				FillObjectWithReaderAndResultMap(request, reader, mapping.ResultMap, obj);
+				obj = mapping.NestedResultMap.CreateInstanceOfResult();
+				FillObjectWithReaderAndResultMap(request, reader, mapping.NestedResultMap, obj);
 				MappedStatement.SetValueOfProperty( ref target, mapping, obj );
 			}
 			else //'select' ResultProperty 

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ConfigurationScope.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ConfigurationScope.cs?view=auto&rev=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ConfigurationScope.cs (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ConfigurationScope.cs Thu Mar 24 13:28:19 2005
@@ -0,0 +1,285 @@
+
+#region Apache Notice
+/*****************************************************************************
+ * $Header: $
+ * $Revision: $
+ * $Date: $
+ * 
+ * iBATIS.NET Data Mapper
+ * Copyright (C) 2004 - Gilles Bayon
+ *  
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ ********************************************************************************/
+#endregion
+
+#region Using
+using System;
+using System.Data;
+using System.Collections;
+using System.Collections.Specialized;
+using System.Xml;
+
+using IBatisNet.DataMapper;
+using IBatisNet.Common;
+
+#endregion
+
+namespace IBatisNet.DataMapper.Scope
+{
+	/// <summary>
+	/// The ConfigurationScope maintains the state of the build process.
+	/// </summary>
+	public class ConfigurationScope
+	{
+		#region Fields
+		
+		private ErrorContext _errorContext = null;
+		private HybridDictionary _providers = new HybridDictionary();
+		private NameValueCollection _properties = new NameValueCollection();
+
+		private XmlDocument _sqlMapConfigDocument = null;
+		private XmlDocument _sqlMapDocument = null;
+		private XmlNode _nodeContext = null;
+
+		private bool _useConfigFileWatcher = false;
+		private bool _useStatementNamespaces = false;
+		private bool _isCacheModelsEnabled = false;
+		private bool _isCallFromDao = false;
+
+		private SqlMapper _sqlMapper = null;
+		private string _sqlMapNamespace = null;
+		private DataSource _dataSource = null;
+		private bool _isXmlValid = true;
+
+		#endregion
+	
+		#region Constructors
+
+		/// <summary>
+		/// Default constructor
+		/// </summary>
+		public ConfigurationScope()
+		{
+			_errorContext = new ErrorContext();
+
+			_providers.Clear();
+		}
+		#endregion 
+
+		#region Properties
+
+		/// <summary>
+		/// Tells us if the xml configuration file validate the schema 
+		/// </summary>
+		public bool IsXmlValid
+		{
+			set
+			{
+				_isXmlValid = value;
+			}
+			get
+			{
+				return _isXmlValid;
+			}
+		}
+
+
+		/// <summary>
+		/// A SqlMap namespace.
+		/// </summary>
+		public string SqlMapNamespace
+		{
+			set
+			{
+				_sqlMapNamespace = value;
+			}
+			get
+			{
+				return _sqlMapNamespace;
+			}
+		}
+
+		/// <summary>
+		/// The SqlMapper we are building.
+		/// </summary>
+		public SqlMapper SqlMapper
+		{
+			set
+			{
+				_sqlMapper = value;
+			}
+			get
+			{
+				return _sqlMapper;
+			}
+		}
+
+		/// <summary>
+		/// Tell us if we are in a DataAccess context.
+		/// </summary>
+		public bool IsCallFromDao
+		{
+			set
+			{
+				_isCallFromDao = value;
+			}
+			get
+			{
+				return _isCallFromDao;
+			}
+		}
+
+		/// <summary>
+		/// Tell us if we cache model is enabled.
+		/// </summary>
+		public bool IsCacheModelsEnabled
+		{
+			set
+			{
+				_isCacheModelsEnabled = value;
+			}
+			get
+			{
+				return _isCacheModelsEnabled;
+			}
+		}
+		
+
+		/// <summary>
+		/// External data source
+		/// </summary>
+		public DataSource DataSource
+		{
+			set
+			{
+				_dataSource = value;
+			}
+			get
+			{
+				return _dataSource;
+			}
+		}
+
+		/// <summary>
+		/// The current context node we are analizing
+		/// </summary>
+		public XmlNode NodeContext
+		{
+			set
+			{
+				_nodeContext = value;
+			}
+			get
+			{
+				return _nodeContext;
+			}
+		}
+
+		/// <summary>
+		/// The XML SqlMap config file
+		/// </summary>
+		public XmlDocument SqlMapConfigDocument
+		{
+			set
+			{
+				_sqlMapConfigDocument = value;
+			}
+			get
+			{
+				return _sqlMapConfigDocument;
+			}
+		}
+
+		/// <summary>
+		/// A XML SqlMap file
+		/// </summary>
+		public XmlDocument SqlMapDocument
+		{
+			set
+			{
+				_sqlMapDocument = value;
+			}
+			get
+			{
+				return _sqlMapDocument;
+			}
+		}
+
+		/// <summary>
+		/// Tell us if we use Configuration File Watcher
+		/// </summary>
+		public bool UseConfigFileWatcher
+		{
+			set
+			{
+				_useConfigFileWatcher = value;
+			}
+			get
+			{
+				return _useConfigFileWatcher;
+			}
+		}
+
+		/// <summary>
+		/// Tell us if we use statements namespaces
+		/// </summary>
+		public bool UseStatementNamespaces
+		{
+			set
+			{
+				_useStatementNamespaces = value;
+			}
+			get
+			{
+				return _useStatementNamespaces;
+			}
+		}
+		
+		/// <summary>
+		///  Get the request's error context
+		/// </summary>
+		public ErrorContext ErrorContext
+		{
+			get
+			{
+				return _errorContext;
+			}
+		}
+
+		/// <summary>
+		///  List of providers
+		/// </summary>
+		public HybridDictionary Providers
+		{
+			get
+			{
+				return _providers;
+			}
+		}
+
+		/// <summary>
+		///  List of global properties
+		/// </summary>
+		public NameValueCollection Properties
+		{
+			get
+			{
+				return _properties;
+			}
+		}
+
+		#endregion 
+	}
+}

Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ErrorContext.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ErrorContext.cs?view=diff&r1=158948&r2=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ErrorContext.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/ErrorContext.cs Thu Mar 24 13:28:19 2005
@@ -44,7 +44,6 @@
 		private string _activity;
 		private string _objectId;
 		private string _moreInfo;
-		private Exception _cause;
 		#endregion 
 
 		#region Properties
@@ -85,19 +84,8 @@
 			set { _moreInfo = value; }
 		}
 
-		/// <summary>
-		/// The cause of the error
-		/// </summary>
-		public Exception Cause
-		{
-			get { return _cause; }
-			set { _cause = value; }
-		}
-
 		#endregion 
 
-
-
 		/// <summary>
 		/// Clear the error context
 		/// </summary>
@@ -107,7 +95,6 @@
 			_activity = string.Empty;;
 			_objectId = string.Empty;;
 			_moreInfo = string.Empty;;
-			_cause = null;
 		}
 
 		/// <summary>
@@ -118,43 +105,43 @@
 		{
 			StringBuilder message = new StringBuilder();
 
-			// resource
-			if (_resource != null) 
-			{
-				message.Append("  \n--- The error occurred in ");
-				message.Append(_resource);
-				message.Append(".");
-			}
-
 			// activity
 			if (_activity != null) 
 			{
-				message.Append("  \n--- The error occurred while ");
+				message.Append("\n- The error occurred while ");
 				message.Append(_activity);
 				message.Append(".");
-			}
-
-			// object
-			if (_objectId != null) 
-			{
-				message.Append("  \n--- Check the ");
-				message.Append(_objectId);
-				message.Append(".");
-			}
+			}			
 
 			// more info
 			if (_moreInfo != null) 
 			{
-				message.Append("  \n--- ");
+				message.Append("\n- ");
 				message.Append(_moreInfo);
 			}
+			
+			// resource
+			if (_resource != null) 
+			{
+				message.Append("\n- The error occurred in ");
+				message.Append(_resource);
+				message.Append(".");
+			}
 
-			// cause
-			if (_cause != null) 
+			// object
+			if (_objectId != null) 
 			{
-				message.Append("  \n--- Cause: ");
-				message.Append(_cause.ToString());
+				message.Append("  \n- Check the ");
+				message.Append(_objectId);
+				message.Append(".");
 			}
+
+//			// cause
+//			if (_cause != null) 
+//			{
+//				message.Append("\n- Cause: ");
+//				message.Append(_cause.ToString());
+//			}
 
 			return message.ToString();
 		}

Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/RequestScope.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/RequestScope.cs?view=diff&r1=158948&r2=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/RequestScope.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/Scope/RequestScope.cs Thu Mar 24 13:28:19 2005
@@ -63,8 +63,6 @@
 		}
 		#endregion 
 
-
-
 		#region Properties
 
 		/// <summary>
@@ -141,7 +139,5 @@
 			_resultMap = _initialResultMap;
 		}
 		#endregion
-
-
 	}
 }

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMap.xsd
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMap.xsd?view=auto&rev=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMap.xsd (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMap.xsd Thu Mar 24 13:28:19 2005
@@ -0,0 +1,713 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+targetNamespace="http://tempuri.org/SqlMap.xsd" >
+	<xs:element name="alias">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="typeAlias" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</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="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" use="required"/>
+			<xs:attribute name="resultMap" type="xs:string"/>
+			<xs:attribute name="resultClass" type="xs:string"/>
+			<xs:attribute name="cacheModel" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="delete">
+		<xs:complexType mixed="true">
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<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: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="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: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="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:complexType>
+	</xs:element>
+	<xs:element name="resultMap">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="result" 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:complexType>
+	</xs:element>
+	<xs:element name="resultMaps">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="resultMap" 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="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="extends" type="xs:string"/>
+		</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:sequence>
+				<xs:element ref="alias" minOccurs="0"/>
+				<xs:element ref="cacheModels" minOccurs="0"/>
+				<xs:element ref="resultMaps" minOccurs="0"/>
+				<xs:element ref="statements"/>
+				<xs:element ref="parameterMaps" minOccurs="0"/>
+			</xs:sequence>
+			<xs:attribute name="namespace" 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="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:complexType>
+	</xs:element>
+	<xs:element name="statements">
+		<xs:complexType>
+			<xs:choice maxOccurs="unbounded">
+				<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="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:complexType>
+	</xs:element>
+</xs:schema>

Added: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapConfig.xsd
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapConfig.xsd?view=auto&rev=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapConfig.xsd (added)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapConfig.xsd Thu Mar 24 13:28:19 2005
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+targetNamespace="http://tempuri.org/SqlMap.xsd" >
+	<xs:element name="alias">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="typeAlias"/>
+			</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:attribute name="resource" type="xs:string"/>
+			<xs:attribute name="url" type="xs:string"/>
+			<xs:attribute name="embeded" 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:boolean"/>
+			<xs:attribute name="cacheModelsEnabled" type="xs:boolean"/>
+		</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="embeded" type="xs:string"/>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="sqlMapConfig">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="settings" minOccurs="0" maxOccurs="1"/>
+				<xs:element ref="properties" minOccurs="0" maxOccurs="1"/>
+				<xs:element ref="database" minOccurs="0" maxOccurs="1"/>
+				<xs:element ref="alias" minOccurs="0" maxOccurs="1"/>
+				<xs:element ref="sqlMaps" minOccurs="0" maxOccurs="1"/>
+			</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: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:schema>

Modified: incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: http://svn.apache.org/viewcvs/incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?view=diff&r1=158948&r2=158949
==============================================================================
--- incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ incubator/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Thu Mar 24 13:28:19 2005
@@ -1110,7 +1110,7 @@
 
 
 		/// <summary>
-		/// Get the DataSource
+		/// The DataSource
 		/// </summary>
 		public DataSource DataSource
 		{