具有脚本选项的数据交换格式

Data Interchange Format with Scripting options

XML、JSON 和 YAML 似乎最适合它们的设计。有没有一种方法允许编写脚本或至少从这些格式中调用函数,return 字符串值并更改数据中元素的值。

长话短说:是否有任何数据交换格式允许通过传递参数编写脚本或调用函数?

如果有 none,那么是否有一种 plausible/standard 语法可以在这些格式中使用以在 运行 时调用函数?

XML 示例:<Element>$Method("My name is Jeff");<Element>

第一个问题的答案是否定的。到第二个"Yes, there is a plausible syntax for XML and YAML"

这些是数据格式,这就是它们指定的内容,XML 和 YAML 比 JSON 强大得多。甚至 JSON 也与编程语言无关,除此之外,规范中没有任何关于定义可评估函数的方法的内容。

当然,在 XML 和 YAML 中标记某些东西很容易(每个都有自己特定的方式)。您只需编写一个程序,在解析期间评估标签并创建输出(来自 string/scalar/complex 类型)。 这立即回答了您似乎没有问过自己的问题:"What language is the to be evaluated 'string' scripted in?",答案是:"whatever scripting language you use in your program to evaluate the tagged data"

从 python YAML 解析器调用 python 解释器进行评估是微不足道的。从编译的编程语言中,您要么必须调用脚本扩展,要么将评估程序构建到您的程序中。您当然也可以通过编译和动态加载来评估,但这可能比使用现有的脚本语言更难。

您的示例似乎使用了基于某种模式的值的解释(从 [=10= 开始,在字符串中的某处有 $)。这是错误的做法,因为您必须分析每个字符串并提供一些转义机制来编写实际的 $。最好使用 tagging/attributes 来实际告诉解析器需要制作一些特殊的东西。