Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

4年前关闭。



Improve this question




我读到有关Relaxer的知识,它可以将.RNG编译为Java类。 B但是http://www.relaxer.org/网站已死。

Q1:
活着的人还活着吗?这是真的吗?从.RNG生成Java类是否合理?

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

Q3:是否有Java的Relaxer?

然后,最后

第4季:
RelaxNG还活着吗?可行吗?在REST/JSON世界中相关且有用吗?人们是否还在使用它?或者它会消失吗?一个好主意已被放弃?我知道这是主观的,但我想知道您的评估。我在stackoverflow上只看到9或10个RelaxNG Q,所以我对这项技术的实用性提出了质疑。如果不是RelaxNG,那又是什么? WADL?没有什么?

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

最佳答案

只需使用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);
    }
}

10-08 00:04