Update VS project files
[mono.git] / mcs / class / System.Data / System.Data.SqlTypes / SqlXml.cs
index fa5eebe770dd8b3c311a2cee400eb4e033e474fd..31998b307667d6b682e6d6c24e76783cdeb41ab2 100644 (file)
@@ -47,7 +47,6 @@ namespace System.Data.SqlTypes
                bool notNull;
                string xmlValue;
                
-               public static readonly SqlXml Null;
                public SqlXml ()
                {
                        notNull = false;
@@ -79,7 +78,7 @@ namespace System.Data.SqlTypes
                                        while (len > 0) {
                                                // Read may return anything from 0 to bufSize.
                                                int n = value.Read(bytes, 0, bufSize);
-                                               sb.Append (Encoding.ASCII.GetString (bytes, 0, n));
+                                               sb.Append (Encoding.Unicode.GetString (bytes, 0, n));
                                        
                                                // The end of the file is reached.
                                                if (n==0)
@@ -98,8 +97,11 @@ namespace System.Data.SqlTypes
                                notNull = false;
                                xmlValue = null;
                        } else {
-                               value.MoveToContent ();
-                               xmlValue = value.ReadOuterXml();
+                               if (value.Read ()) {
+                                       value.MoveToContent ();
+                                       xmlValue = value.ReadOuterXml();
+                               } else 
+                                       xmlValue = String.Empty;
                                notNull = true;
                        }
                }
@@ -130,10 +132,12 @@ namespace System.Data.SqlTypes
 
                public XmlReader CreateReader ()
                {
-                       if (notNull)
-                               return XmlTextReader.Create (new StringReader (xmlValue));
-                       else
-                               return null; 
+                       if (notNull) {
+                               XmlReaderSettings xs = new XmlReaderSettings ();
+                               xs.ConformanceLevel = ConformanceLevel.Fragment;
+                               return XmlTextReader.Create (new StringReader (xmlValue), xs);
+                       } else
+                               throw new SqlNullValueException (); 
                }
 
                [MonoTODO]