我想问一个关于XML和S-expressions(-ish)表示法的问题。S表达式很老。他们也很简单。我们可以考虑两种含义相同但语法不同的形式:
(来自波兰维基百科的 xml代码)
<?xml version="1.0" encoding="UTF-8"?>
<ksiazka-telefoniczna kategoria="bohaterowie książek">
<!-- komentarz -->
<osoba charakter="dobry">
<imie>Ambroży</imie>
<nazwisko>Kleks</nazwisko>
<telefon>123-456-789</telefon>
</osoba>
<osoba charakter="zły">
<imie>Alojzy</imie>
<nazwisko>Bąbel</nazwisko>
<telefon/>
</osoba>
</ksiazka-telefoniczna>
S-Expression(-ish)版本:
(:version "1.0" :encoding "utf-8")
(ksiazka-telefoniczna :category "bohaterowie książek"
; komentarz(a comment)
(osoba :charakter "dobry"
(imie Ambroży)
(nazwisko Kleks)
(telefon 123-456-789))
(osoba :charakter "zły"
(imie Alojzy)
(nazwisko Bąbel)
(telefon)))
S-Expression版本更为简洁。我们通过使用简单的列表符号来避免冗余,但是我们仍然可以定义语法以包括我们想要拥有的东西(例如属性)。当然,这只是一个例子,实际的标准可能更好或更简单。但是,它更短且更容易解析。XML为什么赢了?
(para "This is a paragraph " (footnote "(better than the one under there)" "." /footnote) /para)
。