USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::XmlStackedHandler Class Reference

XML Handler that parses XMLs in a stack-oriented way. More...

#include <XmlStackedHandler.h>

Inherits QXmlDefaultHandler.

Inherited by Isis::Control::XmlHandler, Isis::ControlDisplayProperties::XmlHandler, Isis::ControlList::XmlHandler, Isis::Directory::XmlHandler, Isis::DisplayProperties::XmlHandler, Isis::Image::XmlHandler, Isis::ImageFileListWidget::XmlHandler, Isis::ImageList::XmlHandler, Isis::MosaicSceneWidget::XmlHandler, Isis::Project::XmlHandler, Isis::StatCumProbDistDynCalc::XmlHandler, Isis::Statistics::XmlHandler, and Isis::WorkOrder::XmlHandler.

Public Member Functions

 XmlStackedHandler ()
 ~XmlStackedHandler ()
virtual void setReader (XmlStackedHandlerReader *)
void switchToNewHandler (XmlStackedHandler *nextHandler)
virtual bool startElement (const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
virtual bool endElement (const QString &namespaceURI, const QString &localName, const QString &qName)

Protected Member Functions

XmlStackedHandlerReaderreader ()
const XmlStackedHandlerReaderreader () const
bool fatalError (const QXmlParseException &exception)

Detailed Description

XML Handler that parses XMLs in a stack-oriented way.

This XML handler is designed to work with the XmlStackedHandlerReader. This XML handler class handles passing off parsing to another handler. For example, if your XML is:

    <xmlTag1>
      <xmlTag2>
        <xmlTag3>
      </xmlTag2>
    </xmlTag>
  

If this handler is pushed onto the reader (which is the parser stack) when the startElement of xmlTag2 is seen, then this XML handler will see all of the xml data up to and including the xmlTag2 close tag. This handler would never see xmlTag1. Here is an example of how this works:

  --> Push initial XML handler (Handler1)
  <xmlTag1> -- Handler1::startElement
    <xmlTag2> -- Handler1::startElement: calls reader()->pushContentHandler(Handler2)
              -- Handler2::startElement
      <xmlTag3> -- Handler2::startElement
                  -- Handler2::endElement
    </xmlTag2> -- Handler2::endElement
               -- Handler1::endElement
  </xmlTag1> -- Handler1::endElement
Author
2012-??-?? Steven Lambright

Constructor & Destructor Documentation

Isis::XmlStackedHandler::XmlStackedHandler ( )
Isis::XmlStackedHandler::~XmlStackedHandler ( )

Member Function Documentation

bool Isis::XmlStackedHandler::endElement ( const QString &  namespaceURI,
const QString &  localName,
const QString &  qName 
)
virtual
bool Isis::XmlStackedHandler::fatalError ( const QXmlParseException &  exception)
protected
XmlStackedHandlerReader * Isis::XmlStackedHandler::reader ( )
protected

Referenced by endElement(), and setReader().

const XmlStackedHandlerReader * Isis::XmlStackedHandler::reader ( ) const
protected
void Isis::XmlStackedHandler::setReader ( XmlStackedHandlerReader reader)
virtual
bool Isis::XmlStackedHandler::startElement ( const QString &  namespaceURI,
const QString &  localName,
const QString &  qName,
const QXmlAttributes &  atts 
)
virtual

Referenced by switchToNewHandler().

void Isis::XmlStackedHandler::switchToNewHandler ( XmlStackedHandler nextHandler)

The documentation for this class was generated from the following files: