tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
759
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dila71 dila71 ist offline Mitglied Silber
    Registriert seit
    Jul 2005
    Beiträge
    76
    hallo,

    ich möchte ein XML-Dokument mit einem festen XSD-Dokument gleichen Namens validieren. Dabei soll die im XML angegebene XSD-Datei ignoriert werden.

    Bisher versuche ich das folgende:
    _xmlFilepath = Pfad zur XML-Datei
    _schemapath = Pfad zur XSD Datei

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    XmlValidatingReader validator = new XmlValidatingReader( new XmlTextReader( _xmlFilepath ) );
                
    //Schema collection zum uberprufen XML Datei
    XmlSchemaCollection schemaCol = new XmlSchemaCollection();
    //schema bestimmen
    schemaCol.Add( null, new XmlTextReader( _schemapath ));
    validator.ValidationType = ValidationType.Schema;
    validator.Schemas.Add( schemaCol );
     try
    {
        while( validator.Read() );
        return true;
    }
    catch
            return false
    Leider kommt auch bei einem File, dessen Elementlängen weit über den MaxLengths der Elemente Liegen immer true raus.


    Kann mir jemand sagen, wo mein Fehler ist?


    Tschau und Danke
    Dirk
     

  2. #2
    drvj drvj ist offline Mitglied Silber
    Registriert seit
    Dec 2003
    Ort
    Oberursel bei Frankfurt a.M.
    Beiträge
    69
    Hallo,
    ich habe ebenfalls einmal vor dem Problem der Validierung einer Xml Datei anhand einer XSD Datei gestanden.
    Hier ist meine Version für .Net 2.0
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    public class SchemaValidator
        {
            private bool isValid = true;
            private String xsdfilename;
     
            public SchemaValidator(String filename)
            {
               xsdfilename = filename;
            }
     
            public bool Validate(string filename)
            {
                isValid = true;
     
                XmlReaderSettings settings = new XmlReaderSettings();
     
                settings.Schemas.Add(null, xsdfilename);
                settings.ValidationType = ValidationType.Schema;
                settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
                settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings;
     
                XmlReader reader = XmlReader.Create(filename, settings);
     
                try
                {
                    while (reader.Read()) ;
                }
                catch
                {
                    isValid = false;
                }
     
                reader.Close();
     
                return isValid;
            }
     
            private void ValidationCallBack(object sender, ValidationEventArgs e)
            {
                isValid = false;
            }
        }

    mfg,

    Jens
     

  3. #3
    dila71 dila71 ist offline Mitglied Silber
    Registriert seit
    Jul 2005
    Beiträge
    76
    Danke für die Antwort.
    Leider muss ich mit 1.1 arbeiten. Ich werde morgen mal probieren, ob es auch unter 1.1 so funktioniert.
    Ich werde dann die Ergebnisse berichten.


    Edit:
    Leider scheint der XmlReaderSettings eine Neuerung des .Net 2.0 zu sein.
    Ich wäre also zu hinweisen für 1.1 dankbar

    Tschau
    Dirk
    Geändert von dila71 (30.11.05 um 14:17 Uhr)
     

  4. #4
    drvj drvj ist offline Mitglied Silber
    Registriert seit
    Dec 2003
    Ort
    Oberursel bei Frankfurt a.M.
    Beiträge
    69
    Ja ist für .Net 2.0, da XmlValidatingReader als obsolete gesetzt wurde.
    Hier ist ein Link zur MSDN mit dem entsprechenden Beispiel für 1.1
    MSDN

    mfg Jens
     

Ähnliche Themen

  1. WPF / Validieren einer Textboxeingabe?
    Von keks1984 im Forum .NET WPF & Silverlight
    Antworten: 10
    Letzter Beitrag: 17.01.08, 09:33
  2. Fehler beim validieren einer XML mit einer XSD
    Von MiMi im Forum XML Technologien
    Antworten: 6
    Letzter Beitrag: 16.01.08, 12:12
  3. Mit JDOM XML-Datei gegen XML-Schema validieren
    Von mmueller78 im Forum Java
    Antworten: 1
    Letzter Beitrag: 17.08.07, 14:15
  4. Große XML-Datei validieren
    Von lubu im Forum Java
    Antworten: 4
    Letzter Beitrag: 08.05.07, 17:35
  5. Datei validieren
    Von CodeFatal im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 08.03.07, 14:45