+//\r
+// System.Xml.XmlEntityReference.cs\r
+// Author:\r
+// Duncan Mak (duncan@ximian.com)\r
+//\r
+// (C) Ximian, Inc. http://www.ximian.com\r
+//\r
+\r
using System;\r
\r
namespace System.Xml\r
{\r
- /// <summary>\r
- /// \r
- /// </summary>\r
- public class XmlEntityReference\r
+ public class XmlEntityReference : XmlLinkedNode\r
{\r
- // Private data members\r
-\r
- // public properties\r
+ string entityName;\r
\r
+ // Constructor\r
+ protected internal XmlEntityReference (string name, XmlDocument doc)\r
+ : base (doc)\r
+ {\r
+ entityName = name;\r
+ }\r
+\r
+ // Properties\r
+ [MonoTODO]\r
+ public override string BaseURI {\r
+ get { throw new NotImplementedException (); }\r
+ }\r
+\r
+ public override bool IsReadOnly {\r
+ get { return true; } \r
+ }\r
+\r
+ public override string LocalName {\r
+ get { return entityName; } // name of the entity referenced.\r
+ }\r
+\r
+ public override string Name {\r
+ get { return entityName; } // name of the entity referenced.\r
+ }\r
+\r
+ public override XmlNodeType NodeType {\r
+ get { return XmlNodeType.EntityReference; }\r
+ }\r
+\r
+ public override string Value {\r
+ get { return null; } // always return null here.\r
+ set {\r
+ throw new XmlException ("entity reference cannot be set value.");\r
+ }\r
+ }\r
+\r
+ // Methods\r
+ public override XmlNode CloneNode (bool deep)\r
+ {\r
+ \r
+ // API docs: "The replacement text is not included." XmlNode.CloneNode\r
+ // "The replacement text is set when node is inserted." XmlEntityReference.CloneNode\r
+ //\r
+ return new XmlEntityReference ("", OwnerDocument);\r
+ }\r
+\r
+ public override void WriteContentTo (XmlWriter w)\r
+ {\r
+ // nothing to write for this object.\r
+ }\r
\r
- // Public Methods\r
+ public override void WriteTo (XmlWriter w)\r
+ {\r
+ w.WriteRaw("&");\r
+ w.WriteName(Name);\r
+ w.WriteRaw(";");\r
+ }\r
}\r
}\r