无法打开手动创建的 OpenXML docx 文件
Cannot open OpenXML docx file created manually
我一直在阅读 Wouter van Vugt 的 "Open XML. The markup explained"。
第 "Wordprocessing ML" 章包含相当简单的手动创建简单 docx 文件的演练,方法是创建多个 xml 零件文件,将其压缩并将其重命名为 *.docx。
我严格按照说明进行操作,但是当我尝试使用 Open XML SDK Productivity Tool 打开最终的 *.zip 文件时,出现错误:"Cannot open the file: The specified file type is not supported".
我尝试使用 MS Word 创建一个 docx 文件,将其重命名为 *.zip 并使用 Productivity Tool 打开它。有效。此文件中的部分比手动创建的要多得多,但描述性部分几乎相同。
我做错了什么?
P.S.: 是的,我知道 OOXML 应该通过一些 .NET 兼容的代码创建,而不是通过手动创建 XML 内容。但是我试图了解它的结构,但我不明白。
创建文件的内容:
[内容类型].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="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.mainxml" />
</Types>
Document.xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hello World!</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
.rels:
<?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="Document.xml" />
</Relationships>
假设文件结构如下:
_rels
.rels
[Content_Types].xml
Document.xml
那么它可能只是在 [Content_Types] 中的最后一个 'ContentType' 末尾缺少一个 '+'。xml:
<Override PartName="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" />
(使用'main+xml'而不是'mainxml')。
我一直在阅读 Wouter van Vugt 的 "Open XML. The markup explained"。
第 "Wordprocessing ML" 章包含相当简单的手动创建简单 docx 文件的演练,方法是创建多个 xml 零件文件,将其压缩并将其重命名为 *.docx。
我严格按照说明进行操作,但是当我尝试使用 Open XML SDK Productivity Tool 打开最终的 *.zip 文件时,出现错误:"Cannot open the file: The specified file type is not supported".
我尝试使用 MS Word 创建一个 docx 文件,将其重命名为 *.zip 并使用 Productivity Tool 打开它。有效。此文件中的部分比手动创建的要多得多,但描述性部分几乎相同。
我做错了什么?
P.S.: 是的,我知道 OOXML 应该通过一些 .NET 兼容的代码创建,而不是通过手动创建 XML 内容。但是我试图了解它的结构,但我不明白。
创建文件的内容:
[内容类型].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="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.mainxml" />
</Types>
Document.xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hello World!</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
.rels:
<?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="Document.xml" />
</Relationships>
假设文件结构如下:
_rels
.rels
[Content_Types].xml
Document.xml
那么它可能只是在 [Content_Types] 中的最后一个 'ContentType' 末尾缺少一个 '+'。xml:
<Override PartName="/Document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" />
(使用'main+xml'而不是'mainxml')。