【问题标题】:Human- and computer-readable hierarchical data format with inheritance across files具有跨文件继承的人类和计算机可读的分层数据格式
【发布时间】:2011-04-24 14:03:47
【问题描述】:

我正在寻找具有分层信息的文本文件的数据格式。这些文件将主要由人工输入创建(而不是由程序生成),但主要由程序读取。主要要求是:

  1. 非常简单和整洁的语法。 (示例:由选项卡定义的层次结构级别可以正常工作。)如此简单,整个语言描述都可以放在一个页面中。

  2. 简洁明了的心智模型。 (例如:树的叶子是 int、string、float、bool 类型的值,而键是非叶子节点。稍微复杂一点的模型,比如字典,也可以)。

  3. 表示任何给定语义的单一方式;即,没有具有相同含义的等效语法。

  4. 最好用python之类的语言容易解析;或可用于此目的的稳定库。

  5. 可以允许文件之间的某种继承。也就是说,我想允许一个文件部分覆盖另一个文件。理想情况下,我什至希望允许多重继承,而传统的解决顺序冲突只需通过禁止从多个父级派生的任何值来处理。

  6. 不会为用户输入的数据造成任何陷阱(例如,未加引号的文本可以是 YAML 中的字符串,但如果它是保留字,则不是)。

它是现成的,还是我需要从头开始构建它?

YAML 不起作用,因为它不允许文件之间的继承,存在如上所述的缺陷,并且有许多替代语法结构来做同样的事情。

而且 YAML / XML 不起作用,因为两者的描述都不适合一页。

谢谢!

【问题讨论】:

    标签: xml parsing schema yaml


    【解决方案1】:

    我不知道有任何数据序列化语言可以满足您的所有这些要求。

    我非常喜欢 JSON 和 OGDL(因为它们比 XML 更容易阅读),但它们都(至少)在允许继承方面都失败了。

    PS:维基百科有一个流行数据格式的比较here

    PPS:我想你应该考虑写一个DSLinternal(或weak)实现并不难实现,您可以使用 Python 本身作为宿主语言。

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2012-06-22
      相关资源
      最近更新 更多