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