= !MapGuide RFC 101 - Upgrading to Xerces 3.1.1 and removing it from the tree = This page contains an change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||1 July 2010)|| ||Last Modified||Rohit Razdan, 1 July 2010|| ||Author||Rohit Razdan|| ||RFC Status||draft|| ||Implementation Status||pending|| ||Proposed Milestone||2.3|| ||Assigned PSC guide(s)||Trevor Wekel|| ||'''Voting History'''|||| ||+1|||| ||+0|||| ||-0|||| ||-1|||| ||no vote|| || == Overview == This RFC proposes removal of Xerces from the MapGuide source tree and attendant upgrade to version 3.1.1 == Motivation == MapGuide uses Xerces libraries to perform XML manipulation. However the XML source tree is hardcoded into the Mapguide source tree, with the even the version number being hardcoded in the make files. Not only is this inelegant, but it also makes any upgrade tough. In this RFC I propose to remove the Xerces from the MapGuide source tree and upgrade it to version 3.1.1. == Proposed Solution == I propose to allow the user to install xerces-c++, and if already installed to use that existing installation with Mapguide. This involves two steps * Modifying the configure file to include an option --with-xercesc=. Default would be /usr . Using this option to configure the makefiles. These modules depend on xerces source code. * ./Server/src/UnitTesting/ * ./Server/src/Common/Manager/ * ./Server/src/Services/Kml/ * ./Server/src/Services/Feature/ * ./Server/src/Services/Resource/ * ./Server/src/Services/Rendering/ * ./Server/src/Services/Site/ * ./Server/src/Services/Drawing/ * ./Server/src/Services/Mapping/ * ./Server/src/Core/ * ./Web/src/JavaApi/ * ./Web/src/HttpHandler/ * ./Web/src/WebApp/ * ./Web/src/PhpApi/ * ./Common/Foundation/ * ./Common/PlatformBase/ * ./Common/Geometry/ * ./Common/MdfParser/ * ./Common/MapGuideCommon/ * Modifying the MapGuide code base for compatibility with Xerces 3.1.1. Xerces 3.1.1 introduces some major changes, both in terms of include files and also in terms of modifying the code to be compliant with DOM 3. Serializing classes like DOMWriter are not available and have been replaced with DOMLSSerializer. //TODO : insert code changes here == Implications == In terms of changes, the changes look minor. However extensive testing would have to be done to make sure that the upgrade is not causing any unwanted effect. == Test Plan == Use standard MapGuide unit tests. == Funding/Resources == GSOC