您的位置:首页 > 编程语言 > C#

C#使用XSD来验证XML。

2011-07-28 13:57 471 查看
我使用XmlReader来处理,因为觉得XmlReader简单点。

我自己做了个例子来说明,例子里的XML不是很复杂,没有子节点的。

XML 文件(a.xml):

<?xml version="1.0" encoding="utf-8" ?>
<PROFILE>
<PROFILEID>0001</PROFILEID>
<DESCIPTION>我的内容</DESCIPTION>
<URL><![CDATA[http://www.bclc.com/app/DidYouWin/WinningNumbers/Lotto649Print.asp?YEAR=2000&MONTH=6&DRAW_DATE=&GAMEID=1]]></URL>
<NUMBERS>6</NUMBERS>
<BONUS>true</BONUS>
</PROFILE>


XSD文件(a.xsd):

<?xml version="1.0" encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="PROFILE">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PROFILEID" type="xsd:int" />
<xsd:element name="DESCIPTION" type="xsd:string" />
<xsd:element name="URL" type="xsd:string" />
<xsd:element name="NUMBERS" type="xsd:int" />
<xsd:element name="BONUS" type="xsd:boolean" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>


C#文件

XmlReaderSettings st = new XmlReaderSettings();
st.ValidationType = ValidationType.Schema;
st.Schemas.Add(null, @"a.xsd");

//设置验证xml出错时的事件。
st.ValidationEventHandler += (obj, e)=>{
//这里加上你的信息处理。
};

XmlReader xr = XmlReader.Create(@"a.xml", st);
while (xr.Read()) {
if (xr.IsStartElement()){
xr.Read();
}
}
xr.Close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: