2006-11-28 Nagappan A <anagappan@novell.com>
authorNagappan Alagappan <nagappan@gmail.com>
Tue, 28 Nov 2006 06:33:13 +0000 (06:33 -0000)
committerNagappan Alagappan <nagappan@gmail.com>
Tue, 28 Nov 2006 06:33:13 +0000 (06:33 -0000)
* DataTableTest.cs (TestWriteXmlSchema1): Modified the expected
output same as MS.NET 2.0 output.
(TestWriteXmlSchema2, TestWriteXmlSchema3): Modified the expected
output same as MS.NET 2.0 output.
(WriteXmlSchema, WriteXmlSchema2, WriteXmlSchema3): Updated the tests
to work. Removed NotWorking attribute.
(WriteXmlSchema4, WriteXmlSchema5, WriteXmlSchema6): Updated the tests
to work. Removed NotWorking attribute.
(WriteXmlSchema_Relations_ForeignKeys): Updated the tests to
work. Removed NotWorking attribute.
(ReadWriteXmlSchema_2, ReadWriteXmlSchemaExp_NoTableName): Updated
the tests to work. Removed NotWorking attribute.
(ReadWriteXmlSchemaExp_NoFileName): Added new tests.

* DataSetTest.cs: Updated the tests to work with 2.0
profile. Expected 2.0 and 1.0 outputs are different with respect
to XML Schema.

* DataRowCollectionTest.cs (IndexOf): API is implemented and so
removed NotWorking attribute.
(IndexOfTest): Added new test to test IndexOf API.

svn path=/trunk/mcs/; revision=68564

mcs/class/System.Data/Test/System.Data/ChangeLog
mcs/class/System.Data/Test/System.Data/DataRowCollectionTest.cs
mcs/class/System.Data/Test/System.Data/DataSetTest.cs
mcs/class/System.Data/Test/System.Data/DataTableTest.cs

index ad1f7cf164bf33717b50a2bfed1d22447ae24347..06e3c733a791b8b60a13499e1a6b3c710954c455 100644 (file)
@@ -1,3 +1,27 @@
+2006-11-28  Nagappan A  <anagappan@novell.com>
+
+       * DataTableTest.cs (TestWriteXmlSchema1): Modified the expected
+       output same as MS.NET 2.0 output.
+       (TestWriteXmlSchema2, TestWriteXmlSchema3): Modified the expected
+       output same as MS.NET 2.0 output.
+       (WriteXmlSchema, WriteXmlSchema2, WriteXmlSchema3): Updated the tests
+       to work. Removed NotWorking attribute.
+       (WriteXmlSchema4, WriteXmlSchema5, WriteXmlSchema6): Updated the tests
+       to work. Removed NotWorking attribute.
+       (WriteXmlSchema_Relations_ForeignKeys): Updated the tests to
+       work. Removed NotWorking attribute.
+       (ReadWriteXmlSchema_2, ReadWriteXmlSchemaExp_NoTableName): Updated
+       the tests to work. Removed NotWorking attribute.
+       (ReadWriteXmlSchemaExp_NoFileName): Added new tests.
+
+       * DataSetTest.cs: Updated the tests to work with 2.0
+       profile. Expected 2.0 and 1.0 outputs are different with respect
+       to XML Schema.
+
+       * DataRowCollectionTest.cs (IndexOf): API is implemented and so
+       removed NotWorking attribute.
+       (IndexOfTest): Added new test to test IndexOf API.
+
 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * DataSetReadXmlTest.cs: Added NotWorking test for bug #80048.
index 341c0360f82ded80c7578c03be6030a9a3e483db..4a7a82b9e89238104b33087b8cb54d572b8d6338 100644 (file)
@@ -750,8 +750,6 @@ namespace MonoTests.System.Data
 
 #if NET_2_0
                [Test]
-               [Category ("NotWorking")]
-               // IndexOf does not exist in System.Data and is commented-out bellow
                public void IndexOf () {
                        DataSet ds = new DataSet ();
 
@@ -782,11 +780,40 @@ namespace MonoTests.System.Data
                        DataRow dr5 = dt.NewRow ();
                        dr5[0] = "e";
 
-                       //int index = ds.Tables[0].Rows.IndexOf (dr3);
-                       //AssertEquals ("IndexOf-Yes", 2, index);
+                       int index = ds.Tables[0].Rows.IndexOf (dr3);
+                       AssertEquals ("IndexOf-Yes", 2, index);
                        
-                       //index = ds.Tables[0].Rows.IndexOf (dr5);
-                       //AssertEquals ("IndexOf-No", -1, index);
+                       index = ds.Tables[0].Rows.IndexOf (dr5);
+                       AssertEquals ("IndexOf-No", -1, index);
+               }
+               [Test]
+               public void IndexOfTest()
+               {
+                       DataTable dt = new DataTable("TestWriteXmlSchema");
+                       dt.Columns.Add("Col1", typeof(int));
+                       dt.Columns.Add("Col2", typeof(int));
+                       DataRow dr = dt.NewRow();
+                       dr[0] = 10;
+                       dr[1] = 20;
+                       dt.Rows.Add(dr);
+                       DataRow dr1 = dt.NewRow();
+                       dr1[0] = 10;
+                       dr1[1] = 20;
+                       dt.Rows.Add(dr1);
+                       DataRow dr2 = dt.NewRow();
+                       dr2[0] = 10;
+                       dr2[1] = 20;
+                       dt.Rows.Add(dr2);
+                       NUnit.Framework.Assert.AreEqual (1, dt.Rows.IndexOf (dr1));
+                       DataTable dt1 = new DataTable("HelloWorld");
+                       dt1.Columns.Add("T1", typeof(int));
+                       dt1.Columns.Add("T2", typeof(int));
+                       DataRow dr3 = dt1.NewRow();
+                       dr3[0] = 10;
+                       dr3[1] = 20;
+                       dt1.Rows.Add(dr3);
+                       NUnit.Framework.Assert.AreEqual (-1, dt.Rows.IndexOf (dr3));
+                       NUnit.Framework.Assert.AreEqual (-1, dt.Rows.IndexOf (null));
                }
 #endif
        }
