public override void WriteDocType (string name,
string pubid, string sysid, string subset)
{
if (name == null)
throw ArgumentError ("name");
if (!XmlChar.IsName (name))
throw ArgumentError ("name");
if (node_state != XmlNodeType.None)
throw StateError ("DocType");
node_state = XmlNodeType.DocumentType;
if (xmldecl_state == XmlDeclState.Auto)
OutputAutoStartDocument ();
WriteIndent ();
writer.Write ("<!DOCTYPE ");
writer.Write (name);
if (pubid != null) {
writer.Write (" PUBLIC ");
writer.Write (quote_char);
writer.Write (pubid);
writer.Write (quote_char);
writer.Write (' ');
writer.Write (quote_char);
if (sysid != null)
writer.Write (sysid);
writer.Write (quote_char);
}
else if (sysid != null) {
writer.Write (" SYSTEM ");
writer.Write (quote_char);
writer.Write (sysid);
writer.Write (quote_char);
}
if (subset != null) {
writer.Write ("[");
// LAMESPEC: see the top of this source.
writer.Write (subset);
writer.Write ("]");
}
writer.Write ('>');
state = WriteState.Prolog;
}