標籤:des style http java color 使用
C# 使用xsd檔案驗證XML 格式是否正確
核心範例程式碼:
C#代碼
- //建立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 如果使用者登入失敗 將載入Null 字元
- 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);
- }