如果YAML ain';t标记语言,它是什么?

如果YAML ain';t标记语言,它是什么?,yaml,markup,Yaml,Markup,我看不出是什么使YAML比XML更不像一种标记语言。标记语言的目的是定义文档的结构,YAML正是这样做的(YAML代表YAML不是标记语言) YAML应该代表的是另一种标记语言 我看不出是什么使YAML比XML更不像一种标记语言 使用YAML代替XML有一些优点。首先,它是一种更具可读性的语言。与XML数据结构不同,我们必须定义并给出每个数据元素的标记名。开发人员会觉得XML代码太庞大,用户很难理解XML文档。实际上,XML是用于机器之间的通信,而不是用于用户的机器通信。由于YAML具有良好的人

我看不出是什么使YAML比XML更不像一种标记语言。标记语言的目的是定义文档的结构,YAML正是这样做的(YAML代表YAML不是标记语言

YAML应该代表的是另一种标记语言

我看不出是什么使YAML比XML更不像一种标记语言

使用YAML代替XML有一些优点。首先,它是一种更具可读性的语言。与XML数据结构不同,我们必须定义并给出每个数据元素的标记名。开发人员会觉得XML代码太庞大,用户很难理解XML文档。实际上,XML是用于机器之间的通信,而不是用于用户的机器通信。由于YAML具有良好的人类可读性,您可以将其用于用户读取/更改数据源,并使用它与计算机程序通信

下面是一个例子,展示了它们的结构是如何不同的

XML Examples:
<busNo>101
    <busStop>ABC
           <busFee>5.4</busFee>
    </busStop>
    <busStop>CUHK
           <busFee>5.4</busFee>
    </busStop>
    <busStop>HKU
           <busFee>5.4</busFee>
    </busStop>
    <busStop>XYZ
           <busFee>5.4</busFee>
    </busStop>
</busNo>

YAML Examples:
--- #bus no
101  : [ABC:5.4, HKU:5.4, CUHK:5.4, XYZ:5.4]
XML示例:
101
基础知识
5.4
中大
5.4
香港大学
5.4
XYZ
5.4
YAML示例:
---#公交车号
101:[ABC:5.4,港大:5.4,中大:5.4,XYZ:5.4]
使用YAML的最佳示例用于程序的配置文件。当然,您可以将自己的配置文件格式解析为XML,并将其传递到程序中。但是,您可以改用YAML。此外,您还可以进行更快的开发,特别是在web开发方面。YAML是用Python、Perl、Ruby等脚本语言设计的。YAML的设计目的是方便地翻译成上述各种语言所共有的结构

总之,YAML是为人类阅读而设计的,与XML相比,它的标记语言作用更小

我想读者心中的第一个问题是,“为什么?” YAML这个名字是什么?“有很多工具都被巧妙地采用了 “YA*”的首字母缩写,意思是“又一个XXX.”在手臂上 在开源智慧的竞争中,YAML避开了其隐含的首字母缩略词 解决递归“YAML不是标记语言”的问题 但是,从某种意义上说:YAML做的是标记语言所做的, 但不需要任何标记

之所以选择这个名称,是因为与其他传统语言(如XML)相比,它需要的标记要少得多。它将其区分为更面向数据而不是面向标记。

XML继承了HTML和SGML名称中的“ML”部分,这两种语言都是“标记”语言,因为它们描述的是一个纯文本流以及标记指令,如“这段文本应为粗体”或“这段文字是一个标题”。也就是说,这些文字的特定部分被标记为粗体或标题


后来,一些人开始编写只由标记和属性组成的XML,而这些标记没有纯文本可供标记。(对于这是否是XML的适当使用,观点和风格各不相同)。当使用这种方式时,XML成为一种用于写下树结构数据的语言


YAML“不是一个标记语言,因为它的数据模型只包含树结构,没有树结构所适用的底层线性文本的概念。这里没有任何标记——或者换言之,YAML流表示的数据不是标记。相反,由XML标记表示的数据是标记,或者至少从某些角度来看应该是标记。(在这两种情况下,所述数据的表示都包含一些标记,例如YAML或“=”中的冒号和缩进以及XML中的引号,但这不是重点)。

因此,标记语言假定基本文本(通常是人类可读的),然后是指导处理的特殊指示符或“标记”。这个想法来自一位编辑,他会拿一份印刷版的某人的手稿,并“标记”以显示新行的位置、编辑等

以这种方式,SGML是一种用于声明标记语言的元语言,HTML是一种标记语言。1996-7年,当XML出现时,它被作为一种简化的SGML元语言出售,用于创建标记语言。在XML(和SGML)中,有元素“标记”文本的一部分,然后是修改标记的属性。随着时间的推移,XML的用途远远超过了文档标记,人们将其用于数据序列化——尽管它从来没有被设计用来做这样的事情。当然,这是一个需要解决的大问题

YAML和JSON出现在现场,主要关注数据序列化,而不是文档标记。在这些语言中,根本没有核心文档文本。
因此,YAML不是一种标记语言,它与XML有着非常准确的区别。

这里是真实的情况…:)

克拉克、奥伦和我于2001年4月开始研究YAML。Oren和Clark是SML邮件列表的一部分,该列表试图简化XML。我刚刚为Perl编写了一种称为data::Denter的数据序列化语言。Clark联系我,告诉我一个他们称为YAML的想法,它看起来类似于Data::Denter语法。克拉克已经收购了yaml.org

经过几个月的合作,我指出YAML(当时最明确地代表另一种标记语言)并不是一种标记语言(标记文本文档的各种元素),而是一种序列化语言(类型化/循环数据图的文本表示)。我们都喜欢YAML这个名字,所以我们把它改为表示YAML不是标记语言

首先是:

亚马尔™ (与“camel”押韵)是一种人性化的、跨语言的、基于Unicode的数据序列化语言,它围绕敏捷编程语言的通用原生数据结构而设计

我自己说得再好不过了……:

问题是