9

我阅读了有关将 .RNG 编译为 Java 类的东西的 Relaxer。B但是网站http://www.relaxer.org/已经死了。

Q1:
Relaxer 还活着吗?是真的吗,有用吗?从 .RNG 生成 Java 类是否合理?

Q2:
.NET 有松弛器吗?是否有从 RelaxNG 模式生成 C# 类的工具?

Q3: 是否有 JavaScript 的松弛器?

并且,最后

Q4:
RelaxNG 还活着吗?可行吗?在 REST/JSON 世界中相关且有用吗?人们还在使用它还是会褪色,一个已经放弃的好主意?我知道这是主观的,但我想知道你的评价。我在 stackoverflow 上只看到 9 或 10 个 RelaxNG Q,所以我质疑这项技术的相关性。如果不是RelaxNG,那又是什么?WADL? 什么都没有


有关相关问题,请参阅保持 JavaScript 和 C# 对象模型之间的一致性。

4

2 回答 2

10

只需使用 Mono 的 RelaxngValidatingReader。

我通过编译Mono Commons.Xml.Relaxng 项目制作了一个NuGet 包

PS:我在一些AlpineBits项目的生产中使用它。

XmlReader instance = new XmlTextReader ("instance.xml");
XmlReader grammar = new XmlTextReader ("grammar.rng");
using (RelaxngValidatingReader reader = new RelaxngValidatingReader (instance, grammar)) {
    try {
        while (!reader.EOF) {
            reader.Read();
        }
        Console.WriteLine("validation succeeded");
    }
    catch (Exception ex) {
        Console.WriteLine("validation failed with message:");
        Console.WriteLine(ex.Message);
    }
}
于 2013-05-02T20:26:22.627 回答
4

与其让这个问题永远悬而未决,并继续坚持根本没有答案实际上是一个非常明确的答案的理论,我将自己提供一个回应。

答案:

  1. 不,各种迹象表明,Relaxer 没有活着。

  2. .NET 没有松弛器

  3. Javascript 没有松弛器

  4. RelaxNG 显然也死了还活着,只是看起来死气沉沉,因为它很稳定,但它被大量用作 XSD 的替代品。最近添加的一项是由 Charles Foster在 Saxon 中对 XQuery 和 XSLT 进行的 RelaxNG 验证。

  5. 如评论和 Martin 的回答中所述,.NET 中有很多用于 RelaxNG 验证的替代方案。

于 2010-02-10T21:27:30.267 回答