\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#02", "<xs:schema id=\"test_dataset\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#02", "<xs:schema id=\"test_dataset\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"test_dataset\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#else\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"test_dataset\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#endif\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+ AssertEquals ("test#03", " <xs:element msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\" name=\"test_dataset\">", substring);\r
+#else\r
AssertEquals ("test#03", " <xs:element name=\"test_dataset\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\">", substring);\r
- \r
+#endif\r
+\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
AssertEquals ("test#04", " <xs:complexType>", substring);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#09", " <xs:element name=\"first\" msdata:Caption=\"test\" default=\"test_default_value\" minOccurs=\"0\">", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#09", " <xs:element name=\"first\" msdata:Caption=\"test\" default=\"test_default_value\" minOccurs=\"0\">", substring);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#09", " <xs:element msdata:Caption=\"test\" minOccurs=\"0\" default=\"test_default_value\" name=\"first\">", substring);\r
+#else\r
+ AssertEquals ("test#09", " <xs:element minOccurs=\"0\" default=\"test_default_value\" name=\"first\" msdata:Caption=\"test\">", substring);\r
+#endif\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
-#if NET_1_1\r
- AssertEquals ("test#16", " <xs:element name=\"second\" msdata:DataType=\"System.Data.SqlTypes.SqlGuid, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
-#else\r
- AssertEquals ("test#16", " <xs:element name=\"second\" msdata:DataType=\"System.Data.SqlTypes.SqlGuid, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
-#endif\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+ // Due to the assembly version difference, this test is index-based\r
+// AssertEquals ("test#16", " <xs:element name=\"second\" msdata:DataType=\"System.Data.SqlTypes.SqlGuid, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
+ if (substring.IndexOf ("<xs:element") < 0)\r
+ Fail ("test#16: " + substring);\r
+ if (substring.IndexOf ("name=\"second\"") < 0)\r
+ Fail ("test#16: " + substring);\r
+ if (substring.IndexOf ("msdata:DataType=\"System.Data.SqlTypes.SqlGuid, System.Data, Version=") < 0)\r
+ Fail ("test#16: " + substring);\r
+ if (substring.IndexOf ("type=\"xs:string\"") < 0)\r
+ Fail ("test#16: " + substring);\r
+ if (substring.IndexOf ("minOccurs=\"0\"") < 0)\r
+ Fail ("test#16: " + substring);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#23", " <xs:element name=\"second_first\" default=\"default_value\" minOccurs=\"0\">", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#23", " <xs:element name=\"second_first\" default=\"default_value\" minOccurs=\"0\">", substring);\r
+ AssertEquals ("test#23", " <xs:element minOccurs=\"0\" default=\"default_value\" name=\"second_first\">", substring);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+ AssertEquals ("test#40", " <xs:unique msdata:ConstraintName=\"Constraint1\" name=\"second_test_table_Constraint1\">", substring);\r
+#else\r
AssertEquals ("test#40", " <xs:unique name=\"second_test_table_Constraint1\" msdata:ConstraintName=\"Constraint1\">", substring);\r
- \r
+#endif\r
+\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
AssertEquals ("test#41", " <xs:selector xpath=\".//second_test_table\" />", substring);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#02", "<xs:schema id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#02", "<xs:schema id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"Root\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#else\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#endif\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#03", " <xs:element name=\"Root\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\">", substring);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#03", " <xs:element msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\" name=\"Root\">", substring);\r
+#else\r
AssertEquals ("test#03", " <xs:element name=\"Root\" msdata:IsDataSet=\"true\" msdata:Locale=\"fi-FI\">", substring);\r
+#endif\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#09", " <xs:element name=\"RegionID\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#09", " <xs:element name=\"RegionID\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
+ AssertEquals ("test#09", " <xs:element minOccurs=\"0\" name=\"RegionID\" type=\"xs:string\" />", substring);\r
\r
- substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
+ substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#10", " <xs:element name=\"RegionDescription\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#10", " <xs:element name=\"RegionDescription\" type=\"xs:string\" minOccurs=\"0\" />", substring);\r
+ AssertEquals ("test#10", " <xs:element minOccurs=\"0\" name=\"RegionDescription\" type=\"xs:string\" />", substring);\r
\r
- substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
+ substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
AssertEquals ("test#11", " </xs:sequence>", substring);\r
\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- 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);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// 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);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"NewDataSet\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#else\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"NewDataSet\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#endif\r
\r
- substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
+ substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
AssertEquals ("test#03", " <xs:complexType name=\"bookstoreType\">", substring);\r
\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
- AssertEquals ("test#02", "<xs:schema id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+ // FIXME: modified attributes based on XmlSchema.Write difference\r
+// AssertEquals ("test#02", "<xs:schema id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">", substring);\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"Root\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#else\r
+ AssertEquals ("test#02", "<xs:schema xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" id=\"Root\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">", substring);\r
+#endif\r
\r
substring = TextString.Substring (0, TextString.IndexOf(EOL));\r
TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);\r
[Test]\r
public void WriteDifferentNamespaceSchema ()\r
{\r
+ // I modified attribute order that is not worth testing.\r
+ /*\r
string schema = @"<?xml version='1.0' encoding='utf-16'?>\r
<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'>\r
<!--ATTENTION: This schema contains references to other imported schemas-->\r
</xs:complexType>\r
</xs:element>\r
</xs:schema>";\r
+ */\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ string schema = @"<?xml version='1.0' encoding='utf-16'?>\r
+<xs:schema xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' xmlns:mstns='urn:bar' attributeFormDefault='qualified' elementFormDefault='qualified' targetNamespace='urn:bar' id='NewDataSet' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns='urn:bar' xmlns:app1='urn:baz' xmlns:app2='urn:foo'>\r
+ <!--ATTENTION: This schema contains references to other imported schemas-->\r
+ <xs:import namespace='urn:baz' schemaLocation='_app1.xsd' />\r
+ <xs:import namespace='urn:foo' schemaLocation='_app2.xsd' />\r
+ <xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:Locale='fi-FI'>\r
+ <xs:complexType>\r
+ <xs:choice maxOccurs='unbounded'>\r
+ <xs:element ref='app2:NS1Table' />\r
+ <xs:element name='NS2Table'>\r
+ <xs:complexType>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:choice>\r
+ </xs:complexType>\r
+ </xs:element>\r
+</xs:schema>";\r
+#else\r
+ string schema = @"<?xml version='1.0' encoding='utf-16'?>\r
+<xs:schema xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' xmlns:mstns='urn:bar' id='NewDataSet' elementFormDefault='qualified' attributeFormDefault='qualified' targetNamespace='urn:bar' xmlns='urn:bar' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:app1='urn:baz' xmlns:app2='urn:foo'>\r
+ <!--ATTENTION: This schema contains references to other imported schemas-->\r
+ <xs:import namespace='urn:baz' schemaLocation='_app1.xsd' />\r
+ <xs:import namespace='urn:foo' schemaLocation='_app2.xsd' />\r
+ <xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:Locale='fi-FI'>\r
+ <xs:complexType>\r
+ <xs:choice maxOccurs='unbounded'>\r
+ <xs:element ref='app2:NS1Table' />\r
+ <xs:element name='NS2Table'>\r
+ <xs:complexType>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:choice>\r
+ </xs:complexType>\r
+ </xs:element>\r
+</xs:schema>";\r
+#endif\r
\r
DataSet ds = new DataSet();\r
DataTable dt = new DataTable ();\r
public void SerializeDataSet ()\r
{\r
// see GetReady() for current culture\r
- 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>";\r
+// 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>";\r
// Modified attribute order from MS result\r
-// string xml = "<?xml version='1.0' encoding='utf-16'?><DataSet><xs:schema xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' id='DS' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns=''><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>";\r
+#if MS_NET // MS System.XML.dll + Mono System.Data.dll\r
+ string xml = "<?xml version='1.0' encoding='utf-16'?><DataSet><xs:schema xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' id='DS' xmlns:xs='http://www.w3.org/2001/XMLSchema'><xs:element msdata:IsDataSet='true' msdata:Locale='fi-FI' name='DS'><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>";\r
+#else\r
+ string xml = "<?xml version='1.0' encoding='utf-16'?><DataSet><xs:schema xmlns:msdata='urn:schemas-microsoft-com:xml-msdata' id='DS' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema'><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>";\r
+#endif\r
DataSet ds = new DataSet ();\r
ds.DataSetName = "DS";\r
XmlSerializer ser = new XmlSerializer (typeof (DataSet));\r
AssertEquals ("#A22", set.Tables [i].Columns.Count, copySet.Tables [i].Columns.Count);\r
}\r
}\r
- \r
+\r
+ [Test]\r
+ public void WriteNestedTableXml ()\r
+ {\r
+ string xml = @"<NewDataSet>\r
+ <tab1>\r
+ <ident>1</ident>\r
+ <name>hoge</name>\r
+ <tab2>\r
+ <timestamp>2004-05-05</timestamp>\r
+ </tab2>\r
+ </tab1>\r
+ <tab1>\r
+ <ident>2</ident>\r
+ <name>fuga</name>\r
+ <tab2>\r
+ <timestamp>2004-05-06</timestamp>\r
+ </tab2>\r
+ </tab1>\r
+</NewDataSet>";\r
+ DataSet ds = new DataSet ();\r
+ DataTable dt = new DataTable ("tab1");\r
+ dt.Columns.Add ("ident");\r
+ dt.Columns.Add ("name");\r
+ dt.Rows.Add (new object [] {"1", "hoge"});\r
+ dt.Rows.Add (new object [] {"2", "fuga"});\r
+ DataTable dt2 = new DataTable ("tab2");\r
+ dt2.Columns.Add ("idref");\r
+ dt2.Columns [0].ColumnMapping = MappingType.Hidden;\r
+ dt2.Columns.Add ("timestamp");\r
+ dt2.Rows.Add (new object [] {"1", "2004-05-05"});\r
+ dt2.Rows.Add (new object [] {"2", "2004-05-06"});\r
+ ds.Tables.Add (dt);\r
+ ds.Tables.Add (dt2);\r
+ DataRelation rel = new DataRelation ("rel", dt.Columns [0], dt2.Columns [0]);\r
+ rel.Nested = true;\r
+ ds.Relations.Add (rel);\r
+ StringWriter sw = new StringWriter ();\r
+ ds.WriteXml (sw);\r
+ AssertEquals (xml, sw.ToString ());\r
+ }\r
}\r
}\r