index c062ae76a76ab7e0d73491fc9911126bfbba5bfa..21f396a4d2e07c71831880021b380a2753b6dce8 100644 (file)
@@ -221,7 +221,11 @@ namespace MonoTests.System.Data
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
                        // This is original DataSet.WriteXmlSchema() output
 //                     AssertEquals ("test#03", "  <xs:element name=\"test_dataset\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\">", substring);
+#if !NET_2_0
                        AssertEquals ("test#03", "  <xs:element msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\" name=\"test_dataset\">", substring);
+#else
+                       AssertEquals ("test#03", "  <xs:element msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\" name=\"test_dataset\">", substring);
+#endif
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -229,7 +233,7 @@ namespace MonoTests.System.Data
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\" minOccurs=\"0\">", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -573,7 +577,11 @@ namespace MonoTests.System.Data
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
                        // This is original DataSet.WriteXmlSchema() output
 //                     AssertEquals ("test#03", "  <xs:element name=\"Root\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\">", substring);
+#if !NET_2_0
                        AssertEquals ("test#03", "  <xs:element msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\" name=\"Root\">", substring);
+#else
+                       AssertEquals ("test#03", "  <xs:element msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\" name=\"Root\">", substring);
+#endif
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -581,7 +589,7 @@ namespace MonoTests.System.Data
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\" minOccurs=\"0\">", substring);
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -766,7 +774,7 @@ namespace MonoTests.System.Data
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#25", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#25", "      <xs:choice maxOccurs=\"unbounded\" minOccurs=\"0\">", substring);
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -921,7 +929,7 @@ namespace MonoTests.System.Data
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#25", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#25", "      <xs:choice maxOccurs=\"unbounded\" minOccurs=\"0\">", substring);
 
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                         TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -989,7 +997,7 @@ namespace MonoTests.System.Data
   <xs:import namespace='urn:foo' schemaLocation='_app2.xsd' />
   <xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:Locale='fi-FI'>
     <xs:complexType>
-      <xs:choice maxOccurs='unbounded'>
+      <xs:choice minOccurs='0' maxOccurs='unbounded'>
         <xs:element ref='app2:NS1Table' />
         <xs:element name='NS2Table'>
           <xs:complexType>
