XML Schema Definition , XSD , ist die am weitesten akzeptierten Standard für die Definition der Struktur von XML-Dokumenten . Schemas können Einschränkungen , optionalen und erforderlichen Attribute innerhalb eines XML-Dokuments zu definieren. . Net ermöglicht die Validierung von XML mit einem oder mehreren Schemata vor der Verarbeitung der Inhalte . Validieren von XML reduziert die Menge Ausnahmebehandlung , die im Code ausgeführt werden müssen und fängt Fehler in der Formatierung von Daten , die andernfalls vielleicht übersehen werden könnten . Was Sie brauchen
Visual Studio 2008 oder höher
Mittelstufe Wissen . Net Programmierung
anzeigen Weitere Anweisungen Suche XML Validierung mithilfe XmlReaderSettings
1
erstellen neue C #-Projekt des gewünschten Typs in Visual Studio. Wenn Sie XML-Validierung zu einem vorhandenen Projekt hinzufügen möchten, können Sie diesen Schritt überspringen .
2
Öffnen Sie die "Add New Item" Dialog über die Schaltfläche "Projekt" und dann auf "Add -Klasse. "
3
Geben Sie einen Namen für die neue Klasse , die auf Ihre Coding-Standards und Praktiken Namensgebung haftet .
4
der rechten Maustaste auf das Projekt im Projektmappen-Explorer zeigt das Projekt-Menü .
5
Wählen Sie " Verweis hinzufügen " aus dem Menü , um die "Add Reference" Dialogfeld anzuzeigen.
6
Wählen Sie aus der Liste System.XML von Komponenten und klicken Sie dann auf die Schaltfläche "Auswählen" . Klicken Sie dann auf "OK".
7
Fügen Sie eine Methode , um die neue Klasse mit dem folgenden Code :
private bool ValidateDocument (string xmlFile , string xsdFile )
< p > {
XmlReaderSettings Einstellungen = new XmlReaderSettings { ValidationType
= reader = XmlReader.Create ( xmlFile , Einstellungen) ;
versuchen
{
while ( reader.Read ());
return true ;
}
catch ( XmlSchemaValidationException ex) {
//zeigt eine Validierung Fehler aufgetreten
return false; .
} }
Dieser Code lädt XML in einen XmlReader und ein XML-Schema in einem XmlSchemaSet . Alle Attribute und Elemente im XML-Dokument validiert werden , wenn das Dokument zu lesen, gibt es keine Notwendigkeit , Elemente einzeln zu besuchen. Wenn das XML-Dokument ist nicht gültig ein XmlSchemaValidationException ausgelöst. Die Ausnahme enthält eine Fehlermeldung , Zeilennummer und Position, wo der Fehler aufgetreten ist . . Verarbeitung stoppt beim ersten Fehler gestoßen
Wenn Sie das gesamte Dokument zu verarbeiten und sehen Sie alle Fehler , nicht nur der erste Fehler , können Sie einen Error-Handler für ValidationEventHandler Ereignis mit dem folgenden Code :
settings.ValidationEventHandler + = ValidationHandler ;
static void ValidationHandler (object sender, ValidationEventArgs e)
{
//Prozess Veranstaltung hier
}
XML Validierung mithilfe von LINQ
8
erstellen Sie ein neues C #-Projekt des gewünschten Typs in Visual Studio. Wenn Sie XML-Validierung zu einem vorhandenen Projekt hinzufügen möchten, können Sie diesen Schritt überspringen .
9
Öffnen Sie die "Add New Item" Dialog über die Schaltfläche "Projekt" und dann auf "Add -Klasse. "
10
Geben Sie einen Namen für die neue Klasse , die auf Ihre Coding-Standards und Praktiken Namensgebung haftet .
11
der rechten Maustaste auf das Projekt im Solution Explorer das Projekt angezeigt Menü .
12
Wählen Sie " Verweis hinzufügen " aus dem Menü , um die "Add Reference" Dialogfeld anzuzeigen.
13
Select System.XML und System.Linq aus dem Liste der Komponenten und klicken Sie dann auf die Schaltfläche "Auswählen" . Klicken Sie dann auf "OK".
14
Fügen Sie eine Methode , um die neue Klasse mit dem folgenden Code :
private bool ValidateDocument (string xmlFile , string xsdFile )
< p > {
//erstellen Sie das XML-Dokument gegen validieren
XDocument xDoc = XDocument.Load ( xmlFile , LoadOptions.PreserveWhitespace ); .
XmlSchemaSet Schema = new XmlSchemaSet ( );
bool isError = new bool (); //Standardwerte auf false
int countError = 1; .. //Zählt die Anzahl der Fehler generiert
//in das Schema Datei, die Sie gegen validieren
schema.Add (null, xsdFile ); . !
//Aufruf zu validieren und mit einem Lambda-Ausdruck als erweitertes Verfahren
< p > //Weißt du nicht lieben. NET 3.5 und LINQ ...
xDoc.Validate ( Schema (sender , e) = >
{switch ( e.Severity )
{case XmlSeverityType.Error :
break;
Fall XmlSeverityType.Warning :
break; }
< p > countError + +;
isError = true; //Wenn Fehler Brände , kennzeichnen sie zu handhaben einmal Anruf abgeschlossen ist
}
, true); . //Wahre erzählt die validieren aufrufen, um den Post-Schema - Validierung
bevölkern //die Sie später brauchen , wenn Sie einen littel tiefer tauchen wollen ...
Rückkehr isError ;
}
Dieser Code lädt XML in eine XDocument und ein XML-Schema in einem XmlSchemaSet . Es ruft dann die Methode auf dem XDocument Validate mit einem Lambda-Ausdruck als ValidationEventHandler .