//創建xmlDocument
XmlDocument doc = new XmlDocument();
//創建聲明段 如<?xml version="1.0" encoding="utf-8" ?>
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);
string path = Server.MapPath("/ws/xsd/ReceiveReturn.xsd");
//驗證xml格式是否正確 通過xsd驗證
string error = "";
//聲明XmlSchema
XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add("", XmlReader.Create(path));
//聲明事件處理方法
ValidationEventHandler eventHandler = new ValidationEventHandler(delegate(object sender, ValidationEventArgs e) {
switch (e.Severity)
{
case XmlSeverityType.Error:
error += e.Message;
break;
case XmlSeverityType.Warning:
break;
}
});
doc.Schemas = schemas;
//驗證xml
doc.Validate(eventHandler);
//檢查是否有異常 如果格式不正確就拋出來
if (!"".Equals(error))
{
throw new Exception(error);
}