XML Schema Definition, XSD , er den mest udbredte standard til at definere strukturen i XML-dokumenter . Skemaer kan definere begrænsninger , valgfri og krævede attributter i et XML-dokument. . Net tillader validering af XML brug af en eller flere skemaer , før behandlingen af indhold. Validering XML reducerer mængden exception handling , der skal udføres i kode og fangster fejl i data- formatering, som ellers ville blive overset. Ting du har brug
Visual Studio 2008 eller over
Intermediate niveau viden. Net programmering
Vis Flere Instruktioner
XML-validering Brug XmlReaderSettings
1
Opret et nye C # projekt af den ønskede type i Visual Studio. Hvis du ønsker at tilføje XML validering til et eksisterende projekt , kan du springe dette trin over.
2
Åbn " Tilføj nyt element " dialogboksen ved at klikke på " Project" og derefter klikke på "Tilføj klasse . "
3
Angiv et navn til den nye klasse , der overholder dine kodningsstandarder og navngivning praksis.
4
Højreklik på projektet i Solution Explorer vise projektets menu.
5.
Vælg " Tilføj Henvisning " fra menuen for at vise "Add reference " dialogboksen .
6
Vælg System.Xml fra listen af komponenter og klik derefter på " Select " knappen. Klik derefter på "OK".
7
Tilføj en metode til den nye klasse ved hjælp af følgende kode : Hej
private bool ValidateDocument (string xmlFile , string xsdFile )
< p > {
XmlReaderSettings indstillinger = new XmlReaderSettings { ValidationType
= reader = XmlReader.Create ( xmlFile , indstillinger) ,
prøv
{
while ( reader.Read ());
returnere sandt ; < br >
}
catch ( XmlSchemaValidationException ex )
{
//angiver en validering opstod
return false ; .
}
}
denne kode belastninger XML ind i en XMLReader og XML Schema i en XMLSchemaSet . Alle attributter og elementer i XML-dokumentet er valideret , når dokumentet læses , er der ingen grund til at besøge elementer individuelt. Hvis XML- dokumentet ikke er gyldigt et XmlSchemaValidationException kastes . Undtagelsen omfatter en fejlmeddelelse , linje antal og placering , hvor fejlen opstod . . Behandling stopper på det første stødte fejl
p Hvis du ønsker at behandle hele dokumentet og se alle fejl , ikke blot den første fejl , kan du tilføje en fejlbehandleren for ValidationEventHandler hændelse ved hjælp af følgende kode : Hej
settings.ValidationEventHandler + = ValidationHandler ,
static void ValidationHandler (objekt afsender , ValidationEventArgs e )
{
//proces hændelse her
}
XML-validering Brug LINQ
8
Opret en ny C # projekt af den ønskede type i Visual Studio. Hvis du ønsker at tilføje XML validering til et eksisterende projekt , kan du springe dette trin over.
9
Åbn " Tilføj nyt element " dialogboksen ved at klikke på " Project" og derefter klikke på "Tilføj klasse . "
10
Angiv et navn til den nye klasse , der overholder dine kodningsstandarder og navngivning praksis.
11
Højreklik på projektet i Solution Explorer til at vise projektet menu.
12
Vælg " Tilføj Henvisning " fra menuen for at vise "Add reference " dialogboksen .
13
Select System.Xml og System.Linq fra liste over komponenter , og klik derefter på " Select " knappen. Klik derefter på "OK".
14
Tilføj en metode til den nye klasse ved hjælp af følgende kode : Hej
private bool ValidateDocument (string xmlFile , string xsdFile )
< p > {
//Opret XML-dokumentet til at validere mod
XDocument xDoc = XDocument.Load ( xmlFile , LoadOptions.PreserveWhitespace ) .
XmlSchemaSet schema = new XmlSchemaSet ( ),
bool ISERROR = new bool ( ) //Standard er falsk
int countError = 1; . . //Tæller antallet af fejl har genereret
//Tilføj skemaet fil, du ønsker at validere mod
schema.Add ( null, xsdFile ) . !
//Call validere og bruge en LAMBDA Expression som forlænget metode
< p > //Må ikke du elsker. NET 3.5 og LINQ ...
xDoc.Validate ( skema ( afsender, e) = >
{ switch ( e.Severity ) < br >
{ tilfælde XmlSeverityType.Error : Hej
break;
tilfælde XmlSeverityType.Warning : Hej
break;
}
< p > countError + +;
ISERROR = true //Hvis fejlen brande , flag det at håndtere , når opkaldet er afsluttet
}
, true ) . //sand fortæller validere ringe til at befolke den post- schema - validering
//som du får brug for senere, hvis du ønsker at dykke en ingen dybere ...
afkast ER.FEJL ;
}
denne kode belastninger XML ind i en XDocument og XML Schema i en XMLSchemaSet . Det kalder derefter Valider metoden på XDocument bruge en lambda udtryk som ValidationEventHandler .