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

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

关系可以是显式的也可以是隐式的。对于显式关系,使用 <Relationship> 元素的 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"/>

对于隐式关系,没有这样的直接引用 <Relationship> 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 文档中。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351