我有一个项目,我使用RelaxNG (jing)来验证xml。我喜欢RelaxNG的语法,但是我拥有的大多数工具都可以处理XML schema (实际上,除了jing之外,我不认为我有其他工具可以这样做)。在大多数支持似乎都围绕着XML schema的时候,我使用RelaxNG是不是犯了一个设计和未来支持的错误?我是不是应该坚持使用RelaxNG,然后让其他所有人都学习它(如果有必要,可以大喊大叫,j/k)?我是否应该因为工具支持而切换到xml模式?
谢谢。
发布于 2011-02-15 01:05:04
答案有点老生常谈:视情况而定。
你可能会问,是什么原因?在您的用户可能会使用的工具上。如果你依赖你的用户,如果缺乏好的工具会把他们赶走,你可能会失去他们。根据我的经验,由于XML模式被广泛使用,您可能需要重新考虑是否继续使用Relax NG。它比XML模式更好、更容易理解,但这并不意味着它会使您的项目成功。
如果你想冒险一点,那就使用Relax NG吧。在开发的每个步骤中,尝试使用Trang之类的工具将Relax NG转换为XML schema。以防有一天你觉得Relax NG不值得这样做,而且你知道你有一个合理的备份。
发布于 2011-02-19 07:18:13
编写略微有限风格的RELAX NG,然后使用Trang自动转换为XSD (我们从未接触或查看过它)对我们来说非常有效。
发布于 2011-02-15 04:03:14
我同意这一点,这完全取决于您需要使用模式来做什么。这里还有一点:如果你所需要的是验证,是的,只需要使用RelaxNG就可以了:它对这个目的很好。
但是,如果您计划执行数据绑定(如JAXB)或其他类型的代码生成任务,则XML Schema是(不幸的是...)更好的选择,因为它更多地设计为对象到xml的方法,而不是RelaxNG。相反,对于XML验证来说并不是那么好;特别是考虑到增加的复杂性。实际上,可以将XML Schema称为类型系统,而不是XML的模式。
https://stackoverflow.com/questions/4994875
复制相似问题