次のようなコールバック メソッドを使用してスキーマに対して xml を検証できることはわかっていますが、イベント ドリブンではなく同期的に検証する方法はありますか?
私が考えた 1 つの方法は、クラス メンバーのブール値フラグ IsValidated=false を設定してから、
xml.Validate(ValidationEventHandler) を呼び出すことです。イベント ハンドラーは、終了後に IsValidated=true を設定します。その間、フラグが true に設定されるまでループ チェックを実行してから続行します。
これは .Net 3.5 用です。
    public bool ValidateSchema(string xmlPath, string xsdPath)
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(xmlPath);
        xml.Schemas.Add(null, xsdPath);
        xml.Validate(ValidationEventHandler); 
    }
OK、テストを行ったところ、新しいコードが実行される前にコールバックが完了するまで xml.validate が実際に待機しているようです。
次の例では、MessageBox.Show("After Validate"); myValidationEventHandler の実行後に常に発生します。
また、これを確認するためにコードをステップ実行しました。
だから、私の質問は問題ではないと思います。
// load etc.
...
xmlValidate(myValidationEventHandler);
MessageBox.Show("After Validate");
    private void myValidationEventHandler(object sender, ValidationEventArgs e)
    {
        for (double i = 0; i < 100000; i++)
        {
            textBox1.Text = i.ToString();
            Application.DoEvents();
        }
    // do stuff with e
    }