Estrutura de um documento do WordprocessingML

Este tópico discute a estrutura básica de um documento WordprocessingML e analisa importantes classes do Open XML SDK que são usadas com mais frequência para criar documentos WordprocessingML .

A estrutura básica do documento de um documento WordProcessingML consiste nos elementos and<body>, seguidos por um ou mais elementos de nível de <document> bloco, como <p>, que representa um parágrafo. Um parágrafo contém um ou mais <r> elementos. O <r> significa executar, que é uma região do texto com um conjunto comum de propriedades, como formatação. Uma execução contém um ou mais <t> elementos. O <t> elemento contém um intervalo de texto.

Partes importantes de WordprocessingML

A API do SDK de XML Aberto fornece classes fortemente tipadas no namespace DocumentFormat.OpenXML.WordprocessingML que correspondem a elementos WordprocessingML .

A tabela a seguir lista alguns elementos importantes de WordprocessingML , a parte do pacote de documentos WordprocessingML à qual o elemento corresponde (quando aplicável) e a classe gerenciada que representa o elemento na API do SDK de XML Aberto.

Parte do Pacote Elemento WordprocessingML Classe Open XML SDK Descrição
Documento principal document Document O elemento raiz para a parte do documento principal.
Comments comentários Comments O elemento raiz da parte de comentários.
Configurações do documento settings Settings O elemento raiz da parte de configurações do documento.
Notas de fim Notas de fim Endnotes O elemento raiz para a parte das notas de fim.
Rodapé FTR Footer O elemento raiz da parte do rodapé.
Notas de rodapé Notas de rodapé Footnotes O elemento raiz para a parte das notas de rodapé.
Documento de Glossário glossárioDocumento GlossaryDocument O elemento raiz da parte do documento do glossário.
Cabeçalho HDR Header O elemento raiz da parte do cabeçalho.
Definições de estilo Estilos Styles O elemento raiz de uma parte de Definições de estilo.

Cenário mínimo de documento

Um documento WordprocessingML é organizado em torno do conceito de histórias. Uma história é uma região de conteúdo em um documento WordprocessingML . As histórias do WordprocessingML incluem:

  • comment

  • nota final

  • rodapé

  • nota de rodapé

  • quadro, documento de glossário

  • de cabeçalho

  • História Principal

  • subdocumento

  • caixa de texto

Nem todas as histórias devem estar presentes em um documento WordprocessingML válido. O documento WordprocessingML mais simples e válido requer apenas uma única história: a história principal do documento. No WordprocessingML, a história do documento principal é representada pela parte principal do documento. No mínimo, para criar um documento WordprocessingML válido usando código, adicione uma parte principal do documento ao documento.

As informações a seguir do ISO/IEC 29500 introduzem os elementos WordprocessingML necessários na parte principal do documento para completar o cenário mínimo do documento.

A história principal do documento WordprocessingML mais simples consiste nos seguintes elementos XML:

  • document — O elemento raiz da parte principal do documento de um WordprocessingML, que define a história principal do documento.

  • body - O contêiner para a coleção de estruturas de nível de bloco que compõem o andar principal.

  • p — Um parágrafo.

  • r — Uma corrida.

  • t — Um intervalo de texto.

© ISO/IEC 29500: 2016

Exemplo de código do Open XML SDK

O código a seguir usa o SDK do Open XML para criar um documento WordprocessingML simples que contém o texto passado como o segundo parâmetro

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

static void CreateWordDoc(string filepath, string msg)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Create(filepath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))
    {
        // Add a main document part. 
        MainDocumentPart mainPart = doc.AddMainDocumentPart();

        // Create the document structure and add some text.
        mainPart.Document = new Document();
        Body body = mainPart.Document.AppendChild(new Body());
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());

        // String msg contains the text from the msg parameter"
        run.AppendChild(new Text(msg));
    }
}

WordprocessingML gerado

Depois de executar o código Open XML SDK na seção anterior para gerar um documento, você pode explorar o conteúdo do pacote .zip para exibir o código WordprocessingML XML. Para exibir o pacote .zip, renomeie a extensão no documento mínimo de .docx para .zip. O pacote .zip contém as partes que compõem o documento. Nesse caso, como o código criou um documento WordprocessingML mínimo, há apenas uma única parte: a parte principal do documento. A figura a seguir mostra a estrutura sob a pasta de palavras do pacote de .zip para um documento mínimo que contém uma única linha de texto. Espaço reservado para arteO arquivo document.xml corresponde à parte principal do documento WordprocessingML e é essa parte que contém o conteúdo do corpo principal do documento. O código XML a seguir é gerado no arquivo document.xml quando você executa o código Open XML SDK na seção anterior.

<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <w:p>
      <w:r>
        <w:t>The text passed as the second parameter goes here</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>

Cenário típico de documento

Um documento típico não será um documento mínimo em branco. Um documento típico pode conter comentários, cabeçalhos, rodapés, notas de rodapé e notas de fim, por exemplo. Cada uma dessas partes adicionais está contida no pacote zip do documento de processamento de texto.

A figura a seguir mostra muitas das partes que você encontraria em um documento típico.

Figura 1. Estrutura típica do documento

Estrutura de um documento WordprocessingML