使用XML DTD验证YAML

时间:2011-09-15 12:06:03

标签: xml json yaml markup dtd

我在系统上使用了大量的遗留代码,这些代码需要来自其他部门的人员,他们很少或根本没有技术经验,不得不学习XML(以及一套相当复杂的DTD)来进行文档数字化,然后传递给专门设计用于使用XML的专用设备。

在我看来,对于那些真正不了解标记语言的人来说,YAML或JSON(或其他我根本没有听说过的东西?)在人类创作方面可能要容易得多。是否有一个库(理想情况下是Visual Studio,所以我可以避免使用像Ruby那样更容易使用的公司繁文缛节),它可以针对大规模的XML DTD验证YAML,或者YAML首先需要以某种方式完全转换为XML和/然后/验证?

我担心一个工具的内部用户会让他们在YAML中创作,以免他们使用XML时遇到麻烦,他们不知道如何处理由于已经进一步删除的验证错误通过转换。

1 个答案:

答案 0 :(得分:1)

我不知道是否存在这样的工具,但即使它存在,也可能不可能足够精确地向用户提供有意义的错误消息。即使在创作XML时,DTD或XSD通常也会产生非常难以理解的错误消息。

然而,编写这样的工具并不会太难。这就是将YAML翻译成可以通过XSD中的规则验证的内容。这可以通过将YAML转换为XML然后验证XML来实现,但也可以通过将XSD或DTD编译为C#,然后构建C#代码所期望的对象树来实现。

也许如果这样的工具保留了关于YAML的元数据(如行号和字符号),则可以将有些有意义的错误消息返回给用户。如果首先将XSD或DTD转换为C#,那可能尤其如此,因为在C#中,您对XML本身的依赖性较小,并且可以更轻松地将验证扩展为适合YAML的内容。