| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- //
- // System.Configuration.ConfigXmlDocument
- //
- // Authors:
- // Gonzalo Paniagua Javier ([email protected])
- //
- // (C) 2002 Ximian, Inc (http://www.ximian.com)
- //
- using System;
- using System.IO;
- using System.Xml;
- namespace System.Configuration
- {
- public sealed class ConfigXmlDocument : XmlDocument, IConfigXmlNode
- {
- XmlTextReader reader;
- string fileName;
- int lineNumber;
- public override XmlAttribute CreateAttribute (string prefix,
- string localName,
- string namespaceUri)
- {
- return new ConfigXmlAttribute (this, prefix, localName, namespaceUri);
- }
- public override XmlCDataSection CreateCDataSection (string data)
- {
- return new ConfigXmlCDataSection (this, data);
- }
- public override XmlComment CreateComment (string comment)
- {
- return new ConfigXmlComment (this, comment);
- }
- public override XmlElement CreateElement (string prefix, string localName, string namespaceUri)
- {
- return new ConfigXmlElement (this, prefix, localName, namespaceUri);
- }
- public override XmlSignificantWhitespace CreateSignificantWhitespace (string data)
- {
- return base.CreateSignificantWhitespace (data);
- }
- public override XmlText CreateTextNode (string text)
- {
- return new ConfigXmlText (this, text);
- }
- public override XmlWhitespace CreateWhitespace (string data)
- {
- return base.CreateWhitespace (data);
- }
- public override void Load (string filename)
- {
- LoadSingleElement (filename, new XmlTextReader (filename));
- }
- public void LoadSingleElement (string filename, XmlTextReader sourceReader)
- {
- fileName = filename;
- lineNumber = sourceReader.LineNumber;
- string xml = sourceReader.ReadOuterXml();
- reader = new XmlTextReader (new StringReader (xml), sourceReader.NameTable);
- Load (reader);
- reader.Close ();
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- //
- // Wrappers for Xml* that just provide file name and line number addition
- //
- class ConfigXmlAttribute : XmlAttribute, IConfigXmlNode
- {
- string fileName;
- int lineNumber;
- public ConfigXmlAttribute (ConfigXmlDocument document,
- string prefix,
- string localName,
- string namespaceUri)
- : base (prefix, localName, namespaceUri, document)
- {
- fileName = document.Filename;
- lineNumber = document.LineNumber;
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- }
-
- class ConfigXmlCDataSection : XmlCDataSection, IConfigXmlNode
- {
- string fileName;
- int lineNumber;
- public ConfigXmlCDataSection (ConfigXmlDocument document, string data)
- : base (data, document)
- {
- fileName = document.Filename;
- lineNumber = document.LineNumber;
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- }
-
- class ConfigXmlComment : XmlComment, IConfigXmlNode
- {
- string fileName;
- int lineNumber;
- public ConfigXmlComment (ConfigXmlDocument document, string comment)
- : base (comment, document)
- {
- fileName = document.Filename;
- lineNumber = document.LineNumber;
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- }
-
- class ConfigXmlElement : XmlElement, IConfigXmlNode
- {
- string fileName;
- int lineNumber;
- public ConfigXmlElement (ConfigXmlDocument document,
- string prefix,
- string localName,
- string namespaceUri)
- : base (prefix, localName, namespaceUri, document)
- {
- fileName = document.Filename;
- lineNumber = document.LineNumber;
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- }
- class ConfigXmlText : XmlText, IConfigXmlNode
- {
- string fileName;
- int lineNumber;
- public ConfigXmlText (ConfigXmlDocument document, string data)
- : base (data, document)
- {
- fileName = document.Filename;
- lineNumber = document.LineNumber;
- }
- public string Filename
- {
- get {
- return fileName;
- }
- }
- public int LineNumber
- {
- get {
- return lineNumber;
- }
- }
- }
- }
- }
|