Я никогда не делал этого раньше, но вы могли бы использовать события NodeChanged, NodeInserted и NodeRemoved XmlDocument (см. http://msdn.microsoft.com/en-us/library/system.xml.xmldocument_events.aspx). Когда событие возникает, вы можете повторно подтвердить документ. Если проверка после сбоя вы можете отменить, удалить или заново вставить узел.
Вы также можете использовать класс XmlSchemaValidator , который будет более сложным. Он следует модели, основанной на push, и во время проверки в основном говорит вам, что будет действительным в текущей точке. Я полагаю, вы могли бы проверить до точки вставки, а затем проверить, чтобы увидеть узел для вставки будет действительным в этой точке. Однако я использовал это только для генерации XML-документов, соответствующих набору схем; Я никогда не использовал его для простой проверки.