To create the class
To implement an interface
Implements IVBSAXContentHandler Implements IMXSchemaDeclHandler Implements IVBSAXErrorHandler Implements IVBSAXLocator
Note You must implement all methods for the implemented interfaces.
Add the following code to the class.
Note If you already added theImplementsstatements, you can simply copy the following code and paste it before the firstImplementsstatement.
Option Explicit
'Implement SAX interfaces.
Implements IVBSAXContentHandler
Implements IMXSchemaDeclHandler
Implements IVBSAXErrorHandler
Implements IVBSAXLocator
'Declare a module-scope variable for setting the locator.
Private oLocator As IVBSAXLocator
Private Sub IMXSchemaDeclHandler_schemaElementDecl(ByVal oSchemaElement As MSXML2.ISchemaElement)
End Sub
Private Sub IVBSAXContentHandler_characters(strChars As String)
End Sub
Private Property Set IVBSAXContentHandler_documentLocator(ByVal RHS As MSXML2.IVBSAXLocator)
Set oLocator = RHS
End Property
Private Sub IVBSAXContentHandler_endDocument()
frmMain.txtResults = frmMain.txtResults + "File is valid."
End Sub
Private Sub IVBSAXContentHandler_endElement(strNamespaceURI As String, strLocalName As String, strQName As String)
End Sub
Private Sub IVBSAXContentHandler_endPrefixMapping(strPrefix As String)
End Sub
Private Sub IVBSAXContentHandler_ignorableWhitespace(strChars As String)
End Sub
Private Sub IVBSAXContentHandler_processingInstruction(strTarget As String, strData As String)
End Sub
Private Sub IVBSAXContentHandler_skippedEntity(strName As String)
End Sub
Private Sub IVBSAXContentHandler_startDocument()
End Sub
Private Sub IVBSAXContentHandler_startElement(strNamespaceURI As String, strLocalName As String, strQName As String, ByVal oAttributes As MSXML2.IVBSAXAttributes)
End Sub
Private Sub IVBSAXContentHandler_startPrefixMapping(strPrefix As String, strURI As String)
End Sub
Private Sub IVBSAXErrorHandler_error(ByVal oLocator As MSXML2.IVBSAXLocator, strErrorMessage As String, ByVal nErrorCode As Long)
WriteErrorToResults "Error", strErrorMessage, _
nErrorCode, oLocator.lineNumber, oLocator.columnNumber
End Sub
Private Sub IVBSAXErrorHandler_fatalError(ByVal oLocator As MSXML2.IVBSAXLocator, strErrorMessage As String, ByVal nErrorCode As Long)
WriteErrorToResults "Fatal error", strErrorMessage, _
nErrorCode, oLocator.lineNumber, oLocator.columnNumber
End Sub
Private Sub IVBSAXErrorHandler_ignorableWarning(ByVal oLocator As MSXML2.IVBSAXLocator, strErrorMessage As String, ByVal nErrorCode As Long)
WriteErrorToResults "Ignorable warning", strErrorMessage, _
nErrorCode, oLocator.lineNumber, oLocator.columnNumber
End Sub
Private Property Get IVBSAXLocator_columnNumber() As Long
End Property
Private Property Get IVBSAXLocator_lineNumber() As Long
End Property
Private Property Get IVBSAXLocator_publicId() As String
End Property
Private Property Get IVBSAXLocator_systemId() As String
End Property
Private Function WriteErrorToResults(strLabel As String, _
strDescription As String, ByVal ErrCode As Long, _
Line As Long, Column As Long)
frmMain.txtResults = _
strLabel + ": (" + CStr(ErrCode) + ") " + _
strDescription & "at " + "line " + _
Str(Line) + ", column " + _
Str(Column) + vbCrLf
End Function
Validate Documents Using SAX | Overview of the SAX Validator Application | Application Form (SAX Validator) | Sample XSD Schema File (SAX Validator) | Run the Application (SAX Validator) | How the SAX Validator Application Works