* XmlDeclaration.cs : Fixed ParseInput() more parse strictly.
[mono.git] / mcs / class / System.XML / System.Xml / XmlWhitespace.cs
index 610ec9c7d54fa38a7af512947ee3d083e26a25cf..62abbb824132e52fda7b9ba92d76e14b08b54df5 100644 (file)
@@ -32,10 +32,13 @@ namespace System.Xml
                        get { return XmlNodeType.Whitespace; }
                }
 
-               [MonoTODO]
                public override string Value {
                        get { return Data; }
-                       set {}
+                       [MonoTODO]
+                       set {
+                               if (IsValidWhitespaceChar (value) == false)
+                                       throw new ArgumentException ("Invalid whitespace characters.");
+                       }
                }
 
                // Methods
@@ -45,14 +48,19 @@ namespace System.Xml
                        return new XmlWhitespace (Data, OwnerDocument); 
                }
 
-               [MonoTODO]
-               public override void WriteContentTo (XmlWriter w)
-               {                       
-               }
+               public override void WriteContentTo (XmlWriter w) {}
 
-               [MonoTODO]
                public override void WriteTo (XmlWriter w)
-               {                       
+               {
+                       w.WriteWhitespace (Data);
+               }
+
+               private bool IsValidWhitespaceChar (string text)
+               {
+                       foreach (char c in text)
+                               if ((c != ' ') && (c != '\r') && (c != '\n') && (c != '\t'))
+                                       return false;
+                       return true;
                }
        }
 }