10 #include <xercesc/sax2/SAX2XMLReader.hpp>
11 #include <xercesc/sax2/Attributes.hpp>
12 #include <xercesc/util/PlatformUtils.hpp>
14 #include "IsisXMLApplication.h"
15 #include "IsisXMLChTrans.h"
22 IsisXMLApplication::IsisXMLApplication(
char *PencodingName,
23 bool &PexpandNamespaces,
24 XERCES::SAX2XMLReader* &Pparser,
27 encodingName = PencodingName;
28 expandNamespaces = PexpandNamespaces;
32 parser->setContentHandler(
this);
33 parser->setErrorHandler(
this);
36 descriptionHandler = NULL;
38 multipleValuesHandler = NULL;
40 historyHandler = NULL;
44 IsisXMLApplication::~IsisXMLApplication() {
46 if(briefHandler != NULL)
delete briefHandler;
47 if(descriptionHandler != NULL)
delete descriptionHandler;
48 if(groupsHandler != NULL)
delete groupsHandler;
49 if(multipleValuesHandler != NULL)
delete multipleValuesHandler;
50 if(ignoreHandler != NULL)
delete ignoreHandler;
51 if(historyHandler != NULL)
delete historyHandler;
58 void IsisXMLApplication::characters(
const XMLCh *
const chars,
59 const XMLSize_t length) {}
63 void IsisXMLApplication::endDocument() {}
66 void IsisXMLApplication::endElement(
const XMLCh *
const uri,
67 const XMLCh *
const localname,
68 const XMLCh *
const qname) {
72 void IsisXMLApplication::processingInstruction(
const XMLCh *
const target,
73 const XMLCh *
const data) {}
76 void IsisXMLApplication::startDocument() {}
79 void IsisXMLApplication::startElement(
const XMLCh *
const uri,
80 const XMLCh *
const localname,
81 const XMLCh *
const qname,
82 const XERCES::Attributes &attributes) {
84 if((
string)XERCES::XMLString::transcode(localname) == (
string)
"application") {
85 QString name = XERCES::XMLString::transcode(attributes.getValue((XMLSize_t)0));
86 appData->name = name.toLower();
88 else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"brief") {
89 if(briefHandler != NULL) {
94 parser, &appData->brief);
96 else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"description") {
97 if(descriptionHandler != NULL) {
98 delete descriptionHandler;
99 descriptionHandler = NULL;
101 descriptionHandler =
new IsisXMLHandler(encodingName, expandNamespaces,
102 parser, &appData->description);
104 else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"groups") {
105 if(groupsHandler != NULL) {
106 delete groupsHandler;
107 groupsHandler = NULL;
109 groupsHandler =
new IsisXMLGroups(encodingName, expandNamespaces, parser,
112 else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"category") {
113 if(multipleValuesHandler != NULL) {
114 delete multipleValuesHandler;
115 multipleValuesHandler = NULL;
118 parser, &appData->categorys);
120 else if((
string)XERCES::XMLString::transcode(localname) == (
string)
"history") {
121 if(historyHandler != NULL) {
122 delete historyHandler;
123 historyHandler = NULL;
125 historyHandler =
new IsisXMLHistory(encodingName, expandNamespaces,
126 parser, &appData->changes);
129 if(ignoreHandler != NULL) {
130 delete ignoreHandler;
131 ignoreHandler = NULL;
133 ignoreHandler =
new IsisXMLIgnore(encodingName, expandNamespaces, parser,
134 (
string)XERCES::XMLString::transcode(localname));