何时将信息保存在XML文件中以及在自己的格式文件中时最好?
对于XML(或其他标准),我看到:
(+)标准格式.
( - )手动修改很乏味.
对于自己格式的文件,我看到:
( - )我们需要构建一个自己的解析器(非标准).
(+)可以很容易地手动修改文件.
Jon Skeet.. 12
当它以各种方式适合时使用XML:
需要在能够处理XML的不同应用程序之间共享
天然树状结构
主要数据很容易表示为文本(二进制数据在基于文本的格式中有点像kludge)
可扩展性很重要
性能并不重要(解析XML的速度并不是非常快 - 尽管如果性能很重要而且你需要使用XML,那么请选择快速解析器,因为最快和最慢之间存在很大差异)
可以预先定义模式,并可以对其进行验证
更简单的格式(例如名称=值对)不会削减它
基本上,如果XML中的数据模型非常自然,那么这可能是处理它的最简单方法.如果您最终不得不陷入困境以适应XML,请考虑其他格式.请注意,除了XML之外,还有许多其他标准(或"有些标准" - 例如,多平台上的工具支持)格式.
当它以各种方式适合时使用XML:
需要在能够处理XML的不同应用程序之间共享
天然树状结构
主要数据很容易表示为文本(二进制数据在基于文本的格式中有点像kludge)
可扩展性很重要
性能并不重要(解析XML的速度并不是非常快 - 尽管如果性能很重要而且你需要使用XML,那么请选择快速解析器,因为最快和最慢之间存在很大差异)
可以预先定义模式,并可以对其进行验证
更简单的格式(例如名称=值对)不会削减它
基本上,如果XML中的数据模型非常自然,那么这可能是处理它的最简单方法.如果您最终不得不陷入困境以适应XML,请考虑其他格式.请注意,除了XML之外,还有许多其他标准(或"有些标准" - 例如,多平台上的工具支持)格式.
对于XML我看到:
(+)标准格式.
( - )手动修改很乏味.
我只在API需要时才使用XML.
对于JSON/YAML,我看到:
(+)标准格式.
(+)手动修改很容易.
我几乎用所有东西都使用JSON/YAML.除非界面需要其他内容.
对于CSV,我看到:
(+)标准格式.
(+)手动修改很容易.
( - )当列名称很复杂或者数据不是简单的第一个形式时,它有点模糊.
我尽可能使用CSV.
对于语言序列化器,我看到:
(+)给定语言的标准格式.
( - )几乎不可能手工修改.
我确实偶尔使用序列化文件在进程间传递数据时我确定双方都使用相同的语言.
对于自己格式的文件,我看到:
( - )我们需要构建一个自己的解析器(非标准).
(+)可以很容易地手动修改文件.
我避免发明自己的文件格式.多年来没有发明我自己的文件格式.