<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FXML%2FXML_Validation</id>
		<title>VB.Net/XML/XML Validation - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FXML%2FXML_Validation"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/XML/XML_Validation&amp;action=history"/>
		<updated>2026-04-06T00:08:36Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/XML/XML_Validation&amp;diff=292&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/XML/XML_Validation&amp;diff=292&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/XML/XML_Validation&amp;diff=293&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/XML/XML_Validation&amp;diff=293&amp;oldid=prev"/>
				<updated>2010-05-26T12:42:33Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Console Validator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Xml.Schema&lt;br /&gt;
    Public Class MainClass&lt;br /&gt;
        Public Shared Sub Main(ByVal args As String())&lt;br /&gt;
            Dim xmlValidator As New ConsoleValidator&lt;br /&gt;
            Dim success As Boolean = xmlValidator.ValidateXML(args(0), args(1))&lt;br /&gt;
            If Not success Then&lt;br /&gt;
                Console.WriteLine(&amp;quot;Validation failed.&amp;quot;)&lt;br /&gt;
            Else&lt;br /&gt;
                Console.WriteLine(&amp;quot;Validation succeeded.&amp;quot;)&lt;br /&gt;
            End If&lt;br /&gt;
        End Sub&lt;br /&gt;
    End Class&lt;br /&gt;
    Public Class ConsoleValidator&lt;br /&gt;
        Private failed As Boolean&lt;br /&gt;
        Public Function ValidateXML(ByVal xmlFileName As String, ByVal schemaFileName As String)&lt;br /&gt;
            Dim settings As New XmlReaderSettings&lt;br /&gt;
            settings.ValidationType = ValidationType.Schema&lt;br /&gt;
            Dim schemas As New XmlSchemaSet&lt;br /&gt;
            settings.Schemas = schemas&lt;br /&gt;
            schemas.Add(Nothing, schemaFileName)&lt;br /&gt;
            AddHandler settings.ValidationEventHandler, AddressOf HandleValidationEvents&lt;br /&gt;
            Dim validator As XmlReader = XmlReader.Create(xmlFileName, settings)&lt;br /&gt;
            failed = False&lt;br /&gt;
            Try&lt;br /&gt;
                While validator.Read()&lt;br /&gt;
                End While&lt;br /&gt;
            Catch ex As Exception&lt;br /&gt;
                Console.WriteLine(ex.Message)&lt;br /&gt;
                failed = True&lt;br /&gt;
            End Try&lt;br /&gt;
            validator.Close()&lt;br /&gt;
            Return Not failed&lt;br /&gt;
        End Function&lt;br /&gt;
        Private Sub HandleValidationEvents(ByVal sender As Object, ByVal args As ValidationEventArgs)&lt;br /&gt;
            failed = True&lt;br /&gt;
            Console.WriteLine(args.Message)&lt;br /&gt;
        End Sub&lt;br /&gt;
    End Class&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Handle validation event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Public Class Example9&lt;br /&gt;
    Shared Sub Main&lt;br /&gt;
        Dim doc As System.Xml.XmlDocument&lt;br /&gt;
        Dim editor, editor2 As System.Xml.XPath.XPathNavigator&lt;br /&gt;
        Dim writer As System.Xml.XmlWriter&lt;br /&gt;
        Dim schemaSet As System.Xml.Schema.XmlSchemaSet&lt;br /&gt;
        Dim handler As System.Xml.Schema.ValidationEventHandler&lt;br /&gt;
        doc = New System.Xml.XmlDocument()&lt;br /&gt;
        doc.Load(&amp;quot;pubs.xml&amp;quot;)&lt;br /&gt;
        For Each editor In doc.CreateNavigator().Select(&amp;quot;/pubs/titles[authors/@au_lname=&amp;quot;Green&amp;quot;]&amp;quot;)&lt;br /&gt;
            editor2 = editor.SelectSingleNode(&amp;quot;authors[@au_lname!=&amp;quot;Green&amp;quot;]&amp;quot;)&lt;br /&gt;
            If Not IsNothing(editor2) Then&lt;br /&gt;
                editor2.DeleteSelf()&lt;br /&gt;
            End If&lt;br /&gt;
            writer = editor.AppendChild()&lt;br /&gt;
            writer.WriteStartElement(&amp;quot;authors&amp;quot;)&lt;br /&gt;
            writer.WriteAttributeString(&amp;quot;au_lname&amp;quot;, &amp;quot;A&amp;quot;)&lt;br /&gt;
            writer.WriteAttributeString(&amp;quot;au_fname&amp;quot;, &amp;quot;B&amp;quot;)&lt;br /&gt;
            writer.Close()&lt;br /&gt;
        Next&lt;br /&gt;
        editor = doc.CreateNavigator()&lt;br /&gt;
        schemaSet = New System.Xml.Schema.XmlSchemaSet()&lt;br /&gt;
        schemaSet.Add(Nothing, &amp;quot;pubs.xsd&amp;quot;)&lt;br /&gt;
        schemaSet.rupile()&lt;br /&gt;
        handler = New System.Xml.Schema.ValidationEventHandler(AddressOf ValidationCallback)&lt;br /&gt;
        doc.Save(&amp;quot;output.xml&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub ValidationCallback(ByVal sender As Object, ByVal e As System.Xml.Schema.ValidationEventArgs)&lt;br /&gt;
        System.Console.WriteLine(e.Message)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Validate XML document with Validation Error Handler==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Xml&lt;br /&gt;
Imports System.Xml.Schema&lt;br /&gt;
Imports System.IO&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Imports System.Data&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    &lt;br /&gt;
    Shared Sub Main()&lt;br /&gt;
        Dim xtr As New XmlTextReader(&amp;quot;book.xml&amp;quot;)&lt;br /&gt;
        Dim xvr As New XmlValidatingReader(xtr)&lt;br /&gt;
        xvr.ValidationType = ValidationType.Schema&lt;br /&gt;
        AddHandler xvr.ValidationEventHandler, _&lt;br /&gt;
                   New ValidationEventHandler(AddressOf ValidationErrorHandler)&lt;br /&gt;
        While xvr.Read()&lt;br /&gt;
            If TypeOf xvr.SchemaType Is XmlSchemaComplexType Then&lt;br /&gt;
                Console.WriteLine(&amp;quot;{0} - {1}&amp;quot;, xvr.NodeType, xvr.Name)&lt;br /&gt;
                While xvr.MoveToNextAttribute()&lt;br /&gt;
                    Console.WriteLine(&amp;quot;  {0} - {1}: {2}&amp;quot;, _&lt;br /&gt;
                                        xvr.NodeType, xvr.Name, xvr.Value)&lt;br /&gt;
                End While&lt;br /&gt;
            End If&lt;br /&gt;
        End While&lt;br /&gt;
    End Sub&lt;br /&gt;
    Shared Sub ValidationErrorHandler(ByVal sender As Object, _&lt;br /&gt;
                               ByVal args As ValidationEventArgs)&lt;br /&gt;
        Console.WriteLine(&amp;quot;XML Document Validation Failure&amp;quot;)&lt;br /&gt;
        Console.WriteLine()&lt;br /&gt;
        Console.WriteLine(&amp;quot;The ValidatingReader Failed with severity : {0}&amp;quot;, _&lt;br /&gt;
                                                                args.Severity)&lt;br /&gt;
        Console.WriteLine(&amp;quot;The failure message was: {0}&amp;quot;, args.Message)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;lt;?xml version = &amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;quot;&amp;lt;books xmlns = &amp;quot;x-schema:book.xdr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;book&amp;gt;&lt;br /&gt;
&amp;quot;      &amp;lt;title&amp;gt;C# How to Program&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;book&amp;gt;&lt;br /&gt;
&amp;quot;      &amp;lt;title&amp;gt;Java How to Program, 4/e&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;book&amp;gt;&lt;br /&gt;
&amp;quot;      &amp;lt;title&amp;gt;Visual Basic .NET How to Program&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;book&amp;gt;&lt;br /&gt;
&amp;quot;      &amp;lt;title&amp;gt;Advanced Java 2 Platform How to Program&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;book&amp;gt;&lt;br /&gt;
&amp;quot;      &amp;lt;title&amp;gt;Python How to Program&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;quot;   &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;quot;&amp;lt;/books&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>