Private Sub Form_Resize()
' Resize the text box to the size of the form
Text1.Width = Form1.Width - 350
Text1.Height = Form1.Height - 750
End Sub
Private Sub Form_Load()
' Resize the text box to the size of the form
Text1.Top = 100
Text1.Left = 100
Text1.Width = Form1.Width - 350
Text1.Height = Form1.Height - 750
' Check "Microsoft XML, v50" from Project->References...
' in Visual Studio.
Dim er, e As IXMLDOMParseError2
Dim xd As New DOMDocument50
Dim xs As New XMLSchemaCache50
' Add xs to xd.
xs.Add "urn:books", App.Path & "\books.xsd"
Set xd.schemas = xs
xd.async = False
xd.validateOnParse = False
xd.setProperty "MultipleErrorMessages", True
msg = "Validating DOM..." & vbCrLf
' Load XML to xd.
xd.Load App.Path & "\books.xml"
Set er = xd.Validate
If er.errorCode <> 0 Then
msg = msg & "invalid dom:" & vbCrLf
msg = msg & " reason:" & vbCrLf & er.reason
msg = msg & " errorXPath:" & vbCrLf & er.errorXPath & vbCrLf
msg = msg & "parameters count: " & er.errorParametersCount
msg = msg & vbCrLf
For i = 0 To er.errorParametersCount - 1
msg = msg & " errorParameters(" & i & "): "
msg = msg & er.errorParameters(i)
msg = msg & vbCrLf
Next
Else
msg = msg & " DOM is valid:" & vbCrLf
msg = msg & xd.xml
End If
msg = msg & vbCrLf
msg = msg & "Validating nodes..." & vbCrLf
Set pNodes = xd.selectNodes("//book")
For Each pNode In pNodes
Set er = xd.validateNode(pNode)
If er.errorCode <> 0 Then
msg = msg & vbCrLf
msg = msg & "Node is invalid:" & vbCrLf
msg = msg & " reason:" & vbCrLf & er.reason
msg = msg & " errorXPath:" & vbCrLf & er.errorXPath
msg = msg & vbCrLf
msg = msg & "Parameters Count: " & er.errorParametersCount
msg = msg & vbCrLf
For i = 0 To er.errorParametersCount - 1
msg = msg & " errorParameter(" & i & "): "
msg = msg & er.errorParameters(i)
msg = msg & vbCrLf
Next
Else
msg = msg & vbCrLf
msg = msg & "Node is valid: " & vbCrLf
msg = msg & pNode.xml & vbCrLf
End If
Next
Text1 = msg
End Sub
Try It!