OpenMS
Loading...
Searching...
No Matches
SAX2HandlerAdapter Class Reference

Adapts an OpenMS XMLHandler to the Xerces SAX2 DefaultHandler interface. More...

#include <OpenMS/FORMAT/HANDLERS/SAX2HandlerAdapter.h>

Inheritance diagram for SAX2HandlerAdapter:
[legend]
Collaboration diagram for SAX2HandlerAdapter:
[legend]

Public Member Functions

 SAX2HandlerAdapter (XMLHandler &handler)
 
void startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attrs) override
 
void endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override
 
void characters (const XMLCh *const chars, const XMLSize_t length) override
 
void fatalError (const xercesc::SAXParseException &e) override
 
void error (const xercesc::SAXParseException &e) override
 
void warning (const xercesc::SAXParseException &e) override
 

Static Private Member Functions

static std::string message_ (const xercesc::SAXParseException &e)
 

Private Attributes

XMLHandlerhandler_
 

Detailed Description

Adapts an OpenMS XMLHandler to the Xerces SAX2 DefaultHandler interface.

Xerces owns the SAX callback interface; OpenMS handlers expose the Xerces-free onStartElement / onEndElement / onCharacters callbacks (and OpenMS-typed error handlers). This adapter is installed as the Xerces content+error handler and forwards each callback to the wrapped XMLHandler. XMLCh is guaranteed to be char16_t-sized, so the reinterpret_casts at this boundary are well-defined views.

The forwarding methods are intentionally not noexcept: subclass callbacks may throw (e.g. XMLHandler::EndParsingSoftly to abort parsing early), and that exception must unwind through Xerces' parse() exactly as before.

Constructor & Destructor Documentation

◆ SAX2HandlerAdapter()

SAX2HandlerAdapter ( XMLHandler handler)
inlineexplicit

Member Function Documentation

◆ characters()

void characters ( const XMLCh *const  chars,
const XMLSize_t  length 
)
inlineoverride

◆ endElement()

void endElement ( const XMLCh * const  ,
const XMLCh * const  ,
const XMLCh *const  qname 
)
inlineoverride

◆ error()

void error ( const xercesc::SAXParseException &  e)
inlineoverride

◆ fatalError()

void fatalError ( const xercesc::SAXParseException &  e)
inlineoverride

◆ message_()

static std::string message_ ( const xercesc::SAXParseException &  e)
inlinestaticprivate

◆ startElement()

void startElement ( const XMLCh * const  ,
const XMLCh * const  ,
const XMLCh *const  qname,
const xercesc::Attributes &  attrs 
)
inlineoverride

◆ warning()

void warning ( const xercesc::SAXParseException &  e)
inlineoverride

Member Data Documentation

◆ handler_