什么是固定格式文件以及XML如何比它们更好?

时间:2012-11-24 08:54:11

标签: xml

我搜索了谷歌的固定格式文件(FFF)并得到了这些结果:

我不确定哪一个是固定格式文件。第二个是FFF还是其他东西?

FFF解决了什么问题?XML如何比FFF更好地解决它们? 与FFF相比,XML格式是否有任何缺点?

提前致谢。

2 个答案:

答案 0 :(得分:5)

FFF优于XML的最大优势是基于索引的随机访问的内置功能。反对意见显而易见,与FFF相比,XML的最大缺点是必须解析的线性方式。

假设您有一个包含人员记录的数据文件。记录可以包含ID,姓名,地址和电话号码。

固定格式

ID          : 8 chars
Surname     : 36 chars
Firstname   : 36 chars
Address     : 100 chars
Phone       : 20 chars
-----------------------
Total Space: 200 chars

XML格式(设计,可能是多种格式)

<Person id="...">
   <Surname>...</>
   <Firstname>...</>
   <Address>...</>
   <Phone>...</>
</Person>

Total Space : Variant

现在,假设这有1000个“记录”让我们看看用两种形式获得第600个人的记录是多么困难。

固定格式

Offset = (600-1)*200 = 119800 bytes
fseek() + fread() = done

XML格式

Um..... 

XML的最大特点是可扩展性 X 并非来自任何事物)。 XML提供了一个非常棒的数据片段,RSS提要,配置文件等。它很容易在没有特殊库和基本知识的情况下发出,并且在存储空间中可以合理(只要你不去<LoveThoseSuperDuperLongElementNames>坚果)。它很容易理解,有大量标准支持,几乎每个人都有自己的工具包中的XML解析器。普遍的“理解”只是一个模式文档(老学者的DTD),以及验证等。

但是,XML的最大缺点是,现在,直到量子计算大跃进,总是会:速度。 XML是一种可怕的吞吐量强制存储系统。

答案 1 :(得分:3)

由于您正在与XML进行比较,我假设您的意思是固定宽度的文本文件(后面的示例)。说哪个“更好”并不容易,这在很大程度上取决于你的用例。

XML的一些优点;

  • 灵活(即字段可以更长/更短,甚至可以在不破坏现有代码的情况下添加)
  • 有很多实现可供选择。
  • 您可以使用机器可读的模式或多或少地完全定义它 (这意味着如果您只有一个定义文件的模式,计算机可以生成在某种程度上读取和验证文件的代码)

固定宽度文件的一些优点;

  • 很多更简单,读取和写入文件或多或少都是微不足道的。
  • 可能占用更少的空间,XML相当“健谈”。