The Labs \ Source Viewer \ SSCLI \ System.Xml \ XmlWrappingReader

  1. //------------------------------------------------------------------------------
  2. // <copyright file="XmlWrappingReader.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. using System;
  16. using System.Xml;
  17. using System.Xml.Schema;
  18. using System.Diagnostics;
  19. using System.Collections;
  20. using System.Security.Policy;
  21. namespace System.Xml
  22. {
  23.    
  24.     internal class XmlWrappingReader : XmlReader, IXmlLineInfo
  25.     {
  26.         //
  27.         // Fields
  28.         //
  29.         protected XmlReader reader;
  30.         protected IXmlLineInfo readerAsIXmlLineInfo;
  31.        
  32.         //
  33.         // Constructor
  34.         //
  35.         internal XmlWrappingReader(XmlReader baseReader)
  36.         {
  37.             Debug.Assert(baseReader != null);
  38.             Reader = baseReader;
  39.         }
  40.        
  41.         //
  42.         // XmlReader implementation
  43.         //
  44.         public override XmlReaderSettings Settings {
  45.             get { return reader.Settings; }
  46.         }
  47.         public override XmlNodeType NodeType {
  48.             get { return reader.NodeType; }
  49.         }
  50.         public override string Name {
  51.             get { return reader.Name; }
  52.         }
  53.         public override string LocalName {
  54.             get { return reader.LocalName; }
  55.         }
  56.         public override string NamespaceURI {
  57.             get { return reader.NamespaceURI; }
  58.         }
  59.         public override string Prefix {
  60.             get { return reader.Prefix; }
  61.         }
  62.         public override bool HasValue {
  63.             get { return reader.HasValue; }
  64.         }
  65.         public override string Value {
  66.             get { return reader.Value; }
  67.         }
  68.         public override int Depth {
  69.             get { return reader.Depth; }
  70.         }
  71.         public override string BaseURI {
  72.             get { return reader.BaseURI; }
  73.         }
  74.         public override bool IsEmptyElement {
  75.             get { return reader.IsEmptyElement; }
  76.         }
  77.         public override bool IsDefault {
  78.             get { return reader.IsDefault; }
  79.         }
  80.         public override char QuoteChar {
  81.             get { return reader.QuoteChar; }
  82.         }
  83.         public override XmlSpace XmlSpace {
  84.             get { return reader.XmlSpace; }
  85.         }
  86.         public override string XmlLang {
  87.             get { return reader.XmlLang; }
  88.         }
  89.         public override IXmlSchemaInfo SchemaInfo {
  90.             get { return reader.SchemaInfo; }
  91.         }
  92.         public override System.Type ValueType {
  93.             get { return reader.ValueType; }
  94.         }
  95.         public override int AttributeCount {
  96.             get { return reader.AttributeCount; }
  97.         }
  98.         public override bool CanResolveEntity {
  99.             get { return reader.CanResolveEntity; }
  100.         }
  101.         public override bool EOF {
  102.             get { return reader.EOF; }
  103.         }
  104.         public override ReadState ReadState {
  105.             get { return reader.ReadState; }
  106.         }
  107.         public override bool HasAttributes {
  108.             get { return reader.HasAttributes; }
  109.         }
  110.         public override XmlNameTable NameTable {
  111.             get { return reader.NameTable; }
  112.         }
  113.        
  114.         public override string GetAttribute(string name)
  115.         {
  116.             return reader.GetAttribute(name);
  117.         }
  118.        
  119.         public override string GetAttribute(string name, string namespaceURI)
  120.         {
  121.             return reader.GetAttribute(name, namespaceURI);
  122.         }
  123.        
  124.         public override string GetAttribute(int i)
  125.         {
  126.             return reader.GetAttribute(i);
  127.         }
  128.        
  129.         public override bool MoveToAttribute(string name)
  130.         {
  131.             return reader.MoveToAttribute(name);
  132.         }
  133.        
  134.         public override bool MoveToAttribute(string name, string ns)
  135.         {
  136.             return reader.MoveToAttribute(name, ns);
  137.         }
  138.        
  139.         public override void MoveToAttribute(int i)
  140.         {
  141.             reader.MoveToAttribute(i);
  142.         }
  143.        
  144.         public override bool MoveToFirstAttribute()
  145.         {
  146.             return reader.MoveToFirstAttribute();
  147.         }
  148.        
  149.         public override bool MoveToNextAttribute()
  150.         {
  151.             return reader.MoveToNextAttribute();
  152.         }
  153.        
  154.         public override bool MoveToElement()
  155.         {
  156.             return reader.MoveToElement();
  157.         }
  158.        
  159.         public override bool Read()
  160.         {
  161.             return reader.Read();
  162.         }
  163.        
  164.         public override void Close()
  165.         {
  166.             reader.Close();
  167.         }
  168.        
  169.         public override void Skip()
  170.         {
  171.             reader.Skip();
  172.         }
  173.        
  174.         public override string LookupNamespace(string prefix)
  175.         {
  176.             return reader.LookupNamespace(prefix);
  177.         }
  178.        
  179.         public override void ResolveEntity()
  180.         {
  181.             reader.ResolveEntity();
  182.         }
  183.        
  184.         public override bool ReadAttributeValue()
  185.         {
  186.             return reader.ReadAttributeValue();
  187.         }
  188.        
  189.         //
  190.         // IDisposable interface
  191.         //
  192.         protected override void Dispose(bool disposing)
  193.         {
  194.             ((IDisposable)reader).Dispose();
  195.         }
  196.        
  197.         //
  198.         // IXmlLineInfo members
  199.         //
  200.         public virtual bool HasLineInfo()
  201.         {
  202.             return (readerAsIXmlLineInfo == null) ? false : readerAsIXmlLineInfo.HasLineInfo();
  203.         }
  204.        
  205.         public virtual int LineNumber {
  206.             get { return (readerAsIXmlLineInfo == null) ? 0 : readerAsIXmlLineInfo.LineNumber; }
  207.         }
  208.        
  209.         public virtual int LinePosition {
  210.             get { return (readerAsIXmlLineInfo == null) ? 0 : readerAsIXmlLineInfo.LinePosition; }
  211.         }
  212.        
  213.         //
  214.         // Protected methods
  215.         //
  216.         protected XmlReader Reader {
  217.             get { return reader; }
  218.             set {
  219.                 reader = value;
  220.                 readerAsIXmlLineInfo = value as IXmlLineInfo;
  221.             }
  222.         }
  223.        
  224.         //
  225.         // Internal methods
  226.         //
  227.         internal virtual SchemaInfo DtdSchemaInfo {
  228.             get { return XmlReader.GetDtdSchemaInfo(reader); }
  229.         }
  230.     }
  231. }

Developer Fusion