The XML Schema 
Validator checks if a given XML document is well formed and has a valid schema 
model. If it finds the document is not a valid XML schema, it generates the 
error telling the problem in the schema.
The Browser button 
lets you browse for an xml document.
![XmlSchema-in-vb.net.jpg]()
The Validate button validates the schema and generates message "Document is 
valid" if it finds an schema as a valid schema.
![XmlSchema1-in-vb.net.gif]()
If an schema is not a 
valid schema, it generates to the detailed error listed in the list box.
![XmlSchema2-in-vb.net.gif]()
I have used the 
XmlValidatingReader class. The source code on the Validate button is listed in 
the following table.
Private Sub validate_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'reset UI 
information 
[error] = ""
result.Text = ""
resultErrors.Text = ""
isValid = True
header = ""
Try
Dim xml As New XmlTextReader(file.Text)
Dim xsd As New XmlValidatingReader(xml)
'use schemas 
or DTDs 
If documentTypeSchema.Checked 
= True Then
'schemas - 
YAAAAAAA 
xsd.ValidationType = 
ValidationType.Schema
Else
If documentTypeNone.Checked 
= True Then
'so you just 
want to see if your XML is well formed? 
xsd.ValidationType = 
ValidationType.None
Else
'why do you 
want to learn this? its old, no one uses it and they are laughing behind your 
back. Shame on you! 
xsd.ValidationType = 
ValidationType.DTD
End If
End If 'and 
validation errors events go to... 
AddHandler xsd.ValidationEventHandler, AddressOf MyValidationEventHandler
'wait until 
the read is over, its occuring in a different thread - kinda like when your 
walking to get a cup of coffee and your mind is in Hawaii 
While xsd.Read()
End While
xsd.Close()
' Check 
whether the document is valid or invalid. 
If isValid Then
header = "Document is valid"
Else
header = "Document is invalid"
End If
Catch a As UnauthorizedAccessException
'dont have 
access permission 
[error] = a.Message
Catch a As Exception
'and other 
things that could go wrong 
[error] = a.Message
End Try
resultErrors.Text = [error]
result.Text = header
End Sub 'validate_Click