diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp
index 5bf2dbb23b7c..1a70438e23ce 100644
--- a/src/App/Metadata.cpp
+++ b/src/App/Metadata.cpp
@@ -58,7 +58,12 @@ directly. If you did not intend to use a system-defined macro
using namespace App;
namespace fs = boost::filesystem;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
namespace MetadataInternal
{
diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp
index 9ad1fd79adf5..a2241a0e6e67 100644
--- a/src/App/MetadataPyImp.cpp
+++ b/src/App/MetadataPyImp.cpp
@@ -30,7 +30,12 @@
#include "MetadataPy.cpp"
using namespace Base;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
// Returns a string which represents the object e.g. when printed in Python
std::string MetadataPy::representation() const
diff --git a/src/App/ProjectFile.cpp b/src/App/ProjectFile.cpp
index 316d18568940..b87fa0394f3d 100644
--- a/src/App/ProjectFile.cpp
+++ b/src/App/ProjectFile.cpp
@@ -56,7 +56,12 @@
#include
#include
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace App;
namespace {
diff --git a/src/App/ProjectFile.h b/src/App/ProjectFile.h
index b0b30038dc12..f2423f7d08ec 100644
--- a/src/App/ProjectFile.h
+++ b/src/App/ProjectFile.h
@@ -32,11 +32,17 @@
#include
#include
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE { class DOMNode; class DOMElement; class DOMDocument; }
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMDocument;
class DOMElement;
class DOMNode;
XERCES_CPP_NAMESPACE_END
+#endif
namespace App
{
diff --git a/src/Base/InputSource.cpp b/src/Base/InputSource.cpp
index 6946d56d9f9c..9ed9f294bdab 100644
--- a/src/Base/InputSource.cpp
+++ b/src/Base/InputSource.cpp
@@ -35,8 +35,12 @@
#include "InputSource.h"
#include "XMLTools.h"
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace Base;
using namespace std;
diff --git a/src/Base/InputSource.h b/src/Base/InputSource.h
index de8dd61d3a4b..d042a19a0cfc 100644
--- a/src/Base/InputSource.h
+++ b/src/Base/InputSource.h
@@ -32,10 +32,18 @@
#include
#endif
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class BinInputStream;
+}
+#else
XERCES_CPP_NAMESPACE_BEGIN
class BinInputStream;
XERCES_CPP_NAMESPACE_END
+#endif
namespace Base
{
diff --git a/src/Base/Parameter.cpp b/src/Base/Parameter.cpp
index 6ce71df9c603..5bff9473170d 100644
--- a/src/Base/Parameter.cpp
+++ b/src/Base/Parameter.cpp
@@ -60,8 +60,12 @@
FC_LOG_LEVEL_INIT("Parameter", true, true)
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace Base;
@@ -77,7 +81,6 @@ using namespace Base;
// - XStr
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
class DOMTreeErrorReporter: public ErrorHandler
{
public:
diff --git a/src/Base/Parameter.h b/src/Base/Parameter.h
index 5f967ba6927e..92a9fcb7d413 100644
--- a/src/Base/Parameter.h
+++ b/src/Base/Parameter.h
@@ -65,7 +65,18 @@ using PyObject = struct _object;
#pragma warning(disable : 4275)
#endif
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMNode;
+class DOMElement;
+class DOMDocument;
+class XMLFormatTarget;
+class InputSource;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
@@ -73,6 +84,7 @@ class DOMDocument;
class XMLFormatTarget;
class InputSource;
XERCES_CPP_NAMESPACE_END
+#endif
class ParameterManager;
diff --git a/src/Base/Reader.cpp b/src/Base/Reader.cpp
index 20b615bedebe..2116afbed302 100644
--- a/src/Base/Reader.cpp
+++ b/src/Base/Reader.cpp
@@ -46,8 +46,12 @@
#include
#include
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace std;
diff --git a/src/Base/Reader.h b/src/Base/Reader.h
index 23cb2bf96217..81b546e93f4c 100644
--- a/src/Base/Reader.h
+++ b/src/Base/Reader.h
@@ -42,11 +42,20 @@ namespace zipios
{
class ZipInputStream;
}
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DefaultHandler;
+class SAX2XMLReader;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DefaultHandler;
class SAX2XMLReader;
XERCES_CPP_NAMESPACE_END
+#endif
namespace Base
{
diff --git a/src/Base/XMLTools.cpp b/src/Base/XMLTools.cpp
index 930e4f7a417f..e1daf57a8b65 100644
--- a/src/Base/XMLTools.cpp
+++ b/src/Base/XMLTools.cpp
@@ -26,7 +26,12 @@
#include "XMLTools.h"
using namespace Base;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
std::unique_ptr XMLTools::transcoder; // NOLINT
diff --git a/src/Base/XMLTools.h b/src/Base/XMLTools.h
index caab71235a2d..798b975d8c05 100644
--- a/src/Base/XMLTools.h
+++ b/src/Base/XMLTools.h
@@ -31,12 +31,22 @@
#include
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMNode;
+class DOMElement;
+class DOMDocument;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
class DOMDocument;
XERCES_CPP_NAMESPACE_END
+#endif
// Helper class
class BaseExport XMLTools
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
index 5bd217a3cc4e..63d4d0cf7bb2 100644
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
@@ -41,7 +41,12 @@
using namespace MeshCore;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
Reader3MF::Reader3MF(std::istream& str)
{
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.h b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
index 93c705b940e5..13c837d2fe7c 100644
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.h
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
@@ -31,10 +31,20 @@
#include
#include
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMDocument;
+class DOMNodeList;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMDocument;
class DOMNodeList;
XERCES_CPP_NAMESPACE_END
+#endif
namespace MeshCore
{
diff --git a/tests/src/App/Metadata.cpp b/tests/src/App/Metadata.cpp
index 7d57fb09fe7a..c444b4eb7571 100644
--- a/tests/src/App/Metadata.cpp
+++ b/tests/src/App/Metadata.cpp
@@ -24,6 +24,7 @@
#include
#include "App/Metadata.h"
+#include
// NOLINTBEGIN(readability-named-parameter)
@@ -192,11 +193,11 @@ class MetadataTest: public ::testing::Test
protected:
void SetUp() override
{
- xercesc_3_2::XMLPlatformUtils::Initialize();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
}
void TearDown() override
{
- xercesc_3_2::XMLPlatformUtils::Terminate();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate();
}
std::string GivenSimpleMetadataXMLString()
{
diff --git a/tests/src/Base/Reader.cpp b/tests/src/Base/Reader.cpp
index c662fa608aa1..79038059d077 100644
--- a/tests/src/Base/Reader.cpp
+++ b/tests/src/Base/Reader.cpp
@@ -11,6 +11,7 @@
#include
#include
#include
+#include
namespace fs = boost::filesystem;
@@ -19,7 +20,7 @@ class ReaderTest: public ::testing::Test
protected:
void SetUp() override
{
- xercesc_3_2::XMLPlatformUtils::Initialize();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
_tempDir = fs::temp_directory_path();
std::string filename = "unit_test_Reader.xml";
_tempFile = _tempDir / filename;