2002-12-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / XmlEntityReference.cs
index 3ab2706aa59466591787a3a938b65eeedf364376..c6f94cf1bb61e420c3e39a36f25c7c378bd4f401 100644 (file)
@@ -1,17 +1,75 @@
+//\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