(aktualisiert!)

IT-Trainings in Zeiten des Corona-Virus, Veranstaltungstipps der www.gfu.net:
Corona-Virus: Umstellung auf Remote-Schulungen *** Eigener Schulungs-PC mit Remote Zugang *** Der Trainer kann alles wie geplant schulen *** Kommunikation ist sichergestellt *** Schulung XML Einfuehrung und Grundlagen *** Schulung Python fuer Programmiereinsteiger *** Schulung XML, XSLT, XPath, XSL-FO Einfuehrung *** Schulung Java/JSP/HTML/JDBC/XML Komplett *** Schulung XML mit Altova XMLSpy *** Schulung XML Grundlagen, XSL-FO, SVG, DocBook, DITA *** Schulung XML - der professionelle Ueberblick *** Schulung XML-Schema Intensiv *** Schulung Einstieg in die Programmierung *** Schulung C++ fuer Programmiereinsteiger *** Schulung VB.NET fuer Visual Basic-Programmierer ***


XSD: Datenvalidierung / XML-Schema: Datenvalidierung mit C#.NET

XML-Schema: Datenvalidierung mit C#.NET

XML-Schema: Datenvalidierung mit C#.NET

➪ Die Datenvalidierung eines XML-Dokuments gegenüber DTD oder XML-Schema kann mit leistungsfähigen Klassen in C#.NET durchgeführt werden.

Auf dieser Seite:

Für einen einfachen Einstieg soll die folgende Logik dienen, die die Namespaces System.Xml bzw. System.Xml.Schema einbezieht, und die durch den Kommandoaufruf mit den entsprechenden Parametern gestartet werden kann.


using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Xml.Serialization;
using System.Xml;
using System.Xml.Schema;
using System.IO;
  class Program
  {    
    /// <summary>
    /// Validiert ein XML-Dokument aufgrund eines XML-Schemas
    /// </summary>
    static void Main(string[] args)
    {
      Action<object, ValidationEventArgs> ValidationCallback 
         = (sender, args) => {
        if (args.Severity == XmlSeverityType.Warning)
          Console.Write("WARNING: ");
        else if (args.Severity == XmlSeverityType.Error)
          Console.Write("ERROR: ");
        else Console.WriteLine("Was ist hier los?");
        Console.WriteLine(args.Message);
      };
      string xsdfile = @"Ort_Elemente_tab.xsd";
      string xmlfile = @"Ort_Elemente.xml";
      XmlTextReader reader = new XmlTextReader(xsdfile);
      XmlSchema myschema = XmlSchema.Read(
               reader, 
               new ValidationEventHandler(ValidationCallback));
      // Schema-Ausgabe auf Console
      myschema.Write(Console.Out);
      // Reader-Konfiguration mit ReaderSettings
      XmlReaderSettings settings = new XmlReaderSettings();
      settings.Schemas.Add(myschema);
      settings.ValidationType = ValidationType.Schema;
      // Setze ValidationHandler
      settings.ValidationEventHandler += 
               new ValidationEventHandler(ValidationCallback);
      XmlReader xreader = XmlReader.Create(xmlfile, settings);
      Console.WriteLine("\n\nStart Reader");
      while (xreader.Read()) { }
      reader.Close();
      Console.WriteLine("End Reader");
      Console.ReadLine();
    }
  }

XML-Validierung gegen DTD mit C#.NET


var messages = new StringBuilder();
var settings = new XmlReaderSettings { 
               ValidationType = ValidationType.DTD, 
               DtdProcessing = DtdProcessing.Parse, 
               XmlResolver = new XmlUrlResolver() };
settings.ValidationEventHandler 
              += (sender, args) 
              => messages.AppendLine(args.Message);
var reader = XmlReader.Create(xmlfile, settings);
while (reader.Read()) { }
if (messages.Length > 0)
{
  for (int i = 0; i < messages.Length; i++)
  {
    Console.WriteLine($@"ERROR: {messages[i].ToString()}");
  }
}
reader.Close();

wg / 31. Dezember 2019



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/cs_XML_XSDValidating.html