什么是固定格式文件?XML如何优于它们?
我在谷歌上搜索了固定格式文件(FFF),结果如下:什么是固定格式文件?XML如何优于它们?,xml,Xml,我在谷歌上搜索了固定格式文件(FFF),结果如下: 我不确定哪一个是固定格式的文件。第二个是FFF还是别的什么 FFF解决了哪些问题?XML如何比FFF更好地解决这些问题? 与FFF相比,XML格式有什么缺点吗 提前感谢。因为您是在比较XML,所以我假设您指的是固定宽度的文本文件(后面的示例)。说哪个更好并不容易,这在很大程度上取决于您的用例 XML的一些优点 灵活(即字段可以更长/更短,甚至可以在不破坏现有代码的情况下添加) 有许多实现可供选择 您可以使用机器可读的模式或多或少地完全
提前感谢。因为您是在比较XML,所以我假设您指的是固定宽度的文本文件(后面的示例)。说哪个更好并不容易,这在很大程度上取决于您的用例 XML的一些优点
- 灵活(即字段可以更长/更短,甚至可以在不破坏现有代码的情况下添加)
- 有许多实现可供选择
- 您可以使用机器可读的模式或多或少地完全定义它。
(这意味着,如果您只有一个定义文件的模式,那么计算机可以在某种程度上生成代码来读取和验证文件)
- 更简单的是,读取和写入文件或多或少都是琐碎的
- 可能占用更少的空间,XML相当“健谈”
- 与XML相比,FFF的最大优势在于内置了基于索引的随机访问功能。与FFF相比,XML的最大缺点是必须以线性方式对其进行解析
假设您有一个保存个人记录的数据文件。这些记录可以保存id、姓名、地址和电话号码
固定格式
ID : 8 chars
Surname : 36 chars
Firstname : 36 chars
Address : 100 chars
Phone : 20 chars
-----------------------
Total Space: 200 chars
Offset = (600-1)*200 = 119800 bytes
fseek() + fread() = done
Um.....
XML格式(人为的,可以是多种格式)
XML格式
ID : 8 chars
Surname : 36 chars
Firstname : 36 chars
Address : 100 chars
Phone : 20 chars
-----------------------
Total Space: 200 chars
Offset = (600-1)*200 = 119800 bytes
fseek() + fread() = done
Um.....
XML最大的优点是可扩展性(即X并非从无到有)。XML是一个奇妙的数据片段、RSS提要、配置文件等。它很容易发布,无需特殊的库和基本的知识,而且在存储空间上也是合理的(只要你不发疯)。它很容易理解,有大量的标准支持,而且几乎每个人的工具箱中都有一个XML解析器。通用的“理解”只是一个模式文档(老学究的DTD),验证等也是如此
但XML最大的缺点一直是,现在是,在量子计算取得长足进步之前,永远是:速度。XML是一个非常糟糕的存储系统 谢谢你。我很感激。有没有一本书专门讨论这些事情?嗯。我读过的并不特别多。我对XML和FFF的看法更多的是实践而不是研究。我毫不怀疑,每一家公司在该行业都有稳固的地位。每一个都是一个工具,就像所有的工具一样,它们都是为特定的目的而设计的。在设计解决方案时,只需考虑您需要什么以及您想要什么,以选择适合您的最佳工具。固定文件格式(有时称为平面文件格式)、固定宽度格式,以及一系列其他术语,它们通常都意味着一件事:实体大小(记录、字段等)是预先知道的,并且是固定大小。正是这种固定大小,特别是在针对所管理介质(通常为磁盘文件)的本机存储分配大小进行优化时,通过有效地允许您将文件视为虚拟“阵列”来提高性能。@XMLBoy Yes。其中的内容可以是不同的,但“填充”了哨兵非数据。字符串数据表示是真正的变体。长度为36个字符的“name”字段实际上只能是2('Al')。该字段的剩余空间未用于该记录,但这是您为固定宽度格式的访问速度付出的代价。有趣的是,你应该提到IBM。他们用于数据库的最高扩展平台zSeries OS/390是一个在硬件中实现的数据库管理系统,操作系统位于顶部,它使用固定宽度的数据作为性能的基石。@XMLBoy在我展示的示例中,所有字段都是固定长度的,只是每个字段的长度不同。但正如你所见,每条记录的总长度是固定的。这就是性能值得夸耀的地方。我还有一个疑问——FFF也被称为“固定宽度文本文件”吗?还是平面文件数据库?我需要确定,这样我才能在谷歌搜索中使用正确的词。谢谢