2 // System.Xml.XmlWhitespace.cs
5 // Duncan Mak (duncan@ximian.com)
7 // (C) Ximian, Inc. http://www.ximian.com
11 using System.Xml.XPath;
15 public class XmlWhitespace : XmlCharacterData
18 protected internal XmlWhitespace (string strData, XmlDocument doc)
24 public override string LocalName {
25 get { return "#whitespace"; }
28 public override string Name {
29 get { return "#whitespace"; }
32 public override XmlNodeType NodeType {
33 get { return XmlNodeType.Whitespace; }
36 internal override XPathNodeType XPathNodeType {
37 get { return XPathNodeType.Whitespace; }
40 public override string Value {
43 if (IsValidWhitespaceChar (value) == false)
44 throw new ArgumentException ("Invalid whitespace characters.");
50 public override XmlNode CloneNode (bool deep)
52 // always return the data value
53 return new XmlWhitespace (Data, OwnerDocument);
56 public override void WriteContentTo (XmlWriter w) {}
58 public override void WriteTo (XmlWriter w)
60 if(OwnerDocument.PreserveWhitespace)
61 w.WriteWhitespace (Data);
64 private bool IsValidWhitespaceChar (string text)
66 foreach (char c in text)
67 if ((c != ' ') && (c != '\r') && (c != '\n') && (c != '\t'))