3b6bf6da750704bd52101126da52513b2b05b1c1
[mono.git] / mcs / class / System.XML / Mono.Xml.Xsl / Emitter.cs
1 //
2 // Emitter.cs
3 //
4 // Authors:
5 //      Oleg Tkachenko (oleg@tkachenko.com)
6 //      Atsushi Enomoto (atsushi@ximian.com)
7 // (C) 2003 Oleg Tkachenko
8 // (C) 2004 Novell inc.
9 //
10
11 using System;
12 using System.Text;
13
14 namespace Mono.Xml.Xsl {
15         /// <summary>
16         /// Abstract emitter. Implementations of this class deals with outputting
17         /// result tree to specific output format, such as XML, HTML, Text. 
18         /// Implementations for additional formats (e.g. XHTML) as well as custom 
19         /// implementations may be supported either.
20         /// </summary>
21         public abstract class Emitter {
22                 public abstract void WriteStartDocument (Encoding encoding, StandaloneType standalone);         
23                 public abstract void WriteEndDocument ();                                               
24                 public abstract void WriteDocType (string type, string publicId, string systemId);
25                 public abstract void WriteStartElement (string prefix, string localName, string nsURI);
26                 public abstract void WriteEndElement ();
27                 public virtual void WriteFullEndElement ()
28                 {
29                         WriteEndElement ();
30                 }
31
32                 public abstract void WriteAttributeString (string prefix, string localName, string nsURI, string value);                                        
33                 public abstract void WriteComment (string text);                
34                 public abstract void WriteProcessingInstruction (string name, string text);             
35                 public abstract void WriteString (string text);
36                 public abstract void WriteCDataSection (string text);
37                 public abstract void WriteRaw (string data);
38                 public abstract void Done ();
39
40                 public virtual void WriteWhitespace (string text)
41                 {
42                         WriteString (text);
43                 }
44         }
45 }