不使用XmlSchemaSet和使用XmlSchemaSet的比较
1.没使用XmlSchemaSet
1
<%@ Page Language="C#"%>
2
<%@ Import Namespace="System.Xml" %>
3
<%@ Import Namespace="System.Xml.Schema" %>
4![](/Images/OutliningIndicators/None.gif)
5
<script runat="server">
6
private StringBuilder _builder = new StringBuilder();
7
void Page_Load(object sender, EventArgs e)
8
{
9
string xmlPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xml";
10
string xsdPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xsd";
11
XmlReader reader = null;
12
XmlReaderSettings settings = new XmlReaderSettings();
13
settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
14
settings.ValidationType = ValidationType.Schema;
15
settings.Schemas.Add(null, XmlReader.Create(xsdPath));
16
reader = XmlReader.Create(xmlPath, settings);
17
while (reader.Read())
18
{
19
}
20
if (_builder.ToString() == String.Empty)
21
Response.Write("Validation completed successfully.");
22
else
23
Response.Write("Validation Failed. <br>" + _builder.ToString());
24
}
25![](/Images/OutliningIndicators/None.gif)
26
//报错
27
void ValidationEventHandler(object sender, ValidationEventArgs args)
28
{
29
_builder.Append("Validation error: " + args.Message + "<br>");
30
}
31
32
</script>
33
<html xmlns="http://www.w3.org/1999/xhtml" >
34
<head runat="server">
35
<title>XSD Validation</title>
36
</head>
37
<body>
38
<form id="form1" runat="server">
39
<div>
40
</div>
41
</form>
42
</body>
43
</html>
44![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
执行页面以后,无法修改XSD文件,会出现提示,文件正在使用
![](/images/cnblogs_com/clingingboy/chucuo.gif)
1
void Page_Load(object sender, EventArgs e)
2
{
3
string xmlPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xml";
4
string xsdPath = Request.PhysicalApplicationPath + @"\App_Data\Authors.xsd";
5
XmlSchemaSet schemaSet = new XmlSchemaSet();
6
schemaSet.Add(null, xsdPath);
7
XmlReader reader = null;
8
XmlReaderSettings settings = new XmlReaderSettings();
9
settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
10
settings.ValidationType = ValidationType.Schema;
11
settings.Schemas = schemaSet;
12
reader = XmlReader.Create(xmlPath, settings);
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
使用XmlSchemaSet后就不会出现这样的错误了
记录一下