DOCX格式比DOC的优势


9

今天,我意外地发现.docx是相同的.zip(或者它们之间没有太大区别)。当您将.docx更改为.zip并使用WinRAR打开时,您会在文件夹中看到一堆XML文件。在该XML文件中,存储了文本,字体,所有者,最后修改的等等。一言以蔽之,所有信息都被存储为XML数据。

但是,.doc扩展名文件也不一样。无法将它们作为.zip op打开为.rar。

那么问题来了:Microsoft改变了存储数据的方式,用XML存储.docx数据有什么好处?的确,我不想知道XML格式的优势,但是为什么Microsoft使用多个XML文件存储.docx数据。这表明.docx在根目录中不是新格式。


1分钟内。5个几乎相同的答案。SO的力量。
MRG

1
拥有XML格式的数据并不意味着它不是新格式。您不能将该XML馈入OpenOffice并使其正确呈现。你必须清楚地界定什么是XML文件的结构,什么属性,什么元素等

1
考虑将标题更改为更多信息。
卡尔·伯格奎斯特

2
当然,这是一种新格式。快过来

亲爱的Janis Veinbergs和Kyle Rozendo:我已经使用XML和XSD了很多次,我知道它是如何工作的!!!细心,我说的是“扎根”。您不能同意它只是使用的XML格式,而不是新格式!!!
纳雷克

Answers:


12

一个.docx文件可以存储嵌入的资源,如图片文件,而不仅仅是XML文件。他们决定使用标准的ZIP格式,而不是使用base64或类似的东西编码并将其存储在XML文件中或发明另一种二进制序列化格式。

除此之外,XML是一种非常冗长的文件格式,其中包含许多冗余模式。您可以获得XML文件的高压缩率。

顺便说一句,我并没有真正“吸引我们”部分。从头开始发明新的加密文件格式还是使用标准的已知格式更好?


我看到的主要好处是,有一些用于实际创建这些文件的Open API,因此可以从头开始创建.docx文件,而无需在专有SDK上花费很多。Microsoft SDK甚至提供了一个文档反射器,它将生成C#代码以从头开始生成一个预制的文档。
爱丁斯

@Guard:是的。我的回答是问题的原始版本。从那时起,这个问题有了很大的改变;)最初的标题是“微软在欺骗吗?”
Mehrdad Afshari

xml本身不会使格式成为“已知”格式,.docx是最好的示例之一。
artistoex 2012年

5

维基百科的文章概括起来相当漂亮:

“微软在采用开放文件格式方面承受着越来越大的压力,特别是一些国家采用了官方文件应采用开放格式的规则。”

编辑:将其 压缩非常有意义,因为XML非常冗长,并且自然可以很好地压缩。


3
“打开”并不意味着“可以解压缩”。
2009年

3
压缩除压缩外还具有其他优势。它还充当多个文件的容器。
乔伊(Joey)

3

使用重命名的.zip文件是一种很常见的做法-例如Quake III .pak文件实际上是.zip文件。当已经存在完美的压缩文件格式时,没有必要发明自己的压缩文件格式。


1
使用ZIP存档的更多示例:Java .jar,Winamp .wsz/ .wal(皮肤),Firefox .xpi(XPInstaller-主题,附加组件)。(tar档案文件也很受欢迎。)
user1686

1

使用压缩XML的不仅是Office Open XML。Open Office的OpenDocument在后台执行相同的操作。

在开放包装公约维基百科页面上列出了一些优点:

间接的

以目录的示例为例,其中徽标重复了1000次。使用间接机制,如果我们要更改徽标,我们只需要在一个文件中更改一个条目,而无需进行搜索,因为我们知道在哪里查找。这大大提高了可维护性。例如,如果要更改文件存储位置的ZIP目录的布局,这很简单,因为您不需要知道可以指向文件的每个元素,所以它们都位于同一位置。

块状

它鼓励将文档分成小块。这对于减少文件损坏的效果更好。更好地进行数据访问:例如,一个XML部分中的所有样式信息,每个单独的工作表或表都位于其自己的不同部分中。这样可以为客户端提供更快的访问权限和更少的对象创建,并使多个进程在同一个文档上更轻松地工作。

分块也使程序员受益。用一个样式表替换另一个样式表将成为一个ZIP文件操作,而不是一个XML操作。而且它减少了程序员需要理解的内容,因为他们可以假设有关某个主题的所有信息都位于该块中,从而可以对这些块进行处理:他们免去了必须搜索包含大量内容的大文件的麻烦无关的元素。

相对间接

在《开放包装约定》中,每个引用的文件都有其自己的_rels文件和间接列表。在某些情况下,这使剪切和粘贴带有其所有关联资源的某些信息变得更加容易,提供名称范围界定,以消除文件之间名称冲突的可能性,等等。


0

最大的好处是您可以通过解压缩文件并从xml文件复制文本来获取数据。即使没有Word 2007副本,也可以使用zip实用程序和文本编辑器来完成。

这就是使格式比旧的二进制格式更开放的原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.