2 // Commons.Xml.XmlDefaultReader.cs
\r
5 // Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)
\r
7 // 2003 Atsushi Enomoto "No rights reserved."
\r
9 // Copyright (c) 2004 Novell Inc.
\r
10 // All rights reserved
\r
12 // Permission is hereby granted, free of charge, to any person obtaining
\r
13 // a copy of this software and associated documentation files (the
\r
14 // "Software"), to deal in the Software without restriction, including
\r
15 // without limitation the rights to use, copy, modify, merge, publish,
\r
16 // distribute, sublicense, and/or sell copies of the Software, and to
\r
17 // permit persons to whom the Software is furnished to do so, subject to
\r
18 // the following conditions:
\r
20 // The above copyright notice and this permission notice shall be
\r
21 // included in all copies or substantial portions of the Software.
\r
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
33 // Similar to SAX DefaultHandler
\r
39 namespace Commons.Xml
\r
41 public class XmlDefaultReader : XmlReader, IXmlLineInfo
\r
44 IXmlLineInfo lineInfo;
\r
46 public XmlDefaultReader (XmlReader reader)
\r
48 this.reader = reader;
\r
49 this.lineInfo = reader as IXmlLineInfo;
\r
53 // This is the only one non-overriden property.
\r
54 public XmlReader Reader {
\r
55 get { return reader; }
\r
58 public int LineNumber {
\r
59 get { return lineInfo != null ? lineInfo.LineNumber : 0; }
\r
62 public int LinePosition {
\r
63 get { return lineInfo != null ? lineInfo.LinePosition : 0; }
\r
66 public override XmlNodeType NodeType
\r
68 get { return reader.NodeType; }
\r
71 public override string Name {
\r
72 get { return reader.Name; }
\r
75 public override string LocalName {
\r
76 get { return reader.LocalName; }
\r
79 public override string NamespaceURI {
\r
80 get { return reader.NamespaceURI; }
\r
83 public override string Prefix {
\r
84 get { return reader.Prefix; }
\r
87 public override bool HasValue {
\r
88 get { return reader.HasValue; }
\r
91 public override int Depth {
\r
92 get { return reader.Depth; }
\r
95 public override string Value {
\r
96 get { return reader.Value; }
\r
99 public override string BaseURI {
\r
100 get { return reader.BaseURI; }
\r
103 public override bool IsEmptyElement {
\r
104 get { return reader.IsEmptyElement; }
\r
107 public override bool IsDefault {
\r
108 get { return reader.IsDefault; }
\r
111 public override char QuoteChar {
\r
112 get { return reader.QuoteChar; }
\r
115 public override string XmlLang {
\r
116 get { return reader.XmlLang; }
\r
119 public override XmlSpace XmlSpace {
\r
120 get { return reader.XmlSpace; }
\r
123 public override int AttributeCount {
\r
124 get { return reader.AttributeCount; }
\r
127 public override string this [int i] {
\r
128 get { return reader [i]; }
\r
131 public override string this [string name] {
\r
132 get { return reader [name]; }
\r
135 public override string this [string localName, string namespaceURI] {
\r
136 get { return reader [localName, namespaceURI]; }
\r
139 public override bool EOF {
\r
140 get { return reader.EOF; }
\r
143 public override ReadState ReadState {
\r
144 get { return reader.ReadState; }
\r
147 public override XmlNameTable NameTable {
\r
148 get { return reader.NameTable; }
\r
154 public override string GetAttribute (string name)
\r
156 return reader.GetAttribute (name);
\r
159 public override string GetAttribute (string localName, string namespaceURI)
\r
161 return reader.GetAttribute (localName, namespaceURI);
\r
164 public override string GetAttribute (int i)
\r
166 return reader.GetAttribute (i);
\r
169 public bool HasLineInfo ()
\r
171 return lineInfo != null ? lineInfo.HasLineInfo () : false;
\r
174 public override bool MoveToAttribute (string name)
\r
176 return reader.MoveToAttribute (name);
\r
179 public override bool MoveToAttribute (string localName, string namespaceURI)
\r
181 return reader.MoveToAttribute (localName, namespaceURI);
\r
184 public override void MoveToAttribute (int i)
\r
186 reader.MoveToAttribute (i);
\r
189 public override bool MoveToFirstAttribute ()
\r
191 return reader.MoveToFirstAttribute ();
\r
194 public override bool MoveToNextAttribute ()
\r
196 return reader.MoveToNextAttribute ();
\r
199 public override bool MoveToElement ()
\r
201 return reader.MoveToElement ();
\r
204 public override void Close ()
\r
209 public override bool Read ()
\r
211 return Reader.Read ();
\r
215 public override string ReadString ()
\r
217 return reader.ReadString ();
\r
220 public override string ReadInnerXml ()
\r
222 return reader.ReadInnerXml ();
\r
225 public override string ReadOuterXml ()
\r
227 return reader.ReadOuterXml ();
\r
231 public override string LookupNamespace (string prefix)
\r
233 return reader.LookupNamespace (prefix);
\r
236 public override void ResolveEntity ()
\r
238 reader.ResolveEntity ();
\r
241 public override bool ReadAttributeValue () {
\r
242 return reader.ReadAttributeValue ();
\r