summaryrefslogtreecommitdiff
path: root/cpp/src/slice2xsd/Validate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2xsd/Validate.cpp')
-rw-r--r--cpp/src/slice2xsd/Validate.cpp65
1 files changed, 32 insertions, 33 deletions
diff --git a/cpp/src/slice2xsd/Validate.cpp b/cpp/src/slice2xsd/Validate.cpp
index b2bed446c19..2f8c8cd6baf 100644
--- a/cpp/src/slice2xsd/Validate.cpp
+++ b/cpp/src/slice2xsd/Validate.cpp
@@ -10,33 +10,29 @@
#include <IceUtil/Config.h>
-#include <util/PlatformUtils.hpp>
-#include <util/XMLString.hpp>
-#include <util/XMLUniDefs.hpp>
-#include <framework/XMLFormatter.hpp>
-#include <util/TranscodingException.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XMLString.hpp>
-#include <dom/DOM_DOMException.hpp>
-#include <parsers/DOMParser.hpp>
-//#include <dom/DOM.hpp>
+#include <xercesc/dom/DOMException.hpp>
+#include <xercesc/parsers/XercesDOMParser.hpp>
-
-#include <sax/ErrorHandler.hpp>
-#include <sax/SAXParseException.hpp>
-#include <dom/DOMString.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+#include <xercesc/sax/SAXParseException.hpp>
#include <iostream>
using namespace std;
-// Global streaming operator for DOMString is defined in DOMPrint.cpp
-//extern ostream& operator<<(ostream& target, const DOMString& s);
-ostream& operator<< (ostream& target, const DOMString& s)
+//
+// Utility to make the usage of xerces easier.
+//
+static string
+toString(const XMLCh* s)
{
- char *p = s.transcode();
- target << p;
- delete [] p;
- return target;
+ char* t = XMLString::transcode(s);
+ string r(t);
+ delete[] t;
+ return r;
}
class DOMTreeErrorReporter : public ErrorHandler
@@ -50,30 +46,30 @@ public:
void
warning(const SAXParseException& toCatch)
{
- cerr << "Warning at file \"" << DOMString(toCatch.getSystemId())
+ cerr << "Warning at file \"" << toString(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
- << "\n Message: " << DOMString(toCatch.getMessage()) << endl;
+ << "\n Message: " << toString(toCatch.getMessage()) << endl;
}
void
error(const SAXParseException& toCatch)
{
_sawErrors = true;
- cerr << "Error at file \"" << DOMString(toCatch.getSystemId())
+ cerr << "Error at file \"" << toString(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
- << "\n Message: " << DOMString(toCatch.getMessage()) << endl;
+ << "\n Message: " << toString(toCatch.getMessage()) << endl;
}
void
fatalError(const SAXParseException& toCatch)
{
_sawErrors = true;
- cerr << "Fatal at file \"" << DOMString(toCatch.getSystemId())
+ cerr << "Fatal at file \"" << toString(toCatch.getSystemId())
<< "\", line " << toCatch.getLineNumber()
<< ", column " << toCatch.getColumnNumber()
- << "\n Message: " << DOMString(toCatch.getMessage()) << endl;
+ << "\n Message: " << toString(toCatch.getMessage()) << endl;
}
void resetErrors()
@@ -110,7 +106,7 @@ main(int argc, char** argv)
{
cerr << "Error during Xerces-c Initialization.\n"
<< " Exception message:"
- << DOMString(toCatch.getMessage()) << endl;
+ << toString(toCatch.getMessage()) << endl;
return 1;
}
@@ -154,16 +150,15 @@ main(int argc, char** argv)
// The parser will call back to methods of the ErrorHandler if it
// discovers errors during the course of parsing the XML document.
//
- DOMParser* parser = new DOMParser;
- parser->setValidationScheme(DOMParser::Val_Auto);
+ XercesDOMParser* parser = new XercesDOMParser;
+ parser->setValidationScheme(XercesDOMParser::Val_Auto);
parser->setDoNamespaces(true);
parser->setDoSchema(true);
parser->setValidationSchemaFullChecking(true);
- DOMTreeErrorReporter *errReporter = new DOMTreeErrorReporter();
- parser->setErrorHandler(errReporter);
+ DOMTreeErrorReporter errReporter;
+ parser->setErrorHandler(&errReporter);
parser->setCreateEntityReferenceNodes(false);
- parser->setToCreateXMLDeclTypeNode(true);
//
// Parse the XML file, catching any XML exceptions that might propogate
@@ -179,10 +174,10 @@ main(int argc, char** argv)
}
catch(const XMLException& e)
{
- cerr << "An error occured during parsing\n Message: " << DOMString(e.getMessage()) << endl;
+ cerr << "An error occured during parsing\n Message: " << toString(e.getMessage()) << endl;
errorsOccured = true;
}
- catch(const DOM_DOMException& e)
+ catch(const DOMException& e)
{
cerr << "A DOM error occured during parsing\n DOMException code: " << e.code << endl;
errorsOccured = true;
@@ -192,7 +187,11 @@ main(int argc, char** argv)
cerr << "An error occured during parsing\n " << endl;
errorsOccured = true;
}
+
+ delete parser;
}
+ XMLPlatformUtils::Terminate();
+
return (errorsOccured) ? EXIT_FAILURE : EXIT_SUCCESS;
}