0
SOAPサービスからxmlを受け取って文字列に変換し、スキーマに対して検証します。検証は円滑に行われますが、データセットに配置してdatagridviewに配置しようとすると、ルート要素が見つからないと表示されます。以下は私のコード、xml文字列がCのスキーマに対して検証された後にデータセットにロードされない
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];
}
は驚くべき事は、私が検証なしでデータセットに文字列を読み込むとき、それがデータセットにロードし、GridViewの上に表示されていることです。私はこれと混同しています、これを解決するために私を助けてください。