Fix DOMDocument redefinition error

This commit is contained in:
AgCaliva
2023-09-08 09:12:52 -03:00
parent ad5cb33d72
commit 0859cf6555
14 changed files with 44 additions and 53 deletions

View File

@@ -19,6 +19,7 @@
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#include "DocumentReader.h"
#include "InputSource.h"
#include "XMLTools.h"

View File

@@ -30,12 +30,6 @@
#include <vector>
#include <FCGlobal.h>
//#ifndef _PreComp_
//# include <xercesc/dom/DOM.hpp>
//# include <xercesc/parsers/XercesDOMParser.hpp>
//#endif
#include <xercesc/util/XercesDefs.hpp>
namespace zipios {
@@ -45,8 +39,6 @@ class ZipInputStream;
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
// class DefaultHandler;
// class SAX2XMLReader;
XERCES_CPP_NAMESPACE_END
namespace Base
{

View File

@@ -53,18 +53,11 @@ using PyObject = struct _object;
#include <vector>
#include <boost_signals2.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/sax/ErrorHandler.hpp>
#include "Handle.h"
#include "Observer.h"
#ifndef _PreComp_
//# include <xercesc/sax/SAXParseException.hpp>
# include <xercesc/sax/ErrorHandler.hpp>
#endif
#ifdef _MSC_VER
# pragma warning( disable : 4251 )
# pragma warning( disable : 4503 )

View File

@@ -26,15 +26,15 @@
#include "XMLTools.h"
using namespace Base;
XERCES_CPP_NAMESPACE_USE
std::unique_ptr<XERCES_CPP_NAMESPACE::XMLTranscoder> XMLTools::transcoder;
std::unique_ptr<XMLTranscoder> XMLTools::transcoder;
void XMLTools::initialize()
{
XERCES_CPP_NAMESPACE_USE;
if (!transcoder.get()) {
XMLTransService::Codes res{};
transcoder.reset(XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XERCES_CPP_NAMESPACE_QUALIFIER XMLRecognizer::UTF_8, res, 4096, XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager));
transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XMLRecognizer::UTF_8, res, 4096, XMLPlatformUtils::fgMemoryManager));
if (res != XMLTransService::Ok)
throw Base::UnicodeError("Can\'t create transcoder");
}
@@ -44,7 +44,6 @@ std::string XMLTools::toStdString(const XMLCh* const toTranscode)
{
std::string str;
XERCES_CPP_NAMESPACE_USE;
initialize();
//char outBuff[128];
@@ -74,8 +73,7 @@ std::basic_string<XMLCh> XMLTools::toXMLString(const char* const fromTranscode)
std::basic_string<XMLCh> str;
if (!fromTranscode)
return str;
XERCES_CPP_NAMESPACE_USE;
initialize();
static XMLCh outBuff[128];

View File

@@ -28,16 +28,10 @@
#include <memory>
#include <iostream>
#include <xercesc/util/TransService.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <Base/Exception.h>
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
class DOMDocument;
XERCES_CPP_NAMESPACE_END
XERCES_CPP_NAMESPACE_USE
// Helper class
class BaseExport XMLTools
{
@@ -48,7 +42,7 @@ public:
static void terminate();
private:
static std::unique_ptr<XERCES_CPP_NAMESPACE::XMLTranscoder> transcoder;
static std::unique_ptr<XMLTranscoder> transcoder;
};
//**************************************************************************
@@ -79,12 +73,12 @@ inline std::ostream& operator<<(std::ostream& target, const StrX& toDump)
inline StrX::StrX(const XMLCh* const toTranscode)
{
// Call the private transcoding method
fLocalForm = XERCES_CPP_NAMESPACE_QUALIFIER XMLString::transcode(toTranscode);
fLocalForm = XMLString::transcode(toTranscode);
}
inline StrX::~StrX()
{
XERCES_CPP_NAMESPACE_QUALIFIER XMLString::release(&fLocalForm);
XMLString::release(&fLocalForm);
}
@@ -158,12 +152,12 @@ private :
inline XStr::XStr(const char* const toTranscode)
{
fUnicodeForm = XERCES_CPP_NAMESPACE_QUALIFIER XMLString::transcode(toTranscode);
fUnicodeForm = XMLString::transcode(toTranscode);
}
inline XStr::~XStr()
{
XERCES_CPP_NAMESPACE_QUALIFIER XMLString::release(&fUnicodeForm);
XMLString::release(&fUnicodeForm);
}