Thread: C# основной форум/Xml validation using XSD schema

Xml validation using XSD schema
Original

        

public void validateXML(string XmlSource)

        {

            

XmlDocument x = new XmlDocument();

            x.LoadXml(XmlSource);

            

XmlReaderSettings settings = new XmlReaderSettings();

            settings.CloseInput =

true;

            settings.ValidationEventHandler += Handler;

            settings.ValidationType =

ValidationType.Schema;

            settings.Schemas.Add(

null, ExtendedTreeViewSchema);

            settings.ValidationFlags =

                

XmlSchemaValidationFlags.ReportValidationWarnings |

            

XmlSchemaValidationFlags.ProcessIdentityConstraints |

            

XmlSchemaValidationFlags.ProcessInlineSchema |

            

XmlSchemaValidationFlags.ProcessSchemaLocation;

            

StringReader r = new StringReader(XmlSource);

            

using (XmlReader validatingReader = XmlReader.Create(r, settings))

            {

                

while (validatingReader.Read()) {

                    

// just loop through document

                }

            }

        

        }

        

private static void Handler(object sender, ValidationEventArgs e)

        {

            

if (e.Severity == XmlSeverityType.Error || e.Severity ==XmlSeverityType.Warning)

                System.Diagnostics.

Trace.WriteLine(String.Format("Line: {0}, Position: {1} \"{2}\"", e.Exception.LineNumber, e.Exception.LinePosition, e.Exception.Message));

        }