使用JavaScript进行RelaxNG或XSD架构验证

时间:2012-01-17 05:56:16

标签: javascript xsd xsd-validation relaxng jsonschema

我想在客户端JavaScript中进行RelaxNG(首选)或XSD(如果必须)进行模式验证。这个有什么好的库吗? Google发现jsrelaxngvalidator但我无法让它运行,而且似乎没有维护。目标浏览器仅限Firefox和Chrome。

2 个答案:

答案 0 :(得分:3)

答案似乎是“不”:我们最终得到了jsrelaxngvalidator,但它对它支持的内容有奇怪的限制,需要运行大量的库(包括一个自定义的SAX解析器也在测试中)并且很奇怪像通过线路下载18个XSLT来预处理模式的东西,所以我们放弃了它。

相反,我将模式重写为JSON Schema,并使用JSV进行客户端验证。学习曲线有点陡峭,但现在效果很好。

答案 1 :(得分:3)

SmartClient可以加载XSD并生成用于编辑数据的表单,并附带验证规则和用户友好的错误消息:

http://www.smartclient.com/#xmlSchemaImport

您还可以使用DataSource.xmlSerialize()序列化用户输入的数据并生成符合XSD(正确命名空间和所有内容)的XML文档。

http://www.smartclient.com/docs/8.0/a/b/c/go.html#method..DataSource.xmlSerialize

此功能全部在浏览器中实现(无服务器组件),全部采用免费的OSS版本(SmartClient LGPL)。

请注意,此特定功能是可能适合或不适合您需求的更大系统的一部分 - SmartClient主要用于大型企业业务应用程序。