为什么不使用 XML 进行配置或 DSL?
XML 就像普通 YAML 一样,也过于复杂 - 尽管由于委员会驱动的设计,复杂程度更高。例如,Doctype 和命名空间是该语言的糟糕补充。XML 不仅不是真正的人类可读(超出了该语言的非常基本子集),而且由于其表达能力低于大多数图灵完备语言,因此它通常几乎无法由程序员阅读。这公然违反了最小能力原则。
事实上,这种语言如此复杂,以至于最终增加了解析器本身的攻击面,导致解析器出现安全漏洞。
与 JSON 和 YAML 不同,XML 的结构也不适合大多数语言使用的默认数据类型,通常需要第三种语言充当中间桥梁 - 例如,XQuery 或 XPath 之一。
XML 衰落而 JSON 成为默认 API 格式的趋势,很大程度上是由于这些复杂性以及从这些复杂性中得不到任何真正的好处。相关技术(例如 XSLT)也遭受了委员会设计的困扰。
将其用作配置语言几乎可以肯定需要编写额外的样板代码来管理其怪癖。