本文实例讲述了C#使用xsd文件验证XML格式是否正确的实现方法。分享给大家供大家参考,具体如下:
代码如下 | 复制代码 |
//创建xmlDocument XmlDocument doc =newXmlDocument(); //创建声明段 如 doc.AppendChild(doc.CreateXmlDeclaration("1.0","utf-8",null)); //创建一个根节点 KYTResults XmlElement results = doc.CreateElement("KYTResults"); //创建 ResultsStatus XmlNode resultsStatus = doc.CreateElement("ResultsStatus"); //创建Level XmlElement element = doc.CreateElement("Level"); element.InnerText = status ?"0":"1"; resultsStatus.AppendChild(element); //创建Description element = doc.CreateElement("Description"); element.InnerText = msg; resultsStatus.AppendChild(element); //创建PassKey 如果用户登录失败 将加载空字符 element = doc.CreateElement("PassKey"); element.InnerText = key; resultsStatus.AppendChild(element); results.AppendChild(resultsStatus); //END 创建 ResultsStatus //创建 DataList 数据集合 if(status) { results.AppendChild(dataList); } //END 创建一个根节点 KYTResults doc.AppendChild(results); stringpath = Server.MapPath("/ws/xsd/ReceiveReturn.xsd"); //验证xml格式是否正确 通过xsd验证 stringerror =""; //声明XmlSchema XmlSchemaSet schemas =newXmlSchemaSet(); schemas.Add("", XmlReader.Create(path)); //声明事件处理方法 ValidationEventHandler eventHandler =newValidationEventHandler(delegate(objectsender, ValidationEventArgs e) { switch(e.Severity) { caseXmlSeverityType.Error: error += e.Message; break; caseXmlSeverityType.Warning: break; } }); doc.Schemas = schemas; //验证xml doc.Validate(eventHandler); //检查是否有异常 如果格式不正确就抛出来 if(!"".Equals(error)) { thrownewException(error); } |