Ler em inglês

Compartilhar via


XmlWriter.WriteDocType(String, String, String, String) Método

Definição

Quando substituído em uma classe derivada, grava a declaração DOCTYPE com o nome especificado e os atributos opcionais.

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

Parâmetros

name
String

O nome do DOCTYPE. Isso deve ser não vazio.

pubid
String

Se for não nulo, ele também gravará PUBLIC "pubid" "sysid", em que pubid e sysid são substituídos pelo valor dos argumentos fornecidos.

sysid
String

Se pubid for null e sysid for não nulo, ele gravará SYSTEM "sysid", em que sysid será substituído pelo valor desse argumento.

subset
String

Se não for nulo, ele gravará [subset], em que subset é substituído pelo valor desse argumento.

Exceções

Esse método foi chamado fora do prólogo (após o elemento raiz).

- ou -

Um método XmlWriter foi chamado antes do término de uma operação assíncrona anterior. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.

O valor de name resultaria em um XML inválido.

Exemplos

O exemplo a seguir grava um arquivo XML que representa um livro.

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

Comentários

Esse método não verifica se há caracteres inválidos em pubidou sysidsubset. Ele também não verifica se o subconjunto interno está bem formado.

Importante

O XmlWriter não valida os dados passados para o WriteDocType método . Você não deve passar dados arbitrários para esse método.

Para obter a versão assíncrona desse método, consulte WriteDocTypeAsync.

Aplica-se a

Produto Versões
.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, 8, 9
.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, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0