XmlDiffViewER.cs
上传用户:hbhltzc
上传日期:2022-06-04
资源大小:1925k
文件大小:4k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. //  ---------------------------------------------------------------------------
  2. // <copyright company="Microsoft Corporation" file="XmlDiffViewER.cs">
  3. //     Copyright (c) Microsoft Corporation 2005
  4. // </copyright>
  5. // <project>
  6. //     XmlDiffView
  7. // </project>
  8. // <summary>
  9. //     Provides an interface the EntityReference nodes.
  10. // </summary>
  11. // <history>
  12. //      [barryw] 03MAR05 Created
  13. // </history>
  14. //  ---------------------------------------------------------------------------
  15. namespace Microsoft.XmlDiffPatch
  16. {
  17.     using System;
  18.     using System.Xml;
  19.     using System.IO;
  20.     using System.Diagnostics;
  21.     /// <summary>
  22.     /// Class to generate outout data for the EntityReference type nodes 
  23.     /// </summary>
  24.     [Obsolete("This appears to be dead code",true)]
  25.     internal class XmlDiffViewER : XmlDiffViewNode
  26.     {
  27.         #region Member variables section
  28.         
  29.         private string nameStore;
  30.         #endregion
  31.         #region  Constructors section
  32.         /// <summary>
  33.         /// Constructor
  34.         /// </summary>
  35.         /// <param name="name">name of the node</param>
  36.         internal XmlDiffViewER(string name) : base(XmlNodeType.EntityReference)
  37.         {
  38.             this.nameStore = name;
  39.         }
  40.         #endregion
  41.         #region Properties section
  42.         /// <summary>
  43.         /// Gets the name of the ER node with special characters
  44.         /// </summary>
  45.         /// <value>{this value is not used}</value>
  46.         public override string OuterXml
  47.         {
  48.             get
  49.             {
  50.                 return "&" + this.nameStore + ";";
  51.             }
  52.         }
  53.         #endregion
  54.         #region Methods section
  55.         /// <summary>
  56.         /// Creates a complete copy of the current node.
  57.         /// </summary>
  58.         /// <param name="deep">{deprecated}</param>
  59.         /// <returns>a node object</returns>
  60.         internal override XmlDiffViewNode Clone(bool deep)
  61.         {
  62.             return new XmlDiffViewER(this.nameStore);
  63.         }
  64.         /// <summary>
  65.         /// Generates output data in html form.
  66.         /// </summary>
  67.         /// <param name="writer">output data stream</param>
  68.         /// <param name="indent">size of indentation</param>
  69.         internal override void DrawHtml(XmlWriter writer, int indent)
  70.         {
  71.             if (Operation == XmlDiffViewOperation.Change)
  72.             {
  73.                 Debug.Assert(this.nameStore != ChangeInformation.LocalName);
  74.                 XmlDiffView.HtmlStartRow(writer);
  75.                 this.DrawLinkNode(writer);
  76.                 XmlDiffView.HtmlStartCell(writer, indent);
  77.                 XmlDiffView.HtmlWriteString(writer, "&");
  78.                 XmlDiffView.HtmlWriteString(
  79.                     writer, 
  80.                     XmlDiffViewOperation.Change, 
  81.                     this.nameStore);
  82.                 XmlDiffView.HtmlWriteString(writer, ";");
  83.                 XmlDiffView.HtmlEndCell(writer);
  84.                 XmlDiffView.HtmlStartCell(writer, indent);
  85.                 XmlDiffView.HtmlWriteString(writer, "&");
  86.                 XmlDiffView.HtmlWriteString(
  87.                     writer, 
  88.                     XmlDiffViewOperation.Change, 
  89.                     ChangeInformation.LocalName);
  90.                 XmlDiffView.HtmlWriteString(writer, ";");
  91.                 XmlDiffView.HtmlEndCell(writer);
  92.                 XmlDiffView.HtmlEndRow(writer);
  93.             }
  94.             else
  95.             {
  96.                 DrawHtmlNoChange(writer, indent);
  97.             }
  98.         }
  99.         /// <summary>
  100.         /// Generates output data in text form.
  101.         /// </summary>
  102.         /// <param name="writer">output data stream</param>
  103.         /// <param name="indent">size of indentation</param>
  104.         internal override void DrawText(TextWriter writer, int indent)
  105.         {
  106.             if (Operation == XmlDiffViewOperation.Change)
  107.             {
  108.                 Debug.Assert(this.nameStore != ChangeInformation.LocalName);
  109.                 // Tests have not seen this method called.
  110.                 throw new NotImplementedException();
  111.             }
  112.             else
  113.             {
  114.                 DrawTextNoChange(writer, indent);
  115.             }
  116.         }
  117.         #endregion
  118.     }
  119. }