2 // System.Xml.XmlDeclaration
\r
5 // Duncan Mak (duncan@ximian.com)
\r
12 namespace System.Xml
\r
14 public class XmlDeclaration : XmlLinkedNode
\r
16 string encoding = "UTF-8"; // defaults to UTF-8
\r
20 protected internal XmlDeclaration (string version, string encoding,
\r
21 string standAlone, XmlDocument doc)
\r
24 this.version = version;
\r
25 this.encoding = encoding;
\r
26 this.standAlone = standAlone;
\r
29 public string Encoding {
\r
31 if (encoding == null)
\r
32 return String.Empty;
\r
37 set { encoding = value ; } // Note: MS' doesn't check this string, should we?
\r
40 public override string InnerText {
\r
41 get { return Value; }
\r
42 set { ParseInput (value); }
\r
45 public override string LocalName {
\r
46 get { return "xml"; }
\r
49 public override string Name {
\r
50 get { return "xml"; }
\r
53 public override XmlNodeType NodeType {
\r
54 get { return XmlNodeType.XmlDeclaration; }
\r
57 public string Standalone {
\r
59 if (standAlone == null)
\r
60 return String.Empty;
\r
66 if (value.ToUpper() == "YES")
\r
68 if (value.ToUpper() == "NO")
\r
73 public override string Value {
\r
74 get { return String.Format ("version=\"{0}\" encoding=\"{1}\" standalone=\"{2}\"",
\r
75 Version, Encoding, Standalone); }
\r
76 set { ParseInput (value); }
\r
79 public string Version {
\r
80 get { return version; }
\r
83 public override XmlNode CloneNode (bool deep)
\r
85 return new XmlDeclaration (Version, Encoding, standAlone, OwnerDocument);
\r
88 public override void WriteContentTo (XmlWriter w)
\r
90 // Nothing to do - no children.
\r
94 public override void WriteTo (XmlWriter w)
\r
96 if ((Standalone == String.Empty) || (Encoding == String.Empty))
\r
100 void ParseInput (string input)
\r
102 Encoding = input.Split (new char [] { ' ' }) [1].Split (new char [] { '=' }) [1];
\r
103 Standalone = input.Split (new char [] { ' ' }) [2].Split (new char [] { '=' }) [1];
\r