Validating YAML with an XML DTD



我在系统上处理大量遗留代码,这些代码需要来自其他部门的各种人员,这些人员很少或没有技术经验,必须学习XML(以及一组相当复杂的dtd)以实现文档的数字化,然后将其传递到专门设计用于使用XML的一些专门设备上。

我突然想到,对于那些对标记语言一无所知的人来说,YAML或JSON(或者其他我根本没听说过的东西?)可能要容易得多。是否有一个库(理想情况下是Visual Studio,这样我就可以避免使用Ruby等更容易的东西所涉及的公司繁文缛节)可以针对大量XML DTD验证YAML,或者YAML首先需要以某种方式完全转换为XML,然后再进行验证?

我担心的是,一个工具的内部用户可以让他们在YAML中进行创作,以节省他们使用XML的麻烦,但他们不知道如何处理由于已经经过转换而进一步消除的验证错误。

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

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

如果这样的工具保留了关于YAML的元数据(如行号和字符号),可能会向用户返回一些有意义的错误消息。如果首先将XSD或DTD转换为c#,这可能尤其正确,因为在c#中,您对XML本身的依赖较少,并且可以更容易地将验证扩展为适合YAML的内容。

最新更新