2 // System.Xml.XmlTextWriter
5 // Kral Ferch <kral_ferch@hotmail.com>
14 public abstract class XmlWriter
18 protected WriteState ws = WriteState.Start;
19 protected XmlNamespaceManager namespaceManager = new XmlNamespaceManager (new NameTable ());
25 protected XmlWriter () { }
31 public abstract WriteState WriteState { get; }
33 public abstract string XmlLang { get; }
35 public abstract XmlSpace XmlSpace { get; }
41 public abstract void Close ();
43 public abstract void Flush ();
45 public abstract string LookupPrefix (string ns);
48 public virtual void WriteAttributes (XmlReader reader, bool defattr)
50 throw new NotImplementedException ();
53 public void WriteAttributeString (string localName, string value)
55 WriteAttributeString ("", localName, "", value);
58 public void WriteAttributeString (string localName, string ns, string value)
60 WriteAttributeString ("", localName, ns, value);
63 public void WriteAttributeString (string prefix, string localName, string ns, string value)
65 if ((prefix == "xmlns") || (localName == "xmlns"))
68 if (prefix == "xmlns" && namespaceManager.HasNamespace (localName))
70 else if (localName == "xmlns" && namespaceManager.HasNamespace (String.Empty))
74 WriteStartAttribute (prefix, localName, ns);
78 if ((prefix == "xmlns") || (localName == "xmlns"))
80 if (prefix == "xmlns")
81 namespaceManager.AddNamespace (localName, ns);
83 namespaceManager.AddNamespace ("", ns);
87 public abstract void WriteBase64 (byte[] buffer, int index, int count);
89 public abstract void WriteBinHex (byte[] buffer, int index, int count);
91 public abstract void WriteCData (string text);
93 public abstract void WriteCharEntity (char ch);
95 public abstract void WriteChars (char[] buffer, int index, int count);
97 public abstract void WriteComment (string text);
99 public abstract void WriteDocType (string name, string pubid, string sysid, string subset);
101 public void WriteElementString (string localName, string value)
103 WriteStartElement(localName);
108 public void WriteElementString (string localName, string ns, string value)
110 WriteStartElement(localName, ns);
115 public abstract void WriteEndAttribute ();
117 public abstract void WriteEndDocument ();
119 public abstract void WriteEndElement ();
121 public abstract void WriteEntityRef (string name);
123 public abstract void WriteFullEndElement ();
125 public abstract void WriteName (string name);
127 public abstract void WriteNmToken (string name);
130 public virtual void WriteNode (XmlReader reader, bool defattr)
132 throw new NotImplementedException ();
135 public abstract void WriteProcessingInstruction (string name, string text);
137 public abstract void WriteQualifiedName (string localName, string ns);
139 public abstract void WriteRaw (string data);
141 public abstract void WriteRaw (char[] buffer, int index, int count);
143 public void WriteStartAttribute (string localName, string ns)
145 WriteStartAttribute ("", localName, ns);
148 public abstract void WriteStartAttribute (string prefix, string localName, string ns);
150 public abstract void WriteStartDocument ();
152 public abstract void WriteStartDocument (bool standalone);
154 public void WriteStartElement (string localName)
156 WriteStartElement (String.Empty, localName, String.Empty);
159 public void WriteStartElement (string localName, string ns)
161 WriteStartElement (String.Empty, localName, ns);
164 public abstract void WriteStartElement (string prefix, string localName, string ns);
166 public abstract void WriteString (string text);
168 public abstract void WriteSurrogateCharEntity (char lowChar, char highChar);
170 public abstract void WriteWhitespace (string ws);