XSd に対して xml ファイルを検証するためのアプリケーションを構築します。あるノードでエラーが発生した場合、例外がスローされます。その例外では、行番号と行位置のみを取得できます。そのノードの maxlength 値を取得する方法。
MemoryStream xml = new MemoryStream();
string xsd;
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("", Application.StartupPath + "\\std_imaging.xsd");
settings.ValidationEventHandler += MyValidationEventHandler;
var v = XmlReader.Create(filename, settings);
while (v.Read())
{
string a1 = v.ValueType.Name.Length.ToString();
string name = v.NodeType + v.Name + v.ValueType + v.Value.ToString();
}
public void MyValidationEventHandler(object sender, ValidationEventArgs args)
{
schemaResult = false;
textBox1.Text = textBox1.Text + (Environment.NewLine + args.Message +
Environment.NewLine + "Location(" + args.Exception.LineNumber +
"," + args.Exception.LinePosition + ")" + Environment.NewLine);
}
this is my code.