@@ -1044,7 +1052,13 @@ namespace MonoTests.System.Data
                {
                        // see GetReady() for current culture
 
-                       string xml = "<?xml version='1.0' encoding='utf-16'?><DataSet><xs:schema id='DS' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'><xs:element name='DS' msdata:IsDataSet='true' msdata:Locale='fi-FI'><xs:complexType><xs:choice maxOccurs='unbounded' /></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' xmlns:diffgr='urn:schemas-microsoft-com:xml-diffgram-v1' /></DataSet>";
+                       string xml = "<?xml version='1.0' encoding='utf-16'?><DataSet><xs:schema id='DS' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'><xs:element name='DS' msdata:IsDataSet='true' " + 
+#if !NET_2_0
+                         "msdata:Locale='fi-FI'"
+#else
+                         "msdata:UseCurrentLocale='true'"
+#endif
+                         + "><xs:complexType><xs:choice minOccurs='0' maxOccurs='unbounded' /></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' xmlns:diffgr='urn:schemas-microsoft-com:xml-diffgram-v1' /></DataSet>";
                        DataSet ds = new DataSet ();
                        ds.DataSetName = "DS";
                        XmlSerializer ser = new XmlSerializer (typeof (DataSet));
@@ -1094,7 +1108,7 @@ namespace MonoTests.System.Data
                // bug #68007
                public void SerializeDataSet3 ()
                {
-                       string xml = @"<?xml version=""1.0"" encoding=""utf-8""?><DataSet><xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata""><xs:element name=""Example"" msdata:IsDataSet=""true""><xs:complexType><xs:choice maxOccurs=""unbounded""><xs:element name=""Packages""><xs:complexType><xs:attribute name=""ID"" type=""xs:int"" use=""required"" /><xs:attribute name=""ShipDate"" type=""xs:dateTime"" /><xs:attribute name=""Message"" type=""xs:string"" /><xs:attribute name=""Handlers"" type=""xs:int"" /></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:diffgr=""urn:schemas-microsoft-com:xml-diffgram-v1""><Example><Packages diffgr:id=""Packages1"" msdata:rowOrder=""0"" ID=""0"" ShipDate=""2004-10-11T17:46:18.6962302-05:00"" Message=""Received with no breakage!"" Handlers=""3"" /><Packages diffgr:id=""Packages2"" msdata:rowOrder=""1"" ID=""1"" /></Example></diffgr:diffgram></DataSet>";
+                       string xml = @"<?xml version=""1.0"" encoding=""utf-8""?><DataSet><xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata""><xs:element name=""Example"" msdata:IsDataSet=""true""><xs:complexType><xs:choice maxOccurs=""unbounded"" minOccurs=""0""><xs:element name=""Packages""><xs:complexType><xs:attribute name=""ID"" type=""xs:int"" use=""required"" /><xs:attribute name=""ShipDate"" type=""xs:dateTime"" /><xs:attribute name=""Message"" type=""xs:string"" /><xs:attribute name=""Handlers"" type=""xs:int"" /></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:diffgr=""urn:schemas-microsoft-com:xml-diffgram-v1""><Example><Packages diffgr:id=""Packages1"" msdata:rowOrder=""0"" ID=""0"" ShipDate=""2004-10-11T17:46:18.6962302-05:00"" Message=""Received with no breakage!"" Handlers=""3"" /><Packages diffgr:id=""Packages2"" msdata:rowOrder=""1"" ID=""1"" /></Example></diffgr:diffgram></DataSet>";
 
                        DataSet ds = new DataSet ("Example");
 
@@ -1490,9 +1504,15 @@ namespace MonoTests.System.Data
                        string xml = @"<myDataSet xmlns='NetFrameWork'><myTable><id>0</id><item>item 0</item></myTable><myTable><id>1</id><item>item 1</item></myTable><myTable><id>2</id><item>item 2</item></myTable><myTable><id>3</id><item>item 3</item></myTable><myTable><id>4</id><item>item 4</item></myTable><myTable><id>5</id><item>item 5</item></myTable><myTable><id>6</id><item>item 6</item></myTable><myTable><id>7</id><item>item 7</item></myTable><myTable><id>8</id><item>item 8</item></myTable><myTable><id>9</id><item>item 9</item></myTable></myDataSet>";
                        string schema = @"<?xml version='1.0' encoding='utf-16'?>
 <xs:schema id='myDataSet' targetNamespace='NetFrameWork' xmlns:mstns='NetFrameWork' xmlns='NetFrameWork' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' attributeFormDefault='qualified' elementFormDefault='qualified'>
-  <xs:element name='myDataSet' msdata:IsDataSet='true' msdata:Locale='fi-FI'>
+  <xs:element name='myDataSet' msdata:IsDataSet='true' " +
+#if NET_2_0
+                       "msdata:UseCurrentLocale='true'"
+#else
+                       "msdata:Locale='fi-FI'"
+#endif
+                       + @">
     <xs:complexType>
-      <xs:choice maxOccurs='unbounded'>
+      <xs:choice minOccurs='0' maxOccurs='unbounded'>
         <xs:element name='myTable'>
           <xs:complexType>
             <xs:sequence>
@@ -1547,9 +1567,15 @@ namespace MonoTests.System.Data
                {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""ExampleDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
-  <xs:element name=""ExampleDataSet"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">
+  <xs:element name=""ExampleDataSet"" msdata:IsDataSet=""true"" ";
+#if NET_2_0
+                       xmlschema = xmlschema + "msdata:UseCurrentLocale=\"true\"";
+#else
+                       xmlschema = xmlschema + "msdata:Locale=\"fi-FI\"";
+#endif
+                       xmlschema = xmlschema + @">
     <xs:complexType>
-      <xs:choice maxOccurs=""unbounded"">
+      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
         <xs:element name=""ExampleDataTable"">
           <xs:complexType>
             <xs:attribute name=""PrimaryKeyColumn"" type=""xs:int"" use=""required"" />
@@ -1590,9 +1616,15 @@ namespace MonoTests.System.Data
                {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
-  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">
+";
+#if NET_2_0
+                       xmlschema = xmlschema + "  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\"";
+#else
+                       xmlschema = xmlschema + "  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\"";
+#endif
+                       xmlschema = xmlschema + @">
     <xs:complexType>
-      <xs:choice maxOccurs=""unbounded"">
+      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
         <xs:element name=""MyType"">
           <xs:complexType>
             <xs:attribute name=""ID"" type=""xs:int"" use=""required"" />
@@ -1632,9 +1664,15 @@ namespace MonoTests.System.Data
                {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
-  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">
+"+
+#if NET_2_0
+"  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\""
+#else
+"  <xs:element name=\"Example\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\""
+#endif
+                         + @">
     <xs:complexType>
-      <xs:choice maxOccurs=""unbounded"">
+      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
         <xs:element name=""StandAlone"">
           <xs:complexType>
             <xs:attribute name=""ID"" type=""xs:int"" use=""required"" />
@@ -1740,9 +1778,15 @@ namespace MonoTests.System.Data
                {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
-  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">
+"+
+#if NET_2_0
+                         @"  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"""
+#else
+                         @"  <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"""
+#endif
+                         + @">
     <xs:complexType>
-      <xs:choice maxOccurs=""unbounded"">
+      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
         <xs:element name=""MyType"">
           <xs:complexType>
             <xs:attribute name=""Desc"">
@@ -1798,9 +1842,15 @@ namespace MonoTests.System.Data
                {
                        string xml = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""NewDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:msprop=""urn:schemas-microsoft-com:xml-msprop"">
-  <xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"" msprop:version=""version 2.1"">
+" +
+#if NET_2_0
+@"  <xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"" msprop:version=""version 2.1"">"
+#else
+@"  <xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"" msprop:version=""version 2.1"">"
+#endif
+                         + @"
     <xs:complexType>
-      <xs:choice maxOccurs=""unbounded"">
+      <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
         <xs:element name=""Foo"">
           <xs:complexType>
             <xs:sequence>
@@ -1834,9 +1884,15 @@ namespace MonoTests.System.Data
 
                        string xml = @"<Example>
   <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
-    <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">
+" +
+#if NET_2_0
+@"    <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:UseCurrentLocale=""true"">"
+#else
+@"    <xs:element name=""Example"" msdata:IsDataSet=""true"" msdata:Locale=""fi-FI"">"
+#endif
+                         + @"
       <xs:complexType>
-        <xs:choice maxOccurs=""unbounded"">
+        <xs:choice minOccurs=""0"" maxOccurs=""unbounded"">
           <xs:element name=""Dimension"">
             <xs:complexType>
               <xs:sequence>
index 13518b86e5850738b2f87132746b9da90def03e8..444191c21ce3e2e71e71b11d740da265f1ba3d73 100644 (file)
@@ -1402,7 +1402,7 @@ namespace MonoTests.System.Data
 
 #if NET_2_0
                [Test]
-               public void TestWriteXmlSchema1()
+               public void TestWriteXmlSchema1 ()
                {
                        DataTable dt = new DataTable("TestWriteXmlSchema");
                        dt.Columns.Add("Col1", typeof(int));
@@ -1430,14 +1430,14 @@ namespace MonoTests.System.Data
                        AssertEquals ("test#02", "<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentCulture=\"true\">", substring);
+                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentLocale=\"true\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
                        AssertEquals ("test#04", "    <xs:complexType>", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#05", "      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -1519,14 +1519,14 @@ namespace MonoTests.System.Data
                        AssertEquals ("test#02", "<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentCulture=\"true\">", substring);
+                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentLocale=\"true\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
                        AssertEquals ("test#04", "    <xs:complexType>", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#05", "      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -1623,14 +1623,14 @@ namespace MonoTests.System.Data
                        AssertEquals ("test#02", "<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentCulture=\"true\">", substring);
+                       AssertEquals ("test#03", "  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"TestWriteXmlSchema\" msdata:UseCurrentLocale=\"true\">", substring);
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
                        AssertEquals ("test#04", "    <xs:complexType>", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-                       AssertEquals ("test#05", "      <xs:choice maxOccurs=\"unbounded\">", substring);
+                       AssertEquals ("test#05", "      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">", substring);
                        
                        substring = TextString.Substring (0, TextString.IndexOf(EOL));
                        TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
@@ -2832,7 +2832,7 @@ namespace MonoTests.System.Data
                #region Read/Write XML Tests
 
                [Test]
-               [Category ("NotWorking")]
+               //[Category ("NotWorking")]
                public void ReadXmlSchema () {
                        DataTable Table = new DataTable ();
                        Table.ReadXmlSchema ("Test/System.Data/own_schema1.xsd");
@@ -2926,7 +2926,7 @@ namespace MonoTests.System.Data
                        xmlData += "<xs:schema id=\"SiteConfiguration\" targetNamespace=\"http://tempuri.org/PortalCfg.xsd\" xmlns:mstns=\"http://tempuri.org/PortalCfg.xsd\" xmlns=\"http://tempuri.org/PortalCfg.xsd\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" attributeFormDefault=\"qualified\" elementFormDefault=\"qualified\">";
                        xmlData += "<xs:element name=\"SiteConfiguration\" msdata:IsDataSet=\"true\" msdata:EnforceConstraints=\"False\">";
                        xmlData += "<xs:complexType>";
-                       xmlData += "<xs:choice maxOccurs=\"unbounded\">";
+                       xmlData += "<xs:choice  minOccurs=\"0\" maxOccurs=\"unbounded\">";
                        xmlData += "<xs:element name=\"Tab\">";
                        xmlData += "<xs:complexType>";
                        xmlData += "<xs:sequence>";
@@ -3004,7 +3004,7 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
+               //[Category ("NotWorking")]
                public void ReadWriteXmlSchema_ByFileName () {
                        string sTempFileName1 = "tmpDataSet_ReadWriteXml_43899-1.xml";
                        string sTempFileName2 = "tmpDataSet_ReadWriteXml_43899-2.xml";
@@ -3139,7 +3139,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema () {
                        DataSet ds = new DataSet ();
                        ds.ReadXml ("Test/System.Data/region.xml");
@@ -3218,7 +3217,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema2 () {
                        string xml = @"<myDataSet xmlns='NetFrameWork'><myTable><id>0</id><item>item 0</item></myTable><myTable><id>1</id><item>item 1</item></myTable><myTable><id>2</id><item>item 2</item></myTable><myTable><id>3</id><item>item 3</item></myTable><myTable><id>4</id><item>item 4</item></myTable><myTable><id>5</id><item>item 5</item></myTable><myTable><id>6</id><item>item 6</item></myTable><myTable><id>7</id><item>item 7</item></myTable><myTable><id>8</id><item>item 8</item></myTable><myTable><id>9</id><item>item 9</item></myTable></myDataSet>";
                        string schema = @"<?xml version='1.0' encoding='utf-16'?>
@@ -3275,7 +3273,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema3 () {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""ExampleDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
@@ -3318,7 +3315,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema4 () {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
@@ -3359,7 +3355,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema5 () {
                        string xmlschema1 = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
@@ -3485,7 +3480,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema6 () {
                        string xmlschema = @"<?xml version=""1.0"" encoding=""utf-16""?>
 <xs:schema id=""Example"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">
@@ -3583,7 +3577,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void WriteXmlSchema_Relations_ForeignKeys () {
                        MemoryStream ms1 = null;
                        MemoryStream ms2 = null;
@@ -3655,7 +3648,7 @@ namespace MonoTests.System.Data
                [Test]
                [Category ("NotWorking")]
                public void WriteXmlSchema_DifferentNamespace () {
-                       string schema = @"<xs:schema id='NewDataSet' targetNamespace='urn:bar' xmlns:mstns='urn:bar' xmlns='urn:bar' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' attributeFormDefault='qualified' elementFormDefault='qualified' xmlns:app1='urn:baz' xmlns:app2='urn:foo' msdata:schemafragmentcount='3'>
+                       string schema = @"<?xml version='1.0' encoding='utf-16'?>\n<xs:schema id='NewDataSet' targetNamespace='urn:bar' xmlns:mstns='urn:bar' xmlns='urn:bar' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' attributeFormDefault='qualified' elementFormDefault='qualified' xmlns:app1='urn:baz' xmlns:app2='urn:foo' msdata:schemafragmentcount='3'>
   <xs:import namespace='urn:foo' />
   <xs:import namespace='urn:baz' />
   <xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:MainDataTable='urn_x003A_foo_x003A_NS1Table' msdata:UseCurrentLocale='true'>
@@ -3715,9 +3708,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
-               // WriteXmlSchema doesn't have overload wityh 2 parameters in System.Data
-               // and is commented-out TWICE below
                public void WriteXmlSchema_Hierarchy () {
                        DataSet ds = new DataSet ();
                        DataTable table1 = new DataTable ();
@@ -3736,113 +3726,119 @@ namespace MonoTests.System.Data
                            new DataColumn[] { table2.Columns[1] }, true);
 
                        StringWriter writer1 = new StringWriter ();
-                       //table1.WriteXmlSchema (writer1, false);
-                       string expected1 = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\r\n  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\r\n    <xs:complexType>\r\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\r\n        <xs:element name=\"Table1\">\r\n          <xs:complexType>\r\n            <xs:sequence>\r\n              <xs:element name=\"ID\" type=\"xs:int\" />\r\n              <xs:element name=\"Name\" type=\"xs:string\" minOccurs=\"0\" />\r\n            </xs:sequence>\r\n          </xs:complexType>\r\n        </xs:element>\r\n      </xs:choice>\r\n    </xs:complexType>\r\n    <xs:unique name=\"Constraint1\" msdata:PrimaryKey=\"true\">\r\n      <xs:selector xpath=\".//Table1\" />\r\n      <xs:field xpath=\"ID\" />\r\n    </xs:unique>\r\n  </xs:element>\r\n</xs:schema>";
+                       table1.WriteXmlSchema (writer1, false);
+                       string expected1 = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element name=\"Table1\">\n          <xs:complexType>\n            <xs:sequence>\n              <xs:element name=\"ID\" type=\"xs:int\" />\n              <xs:element name=\"Name\" type=\"xs:string\" minOccurs=\"0\" />\n            </xs:sequence>\n          </xs:complexType>\n        </xs:element>\n      </xs:choice>\n    </xs:complexType>\n    <xs:unique name=\"Constraint1\" msdata:PrimaryKey=\"true\">\n      <xs:selector xpath=\".//Table1\" />\n      <xs:field xpath=\"ID\" />\n    </xs:unique>\n  </xs:element>\n</xs:schema>";
                        AssertEquals ("#1", expected1, writer1.ToString());
 
                        StringWriter writer2 = new StringWriter ();
-                       //table1.WriteXmlSchema (writer2, true);
-                       string expected2 = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\r\n  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\r\n    <xs:complexType>\r\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\r\n        <xs:element name=\"Table1\">\r\n          <xs:complexType>\r\n            <xs:sequence>\r\n              <xs:element name=\"ID\" type=\"xs:int\" />\r\n              <xs:element name=\"Name\" type=\"xs:string\" minOccurs=\"0\" />\r\n            </xs:sequence>\r\n          </xs:complexType>\r\n        </xs:element>\r\n        <xs:element name=\"Table2\">\r\n          <xs:complexType>\r\n            <xs:sequence>\r\n              <xs:element name=\"OrderID\" type=\"xs:int\" />\r\n              <xs:element name=\"CustomerID\" type=\"xs:int\" minOccurs=\"0\" />\r\n              <xs:element name=\"OrderDate\" type=\"xs:dateTime\" minOccurs=\"0\" />\r\n            </xs:sequence>\r\n          </xs:complexType>\r\n        </xs:element>\r\n      </xs:choice>\r\n    </xs:complexType>\r\n    <xs:unique name=\"Constraint1\" msdata:PrimaryKey=\"true\">\r\n      <xs:selector xpath=\".//Table1\" />\r\n      <xs:field xpath=\"ID\" />\r\n    </xs:unique>\r\n    <xs:unique name=\"Table2_Constraint1\" msdata:ConstraintName=\"Constraint1\" msdata:PrimaryKey=\"true\">\r\n      <xs:selector xpath=\".//Table2\" />\r\n      <xs:field xpath=\"OrderID\" />\r\n    </xs:unique>\r\n    <xs:keyref name=\"CustomerOrder\" refer=\"Constraint1\">\r\n      <xs:selector xpath=\".//Table2\" />\r\n      <xs:field xpath=\"CustomerID\" />\r\n    </xs:keyref>\r\n  </xs:element>\r\n</xs:schema>";
+                       table1.WriteXmlSchema (writer2, true);
+                       string expected2 = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<xs:schema id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n  <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element name=\"Table1\">\n          <xs:complexType>\n            <xs:sequence>\n              <xs:element name=\"ID\" type=\"xs:int\" />\n              <xs:element name=\"Name\" type=\"xs:string\" minOccurs=\"0\" />\n            </xs:sequence>\n          </xs:complexType>\n        </xs:element>\n        <xs:element name=\"Table2\">\n          <xs:complexType>\n            <xs:sequence>\n              <xs:element name=\"OrderID\" type=\"xs:int\" />\n              <xs:element name=\"CustomerID\" type=\"xs:int\" minOccurs=\"0\" />\n              <xs:element name=\"OrderDate\" type=\"xs:dateTime\" minOccurs=\"0\" />\n            </xs:sequence>\n          </xs:complexType>\n        </xs:element>\n      </xs:choice>\n    </xs:complexType>\n    <xs:unique name=\"Constraint1\" msdata:PrimaryKey=\"true\">\n      <xs:selector xpath=\".//Table1\" />\n      <xs:field xpath=\"ID\" />\n    </xs:unique>\n    <xs:unique name=\"Table2_Constraint1\" msdata:ConstraintName=\"Constraint1\" msdata:PrimaryKey=\"true\">\n      <xs:selector xpath=\".//Table2\" />\n      <xs:field xpath=\"OrderID\" />\n    </xs:unique>\n    <xs:keyref name=\"CustomerOrder\" refer=\"Constraint1\">\n      <xs:selector xpath=\".//Table2\" />\n      <xs:field xpath=\"CustomerID\" />\n    </xs:keyref>\n  </xs:element>\n</xs:schema>";
                        AssertEquals ("#2", expected2, writer2.ToString ());
                }
 
                [Test]
-               [Category ("NotWorking")]
+               //[Category ("NotWorking")]
                // WriteXmlSchema doesn't have overload wityh 2 parameters in System.Data
                // and is commented-out TWICE below
-               public void ReadWriteXmlSchema () {
-                       DataSet ds = new DataSet ();
-                       ds.ReadXmlSchema ("Test/System.Data/store.xsd");
+               public void ReadWriteXmlSchema()
+               {
+                       DataSet ds = new DataSet();
+                       ds.ReadXmlSchema("Test/System.Data/store.xsd");
                        // check dataset properties before testing write
-                       AssertDataSet ("ds", ds, "NewDataSet", 3, 2);
-                       AssertDataTable ("tab1", ds.Tables[0], "bookstore", 1, 0, 0, 1, 1, 1);
-                       AssertDataTable ("tab2", ds.Tables[1], "book", 5, 0, 1, 1, 2, 1);
-                       AssertDataTable ("tab3", ds.Tables[2], "author", 3, 0, 1, 0, 1, 0);
+                       AssertDataSet("ds", ds, "NewDataSet", 3, 2);
+                       AssertDataTable("tab1", ds.Tables[0], "bookstore", 1, 0, 0, 1, 1, 1);
+                       AssertDataTable("tab2", ds.Tables[1], "book", 5, 0, 1, 1, 2, 1);
+                       AssertDataTable("tab3", ds.Tables[2], "author", 3, 0, 1, 0, 1, 0);
                        // FIXME: currently order is not compatible. Use name as index
-                       AssertDataRelation ("rel1", ds.Relations["book_author"], "book_author", true, new string[] { "book_Id" }, new string[] { "book_Id" }, true, true);
-                       AssertDataRelation ("rel2", ds.Relations["bookstore_book"], "bookstore_book", true, new string[] { "bookstore_Id" }, new string[] { "bookstore_Id" }, true, true);
+                       AssertDataRelation("rel1", ds.Relations["book_author"], "book_author", true, new string[] { "book_Id" }, new string[] { "book_Id" }, true, true);
+                       AssertDataRelation("rel2", ds.Relations["bookstore_book"], "bookstore_book", true, new string[] { "bookstore_Id" }, new string[] { "bookstore_Id" }, true, true);
 
-                       ds.ReadXml ("Test/System.Data/region.xml", XmlReadMode.InferSchema);
-                       ds.Relations.Clear (); // because can not call WriteXmlSchema with nested relations.
+                       ds.ReadXml("Test/System.Data/region.xml", XmlReadMode.InferSchema);
+                       ds.Relations.Clear(); // because can not call WriteXmlSchema with nested relations.
 
-                       TextWriter writer1 = new StringWriter ();
-                       ds.Tables[0].WriteXmlSchema (writer1);
-                       string TextString1 = GetNormalizedSchema (writer1.ToString ());
+                       TextWriter writer1 = new StringWriter();
+                       ds.Tables[0].WriteXmlSchema(writer1);
+                       //string TextString1 = GetNormalizedSchema(writer1.ToString());
+                       string TextString1 = writer1.ToString();
                        string expected1 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""Root"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""Root"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""bookstoreType"">" +
   @"</xs:complexType>" +
   @"<xs:element name=""bookstore"" type=""bookstoreType"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""bookstore"" msdata:UseCurrentLocale=""true"" name=""Root"">" +
+  @"<xs:element name=""Root"" msdata:IsDataSet=""true"" msdata:MainDataTable=""bookstore"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
-       @"<xs:element ref=""bookstore"" />" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
+    @"<xs:element ref=""bookstore"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
   @"</xs:element>" +
 @"</xs:schema>";
-                       AssertEquals ("#1", expected1, TextString1.Replace("\r\n","").Replace("  ",""));
+                       NUnit.Framework.Assert.AreEqual(expected1.Replace("\n", ""),
+                                                       TextString1.Replace("\r\n", "").Replace("  ", "").Replace("\n", ""), "#1");
 
-                       TextWriter writer2 = new StringWriter ();
-                       //ds.Tables[1].WriteXmlSchema (writer2,false);
-                       string TextString2 = GetNormalizedSchema (writer2.ToString ());
+                       TextWriter writer2 = new StringWriter();
+                       ds.Tables[1].WriteXmlSchema(writer2, false);
+                       //string TextString2 = GetNormalizedSchema(writer2.ToString());
+                       string TextString2 = writer2.ToString();
                        string expected2 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""Root"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""Root"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""bookType"">" +
     @"<xs:sequence>" +
-      @"<xs:element msdata:Ordinal=""1"" name=""title"" type=""xs:string"" />" +
-      @"<xs:element msdata:Ordinal=""2"" name=""price"" type=""xs:decimal"" />" +
+      @"<xs:element name=""title"" type=""xs:string"" msdata:Ordinal=""1"" />" +
+      @"<xs:element name=""price"" type=""xs:decimal"" msdata:Ordinal=""2"" />" +
     @"</xs:sequence>" +
     @"<xs:attribute name=""genre"" type=""xs:string"" />" +
     @"<xs:attribute name=""bookstore_Id"" type=""xs:int"" use=""prohibited"" />" +
   @"</xs:complexType>" +
   @"<xs:element name=""book"" type=""bookType"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""book"" msdata:UseCurrentLocale=""true"" name=""Root"">" +
+  @"<xs:element name=""Root"" msdata:IsDataSet=""true"" msdata:MainDataTable=""book"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
-       @"<xs:element ref=""book"" />" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
+    @"<xs:element ref=""book"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
   @"</xs:element>" +
 @"</xs:schema>";
-                       AssertEquals ("#2", expected2, TextString2.Replace ("\r\n", "").Replace ("  ", ""));
-                       
-                       TextWriter writer3 = new StringWriter ();
-                       ds.Tables[2].WriteXmlSchema (writer3);
-                       string TextString3 = GetNormalizedSchema (writer3.ToString ());
+                       NUnit.Framework.Assert.AreEqual(expected2, TextString2.Replace("\r\n", "").Replace("  ", ""), "#2");
+
+                       TextWriter writer3 = new StringWriter();
+                       ds.Tables[2].WriteXmlSchema(writer3);
+                       //string TextString3 = GetNormalizedSchema(writer3.ToString());
+                       string TextString3 = writer3.ToString();
                        string expected3 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""Root"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""Root"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""authorName"">" +
     @"<xs:sequence>" +
-      @"<xs:element msdata:Ordinal=""0"" name=""first-name"" type=""xs:string"" />" +
-      @"<xs:element msdata:Ordinal=""1"" name=""last-name"" type=""xs:string"" />" +
+      @"<xs:element name=""first-name"" type=""xs:string"" msdata:Ordinal=""0"" />" +
+      @"<xs:element name=""last-name"" type=""xs:string"" msdata:Ordinal=""1"" />" +
     @"</xs:sequence>" +
     @"<xs:attribute name=""book_Id"" type=""xs:int"" use=""prohibited"" />" +
   @"</xs:complexType>" +
   @"<xs:element name=""author"" type=""authorName"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""author"" msdata:UseCurrentLocale=""true"" name=""Root"">" +
+  @"<xs:element name=""Root"" msdata:IsDataSet=""true"" msdata:MainDataTable=""author"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
         @"<xs:element ref=""author"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
   @"</xs:element>" +
 @"</xs:schema>";
-                       AssertEquals ("#3", expected3, TextString3.Replace ("\r\n", "").Replace ("  ", ""));
-                       
-                       TextWriter writer4 = new StringWriter ();
-                       ds.Tables[3].WriteXmlSchema (writer4);
-                       string TextString4 = GetNormalizedSchema (writer4.ToString ());
+                       NUnit.Framework.Assert.AreEqual(expected3, TextString3.Replace("\r\n", "").Replace("  ", ""), "#3");
+
+                       TextWriter writer4 = new StringWriter();
+                       ds.Tables[3].WriteXmlSchema(writer4);
+                       //string TextString4 = GetNormalizedSchema(writer4.ToString());
+                       string TextString4 = writer4.ToString();
                        string expected4 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""Root"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""Region"" msdata:UseCurrentLocale=""true"" name=""Root"">" +
+@"<xs:schema id=""Root"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
+  @"<xs:element name=""Root"" msdata:IsDataSet=""true"" msdata:MainDataTable=""Region"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
         @"<xs:element name=""Region"">" +
           @"<xs:complexType>" +
             @"<xs:sequence>" +
-              @"<xs:element minOccurs=""0"" name=""RegionID"" type=""xs:string"" />" +
-              @"<xs:element minOccurs=""0"" name=""RegionDescription"" type=""xs:string"" />" +
+              @"<xs:element name=""RegionID"" type=""xs:string"" minOccurs=""0"" />" +
+              @"<xs:element name=""RegionDescription"" type=""xs:string"" minOccurs=""0"" />" +
             @"</xs:sequence>" +
           @"</xs:complexType>" +
         @"</xs:element>" +
@@ -3850,11 +3846,11 @@ namespace MonoTests.System.Data
     @"</xs:complexType>" +
   @"</xs:element>" +
 @"</xs:schema>";
-                       AssertEquals ("#4", expected4, TextString4.Replace ("\r\n", "").Replace ("  ", ""));
+                       NUnit.Framework.Assert.AreEqual(expected4, TextString4.Replace("\r\n", "").Replace("  ", ""), "#4");
                }
 
                [Test]
-               [Category ("NotWorking")]
+               //[Category ("NotWorking")]
                public void ReadWriteXmlSchema_IgnoreSchema () {
                        DataSet ds = new DataSet ();
                        ds.ReadXmlSchema ("Test/System.Data/store.xsd");
@@ -3872,39 +3868,41 @@ namespace MonoTests.System.Data
 
                        TextWriter writer1 = new StringWriter ();
                        ds.Tables[0].WriteXmlSchema (writer1);
-                       string TextString1 = GetNormalizedSchema (writer1.ToString ());
+                       //string TextString1 = GetNormalizedSchema (writer1.ToString ());
+                       string TextString1 = writer1.ToString ();
                        string expected1 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""NewDataSet"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""NewDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""bookstoreType"">" +
   @"</xs:complexType>" +
   @"<xs:element name=""bookstore"" type=""bookstoreType"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""bookstore"" msdata:UseCurrentLocale=""true"" name=""NewDataSet"">" +
+  @"<xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:MainDataTable=""bookstore"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
        @"<xs:element ref=""bookstore"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
   @"</xs:element>" +
 @"</xs:schema>";
-                       AssertEquals ("#1", expected1, TextString1.Replace ("\r\n", "").Replace ("  ", ""));
+                       Console.WriteLine ("{0} - {1}", TextString1, expected1);
+                       AssertEquals ("#1", expected1, TextString1.Replace ("\r\n", "").Replace ("  ", "").Replace ("\n", ""));
 
                        TextWriter writer2 = new StringWriter ();
-                       //ds.Tables[1].WriteXmlSchema (writer2, false);
+                       ds.Tables[1].WriteXmlSchema (writer2, false);
                        string TextString2 = GetNormalizedSchema (writer2.ToString ());
                        string expected2 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""NewDataSet"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""NewDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""bookType"">" +
     @"<xs:sequence>" +
-      @"<xs:element msdata:Ordinal=""1"" name=""title"" type=""xs:string"" />" +
-      @"<xs:element msdata:Ordinal=""2"" name=""price"" type=""xs:decimal"" />" +
+      @"<xs:element name=""title"" type=""xs:string"" msdata:Ordinal=""1"" />" +
+      @"<xs:element name=""price"" type=""xs:decimal"" msdata:Ordinal=""2"" />" +
     @"</xs:sequence>" +
     @"<xs:attribute name=""genre"" type=""xs:string"" />" +
     @"<xs:attribute name=""bookstore_Id"" type=""xs:int"" use=""prohibited"" />" +
   @"</xs:complexType>" +
   @"<xs:element name=""book"" type=""bookType"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""book"" msdata:UseCurrentLocale=""true"" name=""NewDataSet"">" +
+  @"<xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:MainDataTable=""book"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
        @"<xs:element ref=""book"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
@@ -3916,18 +3914,18 @@ namespace MonoTests.System.Data
                        ds.Tables[2].WriteXmlSchema (writer3);
                        string TextString3 = GetNormalizedSchema (writer3.ToString ());
                        string expected3 = @"<?xml version=""1.0"" encoding=""utf-16""?>" +
-@"<xs:schema id=""NewDataSet"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">" +
+@"<xs:schema id=""NewDataSet"" xmlns="""" xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:msdata=""urn:schemas-microsoft-com:xml-msdata"">" +
   @"<xs:complexType name=""authorName"">" +
     @"<xs:sequence>" +
-      @"<xs:element msdata:Ordinal=""0"" name=""first-name"" type=""xs:string"" />" +
-      @"<xs:element msdata:Ordinal=""1"" name=""last-name"" type=""xs:string"" />" +
+      @"<xs:element name=""first-name"" type=""xs:string"" msdata:Ordinal=""0"" />" +
+      @"<xs:element name=""last-name"" type=""xs:string"" msdata:Ordinal=""1"" />" +
     @"</xs:sequence>" +
     @"<xs:attribute name=""book_Id"" type=""xs:int"" use=""prohibited"" />" +
   @"</xs:complexType>" +
   @"<xs:element name=""author"" type=""authorName"" />" +
-  @"<xs:element msdata:IsDataSet=""true"" msdata:MainDataTable=""author"" msdata:UseCurrentLocale=""true"" name=""NewDataSet"">" +
+  @"<xs:element name=""NewDataSet"" msdata:IsDataSet=""true"" msdata:MainDataTable=""author"" msdata:UseCurrentLocale=""true"">" +
     @"<xs:complexType>" +
-      @"<xs:choice maxOccurs=""unbounded"" minOccurs=""0"">" +
+      @"<xs:choice minOccurs=""0"" maxOccurs=""unbounded"">" +
        @"<xs:element ref=""author"" />" +
       @"</xs:choice>" +
     @"</xs:complexType>" +
@@ -3947,7 +3945,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                public void ReadWriteXmlSchema_2 () {
                        DataSet ds = new DataSet ("dataset");
                        ds.Tables.Add ("table1");
@@ -3981,7 +3978,6 @@ namespace MonoTests.System.Data
                }
 
                [Test]
-               [Category ("NotWorking")]
                [ExpectedException (typeof (InvalidOperationException))]
                public void ReadWriteXmlSchemaExp_NoTableName () {
                        DataTable dtw = new DataTable ();
@@ -3989,6 +3985,13 @@ namespace MonoTests.System.Data
                        dtw.WriteXmlSchema (ms);
                }
 
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void ReadWriteXmlSchemaExp_NoFileName () {
+                       DataTable dtw = new DataTable ();
+                       dtw.WriteXmlSchema ("");
+               }
+
                [Test]
                [ExpectedException (typeof (ArgumentException))]
                public void ReadWriteXmlSchemaExp_TableNameConflict () {