public static bool XmlValidate(XDocument xml, Enumeration.PurposeType purpose, string path, out string message) { var result = true; message = string.Empty; var schema = GetSchema(purpose, path); if (schema == null) { Console.WriteLine("wrong purpose"); return(false); } try { xml.Validate(schema, ValidationEventHandler); } catch (Exception e) { //Console.WriteLine(e.Message); message = e.Message; result = false; } return(result); }
/// <summary> /// Get XML schema by purpose /// </summary> /// <param name="purpose"></param> /// <param name="path"></param> /// <returns></returns> private static XmlSchemaSet GetSchema(Enumeration.PurposeType purpose, string path) { var schema = new XmlSchemaSet(); switch (purpose) { case Enumeration.PurposeType.Creation: //step 1 case Enumeration.PurposeType.T1Amendment: //step 3 schema.Add("", path + "PurchaseOrderv1_0.xsd"); break; case Enumeration.PurposeType.Confirmation: //step 2 case Enumeration.PurposeType.T1AmendmentConfirmation: //step 4 case Enumeration.PurposeType.T2Amendment: //step 5 schema.Add("", path + "POResponseAndAmendmentv1_0.xsd"); break; case Enumeration.PurposeType.T2AmendmentAcknowledgement: //step 6 case Enumeration.PurposeType.CancellationConfirmation: //step 8 schema.Add("", path + "Acknowledgementv1_0.xsd"); break; case Enumeration.PurposeType.Cancellation: //step 7 schema.Add("", path + "POCancellationv1_0.xsd"); break; default: schema = null; break; } return(schema); }