1

我即将开始一个新项目,在该项目中,我们需要能够在客户端和服务器上重用基于(最好是 XML)的验证。

我们将设置一个服务来向客户端提供 XML 验证配置数据。

以下内容并非以任何方式具有煽动性。

企业库确实支持验证要在 XML 中配置的对象,但 Java 开发人员无法访问此 XML 解释的 Java 阅读器版本。

还有 Spring.Net 验证,但我再次认为这可能与 .net 绑定太多。Spring.Net 验证套件是否直接从 java spring 框架移植过来,即无需更改 xml 配置?

是否有任何其他可以在.Net 和 Java 中使用的验证框架?

该项目将完全是 SOA 并且验证是我必须弄清楚的最后一件事。

编辑:

为了澄清验证需要在接收客户端使用的语言中进行,即如果 Web 服务的客户端是 Java,那么验证将被读入 java 并在 java 中验证,以便可以向 UI 报告错误情况用户进行整改。同样,如果它是 .net 客户端,.net 客户端将能够读取它并提供相同的功能。

我不想在 xml 中进行验证,xml 将是一组规则,即 Customer.Name 的最大长度为 50 个字符,并且必须至少为 5 个字符,并且是必填字段。

谢谢皮特

4

3 回答 3

3

如何尝试使用可以在 jvm 和 .net 中运行的脚本语言进行验证。

脚本语言非常适合这种逻辑,所以也许:

红宝石 - http://www.ironruby.net/http://www.jruby.org/

或 Perl。

这种方法将允许使用完全相同的代码进行验证,然后从 Java 或 .net 调用它。

使用 jruby 不会有太大的性能开销,它可以与 java 非常紧密地集成。我对 Ironruby 的经验较少,但是从我读到的代码加载并运行后,性能还可以,它可以很好地集成到 .net 代码中 - 请参阅:http ://www.ironruby.net /Documentation/.NET/Hosting

不要从我的回答中拿走,但无论你如何做到这一点,它都将涉及引入一项具有所有相关开销的新技术 - 开发环境等。更好的方法可能只是在 .net 和 java 中分别进行,但保持一个非常广泛的示例测试套件,以确保两个验证保持同步。

于 2009-09-13T20:32:03.130 回答
3

看看流口水。规则引擎有 .Net 和 Java 版本。 Java 链接.Net 链接

我没有使用这些库,因此无法评论一组规则在两种环境中如何“无缝”使用。

于 2009-09-18T05:03:03.597 回答
0

不确定您要完成哪种验证。如果您的业务对象将以 XML 形式序列化,那么除了模式验证之外,您还可以使用Schematron使用额外的业务规则和检查来增强它。

Schematron 是一个 ISO 标准,它提供了一种编码业务规则、限制和验证的方法,这在 XML Schema 中是不可能的。

Schematron 在基本概念上与其他模式语言的不同之处在于它不是基于语法,而是基于在已解析文档中查找树模式。这种方法允许表示在基于语法的模式语言中不方便和困难的多种结构。如果您了解 XPath 或 XSLT 表达式语言,您可以立即开始使用 The Schematron。

于 2009-09-09T16:17:15.893 回答