xml验证问题,一有答案,马上结贴送分
我创建了一个xml文件(文件名:book2.xml),部份内容如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore xmlns="x-schema:books2-schema.xdr">
<book gente="aaa" style="bbb">
...
</book>
....
</bookstore>
还创建了一个模式(文件名:books2-schema.xdr)部份内容如下:
<?xml version="1.0" encoding="gb2312"?>
<Schema xmlns ="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes" />
//定义相关元素
...
<ElementType naeme="book" content="eltOnly">
<element name="title"/>
<element name="name"/>
<element name="author"/>
<element name="price"/>
</ElementType>
<ElementType="bookstore" content="eltOnly">
<element name="book"/>
</ElementType>
</Schema>
然后我编程进行验证,源程序如下:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Schema" %>
<script runat="server">
XmlTextReader reader= null;
XmlValidatingReader validator = null;
void Page_Load(object ojb,EventArgs e)
{
try
{
reader = new XmlTextReader(Server.MapPath("books2.xml"));
validator = new XmlValidatingReader(reader);
validator.ValidationType = ValidationType.Schema;
validator.ValidationEventHandler+=new ValidationEventHandler(ShowError);
while (validator.Read())
{
}
}
catch(Exception aaa)
{
Response.Write(aaa.Message);
}
finally
{
reader.Close();
}
}
void ShowError(object obj,ValidationEventArgs e)
{
Response.Write("<font color='red'>"+e.Message+"<br>");
if(reader.LineNumber>0)
Response.Write("Line:"+reader.LineNumber+"Position:"+reader.LinePosition+"</font><p>");
}
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
</body>
</html>
但是每次都提示错误:
未能找到元素“x-schema:books2-schema.xdr:bookstore”的架构信息。 file:///E:/aspnet/books2.xml(2, 2) 处发生了错误。
Line:2Position:2
....
等这些元素未定义,请问大侠们如何解决
问题点数:50、回复次数:3Top
1 楼saucer(思归)回复于 2002-09-25 09:32:38 得分 50
you are not using XML Schema, but XDR, you might need to change
validator.ValidationType = ValidationType.Schema;
===>
validator.ValidationType = ValidationType.XDR;
see
HOW TO: Validate an XML Document by Using DTD, XDR, or XSD in Visual C# .NET
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q307379Top
2 楼chenqianliang(忠实朋友)回复于 2002-09-26 20:52:06 得分 0
好,谢谢,我正在看...Top
3 楼fa2002(风翔万里)回复于 2002-11-07 23:26:10 得分 0
upTop




