我有兴趣了解是否存在用于将 XML 数据转换为 YAML 的标准约定(例如 W3C 标准),反之亦然。我想象 XML 中的某些结构很难在 YAML 中定义,但是我在网上看到了许多 XML 到 YAML 转换工具,我想知道他们是否遵循参考标准,或者他们只是定义自己的参考标准。
XML 和 YAML 都是结构化数据表示格式。他们需要外部模式来赋予数据语义。有时这些模式是显式的(例如,XML 的 XSD 模式,或者 YAML 的 OpenAPI),有时它们是由处理它们的工具所期望的隐式定义的。
由于这两种格式中通常没有内在语义(请注意,即使您通过
xmlns
等定义 XML 输入的架构,该架构仍然是外部的),因此不可能存在从一种格式到另一种格式的语义映射。
有时即使没有语义,结构映射也是可能的,例如从 JSON 到 YAML,因为 YAML 是 JSON 的超集。然而,在我们的例子中,XML 和 YAML 都具有其他格式不支持的功能,并且实际上它们表示的结构非常不同(例如,在 XML 中,sequence 是文本内容和元素的串联,而在 YAML 中,它是任意节点的列表)。
任何通用转换工具要么需要限制其输入并预设一些语义才能进行转换,要么实际上不转换而是以目标格式的语法描述输入的内容。这两种方法可能都有一些边缘用例,但限制性太大,无法成为通用标准。
实现此类转换的工具应该告诉您其限制和用途。它可能是针对某些特定用例而实现的。由于所讨论的原因,没有标准转换。