使用XmlSchemaSet验证
2006-04-16 15:18 Clingingboy 阅读(1083) 评论(0) 编辑 收藏 举报
XmlSchemaSet包含 XML 架构定义语言 (XSD) 架构的缓存
不使用XmlSchemaSet和使用XmlSchemaSet的比较
1.没使用XmlSchemaSet
执行页面以后,无法修改XSD文件,会出现提示,文件正在使用

使用XmlSchemaSet后就不会出现这样的错误了
记录一下
不使用XmlSchemaSet和使用XmlSchemaSet的比较
1.没使用XmlSchemaSet
1
<%@ Page Language="C#"%>
2
<%@ Import Namespace="System.Xml" %>
3
<%@ Import Namespace="System.Xml.Schema" %>
4
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
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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

执行页面以后,无法修改XSD文件,会出现提示,文件正在使用

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);

2

3

4

5

6

7

8

9

10

11

12

使用XmlSchemaSet后就不会出现这样的错误了
记录一下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现