Index: DataSet.cs
===================================================================
RCS file: /mono/mcs/class/System.Data/System.Data/DataSet.cs,v
retrieving revision 1.32
diff -u -r1.32 DataSet.cs
--- DataSet.cs	3 Feb 2003 19:04:16 -0000	1.32
+++ DataSet.cs	5 Feb 2003 15:01:59 -0000
@@ -40,6 +40,7 @@
 		// private DataTableRelationCollection relationCollection;
 		private PropertyCollection properties;
 		private DataViewManager defaultView;
+		private CultureInfo locale;
 		
 		#region Constructors
 
@@ -116,17 +117,60 @@
 		[DataCategory ("Data")]
 		[DataSysDescription ("Indicates a locale under which to compare strings within the DataSet.")]
 		public CultureInfo Locale {
-			[MonoTODO]
-			get { 
-				throw new NotImplementedException ();
+			get {
+				return locale;
 			}
-			
-			[MonoTODO]
 			set {
-				throw new NotImplementedException ();
+				if (locale == null || !locale.Equals(value)) {
+					// TODO: check if the new locale is valid
+					// TODO: update locale of all tables
+					locale = value;
+				}
 			}
 		}
 
+		[MonoTODO]
+		public void Merge (DataRow[] rows)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataSet dataSet)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataTable table)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataSet dataSet, bool preserveChanges)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataRow[] rows, bool preserveChanges, MissingSchemaAction missingSchemaAction)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataSet dataSet, bool preserveChanges, MissingSchemaAction missingSchemaAction)
+		{
+			throw new NotImplementedException();
+		}
+		
+		[MonoTODO]
+		public void Merge (DataTable table, bool preserveChanges, MissingSchemaAction missingSchemaAction)
+		{
+			throw new NotImplementedException();
+		}
+		
 		[DataCategory ("Data")]
 		[DataSysDescription ("Indicates the XML uri namespace for the root element pointed at by this DataSet.")]
 		[DefaultValue ("")]
@@ -554,6 +598,34 @@
 		}
 		#endregion
 		
+		#region Protected Methods
+		protected virtual void GetSerializationData(SerializationInfo info, StreamingContext context)
+		{
+			string s = info.GetValue ("XmlDiffGram", typeof (String)) as String;
+			if (s != null) ReadXmlSerializable (new XmlTextReader(new StringReader(s)));
+		}
+		
+		protected virtual System.Xml.Schema.XmlSchema GetSchemaSerializable()
+		{
+			return null; // FIXME
+		}
+		
+		protected virtual void ReadXmlSerializable(XmlReader reader)
+		{
+			ReadXml(reader, XmlReadMode.DiffGram); // FIXME
+		}
+		
+		protected virtual bool ShouldSerializeRelations ()
+		{
+			return true;
+		}
+		
+		protected virtual bool ShouldSerializeTables ()
+		{
+			return true;
+		}
+		#endregion
+
 		#region Private Xml Serialisation
 	
 		private void WriteTable( XmlWriter writer, DataTable table, XmlWriteMode mode )
Index: DataTable.cs
===================================================================
RCS file: /mono/mcs/class/System.Data/System.Data/DataTable.cs,v
retrieving revision 1.27
diff -u -r1.27 DataTable.cs
--- DataTable.cs	30 Jan 2003 16:24:39 -0000	1.27
+++ DataTable.cs	5 Feb 2003 15:02:00 -0000
@@ -555,9 +555,20 @@
 		/// and is not intended to be used directly from your code.
 		/// </summary>
 		
-		//protected virtual Type GetRowType()
-		//{	
-		//}
+		protected virtual DataTable CreateInstance()
+		{
+                        return Activator.CreateInstance(this.GetType(), true) as DataTable;
+		}
+
+		/// <summary>
+		/// This member supports the .NET Framework infrastructure
+		/// and is not intended to be used directly from your code.
+		/// </summary>
+		
+		protected virtual Type GetRowType()
+		{
+                        return typeof (DataRow);
+		}
 
 		/// <summary>
 		/// This member supports the .NET Framework infrastructure 
