XML Schema Definition, XSD , er den mest aksepterte standard for å definere strukturen av XML-dokumenter . Skjemaer kan definere begrensninger , valgfrie og nødvendige egenskaper i et XML-dokument . . Net gir validering av XML ved hjelp av ett eller flere skjemaer før behandlingen av innhold . Validere XML reduserer mengden avvikshåndtering som må utføres i koden og fanger feil i data formatering som ellers kunne oversett . Du trenger:
Visual Studio 2008 eller over
Intermediate nivå kunnskap . Net programmering
Vis flere instruksjoner
XML Validering hjelp XmlReaderSettings
en
Opprett en nye C # prosjekt av ønsket type i Visual Studio. Hvis du vil legge til XML validering i et eksisterende prosjekt , kan du hoppe over dette trinnet .
2
Åpne " Add New Item" dialogboksen ved å klikke på "Project " og deretter klikke på " Add Class. "
3
Angi et navn for den nye klassen som fester seg til koding standarder og navngi praksis.
4
Høyreklikk på prosjektet i Solution Explorer til vise prosjektet menyen .
5
Velg " Add Reference " fra menyen for å vise " Add Reference " i dialogboksen .
6
Velg System.Xml fra listen av komponenter og deretter klikker du på " Select "-knappen . Deretter klikker du "OK".
7
Legg en metode til den nye klassen med følgende kode :
privat bool ValidateDocument ( string xmlFile , string xsdFile )
< p > {
XmlReaderSettings innstillinger = ny XmlReaderSettings { ValidationType
= reader = XmlReader.Create ( xmlFile , innstillinger) ;
prøve
{
while ( reader.Read ( ));
return true ;
}
fangst ( XmlSchemaValidationException ex )
{
//angir en validering oppstod
return false ; .
}
}
Denne koden laster XML inn i en XmlReader og et XML-skjema til en XMLSchemaSet . Alle attributter og elementer i XML-dokumentet er validert når dokumentet blir lest , og det er ikke nødvendig å besøke elementene individuelt . Hvis XML- dokumentet er ikke gyldig en XmlSchemaValidationException er kastet . Unntaket omfatter en feilmelding , linjenummer og posisjon der feilen oppstod . . Behandling stopper på første feilen oppstått
p Hvis du ønsker å behandle hele dokumentet og se alle feil , ikke bare den første feilen , kan du legge en feil behandleren for ValidationEventHandler hendelsen ved hjelp av følgende kode :
settings.ValidationEventHandler + = ValidationHandler ;
static void ValidationHandler ( objekt avsenderen , ValidationEventArgs e )
{
//prosess arrangement her
}
XML Validering bruke LINQ
8
Opprett en ny C # prosjekt av ønsket type i Visual Studio. Hvis du vil legge til XML validering i et eksisterende prosjekt , kan du hoppe over dette trinnet .
9
Åpne " Add New Item" dialogboksen ved å klikke på "Project " og deretter klikke på " Add Class. "
10
Angi et navn for den nye klassen som fester seg til koding standarder og navngi praksis.
11
Høyreklikk på prosjektet i Solution Explorer til å vise prosjektet menyen .
12
Velg " Add Reference " fra menyen for å vise " Add Reference " i dialogboksen .
13
Select System.Xml og System.Linq fra liste over komponenter og klikk deretter på "Select "-knappen . Deretter klikker du "OK".
14
Legg en metode til den nye klassen med følgende kode :
privat bool ValidateDocument ( string xmlFile , string xsdFile )
< p > {
//Opprett XML-dokumentet for å validere mot
XDocument xDoc = XDocument.Load ( xmlFile , LoadOptions.PreserveWhitespace ) ; .
XmlSchemaSet schema = new XmlSchemaSet ( ) ;
bool ISERROR = new bool (); //standard er falsk
int countError = 1; . . //Teller antall feil har generert
//Legg skjemaet filen du ønsker å validere mot
schema.Add (null, xsdFile ) ; . !
//Ring validere og bruke en LAMBDA Expression som utvidet metode
< p > //Gjør ikke du elsker . NET 3.5 og LINQ ...
xDoc.Validate ( skjema, ( avsender, e ) = >
{ switch ( e.Severity )
{case XmlSeverityType.Error : en
pause,
tilfelle XmlSeverityType.Warning : en
pause,
}
< p > countError + +;
ISERROR = true; //Hvis feilen branner , flagge det å håndtere når samtalen er ferdig
}
, true); . //ekte forteller validere ringe for å befolke post- schema - validering
//som du vil trenge senere , hvis du ønsker å dykke en lite dypere ...
retur ISERROR ;
}
Denne koden laster XML inn i en XDocument og et XML-skjema til en XMLSchemaSet . Det kaller deretter Valider metoden på XDocument ved bruk av lambda uttrykk som ValidationEventHandler .