C#使用xsd文件验证XML格式是否正确的实现方法

作者:袖梨 2022-06-25

本文实例讲述了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);

}

 

相关文章

精彩推荐