是否有适用于.NET的Relaxer? Relaxer活着吗? RelaxNG可行吗?

时间:2010-01-21 21:41:04

标签: c# javascript relaxng relaxer

我读到了关于Relaxer的事情,它将.RNG编译成Java类。 BBut网站http://www.relaxer.org/已经死了。

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

Q2:
是否有适用于.NET的Relaxer?是否有一个工具可以从RelaxNG模式生成C#类?

问题3:是否有适用于Javascript的Relaxer?

AND,最后

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


有关相关问题,请参阅Maintaining Consistency Between JavaScript and C# Object Models

2 个答案:

答案 0 :(得分:10)

只需使用Mono的RelaxngValidatingReader。

我通过编译NuGet Package创建了Mono Commons.Xml.Relaxng project

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);
    }
}

答案 1 :(得分:4)

不要让这个问题在这里永远得不到答案,并且继续理论根本没有答案实际上是一个非常确定的答案,我将自己提供回复。

答案:

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

  2. 没有适用于.NET的Relaxer

  3. Javascript没有Relaxer

  4. RelaxNG显然也死了还活着,只是看起来很稳定,因为它很稳定,但它被用作XSD的替代品。 Charles Foster最近加入了RelaxNG validation in Saxon for XQuery and XSLT

  5. 在评论和Martin的回答中提到,.NET中的RelaxNG验证还有很多选择。