Um eine XSD-Validierung in Gang zu setzen, müssen Sie einen XmlReader mit ReaderSettings verwenden, der definiert, für welche XSD-Datei eine Validierung durchgeführt werden soll und welche Ereignisse Validierungsfehler auslösen sollen.
Um die XSD-Datei, verwenden Sie so etwas wie dieses zu lesen:
StreamReader xsdReader = new StreamReader(xsdFileName);
XmlSchema Schema = new XmlSchema();
Schema = XmlSchema.Read(xsdReader, new ValidationEventHandler(XSDValidationEventHandler));
und den Event-Handler alle Fehler abzufangen, die auftauchen könnte, während die XSD Lesen (zB wenn sie in sich selbst ungültig ist) hätte dies Unterschrift:
private static void XSDValidationEventHandler(object sender, ValidationEventArgs e)
Die Fehlermeldung ist in e.Message.
Sobald Sie die XSD geladen im Speicher haben, Ihr XmlReader instanziiert und die richtigen Einstellungen verwenden XSD Validierung zu erzwingen:
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);
ReaderSettings.ValidationEventHandler += new ValidationEventHandler(XMLValidationEventHandler);
Dieser Fehler Event-Handler hat die gleiche Signatur wie die oben.
Dann lesen Sie die Datei tatsächlich von Anfang bis Ende:
XmlTextReader xmlReader = new XmlTextReader(xmlFileName);
XmlReader objXmlReader = XmlReader.Create(xmlReader, ReaderSettings);
while (objXmlReader.Read()) { }
Sollten Validierungsfehler aufgetreten, wurde Ihr Event-Handler aufgerufen, und Sie können die Fehlermeldungen in dort und zum Beispiel erfassen Zeigen Sie sie dem Benutzer an (oder haben Sie einfach ein Flag, das anzeigt, ob die Validierung erfolgreich war oder nicht - Ihr Anruf :))
Ich denke, das ist, was ich gesucht habe. Vielen Dank! – dtc