WordProcessingML的解剖学翻译00--WordProcessingML文件的剖析

本文深入剖析了WordProcessingML文件的结构,详细介绍了.docx文件作为zip包的组成,包括内容类型、关系定义及特定部分如注释、文档设置、字体表等。同时探讨了OOXML文档共享的部分类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WordProcessingML文件的剖析

Package Structure(包的结构)

WordprocessingML 或 docx 文件是一个 zip 文件(一个包),其中包含许多“parts(部分)”,通常是UTF-8或UTF-16编码的 XML 文件,但有一部分是字节流。包还可能包含其他媒体文件,例如图像和视频。该结构根据 Open Packaging Conventions 进行组织。

我们可以通过简单地将任何 docx 文件重命名为 zip 文件并解压缩文件来查看文件结构和文件。

docx 文件结构

Content Types(内容类型)

每个包必须在其根目录下具有 [Content_Types].xml 文件。该文件包含包中 parts(部件) 的所有内容类型的列表。每个 parts(部件) 及其类型都必须在 [Content_Types].xml 中列出。以下是主要文档部分的内容类型:

<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
Relationships(关系)

每个包都包含一个 Relationships (关系)部分,该关系部分定义了其他部分之间以及与包外部资源之间的关系。这样可以将关系与内容分开,并且可以轻松更改关系,而无需更改引用目标的来源。

Relationships (关系)

对于 OOXML 程序包,_rels 文件夹中始终存在一个关系部分(.rels),用于标识程序包的开始部分或程序包关系。例如,以下内容定义了内容的开始部分的标识:

<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/>.

.rels 中通常还存在 app.xml 和 core.xml 的关系。

除了包的关系部分之外,作为一个或多个关系源的每个部分还将具有自己的关系部分。每个此类关系部分都位于该部分的 _rels 子文件夹中,并且通过在该部分的名称后附加“ .rels”来进行命名。

document_xml_rels
关系可以是显式的也可以是隐式的。对于显式关系,使用 元素的 Id 属性引用资源。也就是说,源中的 ID 直接映射到关系项的 ID ,并明确引用目标。

例如,文档可能包含这样的超链接:

<w:hyperlink r:id="rId4">

r:id=“rId4” 引用了文档(document.xml.rels)的关系部分中的以下关系。

<Relationship Id="rId4" Type="http://. . ./hyperlink" Target="http://www.google.com/" TargetMode="External"/>

对于隐式关系,没有这样的直接引用 Id。相反,该引用被理解。例如,文档可能包含对脚注的引用,如下所示。

<w:footnoteReference r:id="2">

在这种情况下,对带有 w:id=“2” 的脚注的引用应理解为存在脚注时存在的 “脚注”部分(part)。在脚注部分,我们将看到以下内容。

<w:footnote w:id="2">
WordprocessingML文档特有的部分(part)

下面是 WordprocessingML 包中特定于 WordprocessingML 文档的可能存在部分(part)的列表。

Part中文描述
Comments注释包含文档中的注释。可能有主文档的注释部分,如果有词汇表,则可能有词汇表的注释部分。
Document Settings文档设置指定文档的设置,包括是否隐藏拼写和语法错误,跟踪修订,写保护等。可能有主文档的设置部分,如果有词汇表,则可能有词汇表的设置部分。
Endnotes尾注包含文档的尾注。可能有主文档的尾注部分,如果有词汇表,则可能有词汇表的尾注部分。
Font Table字体表指定文档中使用的字体的有关信息。当指定的字体在系统上不可用时,应用程序将使用部分(part)中的信息来确定使用哪些字体来显示文档。
Footer页脚包含 footer (页脚)的信息。请注意,文档的每个 section(节)都可能包含首页,奇数页和偶数页的页脚。因此,可能有多个页脚部分(part),具体取决于文档中有多少节以及这些节的页脚类型。
Footnotes脚注包含文档中的脚注。可能有主文档的脚注部分,如果有词汇表,则可能有词汇表的脚注部分。
Glossary词汇表这是一个补充文档存储位置,其中可能包含文档附带的内容,但从主文档内容中看不到。
Header页眉包含 header (页眉)的信息。请注意,文档的每个 section(节)都可能包含首页,奇数页和偶数页的页眉。因此,可能有多个页眉部分(part),具体取决于文档中有多少节以及这些节的页眉类型。
Main Document主要文档包含文档的正文。
Numbering Definitions编号定义包含文档中 structure of each numbering definition(每个编号定义的结构)定义。可能有主文档的编号定义部分,如果有词汇表,则可能有词汇表的编号定义部分。
Style Definitions样式定义包含文档中的样式定义。可能有主文档的样式定义部分,如果有词汇表,则可能有词汇表的样式定义部分。
Web Settings网页设置包含文档使用的 Web 特定设置的定义。这些设置指定两种类别:与可在WordprocessingML文档中使用的HTML文档相关的设置(即框架集定义),以及影响在另存为HTML时如何处理文档的设置。可能有主文档的网页设置部分,如果有词汇表,则可能有词汇表的网页设置部分。
其他OOXML文档共享的部分(part)

任何 OOXML 包中都可能出现许多部分类型。以下是一些与 WordprocessingML 文档相关的部分。

Part中文描述
Embedded package嵌入式包包含内部或外部的完整引用包。例如,WordprocessingML 文档可能包含电子表格或演示文稿文档。
Extended File Properties (often found at docProps/app.xml)扩展文件属性(通常在 docProps/app.xml 中找到)包含特定于OOXML文档的属性,例如所使用的模板,页面和单词的数量以及应用程序名称和版本的属性。
File Properties, Core文件属性,核心核心文件属性使用户可以发现并设置包中的常用属性,例如创建者名称,创建日期,标题之类的属性。尽可能使用都 Dublin Core 属性(一组用于描述资源的元数据术语)。
Font字体包含直接嵌入到文档中的字体。字体可以以位图(bitmapped)字体存储,其中每个字形都以栅格图片的形式存储,或者以符合 ISO/IEC 14496-22:2007 的格式存储。
Image图片文档通常包含图片。图像可以作为 zip 项目存储在包中。必须通过图像部分关系(part)和适当的内容类型来标识该项目。
Theme主题DrawingML 是跨 OOXML 文档类型的共享语言。包含主题部分,当文档使用主题时,该部分将包含在 WordprocessingML 文档中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值