Прочитать на английском

Поделиться через


XmlWriter.WriteDocType(String, String, String, String) Метод

Определение

Когда переопределено в производном классе, записывает объявление DOCTYPE с указанным именем и дополнительными атрибутами.

public abstract void WriteDocType (string name, string pubid, string sysid, string subset);
public abstract void WriteDocType (string name, string? pubid, string? sysid, string? subset);

Параметры

name
String

Имя DOCTYPE. Не должно быть пустым.

pubid
String

Если значение не равно нулю, записывается также PUBLIC "pubid" "sysid", где pubid и sysid заменяются значениями заданных аргументов.

sysid
String

Если параметр pubid имеет значение null, а параметр sysid не равен нулю, записывается SYSTEM "sysid", где sysid замещается значением данного аргумента.

subset
String

Если не равно нулю, записывает [subset], где subset замещается значением данного аргумента.

Исключения

Этот метод был вызван вне пролога (после корневого элемента).

-или-

Метод XmlWriter вызван перед завершением предыдущей асинхронной операции. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".

Значение для name приведет к недопустимому XML.

Примеры

В следующем примере записывается XML-файл, представляющий книгу.

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

public class Sample {

  private const string filename = "sampledata.xml";

  public static void Main() {

     XmlWriterSettings settings = new XmlWriterSettings();
     settings.Indent = true;
     XmlWriter writer = XmlWriter.Create(filename, settings);

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

     // Write the DocumentType node.
     writer.WriteDocType("book", null , null, "<!ENTITY h \"hardcover\">");

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

     // Write the 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();
  }
}

Комментарии

Этот метод не проверяет наличие недопустимых символов в pubid``sysid , или subset. Он также не проверяет правильность формирования внутреннего подмножества.

Важно!

Данные XmlWriter , передаваемые в WriteDocType метод, не проверяются. Не следует передавать произвольные данные этому методу.

Асинхронная версия этого метода см. в разделе WriteDocTypeAsync.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0