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. 
