代码之家  ›  专栏  ›  技术社区  ›  max

具有跨文件继承的人类和计算机可读层次数据格式

  •  1
  • max  · 技术社区  · 14 年前

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

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

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

    3. 最好在python这样的语言中易于解析;或者为此目的提供稳定的库。

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

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

    YAML不起作用,因为它不允许文件之间的继承,有如上所述的缺陷,并且有许多可供选择的语法构造来做同样的事情。

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

    谢谢您!

    1 回复  |  直到 14 年前
        1
  •  1
  •   rsenna    14 年前

    我不知道有哪种数据序列化语言能满足您的所有这些要求。

    我非常喜欢JSON和OGDL(因为它们比XML更容易阅读),但它们都不能(至少)允许继承。

    here .

    我想你应该考虑写一篇 DSL . 一个 内部的 虚弱的 )实现并没有那么难实现,您可以使用Python本身作为宿主语言。