Error messages in Xerces are generated by tools\NLS\Xlat, which currently runs on windows. Here are the steps: 1) Modify XMLErrList_EN_US.Xml as per the changes 2) Compile all the files in tools\NLS\Xlat and link them all into an executable (Xlat.cpp has the main()) 3) Run this Xlat executable with parameter: /SrcRoot=x:/xerces-c-src/ /OutPath=x:/output/ /OutFmt=KKK/Locale=EN_US where: i. SrcRoot should point to XERCESCROOT ii. OutPath should be any output folder that stores that generated files iii. Run it four times by setting OutFmt=Win32RC, OutFmt=CppSrc, OutFmt=ResBundle, OutFmt=MsgCat, respectively 4) Then the following files will be generated, and must be copied to their appropriate location: i. en_US.txt - copy this file to \src\xercesc\util\MsgLoaders\ICU\resources ii. XercesMessages_en_US.hpp - copy this file to \src\xercesc\util\MsgLoaders\InMemory iii. XercesMessages_en_US.Msg - copy this file to src\xercesc\util\MsgLoaders\MsgCatalog iv. XMLDOMMsg.hpp - copy this file to src\xercesc\util v. XMLErrorCodes.hpp - copy this file to src\xercesc\framework vi. XMLExceptMsgs.hpp - copy this file to src\xercesc\util vii. XMLMsgCat_Ids.hpp - copy this file to src\xercesc\util\MsgLoaders\MsgCatalog viii. XMLValidityCodes.hpp - copy this file to src\xercesc\framework ix. CppErrMsgs_en_US.RC - copy the entire file and replace the content appearing between the line which reads: #endif // APSTUDIO_INVOKED and the line which reads: #endif // English (U.S.) resources in src\xercesc\util\MsgLoaders\Win32\version.rc What you replace should begin with: // ---------------------------------------------------------------- // This file was generated from the XML error message source. Note: If you run Xlat on windows, and are commiting them under unix, you must first run dos2unix on them.