如果YAML不是标记语言,它是什么?

des*_*est 55 markup yaml

我没有看到是什么让YAML成为一种标记语言而不是XML.标记语言的目的是定义文档的结构,而YAML就是这样做的.(YAML代表Yaml不是标记语言.)

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

ing*_*net 114

这是真实的故事...... :)

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

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

http://yaml.org/spec/开头:

YAML™(与"骆驼"押韵)是一种人性化的跨语言,基于Unicode的数据序列化语言,围绕敏捷编程语言的常见本机数据结构而设计.

我自己也不能说得更好......:

  • "backronymed",很好. (19认同)
  • 反义词中有无限递归!它永远不会回答 Y 代表什么。它也可以称为 CAML——CAML 不是标记语言。 (5认同)
  • 嗯,这是一个有趣的完整答案。 (3认同)
  • @Dojo 这就是递归首字母缩略词的工作原理。GNU=“GNU 不是 Unix”。PHP=“PHP 超文本预处理器”(原“个人主页”)。我确信还有很多其他人。 (3认同)

cla*_*ans 48

因此,标记语言假定基本文本(通常是人类可读的),然后是特殊指示符或直接处理的"标记".这个想法来自一位编辑,他将采用某人手稿的印刷版本,并"标记"以显示新线应该去哪里,编辑等.

通过这种方式,SGML是用于声明标记语言的元语言,而HTML是一种标记语言.在1996年7月,当XML出现时,它被作为用于创建标记语言的简化SGML元语言出售.在XML(和SGML)中,您有"标记"文本的一部分的元素,然后是修改标记的属性.随着时间的推移,XML不仅仅用于文档标记,人们将它用于数据序列化 - 即使它从未被设计为做这样的事情.当然,这是一个需要解决的大问题.

YAML和JSON出现在现场,专注于数据序列化,而不是文档标记.在这些语言中,根本没有核心文档文本.
因此,YAML不是标记语言与XML非常准确的区别.

  • 作为历史记录,YAML从"SML"("简单标记语言")组中脱颖而出.这个小组遇到的问题实际上并不是语法:它与XML使用的核心信息模型有关.XML信息模型(目前以DOM编码)非常适合面向文本的网页.这对于数据序列化来说是非常繁重的.在SML-LIST讨论中不断出现的主要问题是:"属性还是元素?".对于数据序列化的答案:既不是.问题本身存在缺陷.因此,YAML首先是序列化的数据模型,然后是语法. (12认同)

Hen*_*olm 5

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

后来,一些人开始编写仅包含标签和属性的 XML,而没有用于标记这些标签的纯文本。(关于这是否是 XML 的适当使用,观点和风格各不相同)。当以这种方式使用时,XML 就成为一种用于记录树形结构数据的语言。

YAML“不是”标记语言,因为它的数据模型包含树结构,没有树结构适用的底层线性文本的概念。那里没有什么可以标记的——或者换句话说, YAML 流表示的数据不是标记。相反,XML 标签表示的数据标记,或者至少根据某些观点认为是标记。(在这两种情况下,所述数据的表示都包含一些标记,例如 YAML 中的冒号和缩进或 XML 中的“=”和引号,但这不是重点)。