2003-04-25 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / XmlNotation.cs
1 //
2 // System.Xml.XmlNotation.cs
3 //
4 // Author:
5 //      Duncan Mak  (duncan@ximian.com)
6 //
7 // (C) Ximian, Inc.
8 //
9
10 using System;
11 using System.Xml;
12
13 namespace System.Xml
14 {
15         public class XmlNotation : XmlNode
16         {
17                 #region Fields
18                 
19                 string localName;
20                 string publicId;
21                 string systemId;
22                 string prefix;
23                 XmlLinkedNode lastChild;
24                 
25                 #endregion
26                 
27                 #region Constructor
28                 
29                 internal XmlNotation (string localName, string prefix, string publicId,
30                                       string systemId, XmlDocument doc)
31                         : base (doc)
32                 {
33                         this.localName = localName;
34                         this.prefix = prefix;
35                         this.publicId = publicId;
36                         this.systemId = systemId;
37                 }
38
39                 #endregion
40
41                 #region Properties
42                 
43                 public override string InnerXml {
44                         get { return String.Empty; }
45                         set { throw new InvalidOperationException ("This operation is not allowed."); }
46                 }
47
48                 public override bool IsReadOnly {
49                         get { return true; } // Notation nodes are always read-only
50                 }
51
52                 internal override XmlLinkedNode LastLinkedChild {
53                         get { return lastChild; }
54
55                         set { lastChild = value; }
56                 }
57
58                 public override string LocalName {
59                         get { return localName; }
60                 }
61
62                 public override string Name {
63                         get { return prefix + ":" + localName; }
64                 }
65
66                 public override XmlNodeType NodeType {
67                         get { return XmlNodeType.Notation; }
68                 }
69
70                 public override string OuterXml {
71                         get { return String.Empty; }
72                 }
73
74                 public string PublicId {
75                         get {
76                                 if (publicId != null)
77                                         return publicId;
78                                 else
79                                         return null;
80                         }
81                 }
82
83                 public string SystemId {
84                         get {
85                                 if (systemId != null)
86                                         return systemId;
87                                 else
88                                         return null;
89                         }
90                 }
91
92                 #endregion
93
94                 #region Methods
95                 
96                 public override XmlNode CloneNode (bool deep)
97                 {
98                         throw new InvalidOperationException ("This operation is not allowed.");
99                 }
100
101                 public override void WriteContentTo (XmlWriter w) {     } // has no effect.
102
103                 public override void WriteTo (XmlWriter w) {    } // has no effect.
104                        
105                 #endregion
106         }
107 }