--- /dev/null
+--- src/XmlProcessor.cpp.old 2010-10-25 15:13:58.000000000 +0200
++++ src/XmlProcessor.cpp 2010-10-26 09:14:46.000000000 +0200
+@@ -34,8 +34,17 @@
+ //****************************************************************************************//\r
+ // DataDirResolver Class // \r
+ //****************************************************************************************//\r
+-\r
++#if XERCES_VERSION_MAJOR < 3\r
+ DOMInputSource* DataDirResolver::resolveEntity (const XMLCh *const /*publicId*/, const XMLCh *const systemId, const XMLCh *const /*baseURI*/) {\r
++#else\r
++InputSource* DataDirResolver::resolveEntity(const XMLCh* publicId, const XMLCh* systemId)\r
++{\r
++ return NULL;\r
++ //return DataDirResolver::resolveEntity (publicId, systemId, NULL);\r
++}\r
++\r
++DOMLSInput* DataDirResolver::resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI) {\r
++#endif\r
+ string path = "";\r
+ size_t last;\r
+ string schemapath = Common::GetSchemaPath();\r
+@@ -111,21 +120,35 @@
+ // Instantiate the DOM parser.\r
+ static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };\r
+ DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(gLS);\r
++#if XERCES_VERSION_MAJOR < 3\r
+ parser = ((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);\r
++#else\r
++ parser = ((DOMImplementationLS*)impl)->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);\r
++#endif\r
+ \r
+ ///////////////////////////////////////////////////////\r
+ // Set fetuares on the builder\r
+ ///////////////////////////////////////////////////////\r
+ \r
++#if XERCES_VERSION_MAJOR < 3\r
++#define SetParameter(parser,n,v) parser->setFeature(n,v)\r
++#else\r
++#define SetParameter(parser,n,v) parser->getDomConfig()->setParameter(n,v)\r
++#endif\r
++ SetParameter(parser, XMLUni::fgDOMComments, false); // Discard Comment nodes in the document. \r
++ SetParameter(parser, XMLUni::fgDOMDatatypeNormalization, true); // Let the validation process do its datatype normalization that is defined in the used schema language.\r
++ SetParameter(parser, XMLUni::fgDOMNamespaces, true); // Perform Namespace processing\r
++#if XERCES_VERSION_MAJOR < 3\r
++ SetParameter(parser, XMLUni::fgDOMValidation, true); // Report all validation errors.\r
++#else\r
++ SetParameter(parser, XMLUni::fgDOMValidate, true); // Report all validation errors.\r
++#endif\r
++ SetParameter(parser, XMLUni::fgXercesSchema, true); // Enable the parser's schema support.\r
++ SetParameter(parser, XMLUni::fgXercesSchemaFullChecking, true); // Enable full schema constraint checking, including checking which may be time-consuming or memory intensive. Currently, particle unique attribution constraint checking and particle derivation restriction checking are controlled by this option.\r
++ SetParameter(parser, XMLUni::fgXercesValidationErrorAsFatal, true); // The parser will treat validation error as fatal and will exit\r
++ SetParameter(parser, XMLUni::fgXercesDOMHasPSVIInfo, true); // Enable storing of PSVI information in element and attribute nodes.\r
+ \r
+- parser->setFeature(XMLUni::fgDOMComments, false); // Discard Comment nodes in the document. \r
+- parser->setFeature(XMLUni::fgDOMDatatypeNormalization, true); // Let the validation process do its datatype normalization that is defined in the used schema language. \r
+- parser->setFeature(XMLUni::fgDOMNamespaces, true); // Perform Namespace processing\r
+- parser->setFeature(XMLUni::fgDOMValidation, true); // Report all validation errors. \r
+- parser->setFeature(XMLUni::fgXercesSchema, true); // Enable the parser's schema support.\r
+- parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true); // Enable full schema constraint checking, including checking which may be time-consuming or memory intensive. Currently, particle unique attribution constraint checking and particle derivation restriction checking are controlled by this option. \r
+- parser->setFeature(XMLUni::fgXercesValidationErrorAsFatal, true); // The parser will treat validation error as fatal and will exit \r
+- parser->setFeature(XMLUni::fgXercesDOMHasPSVIInfo, true); // Enable storing of PSVI information in element and attribute nodes.\r
++#undef SetParameter\r
+ \r
+ ///////////////////////////////////////////////////////\r
+ //****************************************************************************************//\r
+@@ -133,7 +156,11 @@
+ //****************************************************************************************//\r
+ /* Look for XML schemas in local directory instead of Internet */\r
+ DataDirResolver resolver;\r
++#if XERCES_VERSION_MAJOR < 3\r
+ parser->setEntityResolver (&resolver);\r
++#else\r
++ parser->getDomConfig()->setParameter(XMLUni::fgXercesEntityResolver, &resolver);\r
++#endif\r
+ //****************************************************************************************//\r
+ // End of air-gap code // \r
+ //****************************************************************************************//\r
+@@ -144,7 +171,11 @@
+ // Create a new DOMErrorHandler\r
+ // and set it to the builder\r
+ XmlProcessorErrorHandler *errHandler = new XmlProcessorErrorHandler();\r
++#if XERCES_VERSION_MAJOR < 3\r
+ parser->setErrorHandler(errHandler);\r
++#else\r
++ parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, errHandler);\r
++#endif\r
+ \r
+ try {\r
+ // reset document pool\r
+@@ -215,24 +246,26 @@
+ XMLCh tempStr[100];\r
+ XMLString::transcode("LS", tempStr, 99);\r
+ DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr);\r
++#if XERCES_VERSION_MAJOR < 3\r
+ DOMWriter *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();\r
++#else\r
++ DOMLSSerializer *theSerializer = ((DOMImplementationLS*)impl)->createLSSerializer();\r
++#endif\r
++\r
++#if XERCES_VERSION_MAJOR < 3\r
++#define SetParameter(serializer,n,v) if (serializer->canSetFeature(n,v)) serializer->setFeature(n,v)\r
++#else\r
++#define SetParameter(serializer,n,v) if (serializer->getDomConfig()->canSetParameter(n,v)) serializer->getDomConfig()->setParameter(n,v)\r
++#endif\r
+ \r
+ // set feature if the serializer supports the feature/mode\r
+- if (theSerializer->canSetFeature(XMLUni::fgDOMWRTSplitCdataSections, true))\r
+- theSerializer->setFeature(XMLUni::fgDOMWRTSplitCdataSections, true);\r
+-\r
+- if (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true))\r
+- theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true);\r
+-\r
+- if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true))\r
+- theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);\r
+-\r
+- if (theSerializer->canSetFeature(XMLUni::fgDOMWRTBOM, false))\r
+- theSerializer->setFeature(XMLUni::fgDOMWRTBOM, false);\r
+-\r
+- //if (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true))\r
+- // theSerializer->setFeature(XMLUni::fgDOMWRTBOM, true);\r
++ SetParameter(theSerializer, XMLUni::fgDOMWRTSplitCdataSections, true);\r
++ SetParameter(theSerializer, XMLUni::fgDOMWRTDiscardDefaultContent, true);\r
++ SetParameter(theSerializer, XMLUni::fgDOMWRTFormatPrettyPrint, true);\r
++ SetParameter(theSerializer, XMLUni::fgDOMWRTBOM, false);\r
++ //SetParameter(theSerializer, XMLUni::fgDOMWRTBOM, true);\r
+ \r
++#undef SetParameter\r
+ //\r
+ // Plug in a format target to receive the resultant\r
+ // XML stream from the serializer.\r
+@@ -249,7 +282,13 @@
+ //\r
+ // do the serialization through DOMWriter::writeNode();\r
+ //\r
++#if XERCES_VERSION_MAJOR < 3\r
+ theSerializer->writeNode(myFormTarget, *doc);\r
++#else\r
++ DOMLSOutput *output = ((DOMImplementationLS*)impl)->createLSOutput();\r
++ output->setByteStream(myFormTarget);\r
++ theSerializer->write(doc, output);\r
++#endif\r
+ \r
+ delete theSerializer;\r
+ delete myFormTarget;\r
+--- src/XmlProcessor.h.old 2010-10-22 12:06:05.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 12:06:20.000000000 +0200
+@@ -40,7 +40,7 @@
+ \r
+ // required xerces includes\r
+ #include <xercesc/dom/DOMImplementationRegistry.hpp>\r
+-#include <xercesc/dom/DOMBuilder.hpp>\r
++//#include <xercesc/dom/DOMBuilder.hpp>\r
+ #include <xercesc/dom/DOMException.hpp>\r
+ #include <xercesc/dom/DOMErrorHandler.hpp>\r
+ #include <xercesc/dom/DOMError.hpp>\r
+--- src/XmlProcessor.h.old 2010-10-22 14:40:45.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 14:42:00.000000000 +0200
+@@ -50,18 +50,23 @@
+ // for dom Writer\r
+ #include <xercesc/dom/DOMImplementation.hpp>\r
+ #include <xercesc/dom/DOMImplementationLS.hpp>\r
+-#include <xercesc/dom/DOMWriter.hpp>\r
++//#include <xercesc/dom/DOMWriter.hpp>\r
+ #include <xercesc/framework/StdOutFormatTarget.hpp>\r
+ #include <xercesc/framework/LocalFileFormatTarget.hpp>\r
+ #include <xercesc/parsers/XercesDOMParser.hpp>\r
+ #include <xercesc/util/XMLUni.hpp>\r
+ \r
+ // for entity resolver\r
+-#include <xercesc/dom/DOMEntityResolver.hpp>\r
+-#include <xercesc/dom/DOMInputSource.hpp>\r
++//#include <xercesc/dom/DOMEntityResolver.hpp>\r
++//#include <xercesc/dom/DOMInputSource.hpp>\r
+ #include <xercesc/framework/LocalFileInputSource.hpp>\r
+ #include <xercesc/framework/Wrapper4InputSource.hpp>\r
+ \r
++#include <xercesc/dom/DOMImplementationRegistry.hpp>\r
++#include <xercesc/sax/EntityResolver.hpp>\r
++#include <xercesc/sax/InputSource.hpp>\r
++#include <xercesc/sax2/SAX2XMLReader.hpp>\r
++\r
+ \r
+ XERCES_CPP_NAMESPACE_USE\r
+ \r
+--- src/XmlProcessor.h.old 2010-10-22 14:43:06.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 14:44:16.000000000 +0200
+@@ -75,12 +75,14 @@
+ This class extends the default DOMEntityResolver and implments the resolve entity method \r
+ to support \r
+ */\r
+-class DataDirResolver : public DOMEntityResolver {\r
++class DataDirResolver : public EntityResolver {\r
+ public:\r
+ /**\r
+ * \r
+ */\r
+- DOMInputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
++// DOMInputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
++ InputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId);\r
++ DOMLSInput *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
+ };\r
+ \r
+ /**\r
+@@ -120,7 +122,7 @@
+ \r
+ static XmlProcessor* instance;\r
+ \r
+- DOMBuilder *parser;\r
++ DOMLSParser *parser;\r
+ };\r
+ \r
+ /** \r
+--- src/probes/independent/XmlFileContentProbe.cpp.old 2010-10-22 14:49:22.000000000 +0200
++++ src/probes/independent/XmlFileContentProbe.cpp 2010-10-22 14:51:39.000000000 +0200
+@@ -419,12 +419,24 @@
+ return new DummyEntityResolver::DoNothingBinInputStream();\r
+ }\r
+ \r
++#if XERCES_VERSION_MAJOR < 3\r
+ unsigned int DummyEntityResolver::DoNothingBinInputStream::curPos() const\r
++#else\r
++const XMLCh* DummyEntityResolver::DoNothingBinInputStream::getContentType() const\r
++{\r
++ return NULL;\r
++}\r
++XMLFilePos DummyEntityResolver::DoNothingBinInputStream::curPos() const\r
++#endif\r
+ {\r
+ return 0;\r
+ }\r
+ \r
++#if XERCES_VERSION_MAJOR < 3\r
+ unsigned int DummyEntityResolver::DoNothingBinInputStream::readBytes(XMLByte *const /*toFill*/, const unsigned int /*maxToRead*/)\r
++#else\r
++XMLSize_t DummyEntityResolver::DoNothingBinInputStream::readBytes(XMLByte *const toFill, XMLSize_t maxToRead)\r
++#endif\r
+ {\r
+ return 0;\r
+ }\r
+--- src/probes/independent/XmlFileContentProbe.h.old 2010-10-22 14:55:47.000000000 +0200
++++ src/probes/independent/XmlFileContentProbe.h 2010-10-22 14:57:00.000000000 +0200
+@@ -134,8 +134,14 @@
+ class DoNothingBinInputStream : public BinInputStream\r
+ {\r
+ public:\r
++#if XERCES_VERSION_MAJOR < 3\r
+ virtual unsigned int curPos() const;\r
+ virtual unsigned int readBytes(XMLByte *const toFill, const unsigned int maxToRead);\r
++#else\r
++ virtual XMLFilePos curPos() const;\r
++ virtual const XMLCh* getContentType() const;\r
++ virtual XMLSize_t readBytes(XMLByte *const toFill, XMLSize_t maxToRead);\r
++#endif\r
+ };\r
+ };\r
+ \r
+--- src/XmlCommon.cpp.old
++++ src/XmlCommon.cpp
+@@ -546,7 +546,11 @@ void XmlCommon::AddSchemaLocation(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *do
+ string XmlCommon::GetNamespace(DOMElement *element) {\r
+ \r
+ string xmlns = "";\r
++#if XERCES_VERSION_MAJOR < 3\r
+ xmlns = XmlCommon::ToString(element->getTypeInfo()->getNamespace());\r
++#else\r
++ xmlns = XmlCommon::ToString(element->getSchemaTypeInfo()->getTypeNamespace());\r
++#endif\r
+ if (xmlns.compare("") == 0) {\r
+ xmlns = "";\r
+ }\r
--- /dev/null
+--- src/probes/linux/rpmdb.h.old 2010-10-22 15:16:49.000000000 +0200
++++ src/probes/linux/rpmdb.h 2010-10-22 15:22:09.000000000 +0200
+@@ -8,8 +8,8 @@
+ */
+
+ #include <assert.h>
+-#include "rpmlib.h"
+-#include "rpmsw.h"
++/*#include <rpmlib.h>
++#include <rpmsw.h>*/
+ #include "db.h"
+
+ /*@-exportlocal@*/
+@@ -508,7 +508,7 @@
+ * @param opx per-rpmdb accumulator index (aka rpmtsOpX)
+ * @return per-rpmdb accumulator pointer
+ */
+-void * dbiStatsAccumulator(dbiIndex dbi, int opx)
++rpmop_s * dbiStatsAccumulator(dbiIndex dbi, int opx)
+ /*@*/;
+
+ #if !defined(SWIG)
+@@ -576,7 +576,7 @@
+ /*@globals fileSystem, internalState @*/
+ /*@modifies dbi, *dbcursor, fileSystem, internalState @*/
+ {
+- void * sw = dbiStatsAccumulator(dbi, 16); /* RPMTS_OP_DBDEL */
++ rpmop_s *sw = dbiStatsAccumulator(dbi, 16); /* RPMTS_OP_DBDEL */
+ int rc;
+ assert(key->data != NULL && key->size > 0);
+ (void) rpmswEnter(sw, 0);
+@@ -600,7 +600,7 @@
+ /*@globals fileSystem, internalState @*/
+ /*@modifies dbi, *dbcursor, *key, *data, fileSystem, internalState @*/
+ {
+- void * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
++ rpmop_s * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
+ int rc;
+ assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
+ (void) rpmswEnter(sw, 0);
+@@ -625,7 +625,7 @@
+ /*@globals fileSystem, internalState @*/
+ /*@modifies dbi, *dbcursor, *key, *pkey, *data, fileSystem, internalState @*/
+ {
+- void * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
++ rpmop_s * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
+ int rc;
+ assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
+ (void) rpmswEnter(sw, 0);
+@@ -649,7 +649,7 @@
+ /*@globals fileSystem, internalState @*/
+ /*@modifies dbi, *dbcursor, *key, fileSystem, internalState @*/
+ {
+- void * sw = dbiStatsAccumulator(dbi, 15); /* RPMTS_OP_DBPUT */
++ rpmop_s * sw = dbiStatsAccumulator(dbi, 15); /* RPMTS_OP_DBPUT */
+ int rc;
+ assert(key->data != NULL && key->size > 0 && data->data != NULL && data->size > 0);
+ (void) rpmswEnter(sw, 0);