<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Xerces-C++: Parser Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Parser Class Reference</h1><!-- doxytag: class="Parser" -->Basic interface for SAX (Simple API for XML) parsers. <a href="#_details">More...</a> <p> <div class="dynheader"> Inheritance diagram for Parser:</div> <div class="dynsection"> <p><center><img src="classParser.png" usemap="#Parser_map" border="0" alt=""></center> <map name="Parser_map"> <area href="classSAXParser.html" alt="SAXParser" shape="rect" coords="0,56,76,80"> </map> </div> <p> <a href="classParser-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td colspan="2"><div class="groupHeader">Constructors and Destructor</div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#12234f6cd36b61af4b50c94a179422c1">Parser</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The default constructor. <a href="#12234f6cd36b61af4b50c94a179422c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#d576b92b9cc324f6f41b0269a9a1a546">~Parser</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor. <a href="#d576b92b9cc324f6f41b0269a9a1a546"></a><br></td></tr> <tr><td colspan="2"><div class="groupHeader">The parser interfaces</div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#62435895e0615380f3017090ac232594">setEntityResolver</a> (<a class="el" href="classEntityResolver.html">EntityResolver</a> *const resolver)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allow an application to register a custom entity resolver. <a href="#62435895e0615380f3017090ac232594"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#d97184f9e4397e360903e2fdb72d23bf">setDTDHandler</a> (<a class="el" href="classDTDHandler.html">DTDHandler</a> *const handler)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allow an application to register a DTD event handler. <a href="#d97184f9e4397e360903e2fdb72d23bf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#2038c09146fff3b0ec66143630736bdb">setDocumentHandler</a> (<a class="el" href="classDocumentHandler.html">DocumentHandler</a> *const handler)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allow an application to register a document event handler. <a href="#2038c09146fff3b0ec66143630736bdb"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#acd0f62732e363faeb4e5ee5b0a6e12a">setErrorHandler</a> (<a class="el" href="classErrorHandler.html">ErrorHandler</a> *const handler)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allow an application to register an error event handler. <a href="#acd0f62732e363faeb4e5ee5b0a6e12a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#624fc687a49b917c11ef632367568b60">parse</a> (const <a class="el" href="classInputSource.html">InputSource</a> &source)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an XML document. <a href="#624fc687a49b917c11ef632367568b60"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#37d4db3b3e88307b0aad780a685d76fd">parse</a> (const <a class="el" href="Xerces__autoconf__config_8msvc_8hpp.html#fae8f92d83170d97f757f704eca7f52a">XMLCh</a> *const systemId)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an XML document from a system identifier (URI). <a href="#37d4db3b3e88307b0aad780a685d76fd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classParser.html#802e068db2ca0b11d8f6365d8a3267c6">parse</a> (const char *const systemId)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an XML document from a system identifier (URI). <a href="#802e068db2ca0b11d8f6365d8a3267c6"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Basic interface for SAX (Simple API for XML) parsers. <p> All SAX parsers must implement this basic interface: it allows applications to register handlers for different types of events and to initiate a parse from a URI, or a character stream.<p> All SAX parsers must also implement a zero-argument constructor (though other constructors are also allowed).<p> SAX parsers are reusable but not re-entrant: the application may reuse a parser object (possibly with a different input source) once the first parse has completed successfully, but it may not invoke the <a class="el" href="classParser.html#624fc687a49b917c11ef632367568b60" title="Parse an XML document.">parse()</a> methods recursively within a parse.<p> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classEntityResolver.html#14e534eb2170015056ccd71458e1058c" title="Default Constructor.">EntityResolver::EntityResolver</a> <p> <a class="el" href="classDTDHandler.html#1d17e15d976164f6d55f542759eea182" title="Default Constructor.">DTDHandler::DTDHandler</a> <p> <a class="el" href="classDocumentHandler.html#c24bb98e06d7db2b0823816eec2f6c19" title="Default constructor.">DocumentHandler::DocumentHandler</a> <p> <a class="el" href="classErrorHandler.html#7e5f379bd231442b898cef94556b2107" title="Default constructor.">ErrorHandler::ErrorHandler</a> <p> <a class="el" href="classHandlerBase.html#a9bbcdb7958bace9296940ab702ef367">HandlerBase::HandlerBase</a> <p> <a class="el" href="classInputSource.html#601a7aa7124e2d8e9664eda9aea6b622" title="Default constructor.">InputSource::InputSource</a> </dd></dl> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="12234f6cd36b61af4b50c94a179422c1"></a><!-- doxytag: member="Parser::Parser" ref="12234f6cd36b61af4b50c94a179422c1" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Parser::Parser </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> The default constructor. <p> </div> </div><p> <a class="anchor" name="d576b92b9cc324f6f41b0269a9a1a546"></a><!-- doxytag: member="Parser::~Parser" ref="d576b92b9cc324f6f41b0269a9a1a546" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual Parser::~Parser </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> The destructor. <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="62435895e0615380f3017090ac232594"></a><!-- doxytag: member="Parser::setEntityResolver" ref="62435895e0615380f3017090ac232594" args="(EntityResolver *const resolver)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::setEntityResolver </td> <td>(</td> <td class="paramtype"><a class="el" href="classEntityResolver.html">EntityResolver</a> *const </td> <td class="paramname"> <em>resolver</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Allow an application to register a custom entity resolver. <p> If the application does not register an entity resolver, the SAX parser will resolve system identifiers and open connections to entities itself (this is the default behaviour implemented in <a class="el" href="classHandlerBase.html" title="Default base class for handlers.">HandlerBase</a>).<p> Applications may register a new or different entity resolver in the middle of a parse, and the SAX parser must begin using the new resolver immediately.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>resolver</em> </td><td>The object for resolving entities. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classEntityResolver.html#14e534eb2170015056ccd71458e1058c" title="Default Constructor.">EntityResolver::EntityResolver</a> <p> <a class="el" href="classHandlerBase.html#a9bbcdb7958bace9296940ab702ef367">HandlerBase::HandlerBase</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#55ca3032890cc8893cfcfc15753db57b">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="d97184f9e4397e360903e2fdb72d23bf"></a><!-- doxytag: member="Parser::setDTDHandler" ref="d97184f9e4397e360903e2fdb72d23bf" args="(DTDHandler *const handler)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::setDTDHandler </td> <td>(</td> <td class="paramtype"><a class="el" href="classDTDHandler.html">DTDHandler</a> *const </td> <td class="paramname"> <em>handler</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Allow an application to register a DTD event handler. <p> If the application does not register a DTD handler, all DTD events reported by the SAX parser will be silently ignored (this is the default behaviour implemented by <a class="el" href="classHandlerBase.html" title="Default base class for handlers.">HandlerBase</a>).<p> Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>The DTD handler. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classDTDHandler.html#1d17e15d976164f6d55f542759eea182" title="Default Constructor.">DTDHandler::DTDHandler</a> <p> <a class="el" href="classHandlerBase.html#a9bbcdb7958bace9296940ab702ef367">HandlerBase::HandlerBase</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#718d0f982508496ac008a1b4f20eba06">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="2038c09146fff3b0ec66143630736bdb"></a><!-- doxytag: member="Parser::setDocumentHandler" ref="2038c09146fff3b0ec66143630736bdb" args="(DocumentHandler *const handler)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::setDocumentHandler </td> <td>(</td> <td class="paramtype"><a class="el" href="classDocumentHandler.html">DocumentHandler</a> *const </td> <td class="paramname"> <em>handler</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Allow an application to register a document event handler. <p> If the application does not register a document handler, all document events reported by the SAX parser will be silently ignored (this is the default behaviour implemented by <a class="el" href="classHandlerBase.html" title="Default base class for handlers.">HandlerBase</a>).<p> Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>The document handler. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classDocumentHandler.html#c24bb98e06d7db2b0823816eec2f6c19" title="Default constructor.">DocumentHandler::DocumentHandler</a> <p> <a class="el" href="classHandlerBase.html#a9bbcdb7958bace9296940ab702ef367">HandlerBase::HandlerBase</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#f8593f6ca5ebb7c96d63eaea6935b1a9">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="acd0f62732e363faeb4e5ee5b0a6e12a"></a><!-- doxytag: member="Parser::setErrorHandler" ref="acd0f62732e363faeb4e5ee5b0a6e12a" args="(ErrorHandler *const handler)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::setErrorHandler </td> <td>(</td> <td class="paramtype"><a class="el" href="classErrorHandler.html">ErrorHandler</a> *const </td> <td class="paramname"> <em>handler</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Allow an application to register an error event handler. <p> If the application does not register an error event handler, all error events reported by the SAX parser will be silently ignored, except for fatalError, which will throw a <a class="el" href="classSAXException.html" title="Encapsulate a general SAX error or warning.">SAXException</a> (this is the default behaviour implemented by <a class="el" href="classHandlerBase.html" title="Default base class for handlers.">HandlerBase</a>).<p> Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>The error handler. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classErrorHandler.html#7e5f379bd231442b898cef94556b2107" title="Default constructor.">ErrorHandler::ErrorHandler</a> <p> <a class="el" href="classSAXException.html#e1c8ab9b99e3c43572c1567e72c652e4" title="Default constructor.">SAXException::SAXException</a> <p> <a class="el" href="classHandlerBase.html#a9bbcdb7958bace9296940ab702ef367">HandlerBase::HandlerBase</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#4f473c91401970cfaed6147caaa41cbd">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="624fc687a49b917c11ef632367568b60"></a><!-- doxytag: member="Parser::parse" ref="624fc687a49b917c11ef632367568b60" args="(const InputSource &source)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::parse </td> <td>(</td> <td class="paramtype">const <a class="el" href="classInputSource.html">InputSource</a> & </td> <td class="paramname"> <em>source</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Parse an XML document. <p> The application can use this method to instruct the SAX parser to begin parsing an XML document from any valid input source (a character stream, a byte stream, or a URI).<p> Applications may not invoke this method while a parse is in progress (they should create a new <a class="el" href="classParser.html" title="Basic interface for SAX (Simple API for XML) parsers.">Parser</a> instead for each additional XML document). Once a parse is complete, an application may reuse the same <a class="el" href="classParser.html" title="Basic interface for SAX (Simple API for XML) parsers.">Parser</a> object, possibly with a different input source.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>The input source for the top-level of the XML document. </td></tr> </table> </dl> <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classSAXException.html" title="Encapsulate a general SAX error or warning.">SAXException</a></em> </td><td>Any SAX exception, possibly wrapping another exception. </td></tr> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classXMLException.html">XMLException</a></em> </td><td>An exception from the parser or client handler code. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classInputSource.html#601a7aa7124e2d8e9664eda9aea6b622" title="Default constructor.">InputSource::InputSource</a> <p> <a class="el" href="classParser.html#62435895e0615380f3017090ac232594" title="Allow an application to register a custom entity resolver.">setEntityResolver</a> <p> <a class="el" href="classParser.html#d97184f9e4397e360903e2fdb72d23bf" title="Allow an application to register a DTD event handler.">setDTDHandler</a> <p> <a class="el" href="classParser.html#2038c09146fff3b0ec66143630736bdb" title="Allow an application to register a document event handler.">setDocumentHandler</a> <p> <a class="el" href="classParser.html#acd0f62732e363faeb4e5ee5b0a6e12a" title="Allow an application to register an error event handler.">setErrorHandler</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#d684882ed98a172675553abe68109666">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="37d4db3b3e88307b0aad780a685d76fd"></a><!-- doxytag: member="Parser::parse" ref="37d4db3b3e88307b0aad780a685d76fd" args="(const XMLCh *const systemId)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::parse </td> <td>(</td> <td class="paramtype">const <a class="el" href="Xerces__autoconf__config_8msvc_8hpp.html#fae8f92d83170d97f757f704eca7f52a">XMLCh</a> *const </td> <td class="paramname"> <em>systemId</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Parse an XML document from a system identifier (URI). <p> This method is a shortcut for the common case of reading a document from a system identifier. It is the exact equivalent of the following:<p> parse(new URLInputSource(systemId));<p> If the system identifier is a URL, it must be fully resolved by the application before it is passed to the parser.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>systemId</em> </td><td>The system identifier (URI). </td></tr> </table> </dl> <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classSAXException.html" title="Encapsulate a general SAX error or warning.">SAXException</a></em> </td><td>Any SAX exception, possibly wrapping another exception. </td></tr> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classXMLException.html">XMLException</a></em> </td><td>An exception from the parser or client handler code. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classParser.html#624fc687a49b917c11ef632367568b60" title="Parse an XML document.">parse(const InputSource&)</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#4a5146bda42a0ba972a6fbd77146e828">SAXParser</a>.</p> </div> </div><p> <a class="anchor" name="802e068db2ca0b11d8f6365d8a3267c6"></a><!-- doxytag: member="Parser::parse" ref="802e068db2ca0b11d8f6365d8a3267c6" args="(const char *const systemId)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void Parser::parse </td> <td>(</td> <td class="paramtype">const char *const </td> <td class="paramname"> <em>systemId</em> </td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Parse an XML document from a system identifier (URI). <p> This method is a shortcut for the common case of reading a document from a system identifier. It is the exact equivalent of the following:<p> parse(new URLInputSource(systemId));<p> If the system identifier is a URL, it must be fully resolved by the application before it is passed to the parser.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>systemId</em> </td><td>The system identifier (URI). </td></tr> </table> </dl> <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classSAXException.html" title="Encapsulate a general SAX error or warning.">SAXException</a></em> </td><td>Any SAX exception, possibly wrapping another exception. </td></tr> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classXMLException.html">XMLException</a></em> </td><td>An exception from the parser or client handler code. </td></tr> </table> </dl> <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classParser.html#624fc687a49b917c11ef632367568b60" title="Parse an XML document.">parse(const InputSource&)</a> </dd></dl> <p>Implemented in <a class="el" href="classSAXParser.html#6e928e936c15ef184fd286380e9f8c14">SAXParser</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="Parser_8hpp-source.html">Parser.hpp</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 29 15:30:49 2010 for Xerces-C++ by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>