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));