WordprocessingML 文档的结构 (Open XML SDK) | Microsoft Learn

WordprocessingML 文档的结构

  • 项目
  • 2023/04/07
  • 6 个参与者

反馈

本文内容

  1. 重要 WordprocessingML 部分
  2. 最小文档方案
  3. 典型文档方案

本主题讨论 WordprocessingML 文档的基本结构并回顾重要的 Open XML SDK 类,该类通常用于创建 WordprocessingML 文档。

WordProcessingML 文档的基本文档结构由 <document> 和 <body> 元素组成,后跟一个或多个块级元素,例如代表 paragraph 的 <p>。 paragraph 包含一个或多个 <r> 元素。 <r> 代表 run,它是具有一组共同属性(如格式设置)的文本区域。 run 包含一个或多个 <t> 元素。 <t> 元素包含文本范围。

[](#important-wordprocessingml-parts)

重要 WordprocessingML 部分

Open XML SDK 2.5 API 在 DocumentFormat.OpenXML.WordprocessingML 命名空间中提供强类型类,与 WordprocessingML 元素对应。

下表列出一些重要的 WordprocessingML 元素、这些元素所对应的 WordprocessingML 文档包部分(如果适用),以及表示 Open XML SDK 2.5 API 中的元素的托管类。

包部分

WordprocessingML 元素

Open XML SDK 2.5 类

说明

主文档

document

Document

主文档部分的根元素。

评论

comments

Comments

批注部分的根元素。

文档设置

settings

Settings

文档设置部分的根元素。

尾注

endnotes

Endnotes

尾注部分的根元素。

页脚

ftr

Footer

页脚部分的根元素。

脚注

footnotes

Footnotes

脚注部分的根元素。

词汇表文档

glossaryDocument

GlossaryDocument

术语表文档部分的根元素。

标头

hdr

Header

页眉部分的根元素。

样式定义

styles

Styles

样式定义部分的根元素。

[](#minimum-document-scenario)

最小文档方案

WordprocessingML 文档是根据文章概念组织的。 文章是 WordprocessingML 文档中的内容区域。 WordprocessingML 文章包括:

  • 注释
  • 尾注
  • 页脚
  • 脚注
  • 框架、词汇表文档
  • 标题
  • 主体部分
  • 子文档
  • 文本框

并非所有文章都必须存在于有效的 WordprocessingML 文档中。 最简单、有效的 WordprocessingML 文档只需要一个文章 - 主文档文章。 在 WordprocessingML 中,主文档文章由主文档部分表示。 至少,若要使用代码创建有效的 WordprocessingML 文档,请向该文档添加主文档部分。

ISO/IEC 29500 中的以下信息介绍为完成最小文档方案,主文档部分中所需的 WordprocessingML 元素。

最简单的 WordprocessingML 文档的主文档文章包括以下 XML 元素:

document - WordprocessingML 的主文档部件的根元素,用于定义主文档文章。

body - 包含主文章的块级别结构集合的容器。

p - 一个段落。

r - 一段连续文本。

t - 一个文本范围。

© ISO/IEC29500: 2008.

[](#open-xml-sdk-code-example)

Open XML SDK 代码示例

以下代码使用 Open XML SDK 2.5 来创建包含文本"Hello, Word!"的简单 WordprocessingML 文档

C# 复制

    public 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, "Hello, Word!"
            run.AppendChild(new Text(msg));
        }
    }

VB 复制

    Public Shared Sub CreateWordDoc(filepath As String, msg As String)
        Using doc As WordprocessingDocument = WordprocessingDocument.Create(filepath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document)
            ' Add a main document part. 
            Dim mainPart As MainDocumentPart = doc.AddMainDocumentPart()

            ' Create the document structure and add some text.
            mainPart.Document = New Document()
            Dim body As Body = mainPart.Document.AppendChild(New Body())
            Dim para As Paragraph = body.AppendChild(New Paragraph())
            Dim run As Run = para.AppendChild(New Run())

            ' String msg contains the text, "Hello, Word!"
            run.AppendChild(New Text(msg))
        End Using
    End Sub

[](#generated-wordprocessingml)

生成的 WordprocessingML

在前一节中运行 Open XML SDK 2.5 代码生成文档后,可以浏览 .zip 包内容以查看 WordprocessingML XML 代码。 To view the .zip package, rename the extension on the minimum document from .docx to .zip. .zip 包包含构成文档的部分。 本例中,由于代码创建了最小 WordprocessingML 文档,因此只有单个部分,即主文档部分。下图在 .zip 包的 word 文件夹下显示了包含单行文本的最小文档的结构。图画占位符document.xml 文件对应于 WordprocessingML 主文档部分,这是包含文档主正文内容的部分。 在上一节中运行 Open XML SDK 2.5 代码时,将在 document.xml 文件中生成以下 XML 代码。

XML 复制

    <?xml version="1.0" encoding="utf-8"?>
    <w:document xmlns:w="https://schemas.openxmlformats.org/wordprocessingml/2006/main">
      <w:body>
        <w:p>
          <w:r>
            <w:t>Hello, Word!</w:t>
          </w:r>
        </w:p>
      </w:body>
    </w:document

[](#typical-document-scenario)

典型文档方案

典型文档不会是空白的最小文档。 例如,典型文档可能包含批注、标题、页脚、脚注和尾注。 所有这些其他部分都包含在字处理文档的 zip 包中。

下图显示典型文档中包含的许多部分。

图 1. 典型文档结构

WordprocessingML 文档的结构


原网址: 访问
创建于: 2023-06-02 13:05:16
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论