ARTICLE
XML Schema Validator
Tags: .NET, ListBox, Schema Validator, Valid Schema, VB.NET, XML, XML Schema, XML Schema Validator, XML Schema Validator in VB.NET., XmlTextReader, XmlValidatingReader
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.
Download
Files:
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.

The Validate button validates the schema and generates message "Document is valid" if it finds an schema as a valid schema.

If an schema is not a valid schema, it generates to the detailed error listed in the list box.
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