System.Xml.XmlTextWriter.WriteDocType 方法

方法描述

写出具有指定名称和可选特性的 DOCTYPE 声明。

语法定义(C# System.Xml.XmlTextWriter.WriteDocType 方法 的用法)

public override void WriteDocType(
	string name,
	string pubid,
	string sysid,
	string subset
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
name System-String DOCTYPE 的名称。它必须是非空的。
pubid System-String 如果非 null,则它还编写 PUBLIC "pubid" "sysid",这里的 pubid 和 sysid 用给定参数的值替换。
sysid System-String 如果 pubid 为 null 而 sysid 非 null,则它编写 SYSTEM "sysid",这里的 sysid 用此参数的值替换。
subset System-String 如果非 null,则它编写 [subset],这里的 subset 用此参数的值替换。
返回值 void

提示和注释

注意

在 .NET Framework 2.0 版 版本中,推荐的做法是使用 XmlWriter.Create 方法和 XmlWriterSettings 类创建 XmlWriter 实例。 这使您可以充分利用此版本中引入的所有新功能。 有关更多信息,请参见 创建 XML 编写器。

此方法不检查 pubid、sysid 或 subset 中的无效字符。 它也不检查内部子集是否是格式良好的。

安全说明

XmlTextWriter 未验证传递到 WriteDocType 方法的任何数据。 您不应将任意数据传递给此方法。

System.Xml.XmlTextWriter.WriteDocType 方法例子

下面的示例编写一个表示书的 XML 文件。

using System;
using System.IO;
using System.Xml;

public class Sample
{
  private const string filename = "sampledata.xml";

  public static void Main()
  {
     XmlTextWriter writer = null;

     writer = new XmlTextWriter (filename, null);
     //Use indenting for readability.
     writer.Formatting = Formatting.Indented;

     //Write the XML delcaration. 
     writer.WriteStartDocument();

     //Write the ProcessingInstruction node.
     String PItext="type='text/xsl' href='book.xsl'";
     writer.WriteProcessingInstruction("xml-stylesheet", PItext);

     //Write the DocumentType node.
     writer.WriteDocType("book", null , null, "");

     //Write a Comment node.
     writer.WriteComment("sample XML");

     //Write a root element.
     writer.WriteStartElement("book");

     //Write the genre attribute.
     writer.WriteAttributeString("genre", "novel");

     //Write the ISBN attribute.
     writer.WriteAttributeString("ISBN", "1-8630-014");

     //Write the title.
     writer.WriteElementString("title", "The Handmaid's Tale");

     //Write the style element.
     writer.WriteStartElement("style");
     writer.WriteEntityRef("h");
     writer.WriteEndElement(); 

     //Write the price.
     writer.WriteElementString("price", "19.95");

     //Write CDATA.
     writer.WriteCData("Prices 15% off!!");

     //Write the close tag for the root element.
     writer.WriteEndElement();

     writer.WriteEndDocument();

     //Write the XML to file and close the writer.
     writer.Flush();
     writer.Close();  

     //Load the file into an XmlDocument to ensure well formed XML.
     XmlDocument doc = new XmlDocument();
     //Preserve white space for readability.
     doc.PreserveWhitespace = true;
     //Load the file.
     doc.Load(filename);  

     //Display the XML content to the console.
     Console.Write(doc.InnerXml);  

  }

}

异常

异常 异常描述
InvalidOperationException 在序言码外部(根元素之后)调用了此方法。
ArgumentException
  • name 为 null 或 String.Empty
  • name 的值将导致无效的 XML。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。