26 #include <xercesc/sax2/SAX2XMLReader.hpp> 
   27 #include <xercesc/sax2/Attributes.hpp> 
   28 #include <xercesc/util/PlatformUtils.hpp> 
   38 IsisXMLApplication::IsisXMLApplication(
char *PencodingName,
 
   39                                        bool &PexpandNamespaces,
 
   40                                        XERCES::SAX2XMLReader* &Pparser,
 
   42   encodingName = PencodingName;
 
   43   expandNamespaces = PexpandNamespaces;
 
   47   parser->setContentHandler(
this);
 
   48   parser->setErrorHandler(
this);
 
   51   descriptionHandler = NULL;
 
   53   multipleValuesHandler = NULL;
 
   55   historyHandler = NULL;
 
   58 IsisXMLApplication::~IsisXMLApplication() {
 
   60   if(briefHandler != NULL) 
delete briefHandler;
 
   61   if(descriptionHandler != NULL) 
delete descriptionHandler;
 
   62   if(groupsHandler != NULL) 
delete groupsHandler;
 
   63   if(multipleValuesHandler != NULL) 
delete multipleValuesHandler;
 
   64   if(ignoreHandler != NULL) 
delete ignoreHandler;
 
   65   if(historyHandler != NULL) 
delete historyHandler;
 
   72 void IsisXMLApplication::characters(
const XMLCh *
const chars,
 
   73                                     const XMLSize_t length) {}
 
   77 void IsisXMLApplication::endDocument() {}
 
   80 void IsisXMLApplication::endElement(
const XMLCh *
const uri,
 
   81                                     const XMLCh *
const localname,
 
   82                                     const XMLCh *
const qname) {
 
   86 void IsisXMLApplication::processingInstruction(
const XMLCh *
const target,
 
   87     const XMLCh *
const data) {}
 
   90 void IsisXMLApplication::startDocument() {}
 
   93 void IsisXMLApplication::startElement(
const XMLCh *
const uri,
 
   94                                       const XMLCh *
const localname,
 
   95                                       const XMLCh *
const qname,
 
   96                                       const XERCES::Attributes &attributes) {
 
   98   if((
string)XERCES::XMLString::transcode(localname) == (
string)
"application")  {
 
   99     QString name = XERCES::XMLString::transcode(attributes.getValue((XMLSize_t)0));
 
  100     appData->name = name.toLower();
 
  102   else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"brief")  {
 
  103     if(briefHandler != NULL) {
 
  108                                       parser, &appData->brief);
 
  110   else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"description")  {
 
  111     if(descriptionHandler != NULL) {
 
  112       delete descriptionHandler;
 
  113       descriptionHandler = NULL;
 
  115     descriptionHandler = 
new IsisXMLHandler(encodingName, expandNamespaces,
 
  116                                             parser, &appData->description);
 
  118   else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"groups")  {
 
  119     if(groupsHandler != NULL) {
 
  120       delete groupsHandler;
 
  121       groupsHandler = NULL;
 
  123     groupsHandler = 
new IsisXMLGroups(encodingName, expandNamespaces, parser,
 
  126   else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"category")  {
 
  127     if(multipleValuesHandler != NULL) {
 
  128       delete multipleValuesHandler;
 
  129       multipleValuesHandler = NULL;
 
  132         parser, &appData->categorys);
 
  134   else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"history")  {
 
  135     if(historyHandler != NULL) {
 
  136       delete historyHandler;
 
  137       historyHandler = NULL;
 
  139     historyHandler = 
new IsisXMLHistory(encodingName, expandNamespaces,
 
  140                                         parser, &appData->changes);
 
  143     if(ignoreHandler != NULL) {
 
  144       delete ignoreHandler;
 
  145       ignoreHandler = NULL;
 
  147     ignoreHandler = 
new IsisXMLIgnore(encodingName, expandNamespaces, parser,
 
  148                                       (
string)XERCES::XMLString::transcode(localname));