2002-08-16 Jason Diamond <jason@injektilo.org>
[mono.git] / mcs / class / System.XML / System.Xml / XmlSignificantWhitespace.cs
1 //
2 // System.Xml.XmlSignificantWhitespace.cs
3 //
4 // Author:
5 //      Duncan Mak  (duncan@ximian.com)
6 //
7 // (C) Ximian, Inc. http://www.ximian.com
8 //
9
10 using System;
11
12 namespace System.Xml
13 {
14         public class XmlSignificantWhitespace : XmlCharacterData
15         {
16                 // Constructor
17                 protected internal XmlSignificantWhitespace (string strData, XmlDocument doc)
18                         : base (strData, doc)
19                 {
20                 }
21                 
22                 // Properties
23                 public override string LocalName {
24                         get { return "#significant-whitespace"; }
25                 }
26
27                 public override string Name {
28                         get { return "#significant-whitespace"; }
29                 }
30
31                 public override XmlNodeType NodeType {
32                         get { return XmlNodeType.SignificantWhitespace; }
33                 }
34
35                 public override string Value {
36                         get { return Data; }
37                         [MonoTODO]
38                         set {
39                                 if (IsValidWhitespaceChar (value) == false)
40                                         throw new ArgumentException ("Invalid whitespace characters.");
41                         }
42                 }
43
44                 // Methods
45                 public override XmlNode CloneNode (bool deep)
46                 {
47                         return new XmlSignificantWhitespace (Data, OwnerDocument);
48                 }
49
50                 public override void WriteContentTo (XmlWriter w) {}
51
52                 public override void WriteTo (XmlWriter w)
53                 {
54                         w.WriteWhitespace (Data);
55                 }
56
57                 private bool IsValidWhitespaceChar (string text)
58                 {
59                         foreach (char c in text)
60                                 if ((c != ' ') && (c != '\r') && (c != '\n') && (c != '\t'))
61                                         return false;
62                         return true;
63                 }
64         }
65 }