2 // System.Configuration.ConfigXmlDocument
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 // (C) 2002 Ximian, Inc (http://www.ximian.com)
14 namespace System.Configuration
16 public sealed class ConfigXmlDocument : XmlDocument, IConfigXmlNode
22 public override XmlAttribute CreateAttribute (string prefix,
26 return new ConfigXmlAttribute (this, prefix, localName, namespaceUri);
29 public override XmlCDataSection CreateCDataSection (string data)
31 return new ConfigXmlCDataSection (this, data);
34 public override XmlComment CreateComment (string comment)
36 return new ConfigXmlComment (this, comment);
39 public override XmlElement CreateElement (string prefix, string localName, string namespaceUri)
41 return new ConfigXmlElement (this, prefix, localName, namespaceUri);
44 public override XmlSignificantWhitespace CreateSignificantWhitespace (string data)
46 return base.CreateSignificantWhitespace (data);
49 public override XmlText CreateTextNode (string text)
51 return new ConfigXmlText (this, text);
54 public override XmlWhitespace CreateWhitespace (string data)
56 return base.CreateWhitespace (data);
59 public override void Load (string filename)
61 LoadSingleElement (filename, new XmlTextReader (filename));
64 public void LoadSingleElement (string filename, XmlTextReader sourceReader)
68 lineNumber = sourceReader.LineNumber;
69 string xml = sourceReader.ReadOuterXml();
70 reader = new XmlTextReader (new StringReader (xml), sourceReader.NameTable);
71 reader.MoveToContent ();
76 public string Filename
91 // Wrappers for Xml* that just provide file name and line number addition
93 class ConfigXmlAttribute : XmlAttribute, IConfigXmlNode
98 public ConfigXmlAttribute (ConfigXmlDocument document,
102 : base (prefix, localName, namespaceUri, document)
104 fileName = document.Filename;
105 lineNumber = document.LineNumber;
108 public string Filename
115 public int LineNumber
123 class ConfigXmlCDataSection : XmlCDataSection, IConfigXmlNode
128 public ConfigXmlCDataSection (ConfigXmlDocument document, string data)
129 : base (data, document)
131 fileName = document.Filename;
132 lineNumber = document.LineNumber;
135 public string Filename
142 public int LineNumber
150 class ConfigXmlComment : XmlComment, IConfigXmlNode
155 public ConfigXmlComment (ConfigXmlDocument document, string comment)
156 : base (comment, document)
158 fileName = document.Filename;
159 lineNumber = document.LineNumber;
162 public string Filename
169 public int LineNumber
177 class ConfigXmlElement : XmlElement, IConfigXmlNode
182 public ConfigXmlElement (ConfigXmlDocument document,
186 : base (prefix, localName, namespaceUri, document)
188 fileName = document.Filename;
189 lineNumber = document.LineNumber;
192 public string Filename
199 public int LineNumber
207 class ConfigXmlText : XmlText, IConfigXmlNode
212 public ConfigXmlText (ConfigXmlDocument document, string data)
213 : base (data, document)
215 fileName = document.Filename;
216 lineNumber = document.LineNumber;
219 public string Filename
226 public int LineNumber