【发布时间】:2015-07-08 21:55:42
【问题描述】:
我需要一种非常简单的输入语言来满足客户的需求。在我认识的人中(XML、JSON、YAML、CSV)、XML 和 JSON 不能使用(“该死的人类可读性不强”)。
CSV 对我的任务来说太简单了(有一些层次结构,并且某些属性可能附加到“项目”)
而YAML 太复杂了。 ("文档?TL;DR")
是否有一些众所周知的标准可以填补YAML 和CSV 之间的空白?还是我需要自己做?
问题出现是因为我没有时间重新发明轮子。
UPD:(经过讨论)
我的“语言”应该类似于 CSV,但不是那么简单。
树结构有一个定义(模式、模板、模式)(在哪里,这不是我的交易)。
我必须为它的数据存储定义人类可读的语言。
各种“模式”的非正式例子:
Class -> kind -> species
Menu -> submenu -> sub-submenu
Panel -> subpanel -> control
对应内容示例
animals [cat, dog, elephant {big, gray}],
plants [deciduous [oak, maple, baobab],
other [fir, cactus]
]
File [New, Open, Save, Remove {disabled}],
View [Text [ANSI {default}, UTF-8],
Binary, HTML],
Help [On-line, Forum, About]
Header {height:10} [Welcome, Controls [Help Button, Search Pane]],
Main [Teaser, News, Articles [1, 2, ..., N]],
Footer [Status Bar [?, ?], Powered By, Copyright notice {color: gold}]
所以我对所需语言的初步定义是:
Nodes are delimited by ',' (comma) or \n (line feed)
Node may have optional set of attributes (in curly brackets)
Node may have optional set (array) of subnodes (in square brackets)
如果世界上有类似的东西在使用,那么我应该看看它以避免陷阱。
否则我应该为我的新巧妙语言申请专利))
【问题讨论】:
-
愚蠢的问题:你为什么要重新设计轮子而不使用已经广泛使用的东西?必须处理您自定义的“比 yaml-better-than-csv”的东西(维护者)的人会讨厌您让他们不得不学习另一种标记语言(不是双关语。)。
-
非常好的问题)我只是不想发明任何东西。我让他们使用 XML。当发现所有标签都变成 ===
<node>时,问题就出现了。他们讨厌不必要的尖括号......所以我需要“like XML”但没有标签(?)。