Add descriptions to enumerations
[mono.git] / mcs / class / System.XML / System.Xml / XmlDocument.cs
1 // -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
2 //\r
3 // System.Xml.XmlDocument\r
4 //\r
5 // Author:\r
6 //   Daniel Weber (daniel-weber@austin.rr.com)\r
7 //\r
8 // (C) 2001 Daniel Weber\r
9 \r
10 using System;\r
11 using System.IO;\r
12 \r
13 namespace System.Xml\r
14 {\r
15 \r
16         public delegate void XmlNodeChangedEventHandler (XmlNodeChangedEventArgs args); \r
17 \r
18         /// <summary>\r
19         /// Abstract class XmlNodeList.\r
20         /// </summary>\r
21         public class XmlDocument : XmlNode\r
22         {\r
23                 // Private data members\r
24                 XmlResolver _resolver = null;\r
25 \r
26                 // Public events\r
27                 //===========================================================================\r
28                 public event XmlNodeChangedEventHandler NodeChanged;\r
29 \r
30                 public event XmlNodeChangedEventHandler NodeChanging;\r
31 \r
32                 public event XmlNodeChangedEventHandler NodeInserted;\r
33 \r
34                 public event XmlNodeChangedEventHandler NodeInserting;\r
35 \r
36                 public event XmlNodeChangedEventHandler NodeRemoved;\r
37 \r
38                 public event XmlNodeChangedEventHandler NodeRemoving;\r
39 \r
40                 // public properties\r
41                 \r
42                 /// <summary>\r
43                 /// Get the base URI for this document (the location from where the document was loaded)\r
44                 /// </summary>\r
45                 /// <example>If a document was loaded with doc.Load("c:\tmp\mydoc.xml"), \r
46                 /// then BaseURI would hold "c:\tmp\mydoc.xml"</example>\r
47                 public override string BaseURI \r
48                 {\r
49                         get\r
50                         {\r
51                                 // TODO - implement XmlDocument.BaseURI {get;}\r
52                                 throw new NotImplementedException("BaseURI.get not implemented");\r
53                         }\r
54                 }\r
55 \r
56                 /// <summary>\r
57                 /// Get the root element for the document.  If no root exists, null is returned.\r
58                 /// </summary>\r
59                 public XmlElement DocumentElement \r
60                 {\r
61                         get\r
62                         {\r
63                                 // TODO - implement XmlDocument.Documentelement {get;}\r
64                                 throw new NotImplementedException("XmlDocument.DocumentElement not implemented");\r
65                         }\r
66                 }\r
67 \r
68                 /// <summary>\r
69                 /// Gets the node containing the DOCTYPE declaration.\r
70                 /// </summary>\r
71                 public virtual XmlDocumentType DocumentType \r
72                 {\r
73                         get\r
74                         {\r
75                                 // TODO - implement XmlDocument.DocumentType\r
76                                 throw new NotImplementedException("XmlDocument.DocumentType not implemented");\r
77                         }\r
78                 }\r
79 \r
80 \r
81                 /// <summary>\r
82                 /// Get the XmlImplemenation for the current document.\r
83                 /// </summary>\r
84                 public XmlImplementation Implementation \r
85                 {\r
86                         get\r
87                         {\r
88                                 // TODO - implement XmlDocument.Implementation\r
89                                 throw new NotImplementedException("Implementation not implemented");\r
90                         }\r
91                 }\r
92 \r
93 \r
94                 /// <summary>\r
95                 /// Get/Set the markup representing the children of the document.\r
96                 /// </summary>\r
97                 public override string InnerXml \r
98                 {\r
99                         get\r
100                         {\r
101                                 // TODO - implement XmlDocument.InnerXml {get;}\r
102                                 throw new NotImplementedException("InnerXml get not implemented");\r
103                         }\r
104                         set\r
105                         {\r
106                                 // TODO - implement XmlDocument.InnerXml {set;}\r
107                                 throw new NotImplementedException("InnerXml set not implemented");\r
108                         }\r
109                 }\r
110 \r
111                 /// <summary>\r
112                 /// Get a value indicating if the document is read-only.\r
113                 /// </summary>\r
114                 public override bool IsReadOnly \r
115                 {\r
116                         get\r
117                         {\r
118                                 // TODO - implement XmlDocument.IsReadOnly {get;}\r
119                                 throw new NotImplementedException("IsReadOnly get not implemented");\r
120                         }\r
121                 }\r
122 \r
123                 /// <summary>\r
124                 /// \r
125                 /// </summary>\r
126                 public override string LocalName {\r
127                         get\r
128                         {\r
129                                 // TODO - implement XmlDocument.LocalName {get;}\r
130                                 throw new NotImplementedException("LocalName get not implemented");\r
131                         }\r
132                 }\r
133 \r
134                 /// <summary>\r
135                 /// \r
136                 /// </summary>\r
137                 public override string Name \r
138                 {\r
139                         get\r
140                         {\r
141                                 // TODO - implement XmlDocument.Name {get;}\r
142                                 throw new NotImplementedException("Name get not implemented");\r
143                         }\r
144                 }\r
145 \r
146                 public XmlNameTable NameTable \r
147                 {\r
148                         get\r
149                         {\r
150                                 // TODO - implement XmlDocument.NameTable {get;}\r
151                                 throw new NotImplementedException("NameTable get not implemented");\r
152                         }\r
153                 }\r
154 \r
155 \r
156                 public override XmlNodeType NodeType \r
157                 {\r
158                         get\r
159                         {\r
160                                 return XmlNodeType.Document;\r
161                         }\r
162                 }\r
163 \r
164                 /// <summary>\r
165                 /// Returns OwnerDocument.  For an XmlDocument, this property is always null.\r
166                 /// </summary>\r
167                 public override XmlDocument OwnerDocument \r
168                 {\r
169                         get\r
170                         {\r
171                                 return null;\r
172                         }\r
173                 }\r
174 \r
175                 public bool PreserveWhitespace \r
176                 {\r
177                         get\r
178                         {\r
179                                 // TODO - implement XmlDocument.PreserveWhitespace {get;}\r
180                                 throw new NotImplementedException("PreserveWhitespace get not implemented");\r
181                         }\r
182                         set\r
183                         {\r
184                                 // TODO - implement XmlDocument.PreserveWhitespace {set;}\r
185                                 throw new NotImplementedException("PreserveWhitespace set not implemented");\r
186                         }\r
187                 }\r
188 \r
189                 public XmlResolver XmlResolver \r
190                 {\r
191                         set\r
192                         {\r
193                                 // TODO - Finish/test XmlDocument.XmlResolver {set;}\r
194                                 _resolver = value;\r
195                         }\r
196                 }\r
197 \r
198                 // Public Methods\r
199                 //===========================================================================\r
200                 public override XmlNode CloneNode(bool deep)\r
201                 {\r
202                         // TODO - implement XmlDocument.CloneNode(bool)\r
203                         throw new NotImplementedException("CloneNode(bool) not implemented");\r
204                 }\r
205 \r
206                 public XmlAttribute CreateAttribute(string name)\r
207                 {\r
208                         // TODO - implement XmlDocument.CreateAttribute(string name)\r
209                         throw new NotImplementedException("CreateAttribute(string name) not implemented");\r
210                 }\r
211 \r
212                 public XmlAttribute CreateAttribute(string qualifiedName,string namespaceURI)\r
213                 {\r
214                         // TODO - implement XmlDocument.CreateAttribute(string, string)\r
215                         throw new NotImplementedException("CreateAttribute(string, string) not implemented");\r
216                 }\r
217 \r
218                 public virtual XmlAttribute CreateAttribute(\r
219                         string prefix,\r
220                         string localName,\r
221                         string namespaceURI\r
222                         )\r
223                 {\r
224                         // TODO - implement XmlDocument.CreateAttribute(prefix, localName, namespaceURI)\r
225                         throw new NotImplementedException("CreateAttribute(prefix, localName, namespaceURI) not implemented");\r
226                 }\r
227 \r
228                 public virtual XmlCDataSection CreateCDataSection(string data)\r
229                 {\r
230                         // TODO - implement XmlDocument.CreateCDataSection(string data)\r
231                         throw new NotImplementedException("CreateCDataSection(string data) not implemented");\r
232                 }\r
233 \r
234 \r
235                 public virtual XmlComment CreateComment(string data)\r
236                 {\r
237                         // TODO - implement XmlDocument.CreateComment(string data)\r
238                         throw new NotImplementedException("CreateComment(string data) not implemented");\r
239                 }\r
240 \r
241                 public virtual XmlDocumentFragment CreateDocumentFragment()\r
242                 {\r
243                         // TODO - implement XmlDocument.CreateDocumentFragment\r
244                         throw new NotImplementedException("CreateDocumentFragment not implemented");\r
245                 }\r
246 \r
247                 public virtual XmlDocumentType CreateDocumentType(\r
248                         string name,\r
249                         string publicId,\r
250                         string systemId,\r
251                         string internalSubset\r
252                         )\r
253                 {\r
254                         // TODO - implement XmlDocument.CreateDocumentType\r
255                         throw new NotImplementedException("CreateDocumentType not implemented");\r
256                 }\r
257 \r
258                 public XmlElement CreateElement(string name)\r
259                 {\r
260                         // TODO - implement XmlDocument.CreateElement(string name)\r
261                         throw new NotImplementedException("CreateElement(string name) not implemented");\r
262                 }\r
263 \r
264                 public XmlElement CreateElement(\r
265                         string qualifiedName,\r
266                         string namespaceURI\r
267                         )\r
268                 {\r
269                         // TODO - implement XmlDocument.CreateElement(string qualifiedName,     string namespaceURI)\r
270                         throw new NotImplementedException("CreateElement(string qualifiedName,  string namespaceURI) not implemented");\r
271                 }\r
272 \r
273                 public virtual XmlElement CreateElement(\r
274                         string prefix,\r
275                         string localName,\r
276                         string namespaceURI\r
277                         )\r
278                 {\r
279                         // TODO - implement XmlDocument.CreateElement(prefix, localName, namespaceURI)\r
280                         throw new NotImplementedException("XmlDocument.CreateElement(prefix, localName, namespaceURI) not implemented.");\r
281                 }\r
282 \r
283 \r
284                 public virtual XmlEntityReference CreateEntityReference(string name)\r
285                 {\r
286                         // TODO - implement XmlDocument.CreateEntityReference\r
287                         throw new NotImplementedException("XmlDocument.CreateEntityReference not implemented.");\r
288                 }\r
289 \r
290                 public virtual XmlNode CreateNode(\r
291                         string nodeTypeString,\r
292                         string name,\r
293                         string namespaceURI\r
294                         )\r
295                 {\r
296                         // TODO - implement XmlDocument.CreateNode(string, string, string)\r
297                         throw new NotImplementedException("XmlDocument.CreateNode not implemented.");\r
298                 }\r
299 \r
300                 public virtual XmlNode CreateNode(\r
301                         XmlNodeType type,\r
302                         string name,\r
303                         string namespaceURI\r
304                         )\r
305                 {\r
306                         // TODO - implement XmlDocument.CreateNode(XmlNodeType, string, string)\r
307                         throw new NotImplementedException("XmlDocument.CreateNode not implemented.");\r
308                 }\r
309 \r
310                 public virtual XmlNode CreateNode(\r
311                         XmlNodeType type,\r
312                         string prefix,\r
313                         string name,\r
314                         string namespaceURI\r
315                         )\r
316                 {\r
317                         // TODO - implement XmlDocument.CreateNode(XmlNodeType, string, string, string)\r
318                         throw new NotImplementedException("XmlDocument.CreateNode not implemented.");\r
319                 }\r
320 \r
321                 public virtual XmlProcessingInstruction CreateProcessingInstruction(\r
322                         string target,\r
323                         string data\r
324                         )\r
325                 {\r
326                         // TODO - implement XmlDocument.CreateProcessingInstruction\r
327                         throw new NotImplementedException("XmlDocument.CreateProcessingInstruction not implemented.");\r
328                 }\r
329 \r
330                 public virtual XmlSignificantWhitespace CreateSignificantWhitespace(string text )\r
331                 {\r
332                         // TODO - implement XmlDocument.CreateSignificantWhitespace\r
333                         throw new NotImplementedException("XmlDocument.CreateSignificantWhitespace not implemented.");\r
334                 }\r
335 \r
336                 public virtual XmlText CreateTextNode(string text)\r
337                 {\r
338                         // TODO - implement XmlDocument.CreateTextNode\r
339                         throw new NotImplementedException("XmlDocument.CreateTextNode not implemented.");\r
340                 }\r
341 \r
342                 public virtual XmlWhitespace CreateWhitespace(string text)\r
343                 {\r
344                         // TODO - implement XmlDocument.CreateWhitespace\r
345                         throw new NotImplementedException("XmlDocument.CreateWhitespace not implemented.");\r
346                 }\r
347 \r
348                 public virtual XmlDeclaration CreateXmlDeclaration(\r
349                         string version,\r
350                         string encoding,\r
351                         string standalone\r
352                         )\r
353                 {\r
354                         // TODO - implement XmlDocument.CreateXmlDeclaration\r
355                         throw new NotImplementedException("XmlDocument.CreateXmlDeclaration not implemented.");\r
356                 }\r
357 \r
358                 public virtual XmlElement GetElementById(string elementId)\r
359                 {\r
360                         // TODO - implement XmlDocument.GetElementById\r
361                         throw new NotImplementedException("XmlDocument.GetElementById not implemented.");\r
362                 }\r
363 \r
364                 public virtual XmlNodeList GetElementsByTagName(string name)\r
365                 {\r
366                         // TODO - implement XmlDocument.GetElementsByTagName(name)\r
367                         throw new NotImplementedException("XmlDocument.GetElementsByTagName not implemented.");\r
368                 }\r
369 \r
370                 public virtual XmlNodeList GetElementsByTagName(\r
371                         string localName,\r
372                         string namespaceURI\r
373                         )\r
374                 {\r
375                         // TODO - implement XmlDocument.GetElementsByTagName(localName, namespaceURI)\r
376                         throw new NotImplementedException("XmlDocument.GetElementsByTagName not implemented.");\r
377                 }\r
378 \r
379                 public virtual XmlNode ImportNode(\r
380                         XmlNode node,\r
381                         bool deep\r
382                         )\r
383                 {\r
384                         // TODO - implement XmlDocument.ImportNode\r
385                         throw new NotImplementedException("XmlDocument.ImportNode not implemented.");\r
386                 }\r
387 \r
388                 public virtual void Load(Stream inStream)\r
389                 {\r
390                         // TODO - implement XmlDocument.Load(Stream)\r
391                         throw new NotImplementedException("XmlDocument.Load(Stream) not implemented.");\r
392                 }\r
393 \r
394                 public virtual void Load(string filename)\r
395                 {\r
396                         // TODO - implement XmlDocument.Load(string)\r
397                         throw new NotImplementedException("XmlDocument.Load(string) not implemented.");\r
398                 }\r
399 \r
400                 public virtual void Load(TextReader txtReader)\r
401                 {\r
402                         // TODO - implement XmlDocument.Load(TextReader)\r
403                         throw new NotImplementedException("XmlDocument.Load(TextReader) not implemented.");\r
404                 }\r
405 \r
406                 public virtual void Load(XmlReader reader)\r
407                 {\r
408                         // TODO - implement XmlDocument.Load(XmlReader)\r
409                         throw new NotImplementedException("XmlDocument.Load(XmlReader) not implemented.");\r
410                 }\r
411 \r
412                 public virtual void LoadXml(string xml)\r
413                 {\r
414                         // TODO - implement XmlDocument.LoadXml\r
415                         throw new NotImplementedException("XmlDocument.LoadXml not implemented.");\r
416                 }\r
417 \r
418                 public virtual void Save(Stream outStream)\r
419                 {\r
420                         // TODO - implement XmlDocument.Save(Stream)\r
421                         throw new NotImplementedException("XmlDocument.Save(Stream) not implemented.");\r
422                 }\r
423 \r
424                 public virtual void Save(string filename)\r
425                 {\r
426                         // TODO - implement XmlDocument.Save(string)\r
427                         throw new NotImplementedException("XmlDocument.Save(string) not implemented.");\r
428                 }\r
429 \r
430                 public virtual void Save(TextWriter writer)\r
431                 {\r
432                         // TODO - implement XmlDocument.Save(TextWriter)\r
433                         throw new NotImplementedException("XmlDocument.Save(TextWriter) not implemented.");\r
434                 }\r
435 \r
436                 public virtual void Save(XmlWriter writer)\r
437                 {\r
438                         // TODO - implement XmlDocument.Save(XmlWriter)\r
439                         throw new NotImplementedException("XmlDocument.Save(XmlWriter) not implemented.");\r
440                 }\r
441 \r
442                 public override void WriteContentTo(XmlWriter w)\r
443                 {\r
444                         // TODO - implement XmlDocument.WriteContentTo\r
445                         throw new NotImplementedException("XmlDocument.WriteContentTo not implemented.");\r
446                 }\r
447 \r
448                 public override void WriteTo(XmlWriter w)\r
449                 {\r
450                         // TODO - implement XmlDocument.WriteTo\r
451                         throw new NotImplementedException("XmlDocument.WriteTo not implemented.");\r
452                 }\r
453 \r
454 \r
455                 // Internal functions\r
456                 //===========================================================================\r
457                 internal void onNodeChanging(XmlNode node, XmlNode Parent)\r
458                 {\r
459                         if (NodeInserting != null)\r
460                                 NodeChanging( new XmlNodeChangedEventArgs(XmlNodeChangedAction.Change,\r
461                                         node, Parent, Parent));\r
462                 }\r
463 \r
464                 internal void onNodeChanged(XmlNode node, XmlNode Parent)\r
465                 {\r
466                         if (NodeChanged != null)\r
467                                 NodeInserted( new XmlNodeChangedEventArgs(XmlNodeChangedAction.Change,\r
468                                         node, Parent, Parent));\r
469                 }\r
470 \r
471                 internal void onNodeInserting(XmlNode node, XmlNode newParent)\r
472                 {\r
473                         if (NodeInserting != null)\r
474                                 NodeInserting( new XmlNodeChangedEventArgs(XmlNodeChangedAction.Insert,\r
475                                         node, null, newParent));\r
476                 }\r
477 \r
478                 internal void onNodeInserted(XmlNode node, XmlNode newParent)\r
479                 {\r
480                         if (NodeInserted != null)\r
481                                 NodeInserted( new XmlNodeChangedEventArgs(XmlNodeChangedAction.Insert,\r
482                                         node, null, newParent));\r
483                 }\r
484 \r
485                 internal void onNodeRemoving(XmlNode node, XmlNode oldParent)\r
486                 {\r
487                         if (NodeRemoving != null)\r
488                                 NodeRemoving(new XmlNodeChangedEventArgs(XmlNodeChangedAction.Remove,\r
489                                         node, oldParent, null));\r
490                 }\r
491 \r
492                 internal void onNodeRemoved(XmlNode node, XmlNode oldParent)\r
493                 {\r
494                         if (NodeRemoved != null)\r
495                                 NodeRemoved(new XmlNodeChangedEventArgs(XmlNodeChangedAction.Remove,\r
496                                         node, oldParent, null));\r
497 \r
498                 }\r
499 \r
500                 // Constructors\r
501                 //===========================================================================\r
502                 public XmlDocument() : base(null)\r
503                 {\r
504                 }\r
505                 \r
506 \r
507         }\r
508 }\r