Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
A version of this page is also available for
4/8/2010
The first step of creating a SAX2 application is to implement handler classes. When you use SAX2, the most useful handler class is ContentHandler. You derive this class from the ISAXContentHandlerinterface.
To use the SAX2 interfaces that come with MSXML, you need to declare them using the following code example.
Copy Code | |
---|---|
#include <msxml2.h> |
Note: |
---|
For the JumpStart application, declare the interfaces in the StdAfx.h file. |
Example
The following code example shows how to create the header file, named MyContent.h. This file is required to implement the ContentHandler.
Copy Code | |
---|---|
#include "SAXContentHandlerImpl.h" class MyContent : public SAXContentHandlerImpl { public: MyContent(); virtual ~MyContent(); virtual HRESULT STDMETHODCALLTYPE startElement( // Receives notification of the beginning of an element. // The reader invokes the startElement method at the beginning of every element in the XML document. wchar_t __RPC_FAR *pwchNamespaceUri, //in, the namespace URI int cchNamespaceUri, //in, the length of the namespace URI wchar_t __RPC_FAR *pwchLocalName, //in, the local name string. int cchLocalName, //in, the length of the local name string wchar_t __RPC_FAR *pwchQName, //in, the XML 1.0 qualified name (QName), with prefix, //or, an empty string (if QNames are not available). int cchQName, //in, the length of the QName ISAXAttributes __RPC_FAR *pAttributes); //in, the attributes attached to the element virtual HRESULT STDMETHODCALLTYPE endElement( // Receives notification of the end of an element. // The reader invokes this method at the end of every element in the XML document. wchar_t __RPC_FAR *pwchNamespaceUri, //in, the namespace URI int cchNamespaceUri, //in, the length of the namespace URI wchar_t __RPC_FAR *pwchLocalName, //in, the local name string. int cchLocalName, //in, the length of the local name string wchar_t __RPC_FAR *pwchQName, //in, the XML 1.0 qualified name (QName), with prefix, //or, an empty string (if QNames are not available). int cchQName); //in, the length of the QName virtual HRESULT STDMETHODCALLTYPE startDocument(); // Receives notification of the beginning of a document. // The reader invokes the startDocument method only once. private: void prt( // conversion method for output // converts element specified by pwchVal to the format specified by pwchFmt const wchar_t * pwchFmt, //in, format for output const wchar_t __RPC_FAR *pwchVal, // in, element to be converted int cchVal); // in, length of element to be converted int idnt; // current depth in document tree, that is, number of unclosed elements encountered }; #endif // !defined(AFX_MYCONTENT_H__E1B3AF99_0FA6_44CD_82E3_55719F9E3806__INCLUDED_) |