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

  1. //------------------------------------------------------------------------------
  2. // <copyright file="XmlUnspecifiedAttribute.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. namespace System.Xml
  16. {
  17.     using System;
  18.    
  19.     internal class XmlUnspecifiedAttribute : XmlAttribute
  20.     {
  21.         bool fSpecified = false;
  22.        
  23.        
  24.         protected internal XmlUnspecifiedAttribute(string prefix, string localName, string namespaceURI, XmlDocument doc) : base(prefix, localName, namespaceURI, doc)
  25.         {
  26.         }
  27.        
  28.         public override bool Specified {
  29.             get { return fSpecified; }
  30.         }
  31.        
  32.        
  33.         public override XmlNode CloneNode(bool deep)
  34.         {
  35.             //CloneNode is deep for attributes irrespective of parameter
  36.             XmlDocument doc = OwnerDocument;
  37.             XmlUnspecifiedAttribute attr = (XmlUnspecifiedAttribute)doc.CreateDefaultAttribute(Prefix, LocalName, NamespaceURI);
  38.             attr.CopyChildren(doc, this, true);
  39.             attr.fSpecified = true;
  40.             //When clone, should return the specifed attribute as default
  41.             return attr;
  42.         }
  43.        
  44.         public override string InnerText {
  45.             set {
  46.                 base.InnerText = value;
  47.                 fSpecified = true;
  48.             }
  49.         }
  50.        
  51.         public override XmlNode InsertBefore(XmlNode newChild, XmlNode refChild)
  52.         {
  53.             XmlNode node = base.InsertBefore(newChild, refChild);
  54.             fSpecified = true;
  55.             return node;
  56.         }
  57.        
  58.         public override XmlNode InsertAfter(XmlNode newChild, XmlNode refChild)
  59.         {
  60.             XmlNode node = base.InsertAfter(newChild, refChild);
  61.             fSpecified = true;
  62.             return node;
  63.         }
  64.        
  65.         public override XmlNode ReplaceChild(XmlNode newChild, XmlNode oldChild)
  66.         {
  67.             XmlNode node = base.ReplaceChild(newChild, oldChild);
  68.             fSpecified = true;
  69.             return node;
  70.         }
  71.        
  72.         public override XmlNode RemoveChild(XmlNode oldChild)
  73.         {
  74.             XmlNode node = base.RemoveChild(oldChild);
  75.             fSpecified = true;
  76.             return node;
  77.         }
  78.        
  79.         public override XmlNode AppendChild(XmlNode newChild)
  80.         {
  81.             XmlNode node = base.AppendChild(newChild);
  82.             fSpecified = true;
  83.             return node;
  84.         }
  85.        
  86.         public override void WriteTo(XmlWriter w)
  87.         {
  88.             if (fSpecified)
  89.                 base.WriteTo(w);
  90.         }
  91.        
  92.         internal void SetSpecified(bool f)
  93.         {
  94.             fSpecified = f;
  95.         }
  96.     }
  97. }

Developer Fusion