需要了解Commons.Xml.Relaxng中的RelaxngValidatingReader的帮助吗
环境:RelaxngValidatingReader.NET2.0框架 我似乎无法使验证器等于false,无论我如何更改xml。我是不是遗漏了一些概念 资源需要了解Commons.Xml.Relaxng中的RelaxngValidatingReader的帮助吗,xml,relaxng,relaxng-compact,Xml,Relaxng,Relaxng Compact,环境:RelaxngValidatingReader.NET2.0框架 我似乎无法使验证器等于false,无论我如何更改xml。我是不是遗漏了一些概念 资源 rnc压缩格式 start = root root = element root { parent1* & parent2* } parent1 = element parent1 { element field { attribute usecase_123 {text} } } parent2 = element parent
rnc压缩格式
start = root
root = element root { parent1* & parent2* }
parent1 = element parent1 { element field { attribute usecase_123 {text} } }
parent2 = element parent2 { element field { attribute usecase_AAA {text} } }
<?xml version="1.0" encoding="utf-8" ?>
<root>
<parent1>
<hello/>
</parent1>
</root>
static void Main(string[] args)
{
RncParser parser = new RncParser(new NameTable());
TextReader source = new StreamReader("test.rnc");
RelaxngPattern grammar = parser.Parse(source);
XmlReader instance = new XmlTextReader("XMLFile1.xml");
RelaxngValidatingReader reader = new RelaxngValidatingReader(instance, grammar);
Console.WriteLine("Was the xml valid? {0}", reader.Read());
}
xml实例
start = root
root = element root { parent1* & parent2* }
parent1 = element parent1 { element field { attribute usecase_123 {text} } }
parent2 = element parent2 { element field { attribute usecase_AAA {text} } }
<?xml version="1.0" encoding="utf-8" ?>
<root>
<parent1>
<hello/>
</parent1>
</root>
static void Main(string[] args)
{
RncParser parser = new RncParser(new NameTable());
TextReader source = new StreamReader("test.rnc");
RelaxngPattern grammar = parser.Parse(source);
XmlReader instance = new XmlTextReader("XMLFile1.xml");
RelaxngValidatingReader reader = new RelaxngValidatingReader(instance, grammar);
Console.WriteLine("Was the xml valid? {0}", reader.Read());
}
您必须重复
Read()
,直到文件结束:
static void Main(string[] args)
{
RncParser parser = new RncParser(new NameTable());
TextReader source = new StreamReader("test.rnc");
RelaxngPattern grammar = parser.Parse(source);
XmlReader instance = new XmlTextReader("XMLFile1.xml");
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);
}
}
您必须重复
Read()
,直到文件结束:
static void Main(string[] args)
{
RncParser parser = new RncParser(new NameTable());
TextReader source = new StreamReader("test.rnc");
RelaxngPattern grammar = parser.Parse(source);
XmlReader instance = new XmlTextReader("XMLFile1.xml");
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);
}
}
这似乎是获得帮助的最佳场所,可能是我在该列表上看到的Mono list邮件列表至少有一个关于RelaxngValidatingReader的先前讨论:这似乎是获得帮助的最佳场所,可能是我在该列表上看到的Mono list邮件列表至少有一个先前的讨论关于RelaxngValidatingReader: