这定义了告诉 MS Word 在哪里查找文档内容的参考。 在下列这种情况下,它引用 word/document.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/> </Relationships>
此文件定义对嵌入在文档内容中的资源(例如图像)的引用。 如果我们的简单文档没有嵌入资源,那么关系标签为空:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> </Relationships>
[Content_Types].xml 包含有关文档内媒体类型的信息。 因为我们只有文本内容,所以很简单:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/> <Default Extension="xml" ContentType="application/xml"/> <Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/> </Types>
这是包含文档文本内容的主要 XML。 在该文件中,开发人员会发现文档中的一些命名空间引用未使用,但请注意,我们不应删除它们,因为 MS Word 需要它们。
这是我们的简化示例:
<w:document> <w:body> <w:p w:rsidR="005F670F" w:rsidRDefault="005F79F5"> <w:r><w:t>Test</w:t></w:r> </w:p> <w:sectPr w:rsidR="005F670F"> <w:pgSz w:w="12240" w:h="15840"/> <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/> <w:cols w:space="720"/> <w:docGrid w:linePitch="360"/> </w:sectPr> </w:body> </w:document>
主节点<w:document>
代表文档本身,<w:body>
包含段落,嵌套在<w:body>
中的是由<w:sectPr>
定义的页面尺寸。
<w:rsidR>
是一个可以忽略的属性; 它被 MS Word 内部使用。
让我们看一个包含三个段落的更复杂的文档。 我在 Microsoft Word 的屏幕截图中用相同颜色突出显示了 XML,因此我们可以看到相关性:
Word 文档里的文本,被成对的标签 w:t
包裹。字体通过 w:rFont
标签指定。
颜色通过 w:color
指定。
新的段落,通过 w:p
指定。w:p
里,仍然是 w:t
.
一个简单的文档由段落组成,一个段落由连串(一系列具有相同字体、颜色等的文本
)组成,连串由字符(例如 <w:t>
)组成。<w:t>
标记里面可能有几个字符,在同一个 run 结构中可能有几个字符。
基本文本属性是字体、大小、颜色、样式等。 大约有 40 个标签用于指定文本外观。 正如在我们的三段示例中所见,每行在 <w:rPr>
中都有自己的属性,指定 <w:color>
、<w:rFonts>
和粗体 <w:b>
。
需要注意的重要一点是,属性区分了两组字符,普通脚本和复杂脚本(例如阿拉伯语),并且属性具有不同的标记,具体取决于它所影响的字符类型。
大多数普通脚本属性标签都有一个匹配的复杂脚本标签,并添加了一个 C
,指定该属性用于复杂脚本
。 例如:<w:i>
(斜体)变为 <w:iCs>
,普通脚本的粗体标签 <w:b>
变为复杂脚本的 <w:bCs>
。