Avatar billede wwwbolig Nybegynder
04. juni 2002 - 11:00 Der er 4 kommentarer

Validering af XML

Hej

Jeg forsøger at lave en funktion der undersøger en XMLstreng er gyldig op imod et XML schema, men sidder lidt fast er der nogen der kan hjælpe? Den skal reuturnere true hvis strengen er ok ellers false.

public Boolean ValidateXMLInput(string strXMLData)
{
//schema. input.xsd

return true;
}
Avatar billede jakobandersen Nybegynder
04. juni 2002 - 11:23 #1
Avatar billede wwwbolig Nybegynder
04. juni 2002 - 12:45 #2
Jeg forsøger nedenstående og den tester godt nok om XML er velformed, men den melder ikke hvis optræder elementer der ikke står i schemaet.

Nogen der kan se hvad der er galt?

public Boolean ValidateXMLInput(string strXMLData)
        {
            bool bolXMLValid = true;
           
            //New XML validatingReader
            XmlValidatingReader vr = new XmlValidatingReader(strXMLData, XmlNodeType.Element, null);
            //load schema
            vr.Schemas.Add(null,"c:\\inetpub\\wwwroot\\test\\input.xsd");
            vr.ValidationType = ValidationType.Schema;

            //Validate
            try
            {
                while (vr.Read()){}
            }
            catch
            {
                bolXMLValid = false;
            }
            vr.Close();

            return bolXMLValid;
        }
Avatar billede jakobandersen Nybegynder
07. juni 2002 - 18:01 #3
Hvordan ser dit Schema og Input ud?
Avatar billede meltofte Nybegynder
07. juli 2004 - 16:19 #4
Prøv at tilføje en eventhandler. Noget i denne stil:

private string _XMLIsValid;
public Boolean ValidateXMLInput(string strXMLData)
        {
            bool bolXMLValid = true;
           
            //New XML validatingReader
            XmlValidatingReader vr = new XmlValidatingReader(strXMLData, XmlNodeType.Element, null);
           
            ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationCallback);

            //load schema
            vr.Schemas.Add(null,"c:\\inetpub\\wwwroot\\test\\input.xsd");
            vr.ValidationType = ValidationType.Schema;

            XMLIsValid = true;

            //Validate
            try
            {
                while (vr.Read()){}
            }
            catch
            {
                bolXMLValid = false;
            }
            vr.Close();
           
           
        bolXMLValid = _XMLIsValid;

            return bolXMLValid;
        }
       
public static void ValidationCallback(object sender, ValidationEventArgs args )
    {
        _XMLIsValid = False
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester