I recieve a xml from my SOAP service and I convert it to a string and validate against a schema. Validation happens smoothly but when I try to put it to a dataset to put it to my datagridview it says that root element is missing. Below is my code,
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { XmlReaderSettings xmlReaderSttngs = new XmlReaderSettings(); XmlDocument xmlDoc = new XmlDocument(); DateTime date = dateTimePicker1.Value; SoapWebReference.SOAPWebService SoapService= new SoapWebReference.SOAPWebService(); string xmlString = SoapService.getSchedule(instructorId, date).OuterXml.ToString(); xmlReaderSttngs.ValidationType = ValidationType.Schema; xmlReaderSttngs.Schemas.Add("","SoapSchema.xsd"); StringReader reader = new StringReader(xmlString); XmlReader xReader; try { xReader = XmlReader.Create(reader, xmlReaderSttngs); xmlDoc.Load(xReader); showSchedule(reader); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void showSchedule(StringReader reader) { DataSet dt = new DataSet(); dt.ReadXml(reader); dataGridView1.DataSource = dt.Tables[0]; } The surprising thing is that when I load the string to the dataset without validation, it loads to the dataset and shows in the gridview. I'm confused with this, please help me to solve this.
No comments:
Post a Comment