XmlEntityReference.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //
  2. // System.Xml.XmlEntityReference.cs
  3. // Author:
  4. // Duncan Mak ([email protected])
  5. //
  6. // (C) Ximian, Inc. http://www.ximian.com
  7. //
  8. using System;
  9. namespace System.Xml
  10. {
  11. public class XmlEntityReference : XmlLinkedNode
  12. {
  13. string entityName;
  14. // Constructor
  15. protected internal XmlEntityReference (string name, XmlDocument doc)
  16. : base (doc)
  17. {
  18. entityName = doc.NameTable.Add (name);
  19. }
  20. // Properties
  21. public override string BaseURI {
  22. get { return base.BaseURI; }
  23. }
  24. public override bool IsReadOnly {
  25. get { return true; }
  26. }
  27. public override string LocalName {
  28. get { return entityName; } // name of the entity referenced.
  29. }
  30. public override string Name {
  31. get { return entityName; } // name of the entity referenced.
  32. }
  33. public override XmlNodeType NodeType {
  34. get { return XmlNodeType.EntityReference; }
  35. }
  36. public override string Value {
  37. get { return null; } // always return null here.
  38. set {
  39. throw new XmlException ("entity reference cannot be set value.");
  40. }
  41. }
  42. // Methods
  43. public override XmlNode CloneNode (bool deep)
  44. {
  45. // API docs: "The replacement text is not included." XmlNode.CloneNode
  46. // "The replacement text is set when node is inserted." XmlEntityReference.CloneNode
  47. //
  48. return new XmlEntityReference ("", OwnerDocument);
  49. }
  50. public override void WriteContentTo (XmlWriter w)
  51. {
  52. // nothing to write for this object.
  53. }
  54. public override void WriteTo (XmlWriter w)
  55. {
  56. w.WriteRaw("&");
  57. w.WriteName(Name);
  58. w.WriteRaw(";");
  59. }
  60. }
  61. }