Visual Basic Code (errorParams.frm)
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!
- Copy the XML data (books.xml), and paste it into a text file. Save the file as books.xml.
- Copy the XSD listing (books.xsd), and paste it into a text file. Save the file as books.xsd, in the same directory where you saved books.xml.
- Create a Standard EXE project in Visual Basic. Save the empty project as errorParams.vbp to the same directory where you saved books.xml and books.xsd. Name the form file errorParams.frm.
- Create a reference to MSXML 5.0. To do this, select References... from the Project menu, then check the box for Microsoft XML, v5.0.
- Double click on the TextBox icon from the tools menu. A TextBox control will appear on the project's form named "Text1". Select the Text1 control and and in the Properties window, modify the following settings: select "2 - Vertical" as the value for the ScrollBars property and set the value of the MultiLine property to True.
- Copy the Visual Basic code listing above, and paste it into the Visual Basic code editor to replace whatever code is already there.
- Execute the code by selecting Start from the Run menu.
- Verify that your output is the same as that listed in Output for the errorParams Example.