« Return to Thread: "Invalid format" message using DataSet.ReadXML with a xs:dateTime column

Re: "Invalid format" message using DataSet.ReadXML with a xs:dateTime column

by Nagappan :: Rate this Message:

Reply to Author | View in Thread

Hello,

It looks like the bug is in Mono. Could you please file a bug with a C# test case to reproduce this issue ?

Thanks
Nagappan

On Wed, Jun 4, 2008 at 7:58 AM, iguana <mono@...> wrote:

Hello,

I created a DataSet table with a DateTime column and saved it into a file
using DataSet.WriteXML. Using the same code, the files created by .NET and
MONO differ because, apparently, MONO saves DateTime values in a different
way:

.NET:
<TestColumn>2008-06-06T07:07:00.009+02:00</TestColumn>
MONO:
<TestColumn>2008-06-06T07:07:00.0088888</TestColumn>

MONO saves the milliseconds more accurately but seems to be unaware of time
zones. What's worse, however, is that when I create a file with .NET and
then try to read it with MONO I get an "Invalid format" error message: MONO
does not seem to be able to deal with the time zone information "+02:00"
saved by .NET.

This is the VB code I use (having created a simple form with two buttons
"cmdWriteXML" and "cmdReadXML"):


Imports System.Data
Public Class Form1
 Private TestFile As String = "C:\Test.xml"

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
   Dim MyDate As DateTime = CDate("06.06.2008
07:07").AddMilliseconds(8.8888)
   Dim TestTable As DataTable = New DataTable("TestTable")
   TestTable.Columns.Add("TestColumn", Type.GetType("System.DateTime"))
   Dim TestRow As DataRow = TestTable.NewRow
   TestRow("TestColumn") = MyDate
   TestTable.Rows.Add(TestRow)
   Dim TestDataSet As DataSet = New DataSet("TestDataSet")
   TestDataSet.Tables.Add(TestTable)
   TestDataSet.WriteXml(TestFile, XmlWriteMode.WriteSchema)
 End Sub

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
   Try
     Dim TestDataSet As DataSet = New DataSet()
     TestDataSet.ReadXml(TestFile, XmlReadMode.ReadSchema)
     MsgBox("Success")
   Catch ex As Exception
     MsgBox(ex.Message)
   End Try
 End Sub
End Class

Clicking both Button1 and Button2 in .NET produces "Success".
Clicking both Button1 and Button2 in MONO produces "Success".
Clicking Button1 in MONO and Button2 in .NET produces "Success."
Clicking Button1 in .NET and Button2 in MONO produces "Invalid format."


The file created by this code looks like this:

<?xml version="1.0" standalone="yes"?>
<TestDataSet>
 <xs:schema id="TestDataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
   <xs:element name="TestDataSet" msdata:IsDataSet="true"
msdata:UseCurrentLocale="true">
     <xs:complexType>
       <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element name="TestTable">
           <xs:complexType>
             <xs:sequence>
               <xs:element name="TestColumn" type="xs:dateTime"
minOccurs="0" />
             </xs:sequence>
           </xs:complexType>
         </xs:element>
       </xs:choice>
     </xs:complexType>
   </xs:element>
 </xs:schema>
 <TestTable>
   <TestColumn>   ***DIFFERENT VALUES SEE ABOVE***   </TestColumn>
 </TestTable>
</TestDataSet>


Is this a bug in MONO? Can it be fixed?

Regards
iguana
--
View this message in context: http://www.nabble.com/%22Invalid-format%22-message-using-DataSet.ReadXML-with-a-xs%3AdateTime-column-tp17648818p17648818.html
Sent from the Mono - Dev mailing list archive at Nabble.com.

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@...
http://lists.ximian.com/mailman/listinfo/mono-devel-list



--
Linux Desktop (GUI Application) Testing Project - http://ldtp.freedesktop.org
http://nagappanal.blogspot.com
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@...
http://lists.ximian.com/mailman/listinfo/mono-devel-list

 « Return to Thread: "Invalid format" message using DataSet.ReadXML with a xs:dateTime column