一个关于xmlReaderSettings类的问题

beautiful_melody 2010-11-19 11:13:12
窗口中有两个控件 richTextBox1 和button5 单击button5程序出现异常,程序目的是用books.xsd文件
来验证books.xml的内容是否合乎规格。

private void button5_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, @"C:\123\books.xsd");
settings.ValidationType=ValidationType.Schema;
settings.ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHander);
XmlReader rdr = XmlReader.Create(@"C:\123\books.xml", settings);
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Text)
richTextBox1.AppendText(rdr.Value + "\r\n");
}
}
private void settings_ValidationEventHander(object sender, System.Xml.Schema.ValidationEventArgs e)
{
MessageBox.Show(e.Message);
}

books.xml为如下:

<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<title>魔兽世界</title>
<author>Aresars</author>
<code>7582</code>
</book>
<book>
<title>C#入门经典</title>
<author>史密斯</author>
<code>7043</code>
</book>
</books>

books.xsd验证文件为:

<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="books">
<complexType>
<choice maxOccurs="unbounded">
<element name="book">
<complexType>
<sequence>
<element name="title" />
<element name="author" />
<element name="code" />
</sequence>
</complexType>
</element>
</choice>
<attribute name="schemalocation" />
</complexType>
</element>
</schema>


设置断点问题提示为 while (rdr.Read())行 在运行若干次循环后开始出错并提示
"未处理 System.InvalidOperationException
Message="尚未验证完所有元素时,不能调用“EndValidation”方法。可能会缺少与“ValidateElement”调用相应的“ValidateEndElement”调用。"
Source="System.Xml"
StackTrace:
----省略----
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beautiful_melody 2010-11-20
  • 打赏
  • 举报
回复
回帖就给分
beautiful_melody 2010-11-20
  • 打赏
  • 举报
回复
白来接分的人都没有?
beautiful_melody 2010-11-19
  • 打赏
  • 举报
回复
没知道吗 帖子沉了
Ryan20082009 2010-11-19
  • 打赏
  • 举报
回复
问题太难 很正常。。。。。。。。。

http://www.blue1000.com/bkhtml/2006-11/47056.htm
http://hi.baidu.com/dikongpulu/blog/item/72817eb51774f8c637d3ca06.html
beautiful_melody 2010-11-19
  • 打赏
  • 举报
回复
60分都无人问津?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