gpt4 book ai didi

xml - 比 YAML 更简单,比 CSV 更好

转载 作者:行者123 更新时间:2023-12-04 22:33:56 25 4
gpt4 key购买 nike

我需要一种非常简单的输入语言来满足客户的需求。在我知道的那些(XMLJSONYAMLCSV)、XML并且 JSON 不能使用(“不是该死的人类可读”)。

CSV 对我的任务来说太简单了(有一些层次结构,一些属性可能附加到“项目”)
YAML 太复杂了。 (“文档?TL;DR”)

是否有一些众所周知的标准可以填补 YAMLCSV 之间的空白?还是需要我自己做?

出现这个问题是因为我没有时间重新发明轮子。

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)

如果世界上有类似的东西在使用,那么我应该看看它以避免陷阱。
否则我应该为我的新巧妙语言申请专利))

最佳答案

有一个RFC published用于配置文件。

格式如下:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
skip-external-locking
old_passwords = 1
skip-bdb
skip-innodb

它是这样工作的:

[section_name]
my_variable = my_value

您可以有多个部分,每个部分可以有任意数量的变量。它不如 JSONXML 强大,因为您可以拥有不止 1 个嵌套元素,但您可以像这样解决它:

[section1]
my_var = 2

[section2]
parent_section = section1
my_other_var = 3

当然,您必须编写一些代码来处理这个用例,但它使语法非常清晰,并且根据您的需要,这种格式可能就足够了。

我不知道你要使用什么语言,但是有一个 implementation in Python (可能在大多数语言中)

它提供了人类可读、易于解析且非常强大的东西。

编辑:示例来自 Python 文档(参见上面的链接)。

关于xml - 比 YAML 更简单,比 CSV 更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29946693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com