我即将开始一个新项目,我们需要能够在客户端和服务器上重用基于(最好是XML)的验证。
我们会设置一个服务来向客户端提供XML验证配置数据。
以下并不意味着任何形式的煽动性。
Enterprise库确实支持验证要在XML中配置的对象,但java开发人员无法访问此XML解释的java reader版本。
还有Spring.Net验证,但我认为这可能与.net绑得太多了。 Spring.Net验证套件是否直接从java spring框架移植,即不更改xml配置?
是否还有其他可以在.Net和Java中使用的验证框架?
该项目将完全是SOA,验证是我必须弄清楚的最后一件事。
编辑:
为了澄清验证需要在接收客户端使用的语言中发生,即如果Web服务的客户端是Java,那么验证将被读入java并在java中验证,以便可以报告错误条件用户要修正的UI。同样,如果它是.net客户端,.net客户端将能够读取它并提供相同的功能。
我不想在xml中验证,xml将是一组规则,即Customer.Name最多50个字符,并且必须至少5个字符,并且是必填字段。
由于 皮特
答案 0 :(得分:3)
如何在可以在jvm和.net中运行的脚本语言中尝试验证。
脚本语言非常适合这种逻辑,所以可能:
Ruby - http://www.ironruby.net/和http://www.jruby.org/
或Perl。
这种方法允许使用完全相同的代码进行验证,然后从Java或.net中调用它。
使用jruby不会带来很大的性能开销,它可以与java非常紧密地集成。我对Ironruby的经验较少,但是从代码加载完毕后我已经阅读过并且正在运行,性能还可以,并且可以很好地集成到.net代码中 - 请参阅:http://www.ironruby.net/Documentation/.NET/Hosting
不要忘记我的回答,但不管你如何做到这一点,它将涉及引入一项新技术,包括所有相关的开销 - 开发环境等。更好的方法可能只是在.net和java中单独进行但是维护一个非常广泛的测试套件示例,以确保两个验证保持同步。
答案 1 :(得分:3)
答案 2 :(得分:0)
不确定您要完成哪种验证。如果您的业务对象将以XML格式序列化,那么除了架构验证之外,您还可以使用Schematron通过其他业务规则和检查来扩充它。
Schematron是ISO标准,它提供了一种编码XML Schema中无法实现的业务规则,限制和验证的方法。
Schematron基本不同 来自其他模式语言的概念 它不是基于语法而是基于语法 在解析中找到树模式 文献。这种方法允许很多 要表示的各种结构 这是不方便和困难的 在基于语法的模式语言中。如果 你知道XPath或XSLT表达式 语言,你可以开始使用了 Schematron立刻。