#include "toyCode.hpp"
#include <xercesc/util/PlatformUtils.hpp>
/*
#include <xercesc/dom/DOM.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMWriter.hpp>

#include <xercesc/framework/StdOutFormatTarget.hpp>
#include <xerces/parsers/XercesDOMParser.hpp>
#include <xerces/util/XMLUni.hpp>
*/

int main(){

	XMLPlatformUtils::Initialize();
	static char* 	xmlFile = "error.xml";//may want to unhardcode
	XercesDOMParser * parser = new XercesDOMParser;
	bool errors = false;

	try {
		//parser = new DOMParser;
		parser->setValidationScheme(XercesDOMParser::Val_Auto);
		parser->setDoNamespaces(false);
		parser->setDoSchema(false);
		parser->setValidationSchemaFullChecking(false);
		parser->setCreateEntityReferenceNodes(true);
		parser->parse(xmlFile);
		parser->setIncludeIgnorableWhitespace(false);	
	}
	catch (const XMLException& e){
		//error.Format(%s\n%s, "An error occurred during parsing\n  Message: ", XTOC(e.getMessage()));
		cout << "An XMLException occurred during parsing\n"<< std::endl;
		errors= true;
	}
	catch(...){	
		//error.Format(%s\n%s, "An error occurred during parsing\n  Message: Undetermined");
		cout << "An error occurred during parsing\n  Message: Undetermined" <<std::endl;
		errors= true;
	}

	if (errors){
		//put something in here to let user know there was an error, but continuing.
		cout << "there was an error." << endl;
	}
	
	DOMDocument* doc = parser->getDocument();
	DOMElement * elm = doc->getDocumentElement();
	cout << "elm->getNodeName = " << XMLString::transcode(elm->getNodeName())<< endl;
	DOMNode* x1 = elm->getFirstChild();	
	cout << "elm->firstChild = " << XMLString::transcode(x1->getNodeName())<< endl;
	return 0;
}
