File failed to load: https://isis.astrogeology.usgs.gov/8.3.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
IsisXMLHelper.cpp
1
7/* SPDX-License-Identifier: CC0-1.0 */
8
9#include <string>
10
11#include <xercesc/util/PlatformUtils.hpp>
12#include <xercesc/sax2/SAX2XMLReader.hpp>
13#include <xercesc/sax2/Attributes.hpp>
14
15#include "IsisXMLHelper.h"
16#include "IsisXMLChTrans.h"
17
18#include "IString.h"
19
20using namespace std;
21
22namespace XERCES = XERCES_CPP_NAMESPACE;
23
24// Constructors
25IsisXMLHelper::IsisXMLHelper(char *PencodingName,
26 bool &PexpandNamespaces,
27 XERCES::SAX2XMLReader* &Pparser,
28 IsisHelperData *Phelper) {
29
30 encodingName = PencodingName;
31 expandNamespaces = PexpandNamespaces;
32 parser = Pparser;
33 helper = Phelper;
34
35 prevDocHandler = parser->getContentHandler();
36 prevErrorHandler = parser->getErrorHandler();
37
38 parser->setContentHandler(this);
39 parser->setErrorHandler(this);
40
41 ignoreHandler = NULL;
42 generalHandler = NULL;
43}
44
45IsisXMLHelper::~IsisXMLHelper() {
46 if(ignoreHandler != NULL) delete ignoreHandler;
47 if(generalHandler != NULL) delete generalHandler;
48}
49
50
51// IsisXMLHelper: Overrides of the SAX DocumentHandler interface
52void IsisXMLHelper::characters(const XMLCh *const chars,
53 const XMLSize_t length) {
54}
55
56
57void IsisXMLHelper::endElement(const XMLCh *const uri,
58 const XMLCh *const localname,
59 const XMLCh *const qname) {
60 parser->setContentHandler(prevDocHandler);
61 parser->setErrorHandler(prevErrorHandler);
62}
63
64void IsisXMLHelper::startElement(const XMLCh *const uri,
65 const XMLCh *const localname,
66 const XMLCh *const qname,
67 const XERCES::Attributes &attributes) {
68
69 if((string)XERCES::XMLString::transcode(localname) == (string)"brief") {
70 if(generalHandler != NULL) {
71 delete generalHandler;
72 generalHandler = NULL;
73 }
74 generalHandler = new IsisXMLHandler(encodingName, expandNamespaces,
75 parser, &helper->brief);
76 }
77 else if((string)XERCES::XMLString::transcode(localname) == (string)"description") {
78 if(generalHandler != NULL) {
79 delete generalHandler;
80 generalHandler = NULL;
81 }
82 generalHandler = new IsisXMLHandler(encodingName, expandNamespaces,
83 parser, &helper->description);
84 }
85 else if((string)XERCES::XMLString::transcode(localname) == (string)"function") {
86 if(generalHandler != NULL) {
87 delete generalHandler;
88 generalHandler = NULL;
89 }
90 generalHandler = new IsisXMLHandler(encodingName, expandNamespaces,
91 parser, &helper->function);
92 }
93 else if((string)XERCES::XMLString::transcode(localname) == (string)"icon") {
94 if(generalHandler != NULL) {
95 delete generalHandler;
96 generalHandler = NULL;
97 }
98 generalHandler = new IsisXMLHandler(encodingName, expandNamespaces,
99 parser, &helper->icon);
100 }
101 else {
102 if(ignoreHandler != NULL) {
103 delete ignoreHandler;
104 ignoreHandler = NULL;
105 }
106 ignoreHandler = new IsisXMLIgnore(encodingName, expandNamespaces, parser,
107 (string)XERCES::XMLString::transcode(localname));
108 }
109}
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Namespace for the standard library.

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 02/24/2025 16:15:01