Racket Sxml和xexp有什么区别,为什么要使用它们?

Racket Sxml和xexp有什么区别,为什么要使用它们?,racket,Racket,Racket支持多种与xml相关的格式,其中包括两种基于结构定义的不同xexp库以及基于列表的sexp库 我想在没有任何特殊验证或DTD的情况下为富文本定义、读写一种简单的基于xml的交换格式。其目的是使格式与其他实现语言兼容,并为我自己的工作提供将来的证明。(这是关于导出文本%snips的内容,以避免对专有和未记录的WXME格式的依赖,如果我更改实现语言,这可能会在将来造成巨大的问题。) 我应该使用哪个库和格式?xexp还是sxml?还是两者都同样适合?尼尔·范·戴克(Neil Van Dyk

Racket支持多种与xml相关的格式,其中包括两种基于结构定义的不同xexp库以及基于列表的sexp库

我想在没有任何特殊验证或DTD的情况下为富文本定义、读写一种简单的基于xml的交换格式。其目的是使格式与其他实现语言兼容,并为我自己的工作提供将来的证明。(这是关于导出文本%snips的内容,以避免对专有和未记录的WXME格式的依赖,如果我更改实现语言,这可能会在将来造成巨大的问题。)


我应该使用哪个库和格式?xexp还是sxml?还是两者都同样适合?

尼尔·范·戴克(Neil Van Dyke)非常详细地描述了各种XML表示之间的差异。

考虑在邮件列表中提出WXME格式的问题。顺便说一句,我认为“专有”这个词用错了。我同意“专有”这个词是不对的。问题是text%确实需要一种其他语言可以读写的交换格式。也许我会在邮件列表中提出这个问题,但根据我的经验,需要一些实际工作的基本“请求”通常会导致(不一定是不合理的)回答:是的,你肯定应该为此编写一个包并将其放到网上。;-)它并没有真正回答您应该在什么场景中使用哪个库以及用于什么目的。事实上,我是在读了他的介绍之后来到这里的,因为它太令人困惑了。坦率地说(Neil Van Dykes的出色工作值得称赞!),我不需要知道某些东西是否算作sxml,我需要知道哪个库适合什么目的/哪些库已经过时或过时。@Eric'3ToedSloth,
sxml
库处理了我过去想做的大部分事情,虽然我需要其他库来解析HTML。我使用的主要工具是XPath(
sxpath
)用于从文档中提取信息,以及
pre-post-order
(可能还有
sxml:modify
)用于修改文档。