This commit was manufactured by cvs2svn to create tag
'Xerces-C_1_0_0'.

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/tags/Xerces-C_1_0_0@171462 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/Projects/Win32/Unsupported/IntVC6/NLSXlat/NLSXlat.dsp b/Projects/Win32/Unsupported/IntVC6/NLSXlat/NLSXlat.dsp
index 7d3ed50..e2b8888 100644
--- a/Projects/Win32/Unsupported/IntVC6/NLSXlat/NLSXlat.dsp
+++ b/Projects/Win32/Unsupported/IntVC6/NLSXlat/NLSXlat.dsp
@@ -42,7 +42,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MD /Za /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /I "\ICU\Include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
+# ADD CPP /nologo /G6 /MD /Za /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /I "\icu_1_3_1\Include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
 # SUBTRACT CPP /YX
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /d "NDEBUG"
@@ -51,7 +51,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib IXDom.lib IXUtil.lib IXPar.lib IXSAX.lib icuuc.lib /nologo /version:3.0 /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release" /libpath:"\ICU\Lib\Release"
+# ADD LINK32 kernel32.lib user32.lib IXDom.lib IXUtil.lib IXPar.lib IXSAX.lib icuuc.lib /nologo /version:3.0 /subsystem:console /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release" /libpath:"\icu_1_3_1\Lib\Release"
 
 !ELSEIF  "$(CFG)" == "NLSXlat - Win32 Debug"
 
@@ -67,7 +67,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MDd /Za /W3 /GX /Zi /Od /I "..\..\..\..\..\src" /I "\ICU\Include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /Za /W3 /GX /Zi /Od /I "..\..\..\..\..\src" /I "\icu_1_3_1\Include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /GZ /c
 # SUBTRACT CPP /YX
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
@@ -76,7 +76,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXDom.lib IXUtil.lib IXPar.lib IXSAX.lib icuuc.lib /nologo /version:3.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\ICU\Lib\Debug"
+# ADD LINK32 kernel32.lib user32.lib IXDom.lib IXUtil.lib IXPar.lib IXSAX.lib icuuc.lib /nologo /version:3.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\icu_1_3_1\Lib\Debug"
 
 !ENDIF 
 
diff --git a/Projects/Win32/Unsupported/IntVC6/Validators/Validators.dsp b/Projects/Win32/Unsupported/IntVC6/Validators/Validators.dsp
index 4f73b37..cadef07 100644
--- a/Projects/Win32/Unsupported/IntVC6/Validators/Validators.dsp
+++ b/Projects/Win32/Unsupported/IntVC6/Validators/Validators.dsp
@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib IXCore.Lib IXSAX.Lib /nologo /base:"0x12000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug\IXVal.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\ICU\Lib\Debug"
+# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib IXCore.Lib IXSAX.Lib /nologo /base:"0x12000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug\IXVal.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
 # SUBTRACT LINK32 /profile
 
 !ENDIF 
diff --git a/Projects/Win32/Unsupported/IntVC6/XML4CParser/XML4CParser.dsp b/Projects/Win32/Unsupported/IntVC6/XML4CParser/XML4CParser.dsp
index 007609c..9f67490 100644
--- a/Projects/Win32/Unsupported/IntVC6/XML4CParser/XML4CParser.dsp
+++ b/Projects/Win32/Unsupported/IntVC6/XML4CParser/XML4CParser.dsp
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib /nologo /base:"0x11000000" /version:3.0 /dll /map /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Release/IXCore.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Release" /libpath:"\ICU\Lib\Release"
+# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib /nologo /base:"0x11000000" /version:3.0 /dll /map /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Release/IXCore.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
 # SUBTRACT LINK32 /profile
 
 !ELSEIF  "$(CFG)" == "XML4CParser - Win32 Debug"
@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib /nologo /base:"0x11000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug/IXCore.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\ICU\Lib\Debug"
+# ADD LINK32 kernel32.lib user32.lib IXUtil.Lib /nologo /base:"0x11000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug/IXCore.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
 # SUBTRACT LINK32 /profile /map
 
 !ENDIF 
diff --git a/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp b/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
index b0501ef..fc0182d 100644
--- a/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
+++ b/Projects/Win32/Unsupported/IntVC6/XMLUtil/XMLUtil.dsp
@@ -43,7 +43,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLUTIL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /G6 /MD /Za /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /I "\icu\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PROJ_XMLUTIL" /D "XML_USE_ICU_TRANSCODER" /D "XML_USE_WIN32_MSGLOADER" /FD /c
+# ADD CPP /nologo /G6 /MD /Za /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /I "\icu_1_3_1\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PROJ_XMLUTIL" /D "XML_USE_ICU_TRANSCODER" /D "XML_USE_WIN32_MSGLOADER" /FD /c
 # SUBTRACT CPP /YX
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib icuuc.lib /nologo /base:"0x10000000" /version:3.0 /dll /map /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Release/IXUtil.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Release" /libpath:"\ICU\Lib\Release"
+# ADD LINK32 kernel32.lib user32.lib icuuc.lib /nologo /base:"0x10000000" /version:3.0 /dll /map /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Release/IXUtil.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Release" /libpath:"\icu_1_3_1\Lib\Release"
 # SUBTRACT LINK32 /profile
 
 !ELSEIF  "$(CFG)" == "XMLUtil - Win32 Debug"
@@ -71,7 +71,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLUTIL_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MDd /Za /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\src" /I "\icu\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PROJ_XMLUTIL" /D "XML_USE_ICU_TRANSCODER" /D "XML_USE_INMEMORY_MSGLOADER" /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /Za /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\src" /I "\icu_1_3_1\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PROJ_XMLUTIL" /D "XML_USE_ICU_TRANSCODER" /D "XML_USE_INMEMORY_MSGLOADER" /FD /GZ /c
 # SUBTRACT CPP /YX
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
@@ -82,7 +82,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib icuuc.lib /nologo /base:"0x10000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug/IXUtil.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\ICU\Lib\Debug"
+# ADD LINK32 kernel32.lib user32.lib icuuc.lib /nologo /base:"0x10000000" /version:3.0 /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug/IXUtil.dll" /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug" /libpath:"\icu_1_3_1\Lib\Debug"
 # SUBTRACT LINK32 /profile
 
 !ENDIF 
diff --git a/Projects/Win32/VC6/xerces-all/DOMCount/DOMCount.dsp b/Projects/Win32/VC6/xerces-all/DOMCount/DOMCount.dsp
new file mode 100644
index 0000000..7e25022
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/DOMCount/DOMCount.dsp
@@ -0,0 +1,96 @@
+# Microsoft Developer Studio Project File - Name="DOMCount" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=DOMCount - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMCount.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMCount.mak" CFG="DOMCount - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "DOMCount - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "DOMCount - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "DOMCount - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "DOMCount - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "DOMCount - Win32 Release"
+# Name "DOMCount - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMCount\DOMCount.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMCount\DOMCount.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/DOMMemTest/DOMMemTest.dsp b/Projects/Win32/VC6/xerces-all/DOMMemTest/DOMMemTest.dsp
new file mode 100644
index 0000000..6eea25b
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/DOMMemTest/DOMMemTest.dsp
@@ -0,0 +1,102 @@
+# Microsoft Developer Studio Project File - Name="DOMMemTest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=DOMMemTest - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMMemTest.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMMemTest.mak" CFG="DOMMemTest - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "DOMMemTest - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "DOMMemTest - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "DOMMemTest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF  "$(CFG)" == "DOMMemTest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /GZ  /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "DOMMemTest - Win32 Release"
+# Name "DOMMemTest - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\tests\DOM\DOMMemTest\DOMMemTest.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/DOMPrint/DOMPrint.dsp b/Projects/Win32/VC6/xerces-all/DOMPrint/DOMPrint.dsp
new file mode 100644
index 0000000..e91cc09
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/DOMPrint/DOMPrint.dsp
@@ -0,0 +1,104 @@
+# Microsoft Developer Studio Project File - Name="DOMPrint" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=DOMPrint - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMPrint.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMPrint.mak" CFG="DOMPrint - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "DOMPrint - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "DOMPrint - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "DOMPrint - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "DOMPrint - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:3.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "DOMPrint - Win32 Release"
+# Name "DOMPrint - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMPrint\DOMPrint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMPrint\DOMPrint.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMPrint\DomTreeErrorReporter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\DOMPrint\DomTreeErrorReporter.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/DOMTest/DOMTest.dsp b/Projects/Win32/VC6/xerces-all/DOMTest/DOMTest.dsp
new file mode 100644
index 0000000..8a2d5d1
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/DOMTest/DOMTest.dsp
@@ -0,0 +1,105 @@
+# Microsoft Developer Studio Project File - Name="DOMTest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=DOMTest - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMTest.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "DOMTest.mak" CFG="DOMTest - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "DOMTest - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "DOMTest - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "DOMTest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF  "$(CFG)" == "DOMTest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /GZ  /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "DOMTest - Win32 Release"
+# Name "DOMTest - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\tests\DOM\DOMTest\DTest.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\tests\DOM\DOMTest\DTest.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/EnumVal/EnumVal.dsp b/Projects/Win32/VC6/xerces-all/EnumVal/EnumVal.dsp
new file mode 100644
index 0000000..9abb73a
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/EnumVal/EnumVal.dsp
@@ -0,0 +1,92 @@
+# Microsoft Developer Studio Project File - Name="EnumVal" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=EnumVal - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "EnumVal.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "EnumVal.mak" CFG="EnumVal - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "EnumVal - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "EnumVal - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "EnumVal - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "EnumVal - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "EnumVal - Win32 Release"
+# Name "EnumVal - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\EnumVal\EnumVal.cpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/MemParse/MemParse.dsp b/Projects/Win32/VC6/xerces-all/MemParse/MemParse.dsp
new file mode 100644
index 0000000..86c7b89
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/MemParse/MemParse.dsp
@@ -0,0 +1,104 @@
+# Microsoft Developer Studio Project File - Name="MemParse" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=MemParse - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "MemParse.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "MemParse.mak" CFG="MemParse - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "MemParse - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "MemParse - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "MemParse - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "MemParse - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "MemParse - Win32 Release"
+# Name "MemParse - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\MemParse\MemParse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\MemParse\MemParse.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\MemParse\MemParseHandlers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\MemParse\MemParseHandlers.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/PParse/PParse.dsp b/Projects/Win32/VC6/xerces-all/PParse/PParse.dsp
new file mode 100644
index 0000000..f7af913
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/PParse/PParse.dsp
@@ -0,0 +1,116 @@
+# Microsoft Developer Studio Project File - Name="PParse" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=PParse - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "PParse.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "PParse.mak" CFG="PParse - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "PParse - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "PParse - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "PParse - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "PParse - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "PParse - Win32 Release"
+# Name "PParse - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\PParse\PParse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\PParse\PParseHandlers.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\PParse\PParse.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\PParse\PParseHandlers.hpp
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/Redirect/Redirect.dsp b/Projects/Win32/VC6/xerces-all/Redirect/Redirect.dsp
new file mode 100644
index 0000000..995ed6b
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/Redirect/Redirect.dsp
@@ -0,0 +1,104 @@
+# Microsoft Developer Studio Project File - Name="Redirect" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=Redirect - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "Redirect.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "Redirect.mak" CFG="Redirect - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "Redirect - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Redirect - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "Redirect - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "Redirect - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "Redirect - Win32 Release"
+# Name "Redirect - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\Redirect\Redirect.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\Redirect\Redirect.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\Redirect\RedirectHandlers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\Redirect\RedirectHandlers.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/SAXCount/SAXCount.dsp b/Projects/Win32/VC6/xerces-all/SAXCount/SAXCount.dsp
new file mode 100644
index 0000000..2b21c29
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/SAXCount/SAXCount.dsp
@@ -0,0 +1,104 @@
+# Microsoft Developer Studio Project File - Name="SAXCount" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=SAXCount - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "SAXCount.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "SAXCount.mak" CFG="SAXCount - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "SAXCount - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "SAXCount - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "SAXCount - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "SAXCount - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "SAXCount - Win32 Release"
+# Name "SAXCount - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXCount\SAXCount.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXCount\SAXCount.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXCount\SAXCountHandlers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXCount\SAXCountHandlers.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/SAXPrint/SAXPrint.dsp b/Projects/Win32/VC6/xerces-all/SAXPrint/SAXPrint.dsp
new file mode 100644
index 0000000..2853af5
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/SAXPrint/SAXPrint.dsp
@@ -0,0 +1,104 @@
+# Microsoft Developer Studio Project File - Name="SAXPrint" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=SAXPrint - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "SAXPrint.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "SAXPrint.mak" CFG="SAXPrint - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "SAXPrint - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "SAXPrint - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "SAXPrint - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "SAXPrint - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "SAXPrint - Win32 Release"
+# Name "SAXPrint - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXPrint\SAXPrint.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXPrint\SAXPrint.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXPrint\SAXPrintHandlers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\SAXPrint\SAXPrintHandlers.hpp
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/StdInParse/StdInParse.dsp b/Projects/Win32/VC6/xerces-all/StdInParse/StdInParse.dsp
new file mode 100644
index 0000000..89c3721
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/StdInParse/StdInParse.dsp
@@ -0,0 +1,116 @@
+# Microsoft Developer Studio Project File - Name="StdInParse" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=StdInParse - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "StdInParse.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "StdInParse.mak" CFG="StdInParse - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "StdInParse - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "StdInParse - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "StdInParse - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /incremental:yes /machine:I386 /libpath:"..\..\..\..\..\Build\Win32\VC6\Release"
+
+!ELSEIF  "$(CFG)" == "StdInParse - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\..\src" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:3.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\Build\Win32\VC6\Debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "StdInParse - Win32 Release"
+# Name "StdInParse - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\StdInParse\StdInParse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\StdInParse\StdInParseHandlers.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\StdInParse\StdInParse.Hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\samples\StdInParse\StdInParseHandlers.hpp
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp b/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
new file mode 100644
index 0000000..f0479fe
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
@@ -0,0 +1,1153 @@
+# Microsoft Developer Studio Project File - Name="XercesLib" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=XercesLib - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "XercesLib.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "XercesLib.mak" CFG="XercesLib - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "XercesLib - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "XercesLib - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "XercesLib - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Release"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Release\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /G6 /MD /Za /W3 /GX /O2 /Ob2 /I "..\..\src" /I "..\..\src\dom" /I "..\..\..\..\..\src" /D "PROJ_XMLPARSER" /D "PROJ_XMLUTIL" /D "PROJ_PARSERS" /D "PROJ_SAX4C" /D "PROJ_DOM" /D "PROJ_VALIDATORS" /D "XML_SINGLEDLL" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "DEVENV_VCPP" /D "PLATFORM_WIN32" /D "XML_USE_WIN32_TRANSCODER" /D "XML_USE_WIN32_MSGLOADER" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib /nologo /base:"0x10000000" /version:1.0 /subsystem:windows /dll /incremental:yes /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Release\xerces-c_1_0.dll" /implib:"..\..\..\..\..\Build\Win32\VC6\Release/xerces-c_1.lib"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "XercesLib - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\Build\Win32\VC6\Debug"
+# PROP Intermediate_Dir "..\..\..\..\..\Build\Win32\VC6\Debug\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /G6 /MDd /Za /W3 /Gm /GX /ZI /Od /I "..\..\src" /I "..\..\src\dom" /I "..\..\..\..\..\src" /D "PROJ_XMLPARSER" /D "PROJ_XMLUTIL" /D "PROJ_PARSERS" /D "PROJ_SAX4C" /D "PROJ_DOM" /D "PROJ_VALIDATORS" /D "XML_SINGLEDLL" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "XML_USE_WIN32_TRANSCODER" /D "XML_USE_WIN32_MSGLOADER" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib /nologo /base:"0x10000000" /version:1.0 /subsystem:windows /dll /debug /machine:I386 /out:"..\..\..\..\..\Build\Win32\VC6\Debug/xerces-c_1_0.dll" /implib:"..\..\..\..\..\Build\Win32\VC6\Debug/xerces-c_1.lib" /pdbtype:sept
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF 
+
+# Begin Target
+
+# Name "XercesLib - Win32 Release"
+# Name "XercesLib - Win32 Debug"
+# Begin Group "util"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Group "Win32"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Platforms\Win32\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Platforms\Win32\Win32Defs.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Platforms\Win32\Win32PlatformUtils.cpp
+# ADD CPP /Ze
+# End Source File
+# End Group
+# Begin Group "MsgLoaders"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\MsgLoaders\InMemory\CppErrMsgs_EN_US.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\MsgLoaders\Win32\Win32MsgLoader.Cpp
+# ADD CPP /Ze
+# End Source File
+# End Group
+# Begin Group "Transcoders"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Transcoders\Win32\Win32TransService.cpp
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Transcoders\Win32\Win32TransService.hpp
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\ArrayIndexOutOfBoundsException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\AutoSense.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinFileInputStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinFileInputStream.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinInputStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinInputStream.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinMemInputStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BinMemInputStream.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BitOps.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BitSet.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\BitSet.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\CountedPointer.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\EmptyStackException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\FlagJanitor.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\HeaderDummy.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\IllegalArgumentException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\InvalidCastException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\IOException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Janitor.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\KeyValuePair.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\KVStringPair.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\KVStringPair.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Mutexes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Mutexes.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\NameIdPool.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\NoDefTranscoderException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\NoSuchElementException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\NullPointerException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\PlatformUtils.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\PlatformUtils.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\RefArrayOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\RefHashTableOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\RefStackOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\RefVectorOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\RuntimeException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\StdOut.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\StdOut.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\StringPool.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\StringPool.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\TextOutputStream.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\TextOutputStream.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\TranscodingException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\TransService.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\UnexpectedEOFException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\UnsupportedEncodingException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\URL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\URL.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\UTFDataFormatException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\ValueArrayOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\ValueStackOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\ValueVectorOf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XML4CDefs.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLEnumerator.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLExceptMsgs.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLMsgLoader.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLString.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLUni.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\XMLUni.hpp
+# End Source File
+# End Group
+# Begin Group "framework"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLAttDef.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLAttDef.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLAttDefList.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLAttr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLAttr.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLBuffer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLBuffer.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLBufferMgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLBufferMgr.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLContentModel.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLContentModel.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLDocumentHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLElementDecl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLElementDecl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLEntityDecl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLEntityDecl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLEntityHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLErrorCodes.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLNotationDecl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLNotationDecl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLRecognizer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLRecognizer.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLRefInfo.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLValidator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\framework\XMLValidator.hpp
+# End Source File
+# End Group
+# Begin Group "internal"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\CharTypeTables.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\ElemStack.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\ElemStack.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\EndOfEntityException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\MemBufInputSource.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\MemBufInputSource.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\ReaderMgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\ReaderMgr.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\StdInInputSource.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\StdInInputSource.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\URLInputSource.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\URLInputSource.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\VecAttrListImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\VecAttrListImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\XMLReader.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\XMLReader.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\XMLScanner.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\XMLScanner.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\internal\XMLScanner2.cpp
+# End Source File
+# End Group
+# Begin Group "sax"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\AttributeList.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\DocumentHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\DTDHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\Dummy.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\EntityResolver.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\ErrorHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\HandlerBase.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\InputSource.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\InputSource.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\Locator.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\Parser.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\SAXException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\SAXParseException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\sax\SAXParseException.hpp
+# End Source File
+# End Group
+# Begin Group "parsers"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\parsers\DOMParser.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\parsers\DOMParser.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\parsers\SAXParser.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\parsers\SAXParser.hpp
+# End Source File
+# End Group
+# Begin Group "dom"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\AttrImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\AttrImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CDATASectionImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CDATASectionImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CharacterDataImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CharacterDataImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CommentImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\CommentImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DeepNodeListImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DeepNodeListImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentFragmentImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentFragmentImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentTypeImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DocumentTypeImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Attr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Attr.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_CDATASection.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_CDATASection.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_CharacterData.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_CharacterData.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Comment.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Comment.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Document.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Document.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DocumentFragment.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DocumentFragment.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DocumentType.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DocumentType.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DOMException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DOMException.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DOMImplementation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_DOMImplementation.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Element.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Element.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Entity.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Entity.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_EntityReference.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_EntityReference.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NamedNodeMap.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NamedNodeMap.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Node.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Node.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeFilter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeFilter.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeIterator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeIterator.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_NodeList.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Notation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Notation.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_ProcessingInstruction.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_ProcessingInstruction.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Text.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_Text.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_TreeWalker.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOM_TreeWalker.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DomMemDebug.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DomMemDebug.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOMString.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DOMString.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DStringPool.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\DStringPool.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ElementDefinitionImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ElementDefinitionImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ElementImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ElementImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\EntityImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\EntityImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\EntityReferenceImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\EntityReferenceImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\MemDebug.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NamedNodeMapImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NamedNodeMapImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NameNodeFilter.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeFilterImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeFilterImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeIteratorImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeIteratorImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeListImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeListImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeVector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NodeVector.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NotationImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\NotationImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ProcessingInstructionImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\ProcessingInstructionImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\RefCountedImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\RefCountedImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\TextImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\TextImpl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\TreeWalkerImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\dom\TreeWalkerImpl.hpp
+# End Source File
+# End Group
+# Begin Group "validators"
+
+# PROP Default_Filter ".cpp,.hpp"
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMBinaryOp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMBinaryOp.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMLeaf.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMNode.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMStateSet.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMUnaryOp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\CMUnaryOp.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\ContentSpecNode.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\ContentSpecNode.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DFAContentModel.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DFAContentModel.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DocTypeHandler.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDAttDef.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDAttDef.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDAttDefList.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDAttDefList.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDElementDecl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDElementDecl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDEntityDecl.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDValidator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDValidator.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\DTDValidator2.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\MixedContentModel.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\MixedContentModel.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\SimpleContentModel.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\validators\DTD\SimpleContentModel.hpp
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\util\Platforms\Win32\Version.rc
+# End Source File
+# End Target
+# End Project
diff --git a/Projects/Win32/VC6/xerces-all/xerces-all.dsw b/Projects/Win32/VC6/xerces-all/xerces-all.dsw
new file mode 100644
index 0000000..473e528
--- /dev/null
+++ b/Projects/Win32/VC6/xerces-all/xerces-all.dsw
@@ -0,0 +1,194 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "DOMCount"=".\DOMCount\DOMCount.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "DOMMemTest"=".\DOMMemTest\DOMMemTest.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "DOMPrint"=".\DOMPrint\DOMPrint.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "DOMTest"=".\DOMTest\DOMTest.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "EnumVal"=".\EnumVal\EnumVal.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "MemParse"=".\MemParse\MemParse.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "PParse"=".\PParse\PParse.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "Redirect"=".\Redirect\Redirect.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "SAXCount"=".\SAXCount\SAXCount.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "SAXPrint"=".\SAXPrint\SAXPrint.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "StdInParse"=".\StdInParse\StdInParse.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name XercesLib
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "XercesLib"=".\XercesLib\XercesLib.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/obj/Makefile.in b/obj/Makefile.in
index 67d9f67..fbb380c 100644
--- a/obj/Makefile.in
+++ b/obj/Makefile.in
@@ -55,8 +55,20 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:10:49  twl
-# Initial revision
+# Revision 1.4  1999/11/24 23:21:42  rahulj
+# Now works under HPUX 10.20 with CC and aCC, with ICU and native
+distclean target now remove and remaining Makefile(s)
+clean target now removes the template repository directory
+#
+# Revision 1.3  1999/11/23 01:59:16  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.2  1999/11/12 20:38:43  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:10:49  twl
+# Initial checkin
 #
 # Revision 1.2  1999/11/08 20:43:14  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -74,21 +86,25 @@
 ###################################################################
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 PREFIX = @prefix@
+LDFLAGS = @ldflags@
+LIBS = @libs@
+OSVER = @osver@
 
 include ../src/Makefile.incl
 
-LIB=${XML4CROOT}/lib
+LIB=${XERCESCROOT}/lib
 ## OS390BATCH
 ifeq (${OS390BATCH},1)
 BATCH_TARGET = "//'${LOADMOD}(XML4C30)'"
 endif
-LIBNAME=libIXXML4C
+LIBNAME=libxerces-c
 THISLIB=${LIB}/${LIBNAME}
-VER=3_0
+VER=1_0
 
-ALL_OBJECTS_DIR=${XML4CROOT}/obj
+ALL_OBJECTS_DIR=${XERCESCROOT}/obj
 ALL_OBJECTS=$(wildcard $(ALL_OBJECTS_DIR)/*.o)
 
 #######################################################
@@ -103,7 +119,7 @@
 #######################################################
 
 ifeq (${PLATFORM},HPUX)
-  ifeq (${COMPILER},CC)
+  ifeq (${CXX},CC)
     ######  Start HP-UX  CC compiler specific stuff #######
     DUMMYEXE=$(XML_LIB_DIR)/dummyExe
     TEMPLATESOBJS=$(wildcard $(TEMPLATESREPOSITORY)/*.o)
@@ -112,7 +128,7 @@
 	\rm -f $(DUMMYEXE)
 
     $(DUMMYEXE): $(ALL_OBJECTS)
-	${MAKE_SHARED} -o ${@} $(PLATFORM_LIBRARIES) $^ $(ALLLIBS)
+	${MAKE_SHARED} -o ${@} $^ $(PLATFORM_LIBRARIES) $(ALLLIBS)
 
     ######  End HP-UX  CC compiler specific stuff #######
   else
@@ -141,25 +157,37 @@
 
 ${THISLIB}${VER}${SHLIBSUFFIX}:	$(ALL_OBJECTS)
 	@echo Building ${THISLIB}${VER}${SHLIBSUFFIX}
-	${MAKE_SHARED} -o ${@} $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $^ $(TEMPLATESOBJS) $(ALLLIBS)
+	${MAKE_SHARED} -o ${@} $^ $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS)
 ## OS390
 ifeq (${PLATFORM},OS390)
 ## OS390BATCH
 ifeq (${OS390BATCH},1)
 ${BATCH_TARGET}:        $(ALL_OBJECTS)
 	@echo Building ${BATCH_TARGET}
-	${MAKE_SHARED} -o ${@} $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $^ $(TEMPLATESOBJS) $(ALLLIBS)
+	${MAKE_SHARED} -o ${@} $^ $(TEMPLATESOBJS) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(ALLLIBS)
 else
 	$(CP) ${LIBNAME}${VER}${OS390SIDEDECK} ${LIB}
 endif
 endif
 
+
 clean:
 	@echo "Making clean in obj ..."
 	-rm -f $(ALL_OBJECTS) ${THISLIB}${VER}${SHLIBSUFFIX}
+ifneq ($strip $(TEMPLATESREPOSITORY)),)
+	-rm -f $(TEMPLATESREPOSITORY)/*.o
+	-rm -f $(TEMPLATESREPOSITORY)/*.c
+	-rm -f $(TEMPLATESREPOSITORY)/*.cs
+	-rm -f $(TEMPLATESREPOSITORY)/*.he
+endif
+
 
 distclean:	clean
 	rm -f Makefile
+ifneq ($strip $(TEMPLATESREPOSITORY)),)
+	-rm -rf $(TEMPLATESREPOSITORY)
+endif
+
 
 install:
 ifeq (${OS390BATCH},1)
diff --git a/samples/DOMCount/DOMCount.cpp b/samples/DOMCount/DOMCount.cpp
index b39d365..df2c896 100644
--- a/samples/DOMCount/DOMCount.cpp
+++ b/samples/DOMCount/DOMCount.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:52  twl
- * Initial revision
+ * Revision 1.2  1999/11/12 02:13:40  rahulj
+ * It now validates when the -v option is specified.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:52  twl
+ * Initial checkin
  *
  * Revision 1.8  1999/11/08 20:43:34  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -143,6 +146,7 @@
 
     // Instantiate the DOM parser.
     DOMParser parser;
+    parser.setDoValidation(doValidation);
 
     // And create our error handler and install it
     DOMCount elementCounter;
diff --git a/samples/DOMCount/Makefile.in b/samples/DOMCount/Makefile.in
index 330d456..b6efa12 100644
--- a/samples/DOMCount/Makefile.in
+++ b/samples/DOMCount/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:53  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:31  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:53  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:35  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=DOMCount
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/DOMCount.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 
 ## OS390BATCH
 ifeq (${OS390BATCH},1)
diff --git a/samples/DOMPrint/DOMPrint.cpp b/samples/DOMPrint/DOMPrint.cpp
index c9e98fc..15dcb95 100644
--- a/samples/DOMPrint/DOMPrint.cpp
+++ b/samples/DOMPrint/DOMPrint.cpp
@@ -56,8 +56,17 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:51  twl
- * Initial revision
+ * Revision 1.3  1999/12/03 00:14:52  andyh
+ * Removed transcoding stuff, replaced with DOMString::transcode.
+ *
+ * Tweaked xml encoding= declaration to say ISO-8859-1.  Still wrong,
+ * but not as wrong as utf-8
+ *
+ * Revision 1.2  1999/11/12 02:14:05  rahulj
+ * It now validates when the -v option is specified.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:51  twl
+ * Initial checkin
  *
  * Revision 1.7  1999/11/08 20:43:35  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -78,6 +87,13 @@
 //      filename        - The path to the XML file to parse
 //
 //  These are non-case sensitive
+//
+//   Limitations:
+//     1.  The encoding="xxx" clause in the XML header should reflect
+//         the system local code page, but does not.
+//     2.  Cases where the XML data contains characters that can not
+//         be represented in the system local code page are not handled.
+//
 // ---------------------------------------------------------------------------
 
 
@@ -138,9 +154,9 @@
 
     catch(const XMLException& toCatch)
     {
-        cerr << "Error during XML4C2 Initialization.\n"
+        cerr << "Error during Xerces-c Initialization.\n"
              << "  Exception message:"
-             << StrX(toCatch.getMessage()) << endl;
+             << DOMString(toCatch.getMessage()) << endl;
         return 1;
     }
 
@@ -199,6 +215,7 @@
     //  discovers errors during the course of parsing the XML document.
     //
     DOMParser parser;
+    parser.setDoValidation(doValidation);
     ErrorHandler *errReporter = new DOMTreeErrorReporter();
     parser.setErrorHandler(errReporter);
 
@@ -215,7 +232,8 @@
     catch (const XMLException& e)
     {
         cerr << "An error occured during parsing\n   Message: "
-             << StrX(e.getMessage()) << endl;
+            << DOMString(e.getMessage()) << endl;
+ //           << StrX(e.getMessage()) << endl;
         errorsOccured = true;
     }
 
@@ -298,7 +316,11 @@
 
         case DOM_Node::DOCUMENT_NODE :
         {
-            target << "<?xml version='1.0' encoding='utf-8' ?>\n";
+            // Bug here:  we need to find a way to get the encoding name
+            //   for the default code page on the system where the
+            //   program is running, and plug that in for the encoding
+            //   name.  
+            target << "<?xml version='1.0' encoding='ISO-8859-1' ?>\n";
             DOM_Node child = toWrite.getFirstChild();
             while( child != 0)
             {
@@ -427,7 +449,8 @@
                 
             default:
                 // If it is none of the special characters, print it as such
-                target << StrX(&chars[index], 1);
+                // target << StrX(&chars[index], 1);
+                target << toWrite.substringData(index, 1);
                 break;
             }
         }
@@ -439,12 +462,18 @@
 
 // ---------------------------------------------------------------------------
 //
-//  ostream << DOMString      Stream out a DOM string.
+//  ostream << DOMString    Stream out a DOM string.
+//                          Doing this requires that we first transcode
+//                          to char * form in the default code page
+//                          for the system
 //
 // ---------------------------------------------------------------------------
 ostream& operator<<(ostream& target, const DOMString& s)
 {
-    if (s.length() > 0)
-        target << StrX(s.rawBuffer(), s.length());
+    //if (s.length() > 0)
+    //    target << StrX(s.rawBuffer(), s.length());
+    char *p = s.transcode();
+    target << p;
+    delete p;
     return target;
 }
diff --git a/samples/DOMPrint/DOMTreeErrorReporter.cpp b/samples/DOMPrint/DOMTreeErrorReporter.cpp
index 8d7534f..80ba8ca 100644
--- a/samples/DOMPrint/DOMTreeErrorReporter.cpp
+++ b/samples/DOMPrint/DOMTreeErrorReporter.cpp
@@ -56,8 +56,14 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:51  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:14:53  andyh
+ * Removed transcoding stuff, replaced with DOMString::transcode.
+ *
+ * Tweaked xml encoding= declaration to say ISO-8859-1.  Still wrong,
+ * but not as wrong as utf-8
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:51  twl
+ * Initial checkin
  *
  * Revision 1.6  1999/11/08 20:43:35  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -72,6 +78,10 @@
 #include <iostream.h>
 #include <stdlib.h>
 #include <memory.h>
+#include <dom/DOMString.hpp>
+
+// Global streaming operator for DOMString is defined in DOMPrint.cpp
+extern ostream& operator<<(ostream& target, const DOMString& s);
 
 
 void DOMTreeErrorReporter::warning(const SAXParseException&)
@@ -83,18 +93,18 @@
 
 void DOMTreeErrorReporter::error(const SAXParseException& toCatch)
 {
-    cerr << "Error at file \"" << StrX(toCatch.getSystemId())
+    cerr << "Error at file \"" << DOMString(toCatch.getSystemId())
 		 << "\", line " << toCatch.getLineNumber()
 		 << ", column " << toCatch.getColumnNumber()
-         << "\n   Message: " << StrX(toCatch.getMessage()) << endl;
+         << "\n   Message: " << DOMString(toCatch.getMessage()) << endl;
 }
 
 void DOMTreeErrorReporter::fatalError(const SAXParseException& toCatch)
 {
-    cerr << "Fatal Error at file \"" << StrX(toCatch.getSystemId())
+    cerr << "Fatal Error at file \"" << DOMString(toCatch.getSystemId())
 		 << "\", line " << toCatch.getLineNumber()
 		 << ", column " << toCatch.getColumnNumber()
-         << "\n   Message: " << StrX(toCatch.getMessage()) << endl;
+         << "\n   Message: " << DOMString(toCatch.getMessage()) << endl;
 }
 
 void DOMTreeErrorReporter::resetErrors()
@@ -103,70 +113,3 @@
 }
 
 
-
-// ---------------------------------------------------------------------------
-//  StrX: Private helper methods
-// ---------------------------------------------------------------------------
-void StrX::transcode(const XMLCh* const toTranscode, const unsigned int len)
-{
-    // Short circuit if its a null pointer
-    if (!toTranscode || (!toTranscode[0]))
-    {
-        fLocalForm = new char[1];
-        fLocalForm[0] = 0;
-        return;
-	}
-
-    // See if our XMLCh and wchar_t as the same on this platform
-    const bool isSameSize = (sizeof(XMLCh) == sizeof(wchar_t));
-
-    //
-    //  Get the actual number of chars. If the passed len is zero, its null
-    //  terminated. Else we have to use the len.
-    //
-    wchar_t realLen = (wchar_t)len;
-    if (!realLen)
-    {
-        //
-        //  We cannot just assume we can use wcslen() because we don't know
-        //  if our XMLCh is the same as wchar_t on this platform.
-        //
-        const XMLCh* tmpPtr = toTranscode;
-        while (*(tmpPtr++))
-            realLen++;
-    }
-
-    //
-    //  If either the passed length was non-zero or our char sizes are not 
-    //  same, we have to use a temp buffer. Since this is common in these
-    //  samples, we just do it anyway.
-    //
-    wchar_t* tmpSource = new wchar_t[realLen + 1];
-    if (isSameSize)
-    {
-        memcpy(tmpSource, toTranscode, realLen * sizeof(wchar_t));
-    }
-     else
-    {
-        for (unsigned int index = 0; index < realLen; index++)
-            tmpSource[index] = (wchar_t)toTranscode[index];
-    }
-    tmpSource[realLen] = 0;
-
-    // See now many chars we need to transcode this guy
-    const unsigned int targetLen = ::wcstombs(0, tmpSource, 0);
-
-    // Allocate out storage member
-    fLocalForm = new char[targetLen + 1];
-
-    //
-    //  And transcode our temp source buffer to the local buffer. Cap it
-    //  off since the converter won't do it (because the null is beyond
-    //  where the target will fill up.)
-    //
-    ::wcstombs(fLocalForm, tmpSource, targetLen);
-    fLocalForm[targetLen] = 0;
-
-    // Don't forget to delete our temp buffer
-    delete [] tmpSource;
-}
diff --git a/samples/DOMPrint/DOMTreeErrorReporter.hpp b/samples/DOMPrint/DOMTreeErrorReporter.hpp
index 7086912..e3151d2 100644
--- a/samples/DOMPrint/DOMTreeErrorReporter.hpp
+++ b/samples/DOMPrint/DOMTreeErrorReporter.hpp
@@ -56,8 +56,14 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:51  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:14:53  andyh
+ * Removed transcoding stuff, replaced with DOMString::transcode.
+ *
+ * Tweaked xml encoding= declaration to say ISO-8859-1.  Still wrong,
+ * but not as wrong as utf-8
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:51  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:43:36  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -92,58 +98,3 @@
     void resetErrors();
 };
 
-
-// ---------------------------------------------------------------------------
-//  This is a simple class that lets us do easy (though not terribly efficient)
-//  trancoding of XMLCh data to local code page for display.
-// ---------------------------------------------------------------------------
-class StrX
-{
-public :
-    // -----------------------------------------------------------------------
-    //  Constructors and Destructor
-    // -----------------------------------------------------------------------
-	StrX(const XMLCh* const toTranscode, const unsigned int len = 0) :
-
-        fLocalForm(0)
-    {
-        // Call the private transcoding method
-        transcode(toTranscode, len);
-    }
-
-    ~StrX()
-    {
-        delete [] fLocalForm;
-    }
-
-
-    // -----------------------------------------------------------------------
-    //  Getter methods
-    // -----------------------------------------------------------------------
-    const char* localForm() const
-    {
-        return fLocalForm;
-    }
-
-
-private :
-    // -----------------------------------------------------------------------
-    //  Private helper methods
-    // -----------------------------------------------------------------------
-	void transcode (const XMLCh* const toTranscode, const unsigned int len);
-
-
-    // -----------------------------------------------------------------------
-    //  Private data members
-    //
-    //  fLocalForm
-    //      This is the local code page form of the string.
-    // -----------------------------------------------------------------------
-    char*   fLocalForm;
-};
-
-inline ostream& operator<<(ostream& target, const StrX& toDump)
-{
-    target << toDump.localForm();
-    return target;
-}
diff --git a/samples/DOMPrint/Makefile.in b/samples/DOMPrint/Makefile.in
index 4f9fbee..2f0b00c 100644
--- a/samples/DOMPrint/Makefile.in
+++ b/samples/DOMPrint/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:52  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:35  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:52  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:36  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=DOMPrint
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/DOMPrint.o ${OUTDIR}/DOMTreeErrorReporter.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/DOMTreeErrorReporter.hpp
 
 ## OS390BATCH
diff --git a/samples/EnumVal/EnumVal.cpp b/samples/EnumVal/EnumVal.cpp
new file mode 100644
index 0000000..09dc050
--- /dev/null
+++ b/samples/EnumVal/EnumVal.cpp
@@ -0,0 +1,331 @@
+/*
+ * (C) Copyright IBM Corp. 1999  All rights reserved.
+ *
+ * US Government Users Restricted Rights Use, duplication or
+ * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
+ *
+ * The program is provided "as is" without any warranty express or
+ * implied, including the warranty of non-infringement and the implied
+ * warranties of merchantibility and fitness for a particular purpose.
+ * IBM will not be liable for any damages suffered by you as a result
+ * of using the Program. In no event will IBM be liable for any
+ * special, indirect or consequential damages or lost profits even if
+ * IBM has been advised of the possibility of their occurrence. IBM
+ * will not be liable for any third party claims against you.
+ */
+
+/**
+ * @version Revision: %M% %I% %W% %Q%
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <util/NameIdPool.hpp>
+#include <util/PlatformUtils.hpp>
+#include <framework/XMLValidator.hpp>
+#include <parsers/SAXParser.hpp>
+#include <validators/DTD/DTDValidator.hpp>
+#include <iostream.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+// ---------------------------------------------------------------------------
+//  Forward references
+// ---------------------------------------------------------------------------
+static void usage();
+
+
+
+// ---------------------------------------------------------------------------
+//  This is a simple class that lets us do easy (though not terribly efficient)
+//  trancoding of XMLCh data to local code page for display.
+// ---------------------------------------------------------------------------
+class StrX
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+	StrX(const XMLCh* const toTranscode, const unsigned int len = 0) :
+
+        fLocalForm(0)
+    {
+        // Call the private transcoding method
+        transcode(toTranscode, len);
+    }
+
+    ~StrX()
+    {
+        delete [] fLocalForm;
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const char* localForm() const
+    {
+        return fLocalForm;
+    }
+
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private helper methods
+    // -----------------------------------------------------------------------
+	void transcode (const XMLCh* const toTranscode, const unsigned int len);
+
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fLocalForm
+    //      This is the local code page form of the string.
+    // -----------------------------------------------------------------------
+    char*   fLocalForm;
+};
+
+inline ostream& operator<<(ostream& target, const StrX& toDump)
+{
+    target << toDump.localForm();
+    return target;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Program entry point
+// ---------------------------------------------------------------------------
+int main(int argc, char* args[])
+{
+    // Initialize the XML4C system
+    try
+    {
+         XMLPlatformUtils::Initialize();
+    }
+
+    catch (const XMLException& toCatch)
+    {
+         cerr   << "Error during initialization! Message:\n"
+                << StrX(toCatch.getMessage()) << endl;
+         return 1;
+    }
+
+    // We only have one required parameter, which is the file to process
+    if (argc < 2)
+    {
+        usage();
+        return -1;
+    }
+    const char* xmlFile = args[1];
+    bool  doValidation = false;
+
+    // Check for some special cases values of the parameter
+    if (!strncmp(xmlFile, "-?", 2))
+    {
+        usage();
+        return 0;
+    }
+     else if (!strncmp(xmlFile, "-v", 2))
+    {
+        doValidation = true;
+        if (argc < 3)
+        {
+            usage();
+            return -1;
+        }
+        xmlFile = args[2];
+    }
+     else if (xmlFile[0] == '-')
+    {
+        usage();
+        return -1;
+    }
+
+    //
+    //  Create a DTD validator to be used for our validation work. Then create
+    //  a SAX parser object and pass it our validator. Then, according to what
+    //  we were told on the command line, set it to validate or not. He owns
+    //  the validator, so we have to allocate it.
+    //
+    DTDValidator* valToUse = new DTDValidator;
+    SAXParser parser(valToUse);
+    parser.setDoValidation(doValidation);
+
+    //
+    //  Get the starting time and kick off the parse of the indicated
+    //  file. Catch any exceptions that might propogate out of it.
+    //
+    try
+    {
+        parser.parse(xmlFile);
+    }
+
+    catch (const XMLException& e)
+    {
+        cerr << "\nError during parsing: '" << xmlFile << "'\n"
+             << "Exception message is:  \n"
+             << StrX(e.getMessage()) << "\n" << endl;
+        return -1;
+    }
+
+    //
+    //  Now we will get an enumerator for the element pool from the validator
+    //  and enumerate the elements, printing them as we go. For each element
+    //  we get an enumerator for its attributes and print them also.
+    //
+    NameIdPoolEnumerator<DTDElementDecl> elemEnum = valToUse->getElemEnumerator();
+    if (elemEnum.hasMoreElements())
+    {
+        cout << "\nELEMENTS:\n----------------------------\n";
+        while(elemEnum.hasMoreElements())
+        {
+            const DTDElementDecl& curElem = elemEnum.nextElement();
+            cout << "  Name: " << StrX(curElem.getFullName()) << "\n";
+
+            cout << "  Content Model: "
+                 << StrX(curElem.getFormattedContentModel(*valToUse))
+                 << "\n";
+
+            // Get an enumerator for this guy's attributes if any
+            if (curElem.hasAttDefs())
+            {
+                cout << "  Attributes:\n";
+                XMLAttDefList& attList = curElem.getAttDefList();
+                while (attList.hasMoreElements())
+                {
+                    const XMLAttDef& curAttDef = attList.nextElement();
+                    cout << "    Name:" << StrX(curAttDef.getFullName())
+                         << ", Type: ";
+
+                    // Get the type and display it
+                    const XMLAttDef::AttTypes type = curAttDef.getType();
+                    switch(type)
+                    {
+                        case XMLAttDef::CData :
+                            cout << "CDATA";
+                            break;
+
+                        case XMLAttDef::ID :
+                            cout << "ID";
+                            break;
+
+                        case XMLAttDef::IDRef :
+                        case XMLAttDef::IDRefs :
+                            cout << "IDREF(S)";
+                            break;
+
+                        case XMLAttDef::Entity :
+                        case XMLAttDef::Entities :
+                            cout << "ENTITY(IES)";
+                            break;
+
+                        case XMLAttDef::NmToken :
+                        case XMLAttDef::NmTokens :
+                            cout << "NMTOKEN(S)";
+                            break;
+
+                        case XMLAttDef::Notation :
+                            cout << "NOTATION";
+                            break;
+
+                        case XMLAttDef::Enumeration :
+                            cout << "ENUMERATION";
+                            break;
+                    }
+
+                    cout << "\n";
+                }
+            }
+            cout << endl;
+        }
+    }
+     else
+    {
+        cout << "The validator has no elements to display\n" << endl;
+    }
+    return 0;
+}
+
+
+// ---------------------------------------------------------------------------
+//  Local helper methods
+// ---------------------------------------------------------------------------
+static void usage()
+{
+    cout << "\nUsage:\n"
+         "    EnumVal [-v] <XML file>\n"
+         "    -v  Do a validating parse. Defaults to non-validating.\n"
+         "This program parses a file, then shows how to enumerate the"
+         "contents of the validator pools\n" << endl;
+}
+
+
+// ---------------------------------------------------------------------------
+//  StrX: Private helper methods
+// ---------------------------------------------------------------------------
+void StrX::transcode(const XMLCh* const toTranscode, const unsigned int len)
+{
+    // Short circuit if its a null pointer
+    if (!toTranscode)
+    {
+        fLocalForm = new char[1];
+        fLocalForm[0] = 0;
+        return;
+	}
+
+    // See if our XMLCh and wchar_t as the same on this platform
+    const bool isSameSize = (sizeof(XMLCh) == sizeof(wchar_t));
+
+    //
+    //  Get the actual number of chars. If the passed len is zero, its null
+    //  terminated. Else we have to use the len.
+    //
+    wchar_t realLen = (wchar_t)len;
+    if (!realLen)
+    {
+        //
+        //  We cannot just assume we can use wcslen() because we don't know
+        //  if our XMLCh is the same as wchar_t on this platform.
+        //
+        const XMLCh* tmpPtr = toTranscode;
+        while (*(tmpPtr++))
+            realLen++;
+    }
+
+    //
+    //  If either the passed length was non-zero or our char sizes are not 
+    //  same, we have to use a temp buffer. Since this is common in these
+    //  samples, we just do it anyway.
+    //
+    wchar_t* tmpSource = new wchar_t[realLen + 1];
+    if (isSameSize)
+    {
+        memcpy(tmpSource, toTranscode, realLen * sizeof(wchar_t));
+    }
+     else
+    {
+        for (unsigned int index = 0; index < realLen; index++)
+            tmpSource[index] = (wchar_t)toTranscode[index];
+    }
+    tmpSource[realLen] = 0;
+
+    // See now many chars we need to transcode this guy
+    const unsigned int targetLen = ::wcstombs(0, tmpSource, 0);
+
+    // Allocate out storage member
+    fLocalForm = new char[targetLen + 1];
+
+    //
+    //  And transcode our temp source buffer to the local buffer. Cap it
+    //  off since the converter won't do it (because the null is beyond
+    //  where the target will fill up.)
+    //
+    ::wcstombs(fLocalForm, tmpSource, targetLen);
+    fLocalForm[targetLen] = 0;
+
+    // Don't forget to delete our temp buffer
+    delete [] tmpSource;
+}
diff --git a/samples/EnumVal/Makefile.in b/samples/EnumVal/Makefile.in
new file mode 100644
index 0000000..9cde5c9
--- /dev/null
+++ b/samples/EnumVal/Makefile.in
@@ -0,0 +1,107 @@
+#
+# The Apache Software License, Version 1.1
+# 
+# Copyright (c) 1999 The Apache Software Foundation.  All rights 
+# reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer. 
+# 
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+# 
+# 3. The end-user documentation included with the redistribution,
+#    if any, must include the following acknowledgment:  
+#       "This product includes software developed by the
+#        Apache Software Foundation (http://www.apache.org/)."
+#    Alternately, this acknowledgment may appear in the software itself,
+#    if and wherever such third-party acknowledgments normally appear.
+# 
+# 4. The names "Xerces" and "Apache Software Foundation" must
+#    not be used to endorse or promote products derived from this
+#    software without prior written permission. For written 
+#    permission, please contact apache\@apache.org.
+# 
+# 5. Products derived from this software may not be called "Apache",
+#    nor may "Apache" appear in their name, without prior written
+#    permission of the Apache Software Foundation.
+# 
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+# ====================================================================
+# 
+# This software consists of voluntary contributions made by many
+# individuals on behalf of the Apache Software Foundation, and was
+# originally based on software copyright (c) 1999, International
+# Business Machines, Inc., http://www.ibm.com .  For more information
+# on the Apache Software Foundation, please see
+# <http://www.apache.org/>.
+# 
+#
+
+###################################################################
+#                    IMPORTANT NOTE                               #
+###################################################################
+# If you are going to do the OS390BATCH build, make sure you have #
+# the OS390BATCH environment variable set.                        #
+#                                                                 #
+#   export OS390BATCH=1                                           #
+#                                                                 #
+###################################################################
+
+PLATFORM = @platform@
+COMPILER = @compiler@
+CXXFLAGS = @cxxflags@
+CFLAGS = @cflags@
+PREFIX = @prefix@
+
+include ../Makefile.incl
+
+APP_NAME=EnumVal
+
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
+OBJS=	${OUTDIR}/EnumVal.o
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
+HEADER_FILES=
+
+## OS390BATCH
+ifeq (${OS390BATCH},1)
+BATCH_TARGET= "//'${LOADMOD}(${APP_NAME})'"
+all: makedir ${BATCH_TARGET}
+else
+all: makedir ${EXEC}/${APP_NAME}
+endif
+
+makedir:
+	-mkdir -p $(OUTDIR)
+
+${EXEC}/${APP_NAME}: ${OBJS}
+	${LINK} ${PLATFORM_LIB_LINK_OPTIONS} ${OBJS} -o $@ ${LIBRARY_SEARCH_PATHS} ${LIBRARY_NAMES} ${EXTRA_LINK_OPTIONS} 
+${BATCH_TARGET}: ${OBJS}
+	${LINK} ${PLATFORM_LIB_LINK_OPTIONS} ${OBJS} -o $@ ${LIBRARY_SEARCH_PATHS} ${LIBRARY_NAMES} ${EXTRA_LINK_OPTIONS} 
+
+$(OUTDIR)/EnumVal.o: ${SRC}/EnumVal.cpp ${HEADER_FILES}
+	${CC} ${CMP} $(INCLUDES) -o $(OUTDIR)/EnumVal.o ${SRC}/EnumVal.cpp
+
+clean:
+	rm -f ${OBJS} ${EXEC}/${APP_NAME}
+
+distclean:	clean
+	rm -f Makefile
diff --git a/samples/Makefile.in b/samples/Makefile.in
index 61cb1c1..d746156 100644
--- a/samples/Makefile.in
+++ b/samples/Makefile.in
@@ -55,8 +55,14 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:25  twl
-# Initial revision
+# Revision 1.4  1999/11/30 21:35:21  abagchi
+# Included EnumVal in the list of samples
+#
+# Revision 1.3  1999/11/12 20:31:22  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:25  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:43:33  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -71,7 +77,8 @@
 MemParse_DIR=MemParse
 PParse_DIR=PParse
 StdInParse_DIR=StdInParse
-LIB_DIR=${XML4CROOT}/lib
+EnumVal_DIR=EnumVal
+LIB_DIR=${XERCESCROOT}/lib
 
 PLATFORM = @platform@
 COMPILER = @compiler@
@@ -79,7 +86,7 @@
 CFLAGS = @cflags@
 PREFIX = @prefix@
 
-all:	saxprint saxcount domprint domcount redirect memparse pparse stdinparse
+all:	saxprint saxcount domprint domcount redirect memparse pparse stdinparse enumval
 
 saxprint:
 	@echo Building "SAXPrint"
@@ -113,6 +120,10 @@
 	@echo Building "StdInParse"
 	cd $(StdInParse_DIR) ; $(MAKE) $(MAKE_FLAGS) ; cd ..
 
+enumval:
+	@echo Building "EnumVal"
+	cd $(EnumVal_DIR) ; $(MAKE) $(MAKE_FLAGS) ; cd ..
+
 clean:
 	cd $(SAXPrint_DIR) && $(MAKE) $@ && cd ..
 	cd $(SAXCount_DIR) && $(MAKE) $@ && cd ..
@@ -122,6 +133,7 @@
 	cd $(Redirect_DIR) && $(MAKE) $@ && cd ..
 	cd $(PParse_DIR) && $(MAKE) $@ && cd ..
 	cd $(StdInParse_DIR) && $(MAKE) $@ && cd ..
+	cd $(EnumVal_DIR) && $(MAKE) $@ && cd ..
 
 distclean:
 	cd $(SAXPrint_DIR) && $(MAKE) $@ && cd ..
@@ -132,6 +144,7 @@
 	cd $(Redirect_DIR) && $(MAKE) $@ && cd ..
 	cd $(PParse_DIR) && $(MAKE) $@ && cd ..
 	cd $(StdInParse_DIR) && $(MAKE) $@ && cd ..
+	cd $(EnumVal_DIR) && $(MAKE) $@ && cd ..
 	rm -f Makefile config.cache config.log config.status
 	rm -f *~ core
 
diff --git a/samples/Makefile.incl b/samples/Makefile.incl
index c9a6c50..8a4ad01 100644
--- a/samples/Makefile.incl
+++ b/samples/Makefile.incl
@@ -55,8 +55,14 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:25  twl
-# Initial revision
+# Revision 1.4  1999/12/01 01:08:20  aruna1
+# Added notempinc for AIX
+#
+# Revision 1.3  1999/11/12 20:31:23  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:25  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:34  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -65,11 +71,11 @@
 
 ################## LIBRARY NAMES AND DIRECTORIES ##################
 
-INCLUDES= -I. -I${XML4CROOT}/include
-LIB_DIR=${XML4CROOT}/lib
-LIBNAME=IXXML4C
+INCLUDES= -I. -I${XERCESCROOT}/include
+LIB_DIR=${XERCESCROOT}/lib
+LIBNAME=xerces-c
 THISLIB=${LIB_DIR}/${LIBNAME}
-VER=3_0
+VER=1_0
 ifdef ICUROOT
    ICU_LIB_DIR=${ICUROOT}/lib
    ICU_LIBNAME=icu-uc
@@ -102,7 +108,7 @@
 
 #================= AIX SPECIFIC OPTIONS ===========================
 ifeq (${PLATFORM}, AIX)
-CMP= -c ${CXXFLAGS}
+CMP= -c ${CXXFLAGS} -qnotempinc
 CC=xlC_r -D${PLATFORM}
 LINK =  ${CC}
 PLATFORM_LIB_LINK_OPTIONS=-L/usr/lpp/xlC/lib
@@ -133,7 +139,7 @@
       CXXFLAGS = -w +O1
     endif
     APPL_NAME = $(notdir $(shell pwd))
-    TEMPLATESDIR = $(XML4CROOT)/bin/obj/$(APPL_NAME)/ptrepository
+    TEMPLATESDIR = $(XERCESCROOT)/bin/obj/$(APPL_NAME)/ptrepository
     COMMON_CMP = $(CXXFLAGS) -D_HP_UX -DHPCC +DAportable -w +eh +z -z \
         -ptr$(TEMPLATESDIR)
     CMP = -c $(COMMON_CMP)
@@ -151,19 +157,7 @@
 # Before you try to run the Makefile, make sure you have two      #
 # environment variables set.                                      #
 #                                                                 #
-#   export XML4CROOT=<the directory where you installed XML4C>    #
-# XML4C can be built in two ways (1) using ICU and                #
-#                                (2) using Iconv (not ICU)        #
-#                                                                 #
-# To use ICU, you must:                                           #
-#   export ICUROOT=<the directory where you installed ICU>        #
-# To disable ICU and use Iconv instead:                           #
-#   unset ICUROOT                                                 #
-#                                                                 #
-# Also, to enable debugging, you must type:                       #
-#   export DEBUG=1                                                #
-# To disable debugging, you must type:                            #
-#   unset DEBUG                                                   #
+# export XERCESCROOT=<the directory where you installed XERCES-C> #
 #                                                                 #
 # If you are going to do the OS390BATCH build, make sure you have #
 # the OS390BATCH environment variable set.                        #
diff --git a/samples/MemParse/Makefile.in b/samples/MemParse/Makefile.in
index 86b10d6..48cae98 100644
--- a/samples/MemParse/Makefile.in
+++ b/samples/MemParse/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:49  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:39  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:49  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:36  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=MemParse
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/MemParse.o ${OUTDIR}/MemParseHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES= ${SRC}/MemParse.hpp ${SRC}/MemParseHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/MemParse/MemParse.cpp b/samples/MemParse/MemParse.cpp
index 815e8f7..1d770f4 100644
--- a/samples/MemParse/MemParse.cpp
+++ b/samples/MemParse/MemParse.cpp
@@ -64,8 +64,11 @@
  * on parameters to the constructor.
  *
  * $Log$
- * Revision 1.1  1999/11/09 01:09:49  twl
- * Initial revision
+ * Revision 1.2  1999/11/20 01:09:55  rahulj
+ * Fixed usage message.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:49  twl
+ * Initial checkin
  *
  * Revision 1.7  1999/11/08 20:43:36  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -126,7 +129,7 @@
 void usage()
 {
     cout << "\nUsage:\n"
-         << "    MemParse [-nv]\n"
+         << "    MemParse [-v]\n"
          << "This program uses the SAX Parser to parse a memory buffer\n"
          << "containing XML statements, and reports the number of\n"
          << "elements and attributes found.\n"
diff --git a/samples/PParse/Makefile.in b/samples/PParse/Makefile.in
index 73feeff..4f447eb 100644
--- a/samples/PParse/Makefile.in
+++ b/samples/PParse/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:45  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:42  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:45  twl
+# Initial checkin
 #
 # Revision 1.2  1999/11/08 20:43:37  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=PParse
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/PParse.o ${OUTDIR}/PParseHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/PParse.hpp ${SRC}/PParseHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/Projects/Win32/VC6/DOMCount/DOMCount.dsp b/samples/Projects/Win32/VC6/DOMCount/DOMCount.dsp
index b02634e..6f3b81b 100644
--- a/samples/Projects/Win32/VC6/DOMCount/DOMCount.dsp
+++ b/samples/Projects/Win32/VC6/DOMCount/DOMCount.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "DOMCount - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/DOMPrint/DOMPrint.dsp b/samples/Projects/Win32/VC6/DOMPrint/DOMPrint.dsp
index 0661ccd..bb622ee 100644
--- a/samples/Projects/Win32/VC6/DOMPrint/DOMPrint.dsp
+++ b/samples/Projects/Win32/VC6/DOMPrint/DOMPrint.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "DOMPrint - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/EnumVal/EnumVal.dsp b/samples/Projects/Win32/VC6/EnumVal/EnumVal.dsp
new file mode 100644
index 0000000..961c22e
--- /dev/null
+++ b/samples/Projects/Win32/VC6/EnumVal/EnumVal.dsp
@@ -0,0 +1,67 @@
+# Microsoft Developer Studio Project File - Name="EnumVal" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=EnumVal - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "EnumVal.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "EnumVal.mak" CFG="EnumVal - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "EnumVal - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\bin"
+# PROP Intermediate_Dir "..\..\..\..\..\bin\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "DEVENV_VCPP" /D "PROJ_SAXCOUNT" /D "PLATFORM_WIN32" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# Begin Target
+
+# Name "EnumVal - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\EnumVal\EnumVal.cpp
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/samples/Projects/Win32/VC6/MemParse/MemParse.dsp b/samples/Projects/Win32/VC6/MemParse/MemParse.dsp
index e49f950..c2544c9 100644
--- a/samples/Projects/Win32/VC6/MemParse/MemParse.dsp
+++ b/samples/Projects/Win32/VC6/MemParse/MemParse.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "MemParse - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/PParse/PParse.dsp b/samples/Projects/Win32/VC6/PParse/PParse.dsp
new file mode 100644
index 0000000..2cd4a62
--- /dev/null
+++ b/samples/Projects/Win32/VC6/PParse/PParse.dsp
@@ -0,0 +1,83 @@
+# Microsoft Developer Studio Project File - Name="PParse" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=PParse - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "PParse.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "PParse.mak" CFG="PParse - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "PParse - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\bin"
+# PROP Intermediate_Dir "..\..\..\..\..\bin\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "DEVENV_VCPP" /D "PROJ_SAXCOUNT" /D "PLATFORM_WIN32" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# Begin Target
+
+# Name "PParse - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\PParse\PParse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\PParse\PParseHandlers.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\..\PParse\PParse.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\PParse\PParseHandlers.hpp
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/samples/Projects/Win32/VC6/Redirect/Redirect.dsp b/samples/Projects/Win32/VC6/Redirect/Redirect.dsp
index b61809d..96860ae 100644
--- a/samples/Projects/Win32/VC6/Redirect/Redirect.dsp
+++ b/samples/Projects/Win32/VC6/Redirect/Redirect.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "Redirect - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/SAXCount/SAXCount.dsp b/samples/Projects/Win32/VC6/SAXCount/SAXCount.dsp
index e02d82f..d2bf078 100644
--- a/samples/Projects/Win32/VC6/SAXCount/SAXCount.dsp
+++ b/samples/Projects/Win32/VC6/SAXCount/SAXCount.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "SAXCount - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/SAXPrint/SAXPrint.dsp b/samples/Projects/Win32/VC6/SAXPrint/SAXPrint.dsp
index 81d2e50..e4d448d 100644
--- a/samples/Projects/Win32/VC6/SAXPrint/SAXPrint.dsp
+++ b/samples/Projects/Win32/VC6/SAXPrint/SAXPrint.dsp
@@ -47,7 +47,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib IXXML4C3.lib /nologo /version:2.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
 # Begin Target
 
 # Name "SAXPrint - Win32 Debug"
diff --git a/samples/Projects/Win32/VC6/StdInParse/StdInParse.dsp b/samples/Projects/Win32/VC6/StdInParse/StdInParse.dsp
new file mode 100644
index 0000000..32d86b3
--- /dev/null
+++ b/samples/Projects/Win32/VC6/StdInParse/StdInParse.dsp
@@ -0,0 +1,83 @@
+# Microsoft Developer Studio Project File - Name="StdInParse" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=StdInParse - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "StdInParse.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "StdInParse.mak" CFG="StdInParse - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "StdInParse - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\..\..\bin"
+# PROP Intermediate_Dir "..\..\..\..\..\bin\obj"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "DEVENV_VCPP" /D "PROJ_SAXCOUNT" /D "PLATFORM_WIN32" /FD /GZ /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib xerces-c_1.lib /nologo /version:1.0 /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\lib"
+# Begin Target
+
+# Name "StdInParse - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\..\StdInParse\StdInParse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\StdInParse\StdInParseHandlers.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\..\StdInParse\StdInParse.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\StdInParse\StdInParseHandlers.hpp
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/samples/Projects/Win32/VC6/samples.dsw b/samples/Projects/Win32/VC6/samples.dsw
index 270b277..744204e 100644
--- a/samples/Projects/Win32/VC6/samples.dsw
+++ b/samples/Projects/Win32/VC6/samples.dsw
@@ -75,6 +75,42 @@
 
 ###############################################################################
 
+Project: "PParse"=.\PParse\PParse.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "StdInParse"=.\StdInParse\StdInParse.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "EnumVal"=.\EnumVal\EnumVal.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
 Global:
 
 Package=<5>
diff --git a/samples/Redirect/Makefile.in b/samples/Redirect/Makefile.in
index 7940ec5..e63cbfd 100644
--- a/samples/Redirect/Makefile.in
+++ b/samples/Redirect/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:36  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:46  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:36  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:38  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=Redirect
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/Redirect.o ${OUTDIR}/RedirectHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/Redirect.hpp ${SRC}/RedirectHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/SAXCount/Makefile.in b/samples/SAXCount/Makefile.in
index fe5ef5a..9935bda 100644
--- a/samples/SAXCount/Makefile.in
+++ b/samples/SAXCount/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:30  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:51  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:30  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:40  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=SAXCount
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/SAXCount.o ${OUTDIR}/SAXCountHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/SAXCount.hpp ${SRC}/SAXCountHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/SAXPrint/Makefile.in b/samples/SAXPrint/Makefile.in
index ea08292..7acd6b1 100644
--- a/samples/SAXPrint/Makefile.in
+++ b/samples/SAXPrint/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:28  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:34:55  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:28  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:43:41  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=SAXPrint
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/SAXPrint.o ${OUTDIR}/SAXPrintHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/SAXPrint.hpp ${SRC}/SAXPrintHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/StdInParse/Makefile.in b/samples/StdInParse/Makefile.in
index fbd2215..9991545 100644
--- a/samples/StdInParse/Makefile.in
+++ b/samples/StdInParse/Makefile.in
@@ -55,8 +55,11 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:26  twl
-# Initial revision
+# Revision 1.2  1999/11/12 20:35:02  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:26  twl
+# Initial checkin
 #
 # Revision 1.2  1999/11/08 20:43:42  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -83,10 +86,10 @@
 
 APP_NAME=StdInParse
 
-OUTDIR= ${XML4CROOT}/bin/obj/${APP_NAME}
-EXEC=	${XML4CROOT}/bin
+OUTDIR= ${XERCESCROOT}/bin/obj/${APP_NAME}
+EXEC=	${XERCESCROOT}/bin
 OBJS=	${OUTDIR}/StdInParse.o ${OUTDIR}/StdInParseHandlers.o
-SRC=	${XML4CROOT}/samples/${APP_NAME}
+SRC=	${XERCESCROOT}/samples/${APP_NAME}
 HEADER_FILES=${SRC}/StdInParse.hpp ${SRC}/StdInParseHandlers.hpp
 
 ## OS390BATCH
diff --git a/samples/configure b/samples/configure
index 7436180..2e0127e 100755
--- a/samples/configure
+++ b/samples/configure
@@ -1314,6 +1314,15 @@
 compiler=${CXX}
 
 
+# prefix=${prefix}
+
+
+cxxflags=${CXXFLAGS}
+
+
+cflags=${CFLAGS}
+
+
 trap '' 1 2 15
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
@@ -1433,7 +1442,10 @@
 SAXPrint/Makefile \
 DOMPrint/Makefile \
 MemParse/Makefile \
-Redirect/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+Redirect/Makefile \
+PParse/Makefile \
+StdInParse/Makefile \
+EnumVal/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -1480,6 +1492,8 @@
 s%@host_os@%$host_os%g
 s%@platform@%$platform%g
 s%@compiler@%$compiler%g
+s%@cxxflags@%$cxxflags%g
+s%@cflags@%$cflags%g
 
 CEOF
 EOF
@@ -1527,7 +1541,10 @@
 SAXPrint/Makefile \
 DOMPrint/Makefile \
 MemParse/Makefile \
-Redirect/Makefile"}
+Redirect/Makefile \
+PParse/Makefile \
+StdInParse/Makefile \
+EnumVal/Makefile"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
@@ -1598,3 +1615,4 @@
 rm -fr confdefs* $ac_clean_files
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
+
diff --git a/samples/configure.in b/samples/configure.in
index 8ca8602..dd99f55 100644
--- a/samples/configure.in
+++ b/samples/configure.in
@@ -60,5 +60,6 @@
 MemParse/Makefile \
 Redirect/Makefile \
 PParse/Makefile \
-StdInParse/Makefile])
+StdInParse/Makefile \
+EnumVal/Makefile])
 
diff --git a/samples/runConfigure b/samples/runConfigure
index d703165..c8a96af 100755
--- a/samples/runConfigure
+++ b/samples/runConfigure
@@ -58,8 +58,44 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:26  twl
-# Initial revision
+# Revision 1.3  1999/12/02 18:10:51  dirkx
+# Changed exit codes from -1 to '1'. Added indirection.
+#
+# Date: Thu, 2 Dec 1999 17:47:39 +0000
+# From: Jonathan McDowell <noodles@earth.li>
+# Reply-To: xerces-dev@xml.apache.org
+# To: xerces-dev@xml.apache.org, rahulj@apache.org
+# Subject: Re: runConfigure script & bash
+#
+#
+# On Mon, Nov 29, 1999 at 10:29:13AM -0800, Rahul Jain wrote:
+#
+# > > I'm quite happy to produce a patch that makes it work under both
+# > > FreeBSD's sh and bash - I would assume this would work under most sh
+# > > like shells.
+# > Please post the changes for FreeBSD and I will test the changes on
+# > other unix's and do the integration.
+#
+# I sat down to do this today and found that it can be trivially fixed by
+# changing all the "exit -1" instances to "exit 1" - it seems the /bin/sh
+# with FreeBSD doesn't like negative result codes. It seems a bit
+# pointless to submit a patch for this, so can someone with CVS access
+# change this please?
+#
+# J.
+#
+# --
+#
+# PR:
+# Obtained from:
+# Submitted by:
+# Reviewed by:
+#
+# Revision 1.2  1999/11/12 19:12:40  abagchi
+# Changed instances of XML4CROOT to XERCESCROOT
+#
+# Revision 1.1.1.1  1999/11/09 01:09:26  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:43:34  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -82,24 +118,26 @@
     echo "       -h (get help on the above commands)"
 }
 
+ERROR_EXIT_CODE=1
+
 if test ${1}o = "o"; then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
-if test ${XML4CROOT}o = "o"; then
-   echo ERROR : You have not set your XML4CROOT environment variable
+if test ${XERCESCROOT}o = "o"; then
+   echo ERROR : You have not set your XERCESCROOT environment variable
    echo Though this environment variable has nothing to do with creating makefiles,
    echo this is just a general warning to prevent you from pitfalls in future. Please
-   echo set an environment variable called XML4CROOT to indicate where you installed
-   echo the XML4C files, and run this command again to proceed. See the documentation
+   echo set an environment variable called XERCESCROOT to indicate where you installed
+   echo the XERCES-C files, and run this command again to proceed. See the documentation
    echo for an example if you are still confused.
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 if test $1 = "-h"; then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 # Get the command line parameters
@@ -107,7 +145,7 @@
 if [ $? != 0 ]
    then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 # Set up the default values for each parameter
@@ -133,7 +171,7 @@
 
    -h)
         usage
-        exit -1;;
+        exit ${ERROR_EXIT_CODE};;
 
    --)
         shift; break;;
@@ -159,7 +197,7 @@
        ;;
    *)
       echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
-      exit -1;;
+      exit ${ERROR_EXIT_CODE};;
 esac
 
 # Set the C compiler and C++ compiler environment variables
@@ -200,7 +238,7 @@
 
 echo
 echo If the result of the above commands look OK to you, go to the directory
-echo ${XML4CROOT}/src and type \"make\" to make the XML4C system.
+echo ${XERCESCROOT}/src and type \"make\" to make the XERCES-C system.
 
 exit 0;
 
diff --git a/scripts/Win32/ccd.cmd b/scripts/Win32/ccd.cmd
new file mode 100755
index 0000000..3029866
--- /dev/null
+++ b/scripts/Win32/ccd.cmd
@@ -0,0 +1,80 @@
+@ECHO OFF
+
+%DevDrive%
+
+IF "%1"=="build" GOTO CD_BUILD
+IF "%1"=="data" GOTO CD_DATA
+IF "%1"=="dom" GOTO CD_DOM
+IF "%1"=="framework" GOTO CD_FRAMEWORK
+IF "%1"=="internal" GOTO CD_INTERNAL
+IF "%1"=="intl" GOTO CD_INTL
+IF "%1"=="parsers" GOTO CD_PARSERS
+IF "%1"=="samples" GOTO CD_SAMPLES
+IF "%1"=="sax" GOTO CD_SAX
+IF "%1"=="scripts" GOTO CD_SCRIPTS
+IF "%1"=="src" GOTO CD_SRC
+IF "%1"=="tests" GOTO CD_TESTS
+IF "%1"=="tools" GOTO CD_TOOLS
+IF "%1"=="util" GOTO CD_UTIL
+
+
+ECHO Unknown target directory
+GOTO :EXIT
+
+:CD_BUILD
+CD %XML4CRoot%\Build\Win32\VC6
+GOTO EXIT
+
+:CD_DATA
+CD %XML4CRoot%\samples\data
+GOTO EXIT
+
+:CD_DOM
+CD %XML4CRoot%\src\dom
+GOTO EXIT
+
+:CD_FRAMEWORK
+CD %XML4CRoot%\src\framework
+GOTO EXIT
+
+:CD_INTERNAL
+CD %XML4CRoot%\src\internal
+GOTO EXIT
+
+:CD_INTL
+CD %XML4CRoot%\intlFiles
+GOTO EXIT
+
+:CD_PARSERS
+CD %XML4CRoot%\src\parsers
+GOTO EXIT
+
+:CD_SAMPLES
+CD %XML4CRoot%\samples
+GOTO EXIT
+
+:CD_SAX
+CD %XML4CRoot%\src\sax
+GOTO EXIT
+
+:CD_SCRIPTS
+CD %XML4CRoot%\scripts\Win32
+GOTO EXIT
+
+:CD_SRC
+CD %XML4CRoot%\src
+GOTO EXIT
+
+:CD_TESTS
+CD %XML4CRoot%\tests
+GOTO EXIT
+
+:CD_TOOLS
+CD %XML4CRoot%\tools
+GOTO EXIT
+
+:CD_UTIL
+CD %XML4CRoot%\src\util
+GOTO EXIT
+
+:EXIT
diff --git a/scripts/packageBinaries.pl b/scripts/packageBinaries.pl
index 970ef3e..e8a6289 100644
--- a/scripts/packageBinaries.pl
+++ b/scripts/packageBinaries.pl
@@ -1,6 +1,6 @@
 #!/usr/local/bin/perl5
 
-push(@INC, "/home/xml4c/bin", "/home/xml4c/bin/perl/perl-RUN/opt/perl5/lib", "/Development2/cupert/bin/perl/perl-RUN/opt/perl5/lib", "/Development/cupert/usr/local/perl/perl-RUN/opt/perl5/lib");
+push(@INC, "/home/xerces-c/bin", "/home/xerces-c/bin/perl/perl-RUN/opt/perl5/lib", "/Development2/cupert/bin/perl/perl-RUN/opt/perl5/lib", "/Development/cupert/usr/local/perl/perl-RUN/opt/perl5/lib");
 
 require "getopt.pl";
 
@@ -9,17 +9,11 @@
 
 # Extract the source and target directories
 &Getopt('sopcxmntr');
-$XML4CROOT = $opt_s;
+$XERCESCROOT = $opt_s;
 $targetdir = $opt_o;
-$ccompiler = $opt_c;
-$cppcompiler = $opt_x;
-$msgloader = $opt_m;
-$netaccessor = $opt_n;
-$transcoder = $opt_t;
-$thread = $opt_r;
 
 # Check for the environment variables and exit if error
-if (!length($XML4CROOT) || !length($targetdir) || (length($opt_h) > 0) ) {
+if (!length($XERCESCROOT) || !length($targetdir) || (length($opt_h) > 0) ) {
         print ("Usage is: packageBinaries <options>\n");
 		print ("          options are:  -s <source_directory>\n");
 		print ("                        -o <target_directory>\n");
@@ -30,22 +24,22 @@
         print ("                        -t <transcoder> can be 'icu' or 'native'\n");
         print ("                        -r <thread option> can be 'pthread' or 'dce' (only used on HP-11)\n");
         print ("                        -h to get help on these commands\n");
-        print ("Example: perl packageBinaries.pl -s\$HOME/xml4csrc3_0_0 -o\$HOME/xml4c3_0_0 -cgcc -xg++ -minmem -nfileonly -tnative\n");
+        print ("Example: perl packageBinaries.pl -s\$HOME/xerces-c_1_0_0d01 -o\$HOME/xerces-c_1_0_0d01bin -cgcc -xg++ -minmem -nfileonly -tnative\n");
         exit(-1);
 }
 
 # Set up the environment variables for ICU
-# As of Version 3, ICU is not a required component of XML4C
+# As of Version 3, ICU is not a required component of XERCES-C
 $ICUROOT = $ENV{'ICUROOT'};
 if (!length($ICUROOT)) {
        print "You have not defined your ICU install directory.\n";
-	   print "You must set an environment variable called ICUROOT to package ICU with XML4C.\n";
-	   print "Proceeding to build XML4C without ICU...\n";
+	   print "You must set an environment variable called ICUROOT to package ICU with XERCES-C.\n";
+	   print "Proceeding to build XERCES-C without ICU...\n";
 }
 
 # Check if the source directory exists or not
-if (!(-e $XML4CROOT)) {
-        print ("The directory $XML4CROOT does not exist. Cannot proceed any further.\n");
+if (!(-e $XERCESCROOT)) {
+        print ("The directory $XERCESCROOT does not exist. Cannot proceed any further.\n");
         exit(-1);
 }
 
@@ -57,7 +51,7 @@
 }
 
 #Fix the backslashes on the Windows platform
-$XML4CROOT =~ s/\\/\//g;
+$XERCESCROOT =~ s/\\/\//g;
 $ICUROOT =~ s/\\/\//g;
 $targetdir =~ s/\\/\//g;
 
@@ -65,16 +59,14 @@
 open(PLATFORM, "uname -s|");
 $platform = <PLATFORM>;
 chomp($platform);
-#$platform =~ m/(^\w*)\s/;
-#$platform = $1;
 close (PLATFORM);
 
 print "Packaging binaries for \`" . $platform . "\` in " . $targetdir . " ...\n";
 
 #Construct the name of the zip file by extracting the last directory name
 $zipfiles = $targetdir;
-$zipfiles =~ m/\/(\w*$)/;
-$zipfiles = $1 . "/*";
+$zipfiles =~ s/.*\/([\w|-]*)$/$1/g;
+$zipfiles = $zipfiles . "/*";
 
 $buildmode = "Release";    # Universally, why do you want to package Debug builds anyway?
 
@@ -112,6 +104,7 @@
         mkdir ($targetdir . "/samples/MemParse", "0644");
         mkdir ($targetdir . "/samples/PParse", "0644");
         mkdir ($targetdir . "/samples/StdInParse", "0644");
+        mkdir ($targetdir . "/samples/EnumVal", "0644");
         mkdir ($targetdir . "/doc", "0644");
         mkdir ($targetdir . "/doc/apiDocs", "0644");
         mkdir ($targetdir . "/bin/icu", "0644");
@@ -138,65 +131,71 @@
 		}
 
         #Clean up all the dependency files, causes problems for nmake
-        chdir ("$XML4CROOT");
+        chdir ("$XERCESCROOT");
         system ("del /s /f *.dep");
 
-        # Make the XML4C dll
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/IXXML4C3");
-        print "Executing: nmake -f XXML4C3.mak clean CFG=\"IXXML4C3 - $platformname $buildmode\"";
-        system("nmake -f IXXML4C3.mak clean CFG=\"IXXML4C3 - $platformname $buildmode\"");
-        print "Executing: nmake -f IXXML4C3.mak all CFG=\"IXXML4C3 - $platformname $buildmode\"";
-        system("nmake -f IXXML4C3.mak all CFG=\"IXXML4C3 - $platformname $buildmode\"");
+        # Make the XERCES-C dll
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/XercesLib");
+        print "Executing: nmake -f XercesLib.mak clean CFG=\"XercesLib - $platformname $buildmode\"";
+        system("nmake -f XercesLib.mak clean CFG=\"XercesLib - $platformname $buildmode\"");
+        print "Executing: nmake -f XercesLib.mak all CFG=\"XercesLib - $platformname $buildmode\"";
+        system("nmake -f XercesLib.mak all CFG=\"XercesLib - $platformname $buildmode\"");
 
         # Make the SAXCount sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/SAXCount");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/SAXCount");
         system "nmake -f SAXCount.mak clean CFG=\"SAXCount - $platformname $buildmode\"";
         print "Executing: nmake -f SAXCount.mak all CFG=\"SAXCount - $platformname $buildmode\"";
         system("nmake -f SAXCount.mak all CFG=\"SAXCount - $platformname $buildmode\"");
 
         # Make the SAXPrint sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/SAXPrint");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/SAXPrint");
         system "nmake -f SAXPrint.mak clean CFG=\"SAXPrint - $platformname $buildmode\"";
         print "Executing: nmake -f SAXPrint.mak all CFG=\"SAXPrint - $platformname $buildmode\"";
         system("nmake -f SAXPrint.mak all CFG=\"SAXPrint - $platformname $buildmode\"");
 
         # Make the DOMCount sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/DOMCount");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/DOMCount");
         system "nmake -f DOMCount.mak clean CFG=\"DOMCount - $platformname $buildmode\"";
         print "Executing: nmake -f DOMCount.mak all CFG=\"DOMCount - $platformname $buildmode\"";
         system("nmake -f DOMCount.mak all CFG=\"DOMCount - $platformname $buildmode\"");
 
         # Make the DOMPrint sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/DOMPrint");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/DOMPrint");
         system "nmake -f DOMPrint.mak clean CFG=\"DOMPrint - $platformname $buildmode\"";
         print "Executing: nmake -f DOMPrint.mak all CFG=\"DOMPrint - $platformname $buildmode\"";
         system("nmake -f DOMPrint.mak all CFG=\"DOMPrint - $platformname $buildmode\"");
 
         # Make the Redirect sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/Redirect");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/Redirect");
         system "nmake -f Redirect.mak clean CFG=\"Redirect - $platformname $buildmode\"";
         print "Executing: nmake -f Redirect.mak all CFG=\"Redirect - $platformname $buildmode\"";
         system("nmake -f Redirect.mak all CFG=\"Redirect - $platformname $buildmode\"");
 
 
         # Make the MemParse sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/MemParse");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/MemParse");
         system "nmake -f MemParse.mak clean CFG=\"MemParse - $platformname $buildmode\"";
         print "Executing: nmake -f MemParse.mak all CFG=\"MemParse - $platformname $buildmode\"";
         system("nmake -f MemParse.mak all CFG=\"MemParse - $platformname $buildmode\"");
 
         # Make the PParse sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/PParse");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/PParse");
         system "nmake -f PParse.mak clean CFG=\"PParse - $platformname $buildmode\"";
         print "Executing: nmake -f PParse.mak all CFG=\"PParse - $platformname $buildmode\"";
         system("nmake -f PParse.mak all CFG=\"PParse - $platformname $buildmode\"");
 
         # Make the StdInParse sample
-        chdir ("$XML4CROOT/Projects/Win32/VC6/IXXML4C3/StdInParse");
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/StdInParse");
         system "nmake -f StdInParse.mak clean CFG=\"StdInParse - $platformname $buildmode\"";
         print "Executing: nmake -f StdInParse.mak all CFG=\"StdInParse - $platformname $buildmode\"";
         system("nmake -f StdInParse.mak all CFG=\"StdInParse - $platformname $buildmode\"");
 
+        # Make the EnumVal sample
+        chdir ("$XERCESCROOT/Projects/Win32/VC6/xerces-all/EnumVal");
+        system "nmake -f EnumVal.mak clean CFG=\"EnumVal - $platformname $buildmode\"";
+        print "Executing: nmake -f EnumVal.mak all CFG=\"EnumVal - $platformname $buildmode\"";
+        system("nmake -f EnumVal.mak all CFG=\"EnumVal - $platformname $buildmode\"");
+
 		if (length($ICUROOT) > 0) {
 			# run makeconv now
 			chdir ("$ICUROOT/data");
@@ -211,15 +210,15 @@
 
         # Decide where you want the build copied from
         chdir ($targetdir);
-        $BUILDDIR = $XML4CROOT . "/Build/Win32/VC6/" . $buildmode;
+        $BUILDDIR = $XERCESCROOT . "/Build/Win32/VC6/" . $buildmode;
         print "\nBuild is being copied from \'" . $BUILDDIR . "\'";
 
         # Populate the include output directory
         print ("\n\nCopying headers files ...\n");
-        $xcopycommand = "xcopy $XML4CROOT\\src\\*.hpp $targetdir\\include";
+        $xcopycommand = "xcopy $XERCESCROOT\\src\\*.hpp $targetdir\\include";
         $xcopycommand =~ s/\//\\/g;
         system ("$xcopycommand /S /C /I /R");
-        $xcopycommand = "xcopy $XML4CROOT\\src\\*.c $targetdir\\include";
+        $xcopycommand = "xcopy $XERCESCROOT\\src\\*.c $targetdir\\include";
         $xcopycommand =~ s/\//\\/g;
         system ("$xcopycommand /S /C /I /R");
 
@@ -236,7 +235,7 @@
 			system("cp -fv $ICUROOT/lib/$buildmode/icuuc.lib $targetdir/lib");
 			system("cp -fv $ICUROOT/source/tools/makeconv/$buildmode/makeconv.exe $targetdir/bin");
 		}
-        system("cp -fv $BUILDDIR/IXXML4C3.lib $targetdir/lib");
+        system("cp -fv $BUILDDIR/xerces-c_1.lib $targetdir/lib");
 
         # Copy the locale files
 		if (length($ICUROOT) > 0) {
@@ -246,23 +245,24 @@
 
         # Populate the samples directory
         print ("\n\nCopying sample files ...\n");
-        system("cp -Rfv $XML4CROOT/samples/Projects/* $targetdir/samples/Projects");
-        system("cp -Rfv $XML4CROOT/samples/SAXCount/* $targetdir/samples/SAXCount");
-        system("cp -Rfv $XML4CROOT/samples/SAXPrint/* $targetdir/samples/SAXPrint");
-        system("cp -Rfv $XML4CROOT/samples/DOMCount/* $targetdir/samples/DOMCount");
-        system("cp -Rfv $XML4CROOT/samples/DOMPrint/* $targetdir/samples/DOMPrint");
-        system("cp -Rfv $XML4CROOT/samples/Redirect/* $targetdir/samples/Redirect");
-        system("cp -Rfv $XML4CROOT/samples/MemParse/* $targetdir/samples/MemParse");
-        system("cp -Rfv $XML4CROOT/samples/PParse/* $targetdir/samples/PParse");
-        system("cp -Rfv $XML4CROOT/samples/StdInParse/* $targetdir/samples/StdInParse");
-        system("cp -Rfv $XML4CROOT/samples/data/* $targetdir/samples/data");
+        system("cp -Rfv $XERCESCROOT/samples/Projects/* $targetdir/samples/Projects");
+        system("cp -Rfv $XERCESCROOT/samples/SAXCount/* $targetdir/samples/SAXCount");
+        system("cp -Rfv $XERCESCROOT/samples/SAXPrint/* $targetdir/samples/SAXPrint");
+        system("cp -Rfv $XERCESCROOT/samples/DOMCount/* $targetdir/samples/DOMCount");
+        system("cp -Rfv $XERCESCROOT/samples/DOMPrint/* $targetdir/samples/DOMPrint");
+        system("cp -Rfv $XERCESCROOT/samples/Redirect/* $targetdir/samples/Redirect");
+        system("cp -Rfv $XERCESCROOT/samples/MemParse/* $targetdir/samples/MemParse");
+        system("cp -Rfv $XERCESCROOT/samples/PParse/* $targetdir/samples/PParse");
+        system("cp -Rfv $XERCESCROOT/samples/StdInParse/* $targetdir/samples/StdInParse");
+        system("cp -Rfv $XERCESCROOT/samples/EnumVal/* $targetdir/samples/EnumVal");
+        system("cp -Rfv $XERCESCROOT/samples/data/* $targetdir/samples/data");
 
         # Populate the docs directory
         print ("\n\nCopying documentation ...\n");
-        system("cp -Rfv $XML4CROOT/doc/* $targetdir/doc");
-        system("cp -Rfv $XML4CROOT/doc/apiDocs/* $targetdir/doc/apiDocs");
-        system("cp $XML4CROOT/Readme.html $targetdir");
-        system("cp $XML4CROOT/doc/license.html $targetdir");
+        system("cp -Rfv $XERCESCROOT/doc/* $targetdir/doc");
+        system("cp -Rfv $XERCESCROOT/doc/apiDocs/* $targetdir/doc/apiDocs");
+        system("cp $XERCESCROOT/Readme.html $targetdir");
+        system("cp $XERCESCROOT/doc/license.html $targetdir");
 
         # Now package it all up using ZIP
         chdir ("$targetdir/..");
@@ -281,7 +281,7 @@
            $icuCompileFlags = 'CXX="xlC_r -L/usr/lpp/xlC/lib" CC="xlc_r -L/usr/lpp/xlC/lib" C_FLAGS="-w -O" CXX_FLAGS="-w -O"'; 
         }
         if ($platform eq 'HP-UX') {
-            if ($ccompiler eq 'CC') {
+            if ($opt_c eq 'CC') {
                 $icuCompileFlags = 'CC=cc CXX=CC CXXFLAGS="+eh +DAportable -w -O" CFLAGS="+DAportable -w -O"'; 
             }
             else {
@@ -290,6 +290,7 @@
         }
         if ($platform =~ m/Linux/) {
            $icuCompileFlags = 'CC=gcc CXX=g++ CXXFLAGS="-w -O" CFLAGS="-w -O"'; 
+	   $platform =~ tr/A-Z/a-z/;
         }
         if ($platform =~ m/SunOS/) {
            $icuCompileFlags = 'CC=cc CXX=CC CXXFLAGS="-w -O" CFLAGS="-w -O"'; 
@@ -302,32 +303,52 @@
                 exit(1);
         }
 
-        $srczipfiles = $srctargetdir . "/*";
-
-        $srctargetdir = $OUTPUTDIR . $srctargetdir;
         if (-e $srctargetdir.".tar") {
                 print ("Error: The target file \'$srctargetdir.tar\' already exists.\n");
                 print ("       You must delete the file \'$srctargetdir.tar\' to package your product.\n");
                 exit(1);
         }
 
+        $platform =~ tr/A-Z/a-z/;
 
         # Make the target directory and its main subdirectories
         system ("mkdir $targetdir");
         system ("mkdir $targetdir/bin");
         system ("mkdir $targetdir/lib");
-		if (length($ICUROOT) > 0) {
-        	system ("mkdir $targetdir/lib/icu");
-        	system ("mkdir $targetdir/lib/icu/data");
-        	system ("mkdir $targetdir/include/icu");
-		}
         system ("mkdir $targetdir/include");
+	if (length($ICUROOT) > 0) {
+		system ("mkdir $targetdir/lib/icu");
+		system ("mkdir $targetdir/lib/icu/data");
+		system ("mkdir $targetdir/include/icu");
+	}
         system ("mkdir $targetdir/include/sax");
         system ("mkdir $targetdir/include/framework");
         system ("mkdir $targetdir/include/internal");
         system ("mkdir $targetdir/include/parsers");
         system ("mkdir $targetdir/include/util");
+	system ("mkdir $targetdir/include/util/Compilers");
+	system ("mkdir $targetdir/include/util/MsgLoaders");
+	system ("mkdir $targetdir/include/util/MsgLoaders/ICU");
+	system ("mkdir $targetdir/include/util/MsgLoaders/InMemory");
+	system ("mkdir $targetdir/include/util/MsgLoaders/MsgCatalog");
+	system ("mkdir $targetdir/include/util/MsgLoaders/Win32");
+	system ("mkdir $targetdir/include/util/Platforms");
+	system ("mkdir $targetdir/include/util/Platforms/AIX");
+	system ("mkdir $targetdir/include/util/Platforms/HPUX");
+	system ("mkdir $targetdir/include/util/Platforms/Linux");
+	system ("mkdir $targetdir/include/util/Platforms/MacOS");
+	system ("mkdir $targetdir/include/util/Platforms/OS2");
+	system ("mkdir $targetdir/include/util/Platforms/OS390");
+	system ("mkdir $targetdir/include/util/Platforms/Solaris");
+	system ("mkdir $targetdir/include/util/Platforms/Tandem");
+	system ("mkdir $targetdir/include/util/Platforms/Win32");
+	system ("mkdir $targetdir/include/util/Transcoders");
+	system ("mkdir $targetdir/include/util/Transcoders/ICU");
+	system ("mkdir $targetdir/include/util/Transcoders/Iconv");
+	system ("mkdir $targetdir/include/util/Transcoders/Win32");
         system ("mkdir $targetdir/include/dom");
+        system ("mkdir $targetdir/include/validators");
+        system ("mkdir $targetdir/include/validators/DTD");
         system ("mkdir $targetdir/samples");
         system ("mkdir $targetdir/samples/data");
         system ("mkdir $targetdir/samples/SAXCount");
@@ -338,6 +359,7 @@
         system ("mkdir $targetdir/samples/MemParse");
         system ("mkdir $targetdir/samples/PParse");
         system ("mkdir $targetdir/samples/StdInParse");
+        system ("mkdir $targetdir/samples/EnumVal");
         system ("mkdir $targetdir/doc");
         system ("mkdir $targetdir/doc/apiDocs");
 
@@ -353,19 +375,19 @@
 			system ("gmake");
 			# For the antiquated CC compiler under HPUX, we need to invoke
 			# gmake one extra time to generate the .cnv files.
-			if ( ($platform eq 'HP-UX') && ($compiler eq 'CC') ) {
+			if ( ($platform eq 'HP-UX') && ($opt_c eq 'CC') ) {
 				system ("gmake");
 			}
 		}
 
         # make the source files
-        chdir ("$XML4CROOT/src");
+        chdir ("$XERCESCROOT/src");
 
         system ("runConfigure -p$platform -c$opt_c -x$opt_x -m$opt_m -n$opt_n -t$opt_t -r$opt_r");
         system ("gmake");
 
         # Now build the samples
-        chdir ("$XML4CROOT/samples");
+        chdir ("$XERCESCROOT/samples");
         system ("runConfigure -p$platform -c$opt_c -x$opt_x");
         system ("gmake");
 
@@ -373,14 +395,35 @@
 
         # Populate the include output directory
         print ("\n\nCopying headers files ...\n");
-        system("cp -Rf $XML4CROOT/src/sax/*.hpp $targetdir/include/sax");
-        system("cp -Rf $XML4CROOT/src/framework/*.hpp $targetdir/include/framework");
-        system("cp -Rf $XML4CROOT/src/dom/DOM*.hpp $targetdir/include/dom");
-        system("cp -Rf $XML4CROOT/src/internal/*.hpp $targetdir/include/internal");
-        system("cp -Rf $XML4CROOT/src/internal/*.c $targetdir/include/internal");
-        system("cp -Rf $XML4CROOT/src/parsers/*.hpp $targetdir/include/parsers");
-        system("cp -Rf $XML4CROOT/src/util/*.hpp $targetdir/include/util");
-        system("cp -Rf $XML4CROOT/src/util/*.c $targetdir/include/util");
+        system("cp -Rf $XERCESCROOT/src/sax/*.hpp $targetdir/include/sax");
+        system("cp -Rf $XERCESCROOT/src/framework/*.hpp $targetdir/include/framework");
+        system("cp -Rf $XERCESCROOT/src/dom/DOM*.hpp $targetdir/include/dom");
+        system("cp -Rf $XERCESCROOT/src/internal/*.hpp $targetdir/include/internal");
+        system("cp -Rf $XERCESCROOT/src/internal/*.c $targetdir/include/internal");
+        system("cp -Rf $XERCESCROOT/src/parsers/*.hpp $targetdir/include/parsers");
+        system("cp -Rf $XERCESCROOT/src/util/*.hpp $targetdir/include/util");
+        system("cp -Rf $XERCESCROOT/src/util/*.c $targetdir/include/util");
+	system("cp -Rf $XERCESCROOT/src/util/Compilers/*.hpp $targetdir/include/util/Compilers");
+	system("cp -Rf $XERCESCROOT/src/util/MsgLoaders/*.hpp $targetdir/include/util/MsgLoaders");
+	system("cp -Rf $XERCESCROOT/src/util/MsgLoaders/ICU/*.hpp $targetdir/include/util/MsgLoaders/ICU");
+	system("cp -Rf $XERCESCROOT/src/util/MsgLoaders/InMemory/*.hpp $targetdir/include/util/MsgLoaders/InMemory");
+	system("cp -Rf $XERCESCROOT/src/util/MsgLoaders/MsgCatalog/*.hpp $targetdir/include/util/MsgLoaders/MsgCatalog");
+	system("cp -Rf $XERCESCROOT/src/util/MsgLoaders/Win32/*.hpp $targetdir/include/util/MsgLoaders/Win32");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/*.hpp $targetdir/include/util/Platforms");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/AIX/*.hpp $targetdir/include/util/Platforms/AIX");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/HPUX/*.hpp $targetdir/include/util/Platforms/HPUX");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/Linux/*.hpp $targetdir/include/util/Platforms/Linux");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/MacOS/*.hpp $targetdir/include/util/Platforms/MacOS");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/OS2/*.hpp $targetdir/include/util/Platforms/OS2");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/OS390/*.hpp $targetdir/include/util/Platforms/OS390");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/Solaris/*.hpp $targetdir/include/util/Platforms/Solaris");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/Tandem/*.hpp $targetdir/include/util/Platforms/Tandem");
+	system("cp -Rf $XERCESCROOT/src/util/Platforms/Win32/*.hpp $targetdir/include/util/Platforms/Win32");
+	system("cp -Rf $XERCESCROOT/src/util/Transcoders/*.hpp $targetdir/include/util/Transcoders");
+	system("cp -Rf $XERCESCROOT/src/util/Transcoders/ICU/*.hpp $targetdir/include/util/Transcoders/ICU");
+	system("cp -Rf $XERCESCROOT/src/util/Transcoders/Iconv/*.hpp $targetdir/include/util/Transcoders/Iconv");
+	system("cp -Rf $XERCESCROOT/src/util/Transcoders/Win32/*.hpp $targetdir/include/util/Transcoders/Win32");
+	system("cp -Rf $XERCESCROOT/src/validators/DTD/*.hpp $targetdir/include/validators/DTD");
 		
 		if (length($ICUROOT) > 0) {
 			print "\nInternational files are being copied from \'" . $ICUROOT . "\'";
@@ -389,14 +432,14 @@
 
         # Populate the binary output directory
         print ("\n\nCopying binary outputs ...\n");
-        system("cp -Rf $XML4CROOT/bin/* $targetdir/bin");
+        system("cp -Rf $XERCESCROOT/bin/* $targetdir/bin");
 		if (length($ICUROOT) > 0) {
 			system("cp -f $ICUROOT/source/tools/makeconv/makeconv $targetdir/bin");
 			system("cp -f $ICUROOT/lib/libicu-uc.* $targetdir/lib");
 		}
-        system("cp -f $XML4CROOT/lib/*.a $targetdir/lib");
-        system("cp -f $XML4CROOT/lib/*.so $targetdir/lib");
-        system("cp -f $XML4CROOT/lib/*.sl $targetdir/lib");
+        system("cp -f $XERCESCROOT/lib/*.a $targetdir/lib");
+        system("cp -f $XERCESCROOT/lib/*.so $targetdir/lib");
+        system("cp -f $XERCESCROOT/lib/*.sl $targetdir/lib");
 
         system("rm -rf $targetdir/bin/obj");
 
@@ -410,25 +453,26 @@
         print ("\n\nCopying sample files ...\n");
         foreach $iii ('config.guess', 'config.h.in', 'config.sub', 'configure', 'configure.in',
                 'install-sh', 'runConfigure', 'Makefile.in', 'Makefile.incl', 'Makefile') {
-                system("cp -f $XML4CROOT/samples/$iii $targetdir/samples");
+                system("cp -f $XERCESCROOT/samples/$iii $targetdir/samples");
         }
 
-        system("cp -Rf $XML4CROOT/samples/data/* $targetdir/samples/data");
-        system("cp -Rf $XML4CROOT/samples/SAXCount/* $targetdir/samples/SAXCount");
-        system("cp -Rf $XML4CROOT/samples/SAXPrint/* $targetdir/samples/SAXPrint");
-        system("cp -Rf $XML4CROOT/samples/DOMCount/* $targetdir/samples/DOMCount");
-        system("cp -Rf $XML4CROOT/samples/DOMPrint/* $targetdir/samples/DOMPrint");
-        system("cp -Rf $XML4CROOT/samples/Redirect/* $targetdir/samples/Redirect");
-        system("cp -Rf $XML4CROOT/samples/MemParse/* $targetdir/samples/MemParse");
-        system("cp -Rf $XML4CROOT/samples/PParse/* $targetdir/samples/PParse");
-        system("cp -Rf $XML4CROOT/samples/StdInParse/* $targetdir/samples/StdInParse");
+        system("cp -Rf $XERCESCROOT/samples/data/* $targetdir/samples/data");
+        system("cp -Rf $XERCESCROOT/samples/SAXCount/* $targetdir/samples/SAXCount");
+        system("cp -Rf $XERCESCROOT/samples/SAXPrint/* $targetdir/samples/SAXPrint");
+        system("cp -Rf $XERCESCROOT/samples/DOMCount/* $targetdir/samples/DOMCount");
+        system("cp -Rf $XERCESCROOT/samples/DOMPrint/* $targetdir/samples/DOMPrint");
+        system("cp -Rf $XERCESCROOT/samples/Redirect/* $targetdir/samples/Redirect");
+        system("cp -Rf $XERCESCROOT/samples/MemParse/* $targetdir/samples/MemParse");
+        system("cp -Rf $XERCESCROOT/samples/PParse/* $targetdir/samples/PParse");
+        system("cp -Rf $XERCESCROOT/samples/StdInParse/* $targetdir/samples/StdInParse");
+        system("cp -Rf $XERCESCROOT/samples/EnumVal/* $targetdir/samples/EnumVal");
 
         # Populate the docs directory
         print ("\n\nCopying documentation ...\n");
-        system("cp -Rf $XML4CROOT/doc/* $targetdir/doc");
-        system("cp -Rf $XML4CROOT/doc/apiDocs/* $targetdir/doc/apiDocs");
-        system("cp $XML4CROOT/Readme.html $targetdir");
-        system("cp $XML4CROOT/doc/license.html $targetdir");
+        system("cp -Rf $XERCESCROOT/doc/* $targetdir/doc");
+        system("cp -Rf $XERCESCROOT/doc/apiDocs/* $targetdir/doc/apiDocs");
+        system("cp $XERCESCROOT/Readme.html $targetdir");
+        system("cp $XERCESCROOT/doc/license.html $targetdir");
 
         # Change the directory permissions
         system ("chmod 644 `find $targetdir -type f`");
@@ -442,14 +486,13 @@
         chdir ("$targetdir/..");
         $zipname = $targetdir . ".tar";
         $platformzipname = $zipname;
-        $platformzipname =~ s/\.tar/$platformextension\.tar/g;
 
-        print ("tar -cvf $platfromzipname $zipfiles\n");
+        print ("tar -cvf $platformzipname $zipfiles\n");
         system ("tar -cvf $platformzipname $zipfiles");
 
         # Finally compress the files
         print ("Compressing $platformzipname ...\n");
-        system ("compress $platformzipname");
+        system ("gzip $platformzipname");
 
 }
 
diff --git a/scripts/packageSources.pl b/scripts/packageSources.pl
index 486a47a..2c076f7 100644
--- a/scripts/packageSources.pl
+++ b/scripts/packageSources.pl
@@ -1,17 +1,17 @@
 #!/usr/bin/perl
 
-push(@INC, "/home/xml4c/bin", "/home/xml4c/bin/perl/perl-RUN/opt/perl5/lib", "/Development2/cupert/bin/perl/perl-RUN/opt/perl5/lib", "/Development/cupert/usr/local/perl/perl-RUN/opt/perl5/lib");
+push(@INC, "/home/xerces-c/bin", "/home/xerces-c/bin/perl/perl-RUN/opt/perl5/lib", "/Development2/cupert/bin/perl/perl-RUN/opt/perl5/lib", "/Development/cupert/usr/local/perl/perl-RUN/opt/perl5/lib");
 require "getopt.pl";
 
 $|=1;   # Force a flush after every print
 
-# Set up the environment variables for XML4C and ICU
-$XML4CROOT = $ENV{'XML4CROOT'};
+# Set up the environment variables for XERCES-C and ICU
+$XERCESCROOT = $ENV{'XERCESCROOT'};
 $ICUROOT = $ENV{'ICUROOT'};
 
 # Check for the environment variables and exit if error
-if (!length($XML4CROOT)) {
-        print "You must set an environment variable called XML4CROOT to work with this script.\n";
+if (!length($XERCESCROOT)) {
+        print "You must set an environment variable called XERCESCROOT to work with this script.\n";
         exit(-1);
 }
 
@@ -19,10 +19,10 @@
 $OUTPUTDIR = $opt_o;
 
 # Check for the environment variables and exit if error
-if (!length($XML4CROOT) || !length($OUTPUTDIR)) {
-        print ("Usage is: packageSources -s<output_directory>\n");
-        print ("Example: perl packageSources.pl -od:\\xml4csrc3_0_0\n");
-        print ("         perl packageSources.pl -o\$HOME/xml4csrc3_0_0");
+if (!length($XERCESCROOT) || !length($OUTPUTDIR)) {
+        print ("Usage is: packageSources -o<output_directory>\n");
+        print ("Example: perl packageSources.pl -od:\\xerces-c_1_0_0d01\n");
+        print ("         perl packageSources.pl -o\$HOME/xerces-c_1_0_0d01\n");
         exit(-1);
 }
 
@@ -34,11 +34,11 @@
 # }
 
 #Fix the backslashes on the Windows platform
-$XML4CROOT =~ s/\\/\//g;
+$XERCESCROOT =~ s/\\/\//g;
 $ICUROOT =~ s/\\/\//g;
 
-# Read the target version from the file $XML4CROOT/src/util/XML4CDefs.hpp
-$versionfile = "$XML4CROOT/src/util/XML4CDefs.hpp";
+# Read the target version from the file $XERCESCROOT/src/util/XML4CDefs.hpp
+$versionfile = "$XERCESCROOT/src/util/XML4CDefs.hpp";
 $openresult = open (VERSIONFILE, "<$versionfile");
 
 if ($openresult == 0) {
@@ -50,15 +50,11 @@
    if ($fileline =~ /gXML4CFullVersionStr = \"(.*)\"/) {
      $binarytargetdir = $1;  # We found the version string inside this file
    }
-   if ($fileline =~ /gXML4CVersionStr = \"(.*)\"/) {
-      $libraryversion = $1;
-   }
 }
 close(VERSIONFILE);
 
 $binarytargetdir =~ s/\./_/g;    # Substitute the dots
 $binarytargetdir =~ s/\s/_/g;    # Substitute the blanks
-$binarydirectoryname = "xml4c" . $binarytargetdir;  # Is the name of the binary directory
 $binarytargetdir =~ s/\\/\//g;   # Fix the backslashes, if they exist, probably doesn't
 
 # Now check if the target directory exists, exit if it does
@@ -68,8 +64,10 @@
         exit(1);
 }
 
-
-$srczipfiles = $OUTPUTDIR . "/*";
+#Construct the name of the zip file by extracting the last directory name
+$srczipfiles = $OUTPUTDIR;
+$srczipfiles =~ s/.*\/([\w|-]*)$/$1/g;
+$srczipfiles = $srczipfiles . "/*";
 $srctargetdir = $OUTPUTDIR;
 
 # Find out the platform from 'uname -a'
@@ -79,12 +77,12 @@
 $platform = $1;
 close (PLATFORM);
 
-print "\nPackaging XML4C sources in " . $srctargetdir . " on platform " . $platform . "...\n";
+print "\nPackaging XERCES-C sources in " . $srctargetdir . " on platform " . $platform . "...\n";
 
 # Build the API docs
 $docppfilelist = "";
 
-$hppdir = "$XML4CROOT/src/sax";
+$hppdir = "$XERCESCROOT/src/sax";
 chdir ($hppdir);
 opendir (THISDIR, $hppdir);
 @allfiles = grep(!/^\.\.?$/, readdir(THISDIR));
@@ -94,7 +92,7 @@
        $docppfilelist = $docppfilelist . " " . $hppdir . "/" . $hppfile;
 }
 
-$hppdir = "$XML4CROOT/src/dom";
+$hppdir = "$XERCESCROOT/src/dom";
 chdir ($hppdir);
 opendir (THISDIR, $hppdir);
 @allfiles = grep(!/^\.\.?$/, readdir(THISDIR));
@@ -105,11 +103,11 @@
        $docppfilelist = $docppfilelist . " " . $hppdir . "/" . $hppfile;
 }
 
-$docppfilelist = $docppfilelist . " $XML4CROOT/src/dom/DOMString.hpp";
-$docppfilelist = $docppfilelist . " $XML4CROOT/src/framework/XMLDocumentHandler.hpp";
-$docppfilelist = $docppfilelist . " $XML4CROOT/src/framework/XMLEntityHandler.hpp";
+$docppfilelist = $docppfilelist . " $XERCESCROOT/src/dom/DOMString.hpp";
+$docppfilelist = $docppfilelist . " $XERCESCROOT/src/framework/XMLDocumentHandler.hpp";
+$docppfilelist = $docppfilelist . " $XERCESCROOT/src/framework/XMLEntityHandler.hpp";
 
-system ("doc++ -d $XML4CROOT/doc/apiDocs -B $XML4CROOT/doc/tail.html -a -G -k -H -S $docppfilelist");
+system ("doc++ -d $XERCESCROOT/doc/apiDocs -B $XERCESCROOT/doc/tail.html -a -G -k -H -S $docppfilelist");
 
 &package_sources();
 
@@ -125,8 +123,8 @@
    print ("\nCopying source tree ...\n");
    system ("mkdir $srctargetdir");
    print ("Targetdir is : " . $srctargetdir . "\n");
-   system("cp -Rf $XML4CROOT/* $srctargetdir");
-   system("cp $XML4CROOT/doc/license.html $srctargetdir");
+   system("cp -Rf $XERCESCROOT/* $srctargetdir");
+   system("cp $XERCESCROOT/doc/license.html $srctargetdir");
 
    if ($platform =~ m/Windows/) {
       $RM = "rm";
@@ -195,11 +193,6 @@
    # Walk through the source directory structure and delete all CVS directories
    &deleteCVSdirs($srctargetdir);
 
-   #Change the version number in the user documentation
-   &change_version_number($srctargetdir . "/doc/installation.html", $binarydirectoryname);
-   &change_version_number($srctargetdir . "/doc/programming.html", $binarydirectoryname);
-   &change_version_number($srctargetdir . "/doc/distribution.html", $binarydirectoryname);
-
    # remove the export clauses
    chdir ("$srctargetdir/doc/apiDocs");
    opendir (THISDIR, "$srctargetdir/doc/apiDocs");
@@ -226,36 +219,11 @@
       print ("tar -cvf $srczipname $srczipfiles");
       system ("tar -cvf $srczipname $srczipfiles");
 
-      system ("compress $srczipname");
+      system ("gzip $srczipname");
    }
    print ("Done with packaging sources.\n");
 }
 
-sub change_version_number()
-{
-        my ($thefile, $version_num) = @_;
-        print "\nChanging all version numbers in file $thefile to $version_num";
-        my $thefiledotbak = $thefile . ".bak";
-        rename ($thefile, $thefiledotbak);
-
-        $dll_name = "xml4c" . $libraryversion;
-        $dll_name =~ tr/a-z/A-Z/;
-        my $srcversion_num = $version_num;
-        $srcversion_num =~ s/xml4c2/xml4csrc2/ig;
-        open (FIZZLE, $thefiledotbak);
-        open (FIZZLEOUT, ">$thefile");
-        while ($line = <FIZZLE>) {
-                $line =~ s/xml4c2srcreleasenum/$srcversion_num/ig;
-                $line =~ s/xml4c2releasenum/$version_num/ig;
-                $line =~ s/XML4C2dllname/$dll_name/ig;
-                print FIZZLEOUT $line;
-        }
-        close (FIZZLEOUT);
-        close (FIZZLE);
-        unlink ($thefiledotbak);
-}
-
-
 sub remove_export_clauses()
 {
         my ($thefile) = @_;
diff --git a/src/Makefile.in b/src/Makefile.in
index ffd2545..5adca4b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -55,8 +55,23 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:02:54  twl
-# Initial revision
+# Revision 1.6  1999/11/24 23:21:42  rahulj
+# Now works under HPUX 10.20 with CC and aCC, with ICU and native
+distclean target now remove and remaining Makefile(s)
+clean target now removes the template repository directory
+#
+# Revision 1.5  1999/11/23 01:59:25  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.4  1999/11/12 21:14:32  rahulj
+# fixed ver number.
+#
+# Revision 1.3  1999/11/12 20:38:48  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:02:54  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 22:36:39  anupam
 # Removed the overrided definition of XML4CROOT
@@ -72,13 +87,9 @@
 # Before you try to run the Makefile, make sure you have two      #
 # environment variables set.                                      #
 #                                                                 #
-#   export XML4CROOT=<the directory where you installed XML4C>    #
-#   export ICUROOT=<the directory where you installed ICU>        #
+# export XERCESCROOT=<the directory where you installed XERCES-C> #
+#     export ICUROOT=<the directory where you installed ICU>      #
 #                                                                 #
-# Also, to enable debugging, you must type:                       #
-#   export DEBUG=1                                                #
-# To disable debugging, you must type:                            #
-#   unset DEBUG                                                   #
 ###################################################################
 #MACROS defining commands
 MKDIR=mkdir
@@ -94,26 +105,27 @@
 DOM_DIR = dom
 PARSERS_DIR = parsers
 VALIDATORS_DTD_DIR = validators/DTD
-ALL_OBJECTS_DIR = ${XML4CROOT}/obj
-LIB_DIR = ${XML4CROOT}/lib
+ALL_OBJECTS_DIR = ${XERCESCROOT}/obj
+LIB_DIR = ${XERCESCROOT}/lib
 
-LIB = ${XML4CROOT}/lib
-LIBNAME = libIXXML4C
+LIB = ${XERCESCROOT}/lib
+LIBNAME = libxerces-c
 THISLIB = ${LIB}/${LIBNAME}
-VER = 3_0
+VER = 1_0
 
 ALL_OBJECTS = $(wildcard ${ALL_OBJECTS_DIR}/*.o)
 
 #all these setting come from the arguments passed in to runConfigure.
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 PREFIX = @prefix@
 MESSAGELOADER=@messageloader@
 TRANSCODER=@transcoder@
 
 PRODUCTNAME=xerces
 PRODUCTVERSION=${VER}
-BINTARGETDIR=${HOME}/${PRODUCTNAME}-c-${PLATFORM}-${COMPILER}-${PRODUCTVERSION}
+BINTARGETDIR=${HOME}/${PRODUCTNAME}-c-${PLATFORM}-${CXX}-${PRODUCTVERSION}
 
 all: Prepare Util Sax Internal Framework Parsers Dom Validators ${THISLIB}${VER}${SHLIBSUFFIX}
 
@@ -195,6 +207,7 @@
 	${CD} $(VALIDATORS_DTD_DIR) && $(MAKE) $@ && ${CD} ../..
 	${CD} $(ALL_OBJECTS_DIR) && $(MAKE) $@ && ${CD} ..
 	rm -f Makefile config.cache config.log config.status
+	find . -name Makefile -print -exec rm -f {} \;
 	rm -f *~ core
 
 #docs: 
@@ -236,24 +249,24 @@
 
 	@echo Populate the include output directory
 	@echo Copying headers files ...
-	-${CP} -Rf ${XML4CROOT}/src/sax/*.hpp ${BINTARGETDIR}/include/sax
-	-${CP} -Rf ${XML4CROOT}/src/framework/*.hpp ${BINTARGETDIR}/include/framework
-	-${CP} -Rf ${XML4CROOT}/src/dom/DOM*.hpp ${BINTARGETDIR}/include/dom
-	-${CP} -Rf ${XML4CROOT}/src/internal/*.hpp ${BINTARGETDIR}/include/internal
-	-${CP} -Rf ${XML4CROOT}/src/internal/*.c ${BINTARGETDIR}/include/internal
-	-${CP} -Rf ${XML4CROOT}/src/parsers/*.hpp ${BINTARGETDIR}/include/parsers
-	-${CP} -Rf ${XML4CROOT}/src/util/*.hpp ${BINTARGETDIR}/include/util
-	-${CP} -Rf ${XML4CROOT}/src/util/*.c ${BINTARGETDIR}/include/util
+	-${CP} -Rf ${XERCESCROOT}/src/sax/*.hpp ${BINTARGETDIR}/include/sax
+	-${CP} -Rf ${XERCESCROOT}/src/framework/*.hpp ${BINTARGETDIR}/include/framework
+	-${CP} -Rf ${XERCESCROOT}/src/dom/DOM*.hpp ${BINTARGETDIR}/include/dom
+	-${CP} -Rf ${XERCESCROOT}/src/internal/*.hpp ${BINTARGETDIR}/include/internal
+	-${CP} -Rf ${XERCESCROOT}/src/internal/*.c ${BINTARGETDIR}/include/internal
+	-${CP} -Rf ${XERCESCROOT}/src/parsers/*.hpp ${BINTARGETDIR}/include/parsers
+	-${CP} -Rf ${XERCESCROOT}/src/util/*.hpp ${BINTARGETDIR}/include/util
+	-${CP} -Rf ${XERCESCROOT}/src/util/*.c ${BINTARGETDIR}/include/util
 	-${CP} -Rf ${ICUROOT}/include/* ${BINTARGETDIR}/include/icu
 
 	@echo Populate the binary output directory
 	@echo Copying binary outputs ...
-	-${CP} -Rf ${XML4CROOT}/bin/* ${BINTARGETDIR}/bin
+	-${CP} -Rf ${XERCESCROOT}/bin/* ${BINTARGETDIR}/bin
 	-${CP} -f ${ICUROOT}/source/tools/makeconv/makeconv ${BINTARGETDIR}/bin
 	-${CP} -f ${ICUROOT}/lib/libicu-uc.* ${BINTARGETDIR}/lib
-	-${CP} -f ${XML4CROOT}/lib/*.a ${BINTARGETDIR}/lib
-	-${CP} -f ${XML4CROOT}/lib/*.so ${BINTARGETDIR}/lib
-	-${CP} -f ${XML4CROOT}/lib/*.sl ${BINTARGETDIR}/lib
+	-${CP} -f ${XERCESCROOT}/lib/*.a ${BINTARGETDIR}/lib
+	-${CP} -f ${XERCESCROOT}/lib/*.so ${BINTARGETDIR}/lib
+	-${CP} -f ${XERCESCROOT}/lib/*.sl ${BINTARGETDIR}/lib
 
 	-{RM} -rf ${BINTARGETDIR}/bin/obj
 
@@ -263,31 +276,31 @@
 
 	@echo Populate the samples directory
 	@echo Copying sample files ...
-	-${CP} -f ${XML4CROOT}/samples/config.guess 	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/config.h.in 	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/config.sub 	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/configure	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/configure.in	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/install-sh	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/runConfigure 	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/Makefile.in	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/Makefile.incl 	${BINTARGETDIR}/samples
-	-${CP} -f ${XML4CROOT}/samples/Maefile	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/config.guess 	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/config.h.in 	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/config.sub 	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/configure	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/configure.in	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/install-sh	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/runConfigure 	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/Makefile.in	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/Makefile.incl 	${BINTARGETDIR}/samples
+	-${CP} -f ${XERCESCROOT}/samples/Maefile	${BINTARGETDIR}/samples
 
-	-${CP} -Rf ${XML4CROOT}/samples/data/* ${BINTARGETDIR}/samples/data
-	-${CP} -Rf ${XML4CROOT}/samples/SAXCount/* ${BINTARGETDIR}/samples/SAXCount
-	-${CP} -Rf ${XML4CROOT}/samples/SAXPrint/* ${BINTARGETDIR}/samples/SAXPrint
-	-${CP} -Rf ${XML4CROOT}/samples/DOMCount/* ${BINTARGETDIR}/samples/DOMCount
-	-${CP} -Rf ${XML4CROOT}/samples/DOMPrint/* ${BINTARGETDIR}/samples/DOMPrint
-	-${CP} -Rf ${XML4CROOT}/samples/Redirect/* ${BINTARGETDIR}/samples/Redirect
-	-${CP} -Rf ${XML4CROOT}/samples/MemParse/* ${BINTARGETDIR}/samples/MemParse
+	-${CP} -Rf ${XERCESCROOT}/samples/data/* ${BINTARGETDIR}/samples/data
+	-${CP} -Rf ${XERCESCROOT}/samples/SAXCount/* ${BINTARGETDIR}/samples/SAXCount
+	-${CP} -Rf ${XERCESCROOT}/samples/SAXPrint/* ${BINTARGETDIR}/samples/SAXPrint
+	-${CP} -Rf ${XERCESCROOT}/samples/DOMCount/* ${BINTARGETDIR}/samples/DOMCount
+	-${CP} -Rf ${XERCESCROOT}/samples/DOMPrint/* ${BINTARGETDIR}/samples/DOMPrint
+	-${CP} -Rf ${XERCESCROOT}/samples/Redirect/* ${BINTARGETDIR}/samples/Redirect
+	-${CP} -Rf ${XERCESCROOT}/samples/MemParse/* ${BINTARGETDIR}/samples/MemParse
 
 	@echo Populate the docs directory
 	@echo Copying documentation ..
-	-${CP} -Rf ${XML4CROOT}/doc/* ${BINTARGETDIR}/doc
-	-${CP} -Rf ${XML4CROOT}/doc/apiDocs/* ${BINTARGETDIR}/doc/apiDocs
-	-${CP} ${XML4CROOT}/Readme.html ${BINTARGETDIR}
-	-${CP} ${XML4CROOT}/doc/license.html ${BINTARGETDIR}
+	-${CP} -Rf ${XERCESCROOT}/doc/* ${BINTARGETDIR}/doc
+	-${CP} -Rf ${XERCESCROOT}/doc/apiDocs/* ${BINTARGETDIR}/doc/apiDocs
+	-${CP} ${XERCESCROOT}/Readme.html ${BINTARGETDIR}
+	-${CP} ${XERCESCROOT}/doc/license.html ${BINTARGETDIR}
 
 	@echo Change the directory permissions
 	-{CHMODE} 644 `find ${BINTARGETDIR} -type f`
diff --git a/src/Makefile.incl b/src/Makefile.incl
index b4463e5..8cb16f4 100644
--- a/src/Makefile.incl
+++ b/src/Makefile.incl
@@ -55,8 +55,21 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:02:55  twl
-# Initial revision
+# Revision 1.6  1999/12/01 17:16:15  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
+# Revision 1.5  1999/11/23 01:59:28  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.4  1999/11/17 22:36:31  rahulj
+# Code works with ICU transcoding service
+#
+# Revision 1.3  1999/11/12 20:38:49  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:02:55  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:44:09  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -69,7 +82,7 @@
 # Before you try to run the Makefile, make sure you have set      #
 # the following environment variables properly.                   #
 #                                                                 #
-# export XML4CROOT=<the directory where you installed XML4C>      #
+# export XERCESCROOT=<the directory where you installed XRECES-C> #
 #                                                                 #
 # In case you intend to use either the ICU transcoder or the      #
 # ICU message loader, you must set ICUROOT correctly.             #
@@ -95,45 +108,44 @@
 
 ALL:    all
 
-ALL_OBJECTS_DIR = ${XML4CROOT}/obj
+ALL_OBJECTS_DIR   = ${XERCESCROOT}/obj
 
 XML_BUILD_OPTIONS = ${CXXFLAGS}
 
+XML_LIB_DIR = $(XERCESCROOT)/lib
+XML_INC_DIR = $(XERCESCROOT)/include
+XML_INCL    = -I$(XML_INC_DIR)
+
 ####################### PLATFORM DEPENDENCIES #####################
 
 #=============== SOLARIS SPECIFIC OPTIONS =========================
 ifeq (${PLATFORM}, SOLARIS)
-  ifeq (${COMPILER}, g++)
-	PLATFORM_CPP_COMPILER = g++
-	PLATFORM_C_COMPILER = gcc
-	PLATFORM_LIBRARIES=-L/usr/lib -L/usr/local/lib -L/usr/ccs/lib
+  ifeq (${CXX}, g++)
 	PLATFORM_COMPILE_OPTIONS = -fPIC -instances=static -D${PLATFORM} -D_REENTRANT
-	MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -shared
-	MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -shared
-	EXTRA_LINK_OPTIONS = -lm -lw -lgen
+	MAKE_SHARED = ${CXX} -D${PLATFORM} -shared
+	MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared
+	ALLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lm -lw -lgen
   else
-	PLATFORM_CPP_COMPILER = CC
-	PLATFORM_C_COMPILER = cc
-	PLATFORM_LIBRARIES=-L/usr/local/SUNWspro/lib -L/usr/ccs/lib
 	PLATFORM_COMPILE_OPTIONS = -KPIC -mt -xs -instances=static -features=rtti -D${PLATFORM} -D_REENTRANT
-	MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -G
-	MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -G
-	EXTRA_LINK_OPTIONS = -lm -lw -lC -lc -lgen
+	MAKE_SHARED = ${CXX} -D${PLATFORM} -G
+	MAKE_SHARED_C = ${CC} -D${PLATFORM} -G
+	EXTRA_LINK_OPTIONS = ${LIBS} -L/usr/local/SUNWspro/lib -L/usr/ccs/lib -lm -lw -lC -lc -lgen
   endif
   SHLIBSUFFIX=.so
 endif
 
 #================= AIX SPECIFIC OPTIONS ===========================
 ifeq (${PLATFORM}, AIX)
-PLATFORM_CPP_COMPILER = xlC_r
-PLATFORM_C_COMPILER = xlc_r
-ifdef ICUROOT
-  PLATFORM_LIBRARIES=-L/usr/lpp/xlC/lib -L${ICUROOT}/lib
-  EXTRA_LINK_OPTIONS = -licu-uc -lbsd
-else
-  PLATFORM_LIBRARIES=-L/usr/lpp/xlC/lib
-  EXTRA_LINK_OPTIONS = -lbsd
-endif
+
+#PLATFORM_CPP_COMPILER = xlC_r
+#PLATFORM_C_COMPILER = xlc_r
+#ifdef ICUROOT
+#  ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -L${ICUROOT}/lib -licu-uc -lbsd
+#else
+#  ALLLIBS = -L/usr/lpp/xlC/lib -lbsd
+#endif
+
+ALLLIBS = ${LIBS} -L/usr/lpp/xlC/lib -lbsd
 PLATFORM_COMPILE_OPTIONS = -qnotempinc -D_THREAD_SAFE
 MAKE_SHARED = makeC++SharedLib_r -p 5000
 MAKE_SHARED_C = makeC++SharedLib_r -p 5000
@@ -142,20 +154,30 @@
 
 #=============== LINUX SPECIFIC OPTIONS =========================
 ifeq (${PLATFORM}, LINUX)
-PLATFORM_CPP_COMPILER = g++
-PLATFORM_C_COMPILER = gcc
-PLATFORM_LIBRARIES=-L/usr/lib -L/usr/local/lib -L/usr/ccs/lib
 PLATFORM_COMPILE_OPTIONS = -fpic -instances=static -D${PLATFORM} -D_REENTRANT
-MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -shared -fpic
-MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -shared -fpic
-EXTRA_LINK_OPTIONS = -lc
+MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fpic
+MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fpic
+ALLLIBS = ${LIBS} -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib -lc
 SHLIBSUFFIX=.so
 endif
 
+#=============== IRIX SPECIFIC OPTIONS ============================
+ifeq (${PLATFORM}, IRIX)
+PLATFORM_COMPILE_OPTIONS = -mips4 -LANG:pch -LANG:std -O2 \
+                           -D${PLATFORM} -D_REENTRANT \
+                           -I/usr/local/include
+OBJ_OUT=${XML4CROOT}/obj/
+MAKE_SHARED = ${CXX} -D${PLATFORM} -shared
+MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared
+ALLLIBS = -L/usr/lib32 -lC
+SHLIBSUFFIX=.so
+endif
+
+
 #=============== OS2 SPECIFIC OPTIONS =========================
 ifeq (${PLATFORM}, OS/2)
-PLATFORM_CPP_COMPILER = icc
-PLATFORM_C_COMPILER = icc
+#PLATFORM_CPP_COMPILER = icc
+#PLATFORM_C_COMPILER = icc
 PLATFORM_LIBRARIES= CPPOM30.LIB os2386.lib mmpm2.lib
 PLATFORM_COMPILE_OPTIONS = /C+ /Gd- /Ge- /Gm+ /Gs- /Re /J+  /Ms /Sm /Sn /Ss+
 MAKE_SHARED = ilink /nofree
@@ -168,40 +190,6 @@
 endif
 
 #================= HP SPECIFIC OPTIONS ===========================
-#ifeq (${PLATFORM}, HPUX)
-#  ifeq (${COMPILER}, aCC)
-#    PLATFORM_CPP_COMPILER = aCC
-#    PLATFORM_C_COMPILER = aCC
-#    PLATFORM_LIBRARIES=-L/opt/aCC/lib -L/usr/ccs/lib
-#    PLATFORM_COMPILE_OPTIONS = $(COMPILESWITCH) -D_HP_UX -DHPaCC -D_PTHREADS_DRAFT4 \
-#        +DAportable -w +z +inst_compiletime
-#    MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -b
-#    MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -b
-#    EXTRA_LINK_OPTIONS = -lcma -lCsup -lstream
-#    SHLIBSUFFIX=.sl
-#  else
-#    ifneq (${DEBUG}, 1)
-#      XML_BUILD_OPTIONS = -w +O1
-#    endif
-#    PLATFORM_CPP_COMPILER = CC
-#    PLATFORM_C_COMPILER = cc
-#    PLATFORM_LIBRARIES= -L${ICUROOT}/lib -L/opt/CC/lib -L/usr/lib
-#    TEMPLATESREPOSITORY = ${ALL_OBJECTS_DIR}/ptrepository
-#    COMMON_COMPILE_OPTIONS = $(COMPILESWITCH) -D_HP_UX -DXML4C_TMPLSINC \
-#        -D_PTHREADS_DRAFT4 +DAportable -w +eh +z -z +a1
-#    ifeq ($(MODULE), dom)
-#      PLATFORM_COMPILE_OPTIONS  = -DDOM_PROJ $(COMMON_COMPILE_OPTIONS)
-#    else
-#      PLATFORM_COMPILE_OPTIONS  = $(COMMON_COMPILE_OPTIONS) -ptr${TEMPLATESREPOSITORY}
-#    endif
-#    ALLINCLUDES= -I$(XML4CROOT)/src -I$(ICUROOT)/include
-#    MAKE_SHARED = $(PLATFORM_CPP_COMPILER) $(PLATFORM_COMPILE_OPTIONS) $(ALLINCLUDES)
-#    MAKE_SHARED_C = $(PLATFORM_C_COMPILER) $(PLATFORM_COMPILE_OPTIONS) $(ALLINCLUDES)
-#    ALLLIBS = -licu-uc -lcma -lm
-#    EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,-a,shared
-#    SHLIBSUFFIX=.sl
-#  endif
-#endif
 
 ifeq (${PLATFORM}, HPUX)
 
@@ -210,41 +198,25 @@
     OSVERDEFINE=HPUX10
   endif
 
-  ifeq (${COMPILER}, aCC)
-    PLATFORM_CPP_COMPILER = aCC
-    PLATFORM_C_COMPILER = aCC
-    PLATFORM_COMPILE_OPTIONS = $(COMPILESWITCH) -D_HP_UX -DHPaCC \
-        -D_PTHREADS_DRAFT4 -D${OSVERDEFINE} +DAportable -w +z \
-        +inst_compiletime
-    MAKE_SHARED = ${PLATFORM_CPP_COMPILER} -D${PLATFORM} -b
-    MAKE_SHARED_C = ${PLATFORM_C_COMPILER} -D${PLATFORM} -b
-    ALLLIBS = -lcma -lCsup -lstream
+  ifeq (${CXX}, aCC)
+    PLATFORM_COMPILE_OPTIONS = -D_HP_UX -DHPaCC \
+        -D${OSVERDEFINE} +DAportable +z +inst_compiletime
+    MAKE_SHARED = ${CXX} -D${PLATFORM} -b
+    MAKE_SHARED_C = ${CC} -D${PLATFORM} -b
+    ALLLIBS = ${LIBS} -lCsup -lstream
     SHLIBSUFFIX=.sl
   else
-    ifneq (${DEBUG}, 1)
-      XML_BUILD_OPTIONS = -w +O1
-    endif
-    PLATFORM_CPP_COMPILER = CC
-    PLATFORM_C_COMPILER = cc
-ifdef ICUROOT
-    PLATFORM_LIBRARIES= -L${ICUROOT}/lib
-endif
     TEMPLATESREPOSITORY = ${ALL_OBJECTS_DIR}/ptrepository
-    COMMON_COMPILE_OPTIONS = $(COMPILESWITCH) -D_HP_UX -DXML4C2_TMPLSINC \
-        -D_PTHREADS_DRAFT4 -D${OSVERDEFINE} +DAportable -w +eh +z -z +a1
+    COMMON_COMPILE_OPTIONS = -D_HP_UX -DXML4C_TMPLSINC \
+        -D${OSVERDEFINE} +DAportable +eh +z -z +a1
     ifeq ($(MODULE), dom)
       PLATFORM_COMPILE_OPTIONS  = -DDOM_PROJ $(COMMON_COMPILE_OPTIONS)
     else
       PLATFORM_COMPILE_OPTIONS  = $(COMMON_COMPILE_OPTIONS) -ptr${TEMPLATESREPOSITORY}
     endif
-ifdef ICUROOT
-    ALLINCLUDES=-I$(XML4CROOT)/src/com/ibm/xml -I$(XML4CROOT)/src -I$(ICUROOT)/include
-else
-    ALLINCLUDES=-I$(XML4CROOT)/src/com/ibm/xml -I$(XML4CROOT)/src
-endif
-    MAKE_SHARED = $(PLATFORM_CPP_COMPILER) $(PLATFORM_COMPILE_OPTIONS) $(ALLINCLUDES)
-    MAKE_SHARED_C = $(PLATFORM_C_COMPILER) $(PLATFORM_COMPILE_OPTIONS) $(ALLINCLUDES)
-    ALLLIBS = -licu-uc -lcma -lm
+    MAKE_SHARED = $(CXX) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL)
+    MAKE_SHARED_C = $(CC) $(PLATFORM_COMPILE_OPTIONS) $(XML_INCL)
+    ALLLIBS = ${LIBS}
     EXTRA_LINK_OPTIONS = -b -Wl,+s -Wl,-a,shared
     SHLIBSUFFIX=.sl
   endif
@@ -286,32 +258,12 @@
 CAT = cat
 AR = ar -cqv
 CD = cd
-CC1 = ${PLATFORM_CPP_COMPILER} ${PLATFORM_COMPILE_OPTIONS}
-JUST_CC = ${PLATFORM_C_COMPILER} -D${PLATFORM}
+CC1     = ${CXX} ${PLATFORM_COMPILE_OPTIONS}
+JUST_CC = ${CC} -D${PLATFORM}
 ECHO = echo
 CREATE_DEPENDS_FILE = echo "" > depends
 MAKE_DEPEND = ${CC1} -E -xM
 
-########################## DIRECTORIES ############################
-XML_LIB_DIR = $(XML4CROOT)/lib
-XML_INC_DIR = $(XML4CROOT)/include
-ifeq (${MESSAGELOADER}, ICU)
-    INTL_INC_DIR1 = $(ICUROOT)/include
-endif
-ifeq (${TRANSCODER}, ICU)
-    INTL_INC_DIR1 = $(ICUROOT)/include
-endif
-
-#################### COMPILE/LINK FLAGS ###########################
-ifeq (${MESSAGELOADER}, ICU)
-    XML_INCL = -I. -I$(XML_INC_DIR) -I$(INTL_INC_DIR1)
-else
-    ifeq (${TRANSCODER}, ICU)
-        XML_INCL = -I. -I$(XML_INC_DIR) -I$(INTL_INC_DIR1)
-    else
-        XML_INCL = -I. -I$(XML_INC_DIR)
-    endif
-endif
 
 ##################### HELPER MACROS ###############################
 DEPFILE = depends
@@ -323,6 +275,9 @@
 
 .cpp.o:
 	$(CC1) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(@) $(<)
+ifeq (${PLATFORM}, IRIX)
+	$(CC1) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(OBJ_OUT)$(@) $(<)
+endif
 
 .c.o:
 	$(JUST_CC) -c $(XML_BUILD_OPTIONS) $(XML_DEF) $(XML_INCL) $(EXTRA_COMPILE_OPTIONS) -o $(@) $(<)
diff --git a/src/configure b/src/configure
index 1c0b40b..a72877a 100755
--- a/src/configure
+++ b/src/configure
@@ -1049,105 +1049,9 @@
 fi
 
 
-echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:1054: checking for pthread_create in -lpthread" >&5
-ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lpthread  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1062 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_create();
-
-int main() {
-pthread_create()
-; return 0; }
-EOF
-if { (eval echo configure:1073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
-  LIBS="-lpthread $LIBS"
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test $ac_cv_lib_pthread_pthread_create = no; then
-echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
-echo "configure:1102: checking for pthread_create in -lpthreads" >&5
-ac_lib_var=`echo pthreads'_'pthread_create | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lpthreads  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1110 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pthread_create();
-
-int main() {
-pthread_create()
-; return 0; }
-EOF
-if { (eval echo configure:1121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo pthreads | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
-  LIBS="-lpthreads $LIBS"
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1151: checking how to run the C preprocessor" >&5
+echo "configure:1055: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1162,13 +1066,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1166 "configure"
+#line 1070 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1076: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1179,13 +1083,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1183 "configure"
+#line 1087 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1196,13 +1100,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1200 "configure"
+#line 1104 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1226,60 +1130,13 @@
 fi
 echo "$ac_t""$CPP" 1>&6
 
-for ac_hdr in inttypes.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1234: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1239 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-if test $ac_cv_header_inttypes_h = no; then
-HAVE_INTTYPES_H=0
-else
-HAVE_INTTYPES_H=1
-fi
-
-
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1278: checking for ANSI C header files" >&5
+echo "configure:1135: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1283 "configure"
+#line 1140 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1287,7 +1144,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1148: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1304,7 +1161,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1308 "configure"
+#line 1165 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1322,7 +1179,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1326 "configure"
+#line 1183 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1343,7 +1200,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1347 "configure"
+#line 1204 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1354,7 +1211,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:1358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1378,12 +1235,12 @@
 fi
 
 echo $ac_n "checking for XMLByte""... $ac_c" 1>&6
-echo "configure:1382: checking for XMLByte" >&5
+echo "configure:1239: checking for XMLByte" >&5
 if eval "test \"`echo '$''{'ac_cv_type_XMLByte'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1387 "configure"
+#line 1244 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1418,7 +1275,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1422: checking host system type" >&5
+echo "configure:1279: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -1442,17 +1299,50 @@
 case "${host}" in
         *-*-solaris*)   platform=SOLARIS ;;
         *-*-linux*)     platform=LINUX ;;
+        *-*-irix*)      platform=IRIX ;;
         *-*-aix*)       platform=AIX ;;
-        *-*-hp*)        platform=HPUX ;;
+        *-*-hp*)        platform=HPUX ;
+                        case "${host}" in
+                            *-*-hpux11*)  osver=HPUX11;;
+                            *-*-hpux10*)  osver=HPUX10;;
+                            *)            osver=HPUX11;;
+                        esac;;
         *-*-mvs*)       platform=OS390 ;;
         *)              platform=UNKNOWN ;;
 esac
 
 
-compiler=${CXX}
+cxx=${CXX}
 
 
-prefix=${prefix}
+cc=${CC}
+
+
+
+
+
+cxxflags=${CXXFLAGS}
+
+
+cppflags=${CPPFLAGS}
+
+
+cflags=${CFLAGS}
+
+
+ldflags=${LDCFLAGS}
+
+
+libs=${LIBS}
+
+
+uselibwww=${USELIBWWW}
+
+
+messageloader=${MESSAGELOADER}
+
+
+transcoder=${TRANSCODER}
 
 
 trap '' 1 2 15
@@ -1622,14 +1512,23 @@
 s%@INSTALL_DATA@%$INSTALL_DATA%g
 s%@AUTOCONF@%$AUTOCONF%g
 s%@CPP@%$CPP%g
-s%@HAVE_INTTYPES_H@%$HAVE_INTTYPES_H%g
 s%@host@%$host%g
 s%@host_alias@%$host_alias%g
 s%@host_cpu@%$host_cpu%g
 s%@host_vendor@%$host_vendor%g
 s%@host_os@%$host_os%g
 s%@platform@%$platform%g
-s%@compiler@%$compiler%g
+s%@cxx@%$cxx%g
+s%@cc@%$cc%g
+s%@osver@%$osver%g
+s%@cxxflags@%$cxxflags%g
+s%@cppflags@%$cppflags%g
+s%@cflags@%$cflags%g
+s%@ldflags@%$ldflags%g
+s%@libs@%$libs%g
+s%@uselibwww@%$uselibwww%g
+s%@messageloader@%$messageloader%g
+s%@transcoder@%$transcoder%g
 
 CEOF
 EOF
diff --git a/src/configure.in b/src/configure.in
index 7fbc01d..5891b44 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -11,20 +11,15 @@
 dnl Checks for libraries
 AC_CHECK_LIB(m, floor)
 
+dnl
+dnl Do not know how to use this macro, so comment it out.
+dnl
 dnl special pthread handling (AIX uses pthreads instead of pthread)
-AC_CHECK_LIB(pthread, pthread_create)
-if test $ac_cv_lib_pthread_pthread_create = no; then
-AC_CHECK_LIB(pthreads, pthread_create)
-fi
-
-dnl Checks for header files
-AC_CHECK_HEADERS(inttypes.h)
-if test $ac_cv_header_inttypes_h = no; then
-HAVE_INTTYPES_H=0
-else
-HAVE_INTTYPES_H=1
-fi
-AC_SUBST(HAVE_INTTYPES_H)
+dnl AC_CHECK_LIB(pthread, pthread_create)
+dnl if test $ac_cv_lib_pthread_pthread_create = no; then
+dnl AC_CHECK_LIB(pthreads, pthread_create)
+dnl fi
+dnl
 
 dnl Checks for typedefs
 AC_CHECK_TYPE(XMLByte,unsigned char)
@@ -36,6 +31,7 @@
 case "${host}" in
         *-*-solaris*)   platform=SOLARIS ;;
         *-*-linux*)     platform=LINUX ;;
+        *-*-irix*)      platform=IRIX ;;
         *-*-aix*)       platform=AIX ;;
         *-*-hp*)        platform=HPUX ;
                         case "${host}" in
@@ -48,12 +44,13 @@
 esac
 AC_SUBST(platform)
 
-compiler=${CXX}
-AC_SUBST(compiler)
+cxx=${CXX}
+AC_SUBST(cxx)
 
-# prefix=${prefix}
+cc=${CC}
+AC_SUBST(cc)
+
 AC_SUBST(prefix)
-
 AC_SUBST(osver)
 
 cxxflags=${CXXFLAGS}
diff --git a/src/dom/AttrImpl.cpp b/src/dom/AttrImpl.cpp
index 8c65573..c05a6ac 100644
--- a/src/dom/AttrImpl.cpp
+++ b/src/dom/AttrImpl.cpp
@@ -57,8 +57,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:39  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:24  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:39  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:10  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -171,8 +176,12 @@
 void AttrImpl::setValue(const DOMString &val)
 {
     if (readOnly)
-        throw new DOM_DOMException(
-        DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    {
+        throw DOM_DOMException
+        (
+            DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null
+        );
+    }
     
     NodeImpl *kid;
     while ((kid = getFirstChild()) != null)         // Remove existing kids
diff --git a/src/dom/CharacterDataImpl.cpp b/src/dom/CharacterDataImpl.cpp
index fd309ee..0abeef2 100644
--- a/src/dom/CharacterDataImpl.cpp
+++ b/src/dom/CharacterDataImpl.cpp
@@ -56,8 +56,20 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:41  twl
- * Initial revision
+ * Revision 1.3  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.2  1999/11/30 21:16:24  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:41  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:11  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -88,7 +100,7 @@
 void CharacterDataImpl::appendData(const DOMString &data)
 {
     if(readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     value.appendData(data);
@@ -104,10 +116,10 @@
 void CharacterDataImpl::deleteData(int offset, int count)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     if (count < 0)
-        throw new DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
     
     
     //int tailLength = Math.max(value.length() - count - offset, 0);
@@ -117,21 +129,20 @@
     //}
     //catch (StringIndexOutOfBoundsException e)
     //{
-    //      throw new DOM_DOMException(DOMException.INDEX_SIZE_ERR, null);
+    //      throw DOM_DOMException(DOMException.INDEX_SIZE_ERR, null);
     
     int len = value.length();
     if (offset < 0 || offset >= len)
-        throw new DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
     
     value.deleteData(offset, count);
 };
 
 
 
-DOMString CharacterDataImpl::getData()
+DOMString &CharacterDataImpl::getData()
 {
-    return value.clone();        // clone here so that subsequent changes to
-    //  our value will not change the returned string.
+    return value; 
 };
 
 
@@ -156,11 +167,11 @@
 {
     
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     if (offset<0 || offset>value.length())
-        throw new DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
     
     value.insertData(offset, data);
 }
@@ -170,7 +181,7 @@
 void CharacterDataImpl::replaceData(int offset, int count, const DOMString &data)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     deleteData(offset, count);
     insertData(offset, data);
@@ -182,7 +193,7 @@
 void CharacterDataImpl::setData(const DOMString &arg)
 {
     if (readOnly)
-        throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     value = arg.clone();
 };
 
@@ -194,7 +205,7 @@
 {
     
     if(count < 0 || offset < 0 || offset > value.length()-1)
-        throw new DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR,null);
     
     return value.substringData(offset, count);
 };
diff --git a/src/dom/CharacterDataImpl.hpp b/src/dom/CharacterDataImpl.hpp
index 39dbd90..81a9e6c 100644
--- a/src/dom/CharacterDataImpl.hpp
+++ b/src/dom/CharacterDataImpl.hpp
@@ -59,8 +59,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:41  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:41  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:11  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -91,7 +98,7 @@
     virtual void appendData(const DOMString &data);
     virtual NodeImpl *cloneNode(bool deep);
     virtual void deleteData(int offset, int count);
-    virtual DOMString getData();
+    virtual DOMString &getData();
     virtual int getCharDataLength();
     virtual void insertData(int offset, const DOMString &data);
     virtual void replaceData(int offset, int count, const DOMString &data);
diff --git a/src/dom/DOMString.cpp b/src/dom/DOMString.cpp
index 7325436..7eeb490 100644
--- a/src/dom/DOMString.cpp
+++ b/src/dom/DOMString.cpp
@@ -56,8 +56,20 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:47  twl
- * Initial revision
+ * Revision 1.3  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:47  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:12  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -797,13 +809,75 @@
     if (fHandle)
     {
         retP = fHandle->fDSData->fData;
-        retP[fHandle->fLength] = 0;
     }
     return retP;
 };
 
 
-int DOMString::strcmp(const DOMString &other) const
+char *DOMString::transcode() const
+{
+    if (!fHandle || fHandle->fLength == 0)
+    {
+        char* retP = new char[1];
+        *retP = 0;
+        return retP;
+    }
+
+    // We've got some data
+    // DOMStrings are not always null terminated, so we may need to
+    // copy to another buffer first in order to null terminate it for
+    // use as input to the transcoding routines..
+    //
+    XMLCh* DOMStrData = fHandle->fDSData->fData;
+
+    const int localBufLen = 1000;
+    XMLCh localBuf[localBufLen];
+    XMLCh *allocatedBuf = 0;
+    XMLCh *srcP;
+
+    if (DOMStrData[fHandle->fLength] == 0)
+    {
+        // The data in the DOMString itself happens to be null terminated.
+        //  Just use it in place.
+        srcP = DOMStrData;
+    } 
+    else if (fHandle->fLength < localBufLen-1)
+    {
+        // The data is not null terminated, but does fit in the
+        //  local buffer (fast allocation).  Copy it over, and add 
+        //  the null termination,
+        memcpy(localBuf, DOMStrData, fHandle->fLength * sizeof(XMLCh));
+        srcP = localBuf;
+        srcP[fHandle->fLength] = 0;
+    }
+    else
+    {
+        // The data is too big for the local buffer.  Heap allocate one.
+        allocatedBuf = srcP = new XMLCh[fHandle->fLength + 1];
+        memcpy(allocatedBuf, DOMStrData, fHandle->fLength * sizeof(XMLCh));
+        srcP[fHandle->fLength] = 0;
+    }
+
+    //
+    //  Find out how many output chars we need and allocate a buffer big enough
+    //  for that plus a null.
+    //
+    const unsigned int charsNeeded = getDomConverter()->calcRequiredSize(srcP);
+    char* retP = new char[charsNeeded + 1];
+
+    if (!getDomConverter()->transcode(srcP, retP, charsNeeded))
+    {
+        // <TBD> We should throw something here?
+    }
+    delete [] allocatedBuf;   // which will be null if we didn't allocate one.
+
+    // Cap it off and return it
+    retP[charsNeeded] = 0;
+    return retP;
+}
+
+
+int DOMString::compareString(const DOMString &other) const
 {
     // Note: this strcmp does not match the semantics
     //       of the standard C strcmp.  All it needs to do is
diff --git a/src/dom/DOMString.hpp b/src/dom/DOMString.hpp
index 5c46413..6f56cd4 100644
--- a/src/dom/DOMString.hpp
+++ b/src/dom/DOMString.hpp
@@ -56,8 +56,20 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:48  twl
- * Initial revision
+ * Revision 1.3  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:48  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:12  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -260,10 +272,22 @@
       * Returns a handle to the raw buffer in the <code>DOMString</code>.
       *
       * @return The pointer inside the <code>DOMString</code> containg the string data.
+      *         Note: the data is not always null terminated.  Do not rely on
+      *         a null being there, and do not add one, as several DOMStrings
+      *         with different lengths may share the same raw buffer.
       */
     XMLCh       *rawBuffer() const;
 
     /**
+      * Returns a copy of the string, transcoded to the local code page. The
+      * caller is responsible for cleaning up this buffer.
+      *
+      * @return A pointer to a newly allocated buffer of char elements, which
+      *         represents the original string, but in the local encoding.
+      */
+    char        *transcode() const;
+
+    /**
       * Returns a sub-string of the <code>DOMString</code> starting at a specified position.
       *
       * @param offset The offset from the beginning from which the sub-string is being requested.
@@ -313,7 +337,7 @@
     /**
       * Compares a DOMString with another.
       *
-      * This strcmp does not match the semantics of the standard C strcmp.  
+      * This compareString does not match the semantics of the standard C strcmp.  
       * All it needs to do is define some less than - equals - greater than 
       * ordering of strings.  How doesn't matter.
       *
@@ -321,7 +345,7 @@
       * @param other The object to be compared with
       * @return Either -1, 0, or 1 based on the comparison. 
       */
-    int         strcmp(const DOMString &other) const;
+    int         compareString(const DOMString &other) const;
 
     /**
       * Tells if a <code>DOMString</code> contains the same character data
diff --git a/src/dom/DOM_Attr.cpp b/src/dom/DOM_Attr.cpp
index 66551dc..ea3c4d7 100644
--- a/src/dom/DOM_Attr.cpp
+++ b/src/dom/DOM_Attr.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:48  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:48  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:12  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -106,30 +113,34 @@
 
 DOMString       DOM_Attr::getName() const
 {
-        return ((AttrImpl *)fImpl)->getName();
+    return ((AttrImpl *)fImpl)->getName().clone();
 };
 
 
-bool            DOM_Attr::getSpecified() const
+bool       DOM_Attr::getSpecified() const
 {
-        return ((AttrImpl *)fImpl)->getSpecified();
+    return ((AttrImpl *)fImpl)->getSpecified();
 };
 
 
-DOMString       DOM_Attr::getValue() const
+DOMString   DOM_Attr::getValue() const
 {
-        return ((AttrImpl *)fImpl)->getValue();
+    // The value of an attribute does not need to be cloned before
+    //  returning, because it is computed dynamically from the
+    //  children of the attribute.
+    //
+    return ((AttrImpl *)fImpl)->getValue();
 };
 
 
-void                    DOM_Attr::setSpecified(bool specified)
+void      DOM_Attr::setSpecified(bool specified)
 {
-        ((AttrImpl *)fImpl)->setSpecified(specified);
+    ((AttrImpl *)fImpl)->setSpecified(specified);
 };
 
 
-void            DOM_Attr::setValue(const DOMString &value) {
-        ((AttrImpl *)fImpl)->setValue(value);
+void     DOM_Attr::setValue(const DOMString &value) {
+    ((AttrImpl *)fImpl)->setValue(value);
 };
 
 
@@ -137,5 +148,5 @@
 
 DOM_Element     DOM_Attr::getOwnerElement() const
 {
-        return DOM_Element(((AttrImpl *)fImpl)->getOwnerElement());
+    return DOM_Element(((AttrImpl *)fImpl)->getOwnerElement());
 }
diff --git a/src/dom/DOM_CharacterData.cpp b/src/dom/DOM_CharacterData.cpp
index 6f3e8a2..31807b3 100644
--- a/src/dom/DOM_CharacterData.cpp
+++ b/src/dom/DOM_CharacterData.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:49  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:22  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:49  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:13  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -101,7 +108,7 @@
 
 DOMString DOM_CharacterData::getData() const
 {
-    return ((CharacterDataImpl *)fImpl)->getData();
+    return ((CharacterDataImpl *)fImpl)->getData().clone();
 };
 
 
diff --git a/src/dom/DOM_DOMImplementation.cpp b/src/dom/DOM_DOMImplementation.cpp
index e3a3988..d295de4 100644
--- a/src/dom/DOM_DOMImplementation.cpp
+++ b/src/dom/DOM_DOMImplementation.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:56  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:56  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:15  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -155,7 +160,7 @@
 	const DOMString &internalSubset)
 {
     if (!DocumentImpl::isXMLName(qualifiedName))
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::INVALID_CHARACTER_ERR, null);
     
     return DOM_DocumentType(new DocumentTypeImpl(qualifiedName, publicID, systemID, internalSubset));
diff --git a/src/dom/DOM_Document.cpp b/src/dom/DOM_Document.cpp
index 03707e2..fc00f51 100644
--- a/src/dom/DOM_Document.cpp
+++ b/src/dom/DOM_Document.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:50  twl
- * Initial revision
+ * Revision 1.2  1999/11/23 01:48:14  rahulj
+ * Changed 0L to 0. CC under HPUX is happy now.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:50  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:44:15  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -203,32 +206,32 @@
 };
 
 
-DOM_TreeWalker         DOM_Document::createTreeWalker(DOM_Node root, short whatToShow, DOM_NodeFilter filter) {
-        return DOM_TreeWalker(DocumentImpl::createTreeWalker(root, whatToShow, filter, 0L));
+DOM_TreeWalker DOM_Document::createTreeWalker(DOM_Node root, short whatToShow, DOM_NodeFilter filter) {
+	return DOM_TreeWalker(DocumentImpl::createTreeWalker(root, whatToShow, filter, 0L));
 };
 
 
-DOM_NodeIterator       DOM_Document::createNodeIterator(DOM_Node root, short whatToShow, NodeFilterImpl* filterThatWillBeAdopted) {
-        return DOM_NodeIterator(DocumentImpl::createNodeIterator(root, whatToShow, 0L, filterThatWillBeAdopted));
+DOM_NodeIterator DOM_Document::createNodeIterator(DOM_Node root, short whatToShow, NodeFilterImpl* filterThatWillBeAdopted) {
+	return DOM_NodeIterator(DocumentImpl::createNodeIterator(root, whatToShow, 0, filterThatWillBeAdopted));
 };
 
 
-DOM_TreeWalker         DOM_Document::createTreeWalker(DOM_Node root, short whatToShow, NodeFilterImpl* filterThatWillBeAdopted) {
-        return DOM_TreeWalker(DocumentImpl::createTreeWalker(root, whatToShow, 0L, filterThatWillBeAdopted));
+DOM_TreeWalker DOM_Document::createTreeWalker(DOM_Node root, short whatToShow, NodeFilterImpl* filterThatWillBeAdopted) {
+	return DOM_TreeWalker(DocumentImpl::createTreeWalker(root, whatToShow, 0, filterThatWillBeAdopted));
 };
 
 
 
-DOM_NodeList           DOM_Document::getElementsByTagName(const DOMString &tagname) const  {
-        return DOM_NodeList(((DocumentImpl *)fImpl)->getElementsByTagName(tagname));
+DOM_NodeList DOM_Document::getElementsByTagName(const DOMString &tagname) const  {
+	return DOM_NodeList(((DocumentImpl *)fImpl)->getElementsByTagName(tagname));
 };
 
 
 //Introduced in DOM Level 2
 
-DOM_Node               DOM_Document::importNode(const DOM_Node &source, bool deep)
+DOM_Node DOM_Document::importNode(const DOM_Node &source, bool deep)
 {
-        return DOM_Node(((DocumentImpl *)fImpl)->importNode(source.fImpl, deep));
+	return DOM_Node(((DocumentImpl *)fImpl)->importNode(source.fImpl, deep));
 };
 
 
diff --git a/src/dom/DOM_DocumentType.cpp b/src/dom/DOM_DocumentType.cpp
index 63e4868..da15a97 100644
--- a/src/dom/DOM_DocumentType.cpp
+++ b/src/dom/DOM_DocumentType.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:52  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:23  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:52  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:16  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -107,7 +114,7 @@
 
 DOMString       DOM_DocumentType::getName() const
 {
-        return ((DocumentTypeImpl *)fImpl)->getName();
+        return ((DocumentTypeImpl *)fImpl)->getName().clone();
 };
 
 
@@ -129,17 +136,17 @@
 
 DOMString     DOM_DocumentType::getPublicID() const
 {
-        return ((DocumentTypeImpl *)fImpl)->getPublicID();
+        return ((DocumentTypeImpl *)fImpl)->getPublicID().clone();
 }
 
 
 DOMString     DOM_DocumentType::getSystemID() const
 {
-        return ((DocumentTypeImpl *)fImpl)->getSystemID();
+        return ((DocumentTypeImpl *)fImpl)->getSystemID().clone();
 }
 
 
 DOMString     DOM_DocumentType::getInternalSubset() const
 {
-        return ((DocumentTypeImpl *)fImpl)->getInternalSubset();
+        return ((DocumentTypeImpl *)fImpl)->getInternalSubset().clone();
 }
diff --git a/src/dom/DOM_Element.cpp b/src/dom/DOM_Element.cpp
index 9b952f7..78fe64d 100644
--- a/src/dom/DOM_Element.cpp
+++ b/src/dom/DOM_Element.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:57  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:23  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:57  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:17  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -108,13 +115,13 @@
 
 DOMString DOM_Element::getTagName() const
 {
-        return ((ElementImpl *)fImpl)->getTagName();
+        return ((ElementImpl *)fImpl)->getTagName().clone();
 };
 
 
 DOMString DOM_Element::getAttribute(const DOMString &name) const
 {
-        return ((ElementImpl *)fImpl)->getAttribute(name);
+        return ((ElementImpl *)fImpl)->getAttribute(name).clone();
 };
 
 
@@ -170,7 +177,7 @@
 DOMString DOM_Element::getAttributeNS(const DOMString &namespaceURI,
 	const DOMString &localName) const
 {
-    return ((ElementImpl *)fImpl)->getAttributeNS(namespaceURI, localName);
+    return ((ElementImpl *)fImpl)->getAttributeNS(namespaceURI, localName).clone();
 }
 
 void DOM_Element::setAttributeNS(const DOMString &namespaceURI,
diff --git a/src/dom/DOM_Entity.cpp b/src/dom/DOM_Entity.cpp
index 40721b6..3b0d699 100644
--- a/src/dom/DOM_Entity.cpp
+++ b/src/dom/DOM_Entity.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:57  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:23  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:57  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:17  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -107,18 +114,18 @@
 
 DOMString  DOM_Entity::getPublicId() const
 {
-        return ((EntityImpl *)fImpl)->getPublicId();
+        return ((EntityImpl *)fImpl)->getPublicId().clone();
 };
 
 DOMString  DOM_Entity::getSystemId() const
 {
-        return ((EntityImpl *)fImpl)->getSystemId();
+        return ((EntityImpl *)fImpl)->getSystemId().clone();
 };
 
 
 DOMString  DOM_Entity::getNotationName() const
 {
-        return ((EntityImpl *)fImpl)->getNotationName();
+        return ((EntityImpl *)fImpl)->getNotationName().clone();
 };
 
 
diff --git a/src/dom/DOM_Node.cpp b/src/dom/DOM_Node.cpp
index a52de27..7a92905 100644
--- a/src/dom/DOM_Node.cpp
+++ b/src/dom/DOM_Node.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:59  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:23  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:59  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:19  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -162,13 +169,13 @@
 
 DOMString  DOM_Node::getNodeName()  const 
 {
-    return fImpl->getNodeName();
+    return fImpl->getNodeName().clone();
 };
 
   
 DOMString  DOM_Node::getNodeValue() const
 {
-    return fImpl->getNodeValue();
+    return fImpl->getNodeValue().clone();
 };
 
   
@@ -280,17 +287,17 @@
 
 DOMString         DOM_Node::getNamespaceURI() const
 {
-    return fImpl->getNamespaceURI();
+    return fImpl->getNamespaceURI().clone();
 }
 
 DOMString         DOM_Node::getPrefix() const
 {
-    return fImpl->getPrefix();
+    return fImpl->getPrefix().clone();
 }
 
 DOMString         DOM_Node::getLocalName() const
 {
-    return fImpl->getLocalName();
+    return fImpl->getLocalName().clone();
 }
 
 void              DOM_Node::setPrefix(const DOMString &prefix)
diff --git a/src/dom/DOM_ProcessingInstruction.cpp b/src/dom/DOM_ProcessingInstruction.cpp
index 945c0fc..981c360 100644
--- a/src/dom/DOM_ProcessingInstruction.cpp
+++ b/src/dom/DOM_ProcessingInstruction.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:03  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:11:23  andyh
+ * Added DOMString.clone() to node parameters in and out of the DOM,
+ * where they had been missed.
+ *
+ * DOMString::rawBuffer, removed incorrect assumptions about it
+ * being null terminated.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:03  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:21  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -111,19 +118,19 @@
 
 DOMString DOM_ProcessingInstruction::getTarget() const
 {
-    return ((ProcessingInstructionImpl *)fImpl)->getTarget();
+    return ((ProcessingInstructionImpl *)fImpl)->getTarget().clone();
 };
 
 
 DOMString DOM_ProcessingInstruction::getData() const
 {
-    return ((ProcessingInstructionImpl *)fImpl)->getData();
+    return ((ProcessingInstructionImpl *)fImpl)->getData().clone();
 };
 
 
 void      DOM_ProcessingInstruction::setData(const DOMString &data)
 {
-    ((ProcessingInstructionImpl *)fImpl)->setData(data);
+    ((ProcessingInstructionImpl *)fImpl)->setData(data.clone());
 };
 
 
diff --git a/src/dom/DocumentFragmentImpl.cpp b/src/dom/DocumentFragmentImpl.cpp
index 1fb16b2..1b0d1a4 100644
--- a/src/dom/DocumentFragmentImpl.cpp
+++ b/src/dom/DocumentFragmentImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:43  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:43  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:23  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -107,5 +112,5 @@
 
 void DocumentFragmentImpl::setNodeValue(const DOMString &x)
 {
-        throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
diff --git a/src/dom/DocumentImpl.cpp b/src/dom/DocumentImpl.cpp
index 162a54b..fb36824 100644
--- a/src/dom/DocumentImpl.cpp
+++ b/src/dom/DocumentImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:43  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:43  twl
+ * Initial checkin
  *
  * Revision 1.5  1999/11/08 20:44:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -114,7 +119,7 @@
 : NodeImpl(null, namespaceURI, qualifiedName, DOM_Node::DOCUMENT_NODE, false, null)
 {
     if (doctype != null && doctype->getOwnerDocument() != null)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
 	    DOM_DOMException::WRONG_DOCUMENT_ERR, null);
     docType=doctype;
     if (doctype != null)
@@ -159,7 +164,7 @@
 AttrImpl *DocumentImpl::createAttribute(const DOMString &nam)
 {
     if(!isXMLName(nam))
-        throw new DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
     return new AttrImpl(this,nam);
 };
 
@@ -188,7 +193,7 @@
 DocumentTypeImpl *DocumentImpl::createDocumentType(const DOMString &nam)
 {
     if (!isXMLName(nam))
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::INVALID_CHARACTER_ERR, null);
 
     return new DocumentTypeImpl(this, nam);
@@ -199,7 +204,7 @@
 ElementImpl *DocumentImpl::createElement(const DOMString &tagName)
 {
     if(!isXMLName(tagName))
-        throw new DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
     DOMString pooledTagName = this->namePool->getPooledString(tagName);
     return new ElementImpl(this,pooledTagName);
 };
@@ -217,7 +222,7 @@
 EntityImpl *DocumentImpl::createEntity(const DOMString &nam)
 {
     if (!isXMLName(nam))
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::INVALID_CHARACTER_ERR, null);
 
     return new EntityImpl(this, nam);
@@ -228,7 +233,7 @@
 EntityReferenceImpl *DocumentImpl::createEntityReference(const DOMString &nam)
 {
     if (!isXMLName(nam))
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::INVALID_CHARACTER_ERR, null);
 
     return new EntityReferenceImpl(this, nam);
@@ -239,7 +244,7 @@
 NotationImpl *DocumentImpl::createNotation(const DOMString &nam)
 {
     if (!isXMLName(nam))
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::INVALID_CHARACTER_ERR, null);
 
     return new NotationImpl(this, nam);
@@ -251,7 +256,7 @@
                                           const DOMString &target, const DOMString &data)
 {
     if(!isXMLName(target))
-        throw new DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
     return new ProcessingInstructionImpl(this,target,data);
 };
 
@@ -429,7 +434,7 @@
 
     case DOM_Node::DOCUMENT_NODE : // Document can't be child of Document
     default:                                                // Unknown node type
-        throw new DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
     }
 
     // If deep, replicate and attach the kids.
@@ -452,7 +457,7 @@
         ||
         (newChild->isDocumentTypeImpl() && docType!=null)
         )
-        throw new DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
 
     NodeImpl::insertBefore(newChild,refChild);
 
@@ -518,7 +523,7 @@
 
 void DocumentImpl::setNodeValue(const DOMString &x)
 {
-    throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
 
 
@@ -547,7 +552,7 @@
     if (namespaceURI == null || namespaceURI.length() == 0)
 	return createElement(qualifiedName);
     if(!isXMLName(qualifiedName))
-        throw new DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
     //DOMString pooledTagName = this->namePool->getPooledString(qualifiedName);
     return new ElementImpl(this, namespaceURI, qualifiedName);
 }
@@ -559,7 +564,7 @@
     if (namespaceURI == null || namespaceURI.length() == 0)
 	return createAttribute(qualifiedName);
     if(!isXMLName(qualifiedName))
-        throw new DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INVALID_CHARACTER_ERR,null);
     return new AttrImpl(this, namespaceURI, qualifiedName); 
 }
 
diff --git a/src/dom/DocumentTypeImpl.cpp b/src/dom/DocumentTypeImpl.cpp
index 5c47620..611a296 100644
--- a/src/dom/DocumentTypeImpl.cpp
+++ b/src/dom/DocumentTypeImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:44  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:44  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -178,7 +183,7 @@
 
 void DocumentTypeImpl::setNodeValue(const DOMString &val)
 {
-    throw new DOM_DOMException(
+    throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
 
diff --git a/src/dom/ElementImpl.cpp b/src/dom/ElementImpl.cpp
index ea62c17..c913696 100644
--- a/src/dom/ElementImpl.cpp
+++ b/src/dom/ElementImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:08  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:08  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:26  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -212,7 +217,7 @@
 void ElementImpl::removeAttribute(const DOMString &nam)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     AttrImpl *att = (AttrImpl *) attributes->getNamedItem(nam);
@@ -231,7 +236,7 @@
 AttrImpl *ElementImpl::removeAttributeNode(AttrImpl *oldAttr)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     AttrImpl *found = (AttrImpl *) attributes->getNamedItem(oldAttr->getName());
@@ -246,7 +251,7 @@
         return found;
     }
     else
-        throw new DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
 	return null;	// just to keep the compiler happy
 };
 
@@ -255,7 +260,7 @@
 void ElementImpl::setAttribute(const DOMString &nam, const DOMString &val)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     AttrImpl *newAttr = (AttrImpl *) ownerDocument->createAttribute(nam);
@@ -275,11 +280,11 @@
 AttrImpl * ElementImpl::setAttributeNode(AttrImpl *newAttr)
 {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     if (!(newAttr->isAttrImpl()))
-        throw new DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
     AttrImpl *oldAttr = (AttrImpl *) attributes->getNamedItem(newAttr->getName());
     if (oldAttr)
 	oldAttr->setOwnerElement(null);	    //DOM Level 2
@@ -302,7 +307,7 @@
 
 void ElementImpl::setNodeValue(const DOMString &x)
 {
-    throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
 
 
@@ -334,7 +339,7 @@
 	return;
     }
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
 	    DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     AttrImpl *newAttr = (AttrImpl *) ownerDocument->createAttributeNS(namespaceURI, qualifiedName);
@@ -358,7 +363,7 @@
 	return;
     }
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
 	    DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     AttrImpl *att = (AttrImpl *) attributes->getNamedItemNS(namespaceURI, localName);
@@ -386,11 +391,11 @@
     if (newAttr && newAttr ->getNamespaceURI() == null)
 	return setAttributeNode(newAttr);
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
 	    DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     if (newAttr -> getOwnerDocument() != this -> getOwnerDocument())
-        throw new DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
     AttrImpl *oldAttr = (AttrImpl *) attributes->getNamedItemNS(
 	newAttr->getNamespaceURI(), newAttr->getLocalName());
     if (oldAttr)
diff --git a/src/dom/EntityImpl.cpp b/src/dom/EntityImpl.cpp
index 4ab0548..cf51a1c 100644
--- a/src/dom/EntityImpl.cpp
+++ b/src/dom/EntityImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:08  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:08  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:26  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -114,7 +119,7 @@
 
 void EntityImpl::setNodeValue(const DOMString &arg)
 {
-    throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
 
 
diff --git a/src/dom/EntityReferenceImpl.cpp b/src/dom/EntityReferenceImpl.cpp
index d6a4691..18d6765 100644
--- a/src/dom/EntityReferenceImpl.cpp
+++ b/src/dom/EntityReferenceImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:09  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:09  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:27  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -274,7 +279,7 @@
 */
 void EntityReferenceImpl::setNodeValue(const DOMString &x)
 {
-    throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 }
 
 
@@ -289,7 +294,7 @@
 void EntityReferenceImpl::setReadOnly(bool readOnl,bool deep)
 {
     if(readOnl==false)
-        throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR,null);
     NodeImpl::setReadOnly(readOnl,deep);
 }
 
diff --git a/src/dom/Makefile.in b/src/dom/Makefile.in
index c1d6460..52e615f 100644
--- a/src/dom/Makefile.in
+++ b/src/dom/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:09:11  twl
-# Initial revision
+# Revision 1.2  1999/11/23 01:59:43  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:09:11  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:44:28  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -211,9 +216,6 @@
 	@for file in $(DOM_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
 	done
-	@for file in $(DOM_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE) object files ..."
 	@for file in $(DOM_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/src/dom/NamedNodeMapImpl.cpp b/src/dom/NamedNodeMapImpl.cpp
index d6d5e7b..7d96ef4 100644
--- a/src/dom/NamedNodeMapImpl.cpp
+++ b/src/dom/NamedNodeMapImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:11  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:11  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:44:29  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -175,7 +180,7 @@
         while(first<=last)
         {
             i=(first+last)/2;
-            int test = name.strcmp(nodes->elementAt(i)->getNodeName());
+            int test = name.compareString(nodes->elementAt(i)->getNodeName());
             if(test==0)
                 return i; // Name found
             else if(test<0)
@@ -259,7 +264,7 @@
         {
             nnode = (AttrImpl *) nodes->elementAt(n);
             dnode = (AttrImpl *) defaults->nodes->elementAt(d);
-            int test = nnode->getNodeName().strcmp( dnode->getNodeName());
+            int test = nnode->getNodeName().compareString( dnode->getNodeName());
             // nnode->getNodeName()->compareTo(dnode->getNodeName());
             
             // Same name and a default -- make sure same value
@@ -313,7 +318,7 @@
 {
     int i=findNamePoint(name);
     if(i<0)
-        throw new DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
     else
     {
         NodeImpl * n = (NodeImpl *) (nodes->elementAt(i));
@@ -354,7 +359,7 @@
       return n;
       }
       }
-      throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR, null);
+      throw DOMExceptionImpl(DOMException.NOT_FOUND_ERR, null);
     **************/ 
 	return null;	// just to keep the compiler happy
 };
@@ -379,10 +384,10 @@
 NodeImpl * NamedNodeMapImpl::setNamedItem(NodeImpl * arg)
 {
     if(arg->getOwnerDocument()!=ownerDoc)
-        throw new DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR,null);
     
     if (arg->owned)
-        throw new DOM_DOMException(DOM_DOMException::INUSE_ATTRIBUTE_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::INUSE_ATTRIBUTE_ERR,null);
     
     arg->owned = true;
     int i=findNamePoint(arg->getNodeName());
@@ -494,13 +499,13 @@
 	const DOMString &name)
 {
     if (readOnly)
-	throw new DOM_DOMException(
+	throw DOM_DOMException(
 	    DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     if (namespaceURI == null || namespaceURI.length() == 0)
 	return removeNamedItem(name);
     int i = findNamePoint(namespaceURI, name);
     if (i < 0)
-	throw new DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
+	throw DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
     NodeImpl * n = nodes -> elementAt(i);   //node to be removed or replaced
     //find if n has a default value defined in DTD, if so replace n in nodes
     //by its corresponding default value node, otherwise remove n from nodes
diff --git a/src/dom/NodeFilterImpl.cpp b/src/dom/NodeFilterImpl.cpp
index 859915c..6bde2b2 100644
--- a/src/dom/NodeFilterImpl.cpp
+++ b/src/dom/NodeFilterImpl.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:12  twl
- * Initial revision
+ * Revision 1.2  1999/11/20 00:56:39  rahulj
+ * Source files must end with an un-escaped newline.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:12  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:29  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -92,4 +95,4 @@
 void NodeFilterImpl::unreferenced ()
 {
     delete this;
-}
\ No newline at end of file
+}
diff --git a/src/dom/NodeImpl.cpp b/src/dom/NodeImpl.cpp
index e1ad40d..0cce58c 100644
--- a/src/dom/NodeImpl.cpp
+++ b/src/dom/NodeImpl.cpp
@@ -1,68 +1,80 @@
 /*
- * The Apache Software License, Version 1.1
- * 
- * Copyright (c) 1999 The Apache Software Foundation.  All rights 
- * reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- * 
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 
- * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowledgment may appear in the software itself,
- *    if and wherever such third-party acknowledgments normally appear.
- * 
- * 4. The names "Xerces" and "Apache Software Foundation" must
- *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
- *    permission, please contact apache\@apache.org.
- * 
- * 5. Products derived from this software may not be called "Apache",
- *    nor may "Apache" appear in their name, without prior written
- *    permission of the Apache Software Foundation.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- * 
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation, and was
- * originally based on software copyright (c) 1999, International
- * Business Machines, Inc., http://www.ibm.com .  For more information
- * on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
+* The Apache Software License, Version 1.1
+* 
+* Copyright (c) 1999 The Apache Software Foundation.  All rights 
+* reserved.
+* 
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 
+* 1. Redistributions of source code must retain the above copyright
+*    notice, this list of conditions and the following disclaimer. 
+* 
+* 2. Redistributions in binary form must reproduce the above copyright
+*    notice, this list of conditions and the following disclaimer in
+*    the documentation and/or other materials provided with the
+*    distribution.
+* 
+* 3. The end-user documentation included with the redistribution,
+*    if any, must include the following acknowledgment:  
+*       "This product includes software developed by the
+*        Apache Software Foundation (http://www.apache.org/)."
+*    Alternately, this acknowledgment may appear in the software itself,
+*    if and wherever such third-party acknowledgments normally appear.
+* 
+* 4. The names "Xerces" and "Apache Software Foundation" must
+*    not be used to endorse or promote products derived from this
+*    software without prior written permission. For written 
+*    permission, please contact apache\@apache.org.
+* 
+* 5. Products derived from this software may not be called "Apache",
+*    nor may "Apache" appear in their name, without prior written
+*    permission of the Apache Software Foundation.
+* 
+* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+* SUCH DAMAGE.
+* ====================================================================
+* 
+* This software consists of voluntary contributions made by many
+* individuals on behalf of the Apache Software Foundation, and was
+* originally based on software copyright (c) 1999, International
+* Business Machines, Inc., http://www.ibm.com .  For more information
+* on the Apache Software Foundation, please see
+* <http://www.apache.org/>.
+*/
 
 /**
- * $Log$
- * Revision 1.1  1999/11/09 01:09:13  twl
- * Initial revision
- *
- * Revision 1.3  1999/11/08 20:44:29  rahul
- * Swat for adding in Product name and CVS comment log variable.
- *
- */
+* $Log$
+* Revision 1.3  1999/12/03 00:11:23  andyh
+* Added DOMString.clone() to node parameters in and out of the DOM,
+* where they had been missed.
+*
+* DOMString::rawBuffer, removed incorrect assumptions about it
+* being null terminated.
+*
+* Revision 1.2  1999/11/30 21:16:25  roddey
+* Changes to add the transcode() method to DOMString, which returns a transcoded
+* version (to local code page) of the DOM string contents. And I changed all of the
+* exception 'throw by pointer' to 'throw by value' style.
+*
+* Revision 1.1.1.1  1999/11/09 01:09:13  twl
+* Initial checkin
+*
+* Revision 1.3  1999/11/08 20:44:29  rahul
+* Swat for adding in Product name and CVS comment log variable.
+*
+*/
 
 
 #include "NodeImpl.hpp"
@@ -81,12 +93,12 @@
     // Do we want to add isLeafNode to this? How about initial value?
     this->ownerDocument=ownerDoc;
     this->namespaceURI=null;	//DOM Level 2
-    this->prefix=null;		//DOM Level 2
-    this->localName=nam;	//DOM Level 2
-    this->name=nam;
+    this->prefix=null;			//DOM Level 2
+    this->localName=null;		//DOM Level 2
+    this->name=nam.clone();
     this->nType=nTyp;
     this->isLeafNode=isLeafNod;
-    this->value=initValue;
+    this->value=initValue.clone();
     
     this->changes = 0;
     this->userData = null;
@@ -106,25 +118,42 @@
 
 //Introduced in DOM Level 2
 NodeImpl::NodeImpl(DocumentImpl *ownerDoc,
-	const DOMString &namespaceURI, const DOMString &qualifiedName, short nTyp,
-        bool isLeafNod, const DOMString &initValue)
+                   const DOMString &namespaceURI, const DOMString &qualifiedName, short nTyp,
+                   bool isLeafNod, const DOMString &initValue)
 {
     // Do we want to add isLeafNode to this? How about initial value?
     this->ownerDocument=ownerDoc;
-    this->namespaceURI=namespaceURI;
-    int index = XMLString::indexOf(qualifiedName.rawBuffer(), chColon);
-    if (index >= 0) {
-	this->prefix = qualifiedName.substringData(0, index);
-	int len = qualifiedName.length() - index - 1;
-	this->localName = qualifiedName.substringData(index+1, len);
-    } else {
-	this->prefix = null;
-	this->localName = qualifiedName;
+    this->name=qualifiedName.clone();
+    
+    this->namespaceURI=namespaceURI.clone();
+
+    // Look in the qualified name parameter for a colon.
+    //  If found, break out the prefix and local name parts.
+    //    (bug:  check for well formed names.)
+    XMLCh  *qNameP   = this->name.rawBuffer();
+    int    qNameLen = this->name.length();
+    int index;
+    for (index=0; index<qNameLen; index++)
+    {
+        if (qNameP[index] == chColon)
+        {
+            this->prefix = this->name.substringData(0, index);
+            int len = this->name.length() - index - 1;
+            this->localName = this->name.substringData(index+1, len);
+            break;
+        }
     }
-    this->name=qualifiedName;
+
+    if (this->prefix == null)
+    {
+        // The search for a colon, above, in the qualified name failed.
+        // the localname is the whole name, and there is no prefix part.
+        this->localName = this->name;
+    }
+
     this->nType=nTyp;
     this->isLeafNode=isLeafNod;
-    this->value=initValue;
+    this->value=initValue.clone();
     
     this->changes = 0;
     this->userData = null;
@@ -145,8 +174,8 @@
 NodeImpl::NodeImpl(const NodeImpl &other, bool deep) {
     this->nType = other.nType;
     this->namespaceURI = other.namespaceURI.clone();	//DOM Level 2
-    this->prefix = other.prefix.clone();		//DOM Level 2
-    this->localName = other.localName.clone();		//DOM Level 2
+    this->prefix = other.prefix.clone();                //DOM Level 2
+    this->localName = other.localName.clone();          //DOM Level 2
     this->name  = other.name.clone();
     this->value = other.value.clone();
     this->isLeafNode = other.isLeafNode;
@@ -159,7 +188,7 @@
     this->nodeRefCount = 0;
     NodeImpl::gLiveNodeImpls++; 
     NodeImpl::gTotalNodeImpls++;
-
+    
     
     // Need to break the association w/ original kids
     this->previousSibling = null;
@@ -182,11 +211,11 @@
 
 int  NodeImpl::gLiveNodeImpls = 0;         // Counters for debug & tuning.
 int  NodeImpl::gTotalNodeImpls= 0;
-    
+
 
 
 NodeImpl::~NodeImpl() {
-     NodeImpl::gLiveNodeImpls--;
+    NodeImpl::gLiveNodeImpls--;
 };
 
 
@@ -346,7 +375,7 @@
 
 NodeImpl *NodeImpl::insertBefore(NodeImpl *newChild, NodeImpl *refChild) {
     if (readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
     
     if(  !(newChild->getOwnerDocument() == ownerDocument   ||
@@ -354,7 +383,7 @@
         ( this->isDocumentImpl() &&
         newChild->getOwnerDocument() == (DocumentImpl *)this ) 
         ) )
-        throw new DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::WRONG_DOCUMENT_ERR, null);
     
     // Convert to internal type, to avoid repeated casting  
     //   (left over from the original Java.  Meaningless in this version.)
@@ -365,11 +394,11 @@
     for(NodeImpl *a=this->parentNode;treeSafe && a!=null;a=a->parentNode)
         treeSafe=(newInternal!=a);
     if(!treeSafe)
-        throw new DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
     
     // refChild must in fact be a child of this node (or null)
     if(refChild!=null && refChild->parentNode != this)
-        throw new DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR,null);
     
     if (newInternal->isDocumentFragmentImpl())
     {
@@ -395,14 +424,14 @@
         kid=kid->getNextSibling())
         {
             if(!isKidOK(this,kid))
-                throw new DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
+                throw DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
         }                       
         while(newInternal->hasChildNodes())     // Move
             insertBefore(newInternal->getFirstChild(),refChild);
     }
     
     else if(!isKidOK(this, newInternal))
-        throw new DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
+        throw DOM_DOMException(DOM_DOMException::HIERARCHY_REQUEST_ERR,null);
     
     else
     {
@@ -503,17 +532,17 @@
   {
       RefCountedImpl::addRef(this->ownerDocument);
   };
-
-
+  
+  
   
   NodeImpl *NodeImpl::removeChild(NodeImpl *oldChild) 
   {
       if (readOnly)
-          throw new DOM_DOMException(
+          throw DOM_DOMException(
           DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
       
       if (oldChild != null && oldChild->parentNode != this)
-          throw new DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
+          throw DOM_DOMException(DOM_DOMException::NOT_FOUND_ERR, null);
       
       // Patch tree past oldChild
       NodeImpl *prev = oldChild->previousSibling;
@@ -546,8 +575,8 @@
   {
       DocumentImpl *doc = this->ownerDocument;
       deleteIf(this);       // This gets nodes outside of the document -
-                            //   deleteIf() deletes only if the parent
-                            //   node is null.  
+      //   deleteIf() deletes only if the parent
+      //   node is null.  
       
       // If this was the last external reference within the document,
       //    the entire document will be deleted as well.
@@ -565,7 +594,7 @@
   this instanceof Document && 
   newChild.getOwnerDocument() != (Document) this)
   {
-  throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, null);
+  throw DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, null);
   }
       *********************************************************************/
       insertBefore(newChild, oldChild);
@@ -579,11 +608,11 @@
   void NodeImpl::setNodeValue(const DOMString &val)
   {
       if (readOnly)
-          throw new DOM_DOMException(
+          throw DOM_DOMException(
           DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
       
       // Default behavior, overridden in some subclasses
-      this->value = val;
+      this->value = val.clone();
   };
   
   
@@ -617,37 +646,37 @@
       // return getNodeName();
   };    
   
-//Introduced in DOM Level 2
-
-bool NodeImpl::supports(const DOMString &feature, const DOMString &version)
-{
-    return false;   //must be overriden by each subclass
-}
-
-DOMString NodeImpl::getNamespaceURI()
-{
-    return namespaceURI;
-}
-
-DOMString NodeImpl::getPrefix()
-{
-    return prefix;
-}
-
-DOMString NodeImpl::getLocalName()
-{
-    return localName;
-}
-
-void NodeImpl::setPrefix(const DOMString &prefix)
-{
-    if (readOnly)
-	throw new DOM_DOMException(
-	    DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
-    if (isAttrImpl() || isElementImpl()) {
-	name = this -> prefix = prefix;
-	name = name + chColon + localName;    //nodeName is changed too
-	//what to do if namespaceURI is null?
-    }
-
-}
+  //Introduced in DOM Level 2
+  
+  bool NodeImpl::supports(const DOMString &feature, const DOMString &version)
+  {
+      return false;   //must be overriden by each subclass
+  }
+  
+  DOMString NodeImpl::getNamespaceURI()
+  {
+      return namespaceURI;
+  }
+  
+  DOMString NodeImpl::getPrefix()
+  {
+      return prefix;
+  }
+  
+  DOMString NodeImpl::getLocalName()
+  {
+      return localName;
+  }
+  
+  void NodeImpl::setPrefix(const DOMString &prefix)
+  {
+      if (readOnly)
+          throw DOM_DOMException(
+          DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+      if (isAttrImpl() || isElementImpl()) {
+          name = this -> prefix = prefix;
+          name = name + chColon + localName;    //nodeName is changed too
+          //what to do if namespaceURI is null?
+      }
+      
+  }
diff --git a/src/dom/NodeIteratorImpl.cpp b/src/dom/NodeIteratorImpl.cpp
index 9eb64f6..eec324b 100644
--- a/src/dom/NodeIteratorImpl.cpp
+++ b/src/dom/NodeIteratorImpl.cpp
@@ -56,8 +56,19 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:15  twl
- * Initial revision
+ * Revision 1.4  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.3  1999/11/23 01:48:16  rahulj
+ * Changed 0L to 0. CC under HPUX is happy now.
+ *
+ * Revision 1.2  1999/11/20 00:56:39  rahulj
+ * Source files must end with an un-escaped newline.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:15  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:30  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -98,7 +109,7 @@
 {
 	fDetached = false;
     fRoot = root;
-    fCurrentNode = 0L;
+    fCurrentNode = 0;
     fWhatToShow = whatToShow;
     fNodeFilter = nodeFilter;
 
@@ -159,7 +170,7 @@
 
 DOM_Node NodeIteratorImpl::nextNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
 	DOM_Node result;
 
@@ -208,7 +219,7 @@
 
 DOM_Node NodeIteratorImpl::previousNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 		
 	DOM_Node result;
 
@@ -253,7 +264,7 @@
 /** The node is accepted if it passes the whatToShow and the filter. */
 bool NodeIteratorImpl::acceptNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     if (fNodeFilter == 0) {
         return ((fWhatToShow & ((1 << node.getNodeType()) - 1)) != 0);
@@ -285,7 +296,7 @@
 
 DOM_Node NodeIteratorImpl::nextNode (DOM_Node node, bool visitChildren) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     if (node.isNull()) return fRoot;
 
@@ -328,7 +339,7 @@
 
 DOM_Node NodeIteratorImpl::previousNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     DOM_Node result;
 
@@ -361,7 +372,7 @@
 
 void NodeIteratorImpl::removeNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     // Implementation note: Fix-up means setting the current node properly
     // after a remove.
@@ -416,4 +427,4 @@
     }
 
     delete this;
-}
\ No newline at end of file
+}
diff --git a/src/dom/NotationImpl.cpp b/src/dom/NotationImpl.cpp
index 451252e..c971358 100644
--- a/src/dom/NotationImpl.cpp
+++ b/src/dom/NotationImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:17  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:25  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:17  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:31  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -128,14 +133,14 @@
 
 void NotationImpl::setNodeValue(const DOMString &arg)
 {
-    throw new DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
+    throw DOM_DOMException(DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
 };
 
 
 void NotationImpl::setPublicId(const DOMString &arg)
 {
     if(readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR,null);
     
     publicId = arg.clone();
@@ -145,7 +150,7 @@
 void NotationImpl::setSystemId(const DOMString &arg)
 {
     if(readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR,null);
     
     systemId = arg.clone();
diff --git a/src/dom/ProcessingInstructionImpl.cpp b/src/dom/ProcessingInstructionImpl.cpp
index 6e0f6b0..37a5963 100644
--- a/src/dom/ProcessingInstructionImpl.cpp
+++ b/src/dom/ProcessingInstructionImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:18  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:26  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:18  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:32  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -126,7 +131,7 @@
 void ProcessingInstructionImpl::setData(const DOMString &arg)
 {
     if(readOnly)
-        throw new DOM_DOMException(
+        throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR,null);
     
     value = arg;
diff --git a/src/dom/TextImpl.cpp b/src/dom/TextImpl.cpp
index a3e67de..169f373 100644
--- a/src/dom/TextImpl.cpp
+++ b/src/dom/TextImpl.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:19  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 21:16:26  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:19  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:33  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -105,10 +110,10 @@
 TextImpl *TextImpl::splitText(int offset)
 {
         if (readOnly)
-                throw new DOM_DOMException(
+                throw DOM_DOMException(
         DOM_DOMException::NO_MODIFICATION_ALLOWED_ERR, null);
         if (offset < 0 || offset > value.length() - 1)
-        throw new DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
+        throw DOM_DOMException(DOM_DOMException::INDEX_SIZE_ERR, null);
                 
         TextImpl *newText = 
                 (TextImpl *) ownerDocument->createTextNode(
diff --git a/src/dom/TreeWalkerImpl.cpp b/src/dom/TreeWalkerImpl.cpp
index 5c36c5a..67b9a93 100644
--- a/src/dom/TreeWalkerImpl.cpp
+++ b/src/dom/TreeWalkerImpl.cpp
@@ -56,8 +56,16 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:09:20  twl
- * Initial revision
+ * Revision 1.3  1999/11/30 21:16:26  roddey
+ * Changes to add the transcode() method to DOMString, which returns a transcoded
+ * version (to local code page) of the DOM string contents. And I changed all of the
+ * exception 'throw by pointer' to 'throw by value' style.
+ *
+ * Revision 1.2  1999/11/23 01:48:17  rahulj
+ * Changed 0L to 0. CC under HPUX is happy now.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:09:20  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:33  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -156,7 +164,7 @@
 /** Return the current Node. */
 DOM_Node TreeWalkerImpl::getCurrentNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     return fCurrentNode;
 }
@@ -165,7 +173,7 @@
 /** Return the current Node. */
 void TreeWalkerImpl::setCurrentNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     fCurrentNode = node;
 }
@@ -177,14 +185,14 @@
  */
 DOM_Node TreeWalkerImpl::parentNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
 	DOM_Node result;
 
     if (fCurrentNode.isNull()) return result;
 
     DOM_Node node = getParentNode(fCurrentNode);
-    if (node != 0L) {
+    if (node != 0) {
         fCurrentNode = node;
     }
     return node;
@@ -198,7 +206,7 @@
  */
 DOM_Node TreeWalkerImpl::firstChild () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
 	DOM_Node result;
 
@@ -218,7 +226,7 @@
  */
 DOM_Node TreeWalkerImpl::lastChild () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 		
 	DOM_Node result;
 
@@ -239,7 +247,7 @@
 
 DOM_Node TreeWalkerImpl::previousSibling () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 	
 	DOM_Node result;
 
@@ -260,7 +268,7 @@
 
 DOM_Node TreeWalkerImpl::nextSibling () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 		
 	DOM_Node result;
 
@@ -281,7 +289,7 @@
 
 DOM_Node TreeWalkerImpl::previousNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
     DOM_Node result;
 
@@ -325,7 +333,7 @@
 
 DOM_Node TreeWalkerImpl::nextNode () {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 	
 	DOM_Node result;
 
@@ -370,7 +378,7 @@
 
 DOM_Node TreeWalkerImpl::getParentNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 	
 	DOM_Node result;
 
@@ -400,7 +408,7 @@
 
 DOM_Node TreeWalkerImpl::getNextSibling (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 	
 	DOM_Node result;
 
@@ -450,7 +458,7 @@
 
 DOM_Node TreeWalkerImpl::getPreviousSibling (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 		
 	DOM_Node result;
 
@@ -499,7 +507,7 @@
 
 DOM_Node TreeWalkerImpl::getFirstChild (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 		
 	DOM_Node result;
 
@@ -533,7 +541,7 @@
 
 DOM_Node TreeWalkerImpl::getLastChild (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
 	DOM_Node result;
 
@@ -565,9 +573,9 @@
 
 short TreeWalkerImpl::acceptNode (DOM_Node node) {
 	if (fDetached)
-		throw new DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
+		throw DOM_DOMException(DOM_DOMException::INVALID_STATE_ERR, null);
 
-    if (fNodeFilter == 0L) {
+    if (fNodeFilter == 0) {
         if ( ( fWhatToShow & (1 << (node.getNodeType() - 1))) != 0)
         {
             return DOM_NodeFilter::ACCEPT;
diff --git a/src/framework/Makefile.in b/src/framework/Makefile.in
index 76527da..f6e4279 100644
--- a/src/framework/Makefile.in
+++ b/src/framework/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:08:26  twl
-# Initial revision
+# Revision 1.2  1999/11/23 01:59:47  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:08:26  twl
+# Initial checkin
 #
 # Revision 1.5  1999/11/08 20:44:34  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -141,9 +146,6 @@
 	@for file in $(FRAMEWORK_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
 	done
-	@for file in $(FRAMEWORK_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE) object files ..."
 	@for file in $(FRAMEWORK_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/src/framework/XMLBuffer.cpp b/src/framework/XMLBuffer.cpp
index 1a41200..463ccaf 100644
--- a/src/framework/XMLBuffer.cpp
+++ b/src/framework/XMLBuffer.cpp
@@ -56,8 +56,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:29  twl
- * Initial revision
+ * Revision 1.2  1999/11/23 01:04:19  roddey
+ * Updates to some of the internal VC++ project files and some small
+ * fixes to make XMLBuffer correctly character size agnostic.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:29  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:44:35  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -84,7 +88,7 @@
     if (!count)
         actualCount = XMLString::stringLen(chars);
     insureCapacity(actualCount);
-    memcpy(&fBuffer[fIndex], chars, actualCount * 2);
+    memcpy(&fBuffer[fIndex], chars, actualCount * sizeof(XMLCh));
     fIndex += actualCount;
 }
 
@@ -95,7 +99,7 @@
         actualCount = XMLString::stringLen(chars);
     fIndex = 0;
     insureCapacity(actualCount);
-    memcpy(fBuffer, chars, actualCount * 2);
+    memcpy(fBuffer, chars, actualCount * sizeof(XMLCh));
     fIndex = actualCount;
 }
 
@@ -108,10 +112,10 @@
     unsigned int newCap = (unsigned int)(fCapacity * 1.5);
 
     // Allocate the new buffer
-    XMLCh* newBuf = new XMLCh[newCap+1];
+    XMLCh* newBuf = new XMLCh[newCap + 1];
 
     // Copy over the old stuff
-    memcpy(newBuf, fBuffer, fCapacity * 2);
+    memcpy(newBuf, fBuffer, fCapacity * sizeof(XMLCh));
 
     // Clean up old buffer and store new stuff
     delete [] fBuffer;
@@ -130,7 +134,7 @@
     XMLCh* newBuf = new XMLCh[newCap+1];
 
     // Copy over the old stuff
-    memcpy(newBuf, fBuffer, fCapacity * 2);
+    memcpy(newBuf, fBuffer, fCapacity * sizeof(XMLCh));
 
     // Clean up old buffer and store new stuff
     delete [] fBuffer;
diff --git a/src/framework/XMLRecognizer.hpp b/src/framework/XMLRecognizer.hpp
index 9683613..909225f 100644
--- a/src/framework/XMLRecognizer.hpp
+++ b/src/framework/XMLRecognizer.hpp
@@ -56,8 +56,11 @@
 
 /**
  *  $Log$
- *  Revision 1.1  1999/11/09 01:08:37  twl
- *  Initial revision
+ *  Revision 1.2  1999/11/23 01:49:27  rahulj
+ *  Cannot use class qualifier in class defn. CC under HPUX is happy.
+ *
+ *  Revision 1.1.1.1  1999/11/09 01:08:37  twl
+ *  Initial checkin
  *
  *  Revision 1.2  1999/11/08 20:44:40  rahul
  *  Swat for adding in Product name and CVS comment log variable.
@@ -125,13 +128,13 @@
     // -----------------------------------------------------------------------
     //  Encoding recognition methods
     // -----------------------------------------------------------------------
-    static XMLRecognizer::Encodings basicEncodingProbe
+    static Encodings basicEncodingProbe
     (
         const   XMLByte* const      rawBuffer
         , const unsigned int        rawByteCount
     );
 
-    static XMLRecognizer::Encodings encodingForName
+    static Encodings encodingForName
     (
         const   XMLCh* const    theEncName
     );
diff --git a/src/framework/XMLValidator.cpp b/src/framework/XMLValidator.cpp
index f4fb1ce..2215249 100644
--- a/src/framework/XMLValidator.cpp
+++ b/src/framework/XMLValidator.cpp
@@ -56,8 +56,13 @@
 
 /**
   * $Log$
-  * Revision 1.1  1999/11/09 01:08:37  twl
-  * Initial revision
+  * Revision 1.2  1999/12/02 19:02:56  roddey
+  * Get rid of a few statically defined XMLMutex objects, and lazy eval them
+  * using atomic compare and swap. I somehow let it get by me that we don't
+  * want any static/global objects at all.
+  *
+  * Revision 1.1.1.1  1999/11/09 01:08:37  twl
+  * Initial checkin
   *
   * Revision 1.3  1999/11/08 20:44:40  rahul
   * Swat for adding in Product name and CVS comment log variable.
@@ -79,16 +84,35 @@
 
 
 // ---------------------------------------------------------------------------
-//  Local static data
+//  Local static functions
 // ---------------------------------------------------------------------------
-static XMLMutex         gValidatorMutex;
-static XMLMsgLoader&    getMsgLoader()
+
+//
+//  We need to fault in this mutex. But, since its used for synchronization
+//  itself, we have to do this the low level way using a compare and swap.
+//
+static XMLMutex& gValidatorMutex()
+{
+    static XMLMutex* validatorMutex = 0;
+    if (!validatorMutex)
+    {
+        XMLMutex* tmpMutex = new XMLMutex;
+        if (XMLPlatformUtils::compareAndSwap((void**)&validatorMutex, tmpMutex, 0))
+        {
+            // Someone beat us to it, so let's clean up ours
+            delete tmpMutex;
+        }
+    }
+    return *validatorMutex;
+}
+
+static XMLMsgLoader& getMsgLoader()
 {
     static XMLMsgLoader* gMsgLoader = 0;
 
     if (!gMsgLoader)
     {
-        XMLMutexLock lockInit(&gValidatorMutex);
+        XMLMutexLock lockInit(&gValidatorMutex());
         if (!gMsgLoader)
         {
             gMsgLoader = XMLPlatformUtils::loadMsgSet(XMLUni::fgValidityDomain);
@@ -120,7 +144,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gValidatorMutex);
+            XMLMutexLock lockInit(&gValidatorMutex());
             if (!getMsgLoader().loadMsg(toEmit, errText, msgSize))
             {
                 // <TBD> Probably should load a default msg here
@@ -175,7 +199,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gValidatorMutex);
+            XMLMutexLock lockInit(&gValidatorMutex());
             if (!getMsgLoader().loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
             {
                 // <TBD> Should probably load a default message here
@@ -230,7 +254,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gValidatorMutex);
+            XMLMutexLock lockInit(&gValidatorMutex());
             if (!getMsgLoader().loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
             {
                 // <TBD> Should probably load a default message here
diff --git a/src/internal/Makefile.in b/src/internal/Makefile.in
index 936be94..5b9d025 100644
--- a/src/internal/Makefile.in
+++ b/src/internal/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:08:09  twl
-# Initial revision
+# Revision 1.2  1999/11/23 01:59:51  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:08:09  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:44:42  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -132,9 +137,6 @@
 	@for file in $(INTERNAL_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
 	done
-	@for file in $(INTERNAL_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE) object files ..."
 	@for file in $(INTERNAL_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/src/internal/XMLScanner.cpp b/src/internal/XMLScanner.cpp
index 5b28b69..4cea273 100644
--- a/src/internal/XMLScanner.cpp
+++ b/src/internal/XMLScanner.cpp
@@ -56,8 +56,17 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:08:22  twl
- * Initial revision
+ * Revision 1.3  1999/12/02 19:02:57  roddey
+ * Get rid of a few statically defined XMLMutex objects, and lazy eval them
+ * using atomic compare and swap. I somehow let it get by me that we don't
+ * want any static/global objects at all.
+ *
+ * Revision 1.2  1999/11/30 20:23:13  roddey
+ * Added changes to handle exceptions thrown from the user's handlers for
+ * emitError().
+ *
+ * Revision 1.1.1.1  1999/11/09 01:08:22  twl
+ * Initial checkin
  *
  * Revision 1.7  1999/11/08 20:56:54  droddey
  * If the main xml entity does not exist, we need to get the error handling for that
@@ -105,11 +114,34 @@
 //  Local static data
 // ---------------------------------------------------------------------------
 static XMLUInt32       gScannerId;
-static XMLMutex        gScannerMutex;
 static XMLMsgLoader*   gMsgLoader;
 
 
 // ---------------------------------------------------------------------------
+//  Local, static functions
+// ---------------------------------------------------------------------------
+
+//
+//  We need to fault in this mutex. But, since its used for synchronization
+//  itself, we have to do this the low level way using a compare and swap.
+//
+static XMLMutex& gScannerMutex()
+{
+    static XMLMutex* scannerMutex = 0;
+    if (!scannerMutex)
+    {
+        XMLMutex* tmpMutex = new XMLMutex;
+        if (XMLPlatformUtils::compareAndSwap((void**)&scannerMutex, tmpMutex, 0))
+        {
+            // Someone beat us to it, so let's clean up ours
+            delete tmpMutex;
+        }
+    }
+    return *scannerMutex;
+}
+
+
+// ---------------------------------------------------------------------------
 //  XMLScanner: Constructors and Destructor
 // ---------------------------------------------------------------------------
 XMLScanner::XMLScanner(XMLValidator* const validator) :
@@ -243,23 +275,31 @@
         // If we have a document handler, then call the end document
         if (fDocHandler)
             fDocHandler->endDocument();
+
+        // Reset the reader manager to close all files, sockets, etc...
+        fReaderMgr.reset();
     }
 
+    //
+    //  NOTE:
+    //
+    //  In all of the error processing below, the emitError() call MUST come
+    //  before the flush of the reader mgr, or it will fail because it tries
+    //  to find out the position in the XML source of the error.
+    //
     catch(const XML4CErrs::Codes)
     {
-        // This is a 'first fatal error' type exit, so just fall through
+        // This is a 'first fatal error' type exit, so reset and fall through
+        fReaderMgr.reset();
     }
 
-    //
-    //  We have to propogate SAX exceptions. Since they are derived from our
-    //  XMLException class, we have to filter it out first here so that it
-    //  does not get caught and eaten below.
-    //
     catch(const SAXException&)
     {
         //
-        //  Make sure we do anything that would normally be done on the way
-        //  out of this method.
+        //  We have to propogate SAX exceptions.
+        //
+        //  Make sure that the reader manager gets reset, then rethrow this
+        //  exception since it means nothing much to us.
         //
         fReaderMgr.reset();
         throw;
@@ -267,35 +307,38 @@
 
     catch(const XMLException& excToCatch)
     {
+        //
+        //  Emit the error and catch any user exception thrown from here. Make
+        //  sure in all cases we flush the reader manager.
+        //
         fInException = true;
-        emitError
-        (
-            XML4CErrs::XMLException
-            , excToCatch.getType()
-            , excToCatch.getMessage()
-        );
+        try
+        {
+            emitError
+            (
+                XML4CErrs::XMLException
+                , excToCatch.getType()
+                , excToCatch.getMessage()
+            );
+        }
 
-        // And fall through
+        catch(...)
+        {
+            // Flush the reader manager and rethrow user's error
+            fReaderMgr.reset();
+            throw;
+        }
+
+        // If it returned, then reset the reader manager and fall through
+        fReaderMgr.reset();
     }
 
     catch(...)
     {
-        //
-        //  We don't know what happened. So issue an error, flush the reader
-        //  manager to close down files, sockets, etc... and rethrow.
-        //
-        //  NOTE: The error emit MUST come before the flush of the reader
-        //  or it will fail because it tries to find out the position in
-        //  the XML source of the error.
-        //
-        fInException = true;
-        emitError(XML4CErrs::SysException);
+        // Reset and rethrow
         fReaderMgr.reset();
         throw;
     }
-
-    // Reset the reader manager to close all files
-    fReaderMgr.reset();
 }
 
 
@@ -332,9 +375,16 @@
         scanProlog();
     }
 
-    // This is a 'first failure' exception so reset and return a failure
+    //
+    //  NOTE:
+    //
+    //  In all of the error processing below, the emitError() call MUST come
+    //  before the flush of the reader mgr, or it will fail because it tries
+    //  to find out the position in the XML source of the error.
+    //
     catch(const XML4CErrs::Codes)
     {
+        // This is a 'first failure' exception so reset and return a failure
         fReaderMgr.reset();
         return false;
     }
@@ -346,24 +396,38 @@
         throw;
     }
 
-    // This one is just a failure
     catch(const XMLException& excToCatch)
     {
+        //
+        //  Emit the error and catch any user exception thrown from here. Make
+        //  sure in all cases we flush the reader manager.
+        //
         fInException = true;
-        emitError
-        (
-            XML4CErrs::XMLException
-            , excToCatch.getType()
-            , excToCatch.getMessage()
-        );
+        try
+        {
+            emitError
+            (
+                XML4CErrs::XMLException
+                , excToCatch.getType()
+                , excToCatch.getMessage()
+            );
+        }    
+
+        catch(...)
+        {
+            // Reset and rethrow the user error
+            fReaderMgr.reset();
+            throw;
+        }
+
+        // Reset and return a failure
         fReaderMgr.reset();
         return false;
     }
 
     catch(...)
     {
-        fInException = true;
-        emitError(XML4CErrs::SysException);
+        // Reset and rethrow original error
         fReaderMgr.reset();
         throw;
     }
@@ -451,9 +515,16 @@
         }
     }
 
-    // This is a 'first failure' exception, so reset and return failure
+    //
+    //  NOTE:
+    //
+    //  In all of the error processing below, the emitError() call MUST come
+    //  before the flush of the reader mgr, or it will fail because it tries
+    //  to find out the position in the XML source of the error.
+    //
     catch(const XML4CErrs::Codes)
     {
+        // This is a 'first failure' exception, so reset and return failure
         fReaderMgr.reset();
         return false;
     }
@@ -461,33 +532,51 @@
     // We have to propogate SAX exceptions
     catch(const SAXException&)
     {
+        // Just reset our reader manager and rethrow SAX exception
         fReaderMgr.reset();
         throw;
     }
 
-    // This one is just a failure
     catch(const XMLException& excToCatch)
     {
+        //
+        //  Emit the error and catch any user exception thrown from here. Make
+        //  sure in all cases we flush the reader manager.
+        //
         fInException = true;
-        emitError
-        (
-            XML4CErrs::XMLException
-            , excToCatch.getType()
-            , excToCatch.getMessage()
-        );
+        try
+        {
+            emitError
+            (
+                XML4CErrs::XMLException
+                , excToCatch.getType()
+                , excToCatch.getMessage()
+            );
+        }
 
+        catch(...)
+        {
+            // REset and rethrow user error
+            fReaderMgr.reset();
+            throw;
+        }
+
+        // Reset and return failure
         fReaderMgr.reset();
         return false;
     }
 
     catch(...)
     {
-        fInException = true;
-        emitError(XML4CErrs::SysException);
-
+        // Reset and rethrow original error
         fReaderMgr.reset();
         throw;
     }
+
+    // If we hit the end, then flush the reader manager
+    if (!retVal)
+        fReaderMgr.reset();
+
     return retVal;
 }
 
@@ -509,7 +598,7 @@
     //  use the mutex to protect it.
     //
     {
-        XMLMutexLock lockInit(&gScannerMutex);
+        XMLMutexLock lockInit(&gScannerMutex());
 
         // If we haven't loaded our message yet, then do that
         if (!gMsgLoader)
@@ -573,7 +662,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gScannerMutex);
+            XMLMutexLock lockInit(&gScannerMutex());
             if (!gMsgLoader->loadMsg(toEmit, errText, msgSize))
             {
                 // <TBD> Probably should load a default msg here
@@ -624,7 +713,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gScannerMutex);
+            XMLMutexLock lockInit(&gScannerMutex());
             if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
             {
                 // <TBD> Should probably load a default message here
@@ -675,7 +764,7 @@
 
         // Lock the mutex and load the text
         {
-            XMLMutexLock lockInit(&gScannerMutex);
+            XMLMutexLock lockInit(&gScannerMutex());
             if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
             {
                 // <TBD> Should probably load a default message here
diff --git a/src/parsers/Makefile.in b/src/parsers/Makefile.in
index 6f84d1b..0c0bb06 100644
--- a/src/parsers/Makefile.in
+++ b/src/parsers/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:50  twl
-# Initial revision
+# Revision 1.2  1999/11/23 01:59:56  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:50  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:44:53  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -117,9 +122,6 @@
 	@for file in $(PARSERS_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
 	done
-	@for file in $(PARSERS_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE) object files ..."
 	@for file in $(PARSERS_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/src/runConfigure b/src/runConfigure
index 391d8d4..4fffa65 100755
--- a/src/runConfigure
+++ b/src/runConfigure
@@ -58,8 +58,62 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:02:57  twl
-# Initial revision
+# Revision 1.9  1999/12/03 01:19:11  rahulj
+# Split export statements into two. assignment and then export. Solaris is happy now
+#
+# Revision 1.8  1999/12/02 18:10:51  dirkx
+# Changed exit codes from -1 to '1'. Added indirection.
+#
+# Date: Thu, 2 Dec 1999 17:47:39 +0000
+# From: Jonathan McDowell <noodles@earth.li>
+# Reply-To: xerces-dev@xml.apache.org
+# To: xerces-dev@xml.apache.org, rahulj@apache.org
+# Subject: Re: runConfigure script & bash
+#
+#
+# On Mon, Nov 29, 1999 at 10:29:13AM -0800, Rahul Jain wrote:
+#
+# > > I'm quite happy to produce a patch that makes it work under both
+# > > FreeBSD's sh and bash - I would assume this would work under most sh
+# > > like shells.
+# > Please post the changes for FreeBSD and I will test the changes on
+# > other unix's and do the integration.
+#
+# I sat down to do this today and found that it can be trivially fixed by
+# changing all the "exit -1" instances to "exit 1" - it seems the /bin/sh
+# with FreeBSD doesn't like negative result codes. It seems a bit
+# pointless to submit a patch for this, so can someone with CVS access
+# change this please?
+#
+# J.
+#
+# --
+#
+# PR:
+# Obtained from:
+# Submitted by:
+# Reviewed by:
+#
+# Revision 1.7  1999/12/01 17:16:16  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
+# Revision 1.6  1999/11/24 23:21:42  rahulj
+# Now works under HPUX 10.20 with CC and aCC, with ICU and native
+distclean target now remove and remaining Makefile(s)
+clean target now removes the template repository directory
+#
+# Revision 1.5  1999/11/23 01:59:33  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.4  1999/11/17 22:36:33  rahulj
+# Code works with ICU transcoding service
+#
+# Revision 1.3  1999/11/12 20:38:50  rahulj
+# Replaced XML4CROOT with XERCESCROOT.
+#
+# Revision 1.1.1.1  1999/11/09 01:02:57  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:44:09  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -67,20 +121,30 @@
 #
 
 #
-# runConfigure : This script will run the "configure" script for the appropriate platform
-# Only supported platforms are recognized
+# runConfigure:
+#    This script will run the "configure" script for the appropriate
+#    platform. Only supported platforms are recognized.
+#
+# The following variables are defined and exported at the end of this
+# script.
+#
+# LIBS
+# LDFLAGS
+# CXXFLAGS
+# TRANSCODER
+#
 
 usage()
 {
     echo "runConfigure: Helper script to run \"configure\" for one of the supported platforms"
     echo "Usage: runConfigure \"options\""
     echo "       where options may be any of the following:"
-    echo "       -p <platform> (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11')"
-    echo "       -c <C compiler name> (e.g. gcc or xlc)"
-    echo "       -x <C++ compiler name> (e.g. g++ or xlC)"
+    echo "       -p <platform> (accepts 'aix', 'linux', 'solaris', 'hp-10', 'hp-11', 'irix')"
+    echo "       -c <C compiler name> (e.g. gcc, cc, xlc)"
+    echo "       -x <C++ compiler name> (e.g. g++, CC, xlC)"
     echo "       -d (specifies that you want to build debug version)"
-    echo "       -m <message loader> can be 'inmem', 'icu' or 'iconv'"
-    echo "       -n <net accessor> can be 'fileonly' or 'libwww'"
+    echo "       -m <message loader> can be 'inmem', 'icu', 'iconv'"
+    echo "       -n <net accessor> can be 'fileonly', 'libwww'"
     echo "       -t <transcoder> can be 'icu' or 'native'"
     echo "       -r <thread option> can be 'pthread' or 'dce' (only used on HP-11)"
     echo "       -l <extra linker options>"
@@ -88,24 +152,26 @@
     echo "       -h (to get help on the above commands)"
 }
 
+ERROR_EXIT_CODE=1
+
 if test ${1}o = "o"; then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
-if test ${XML4CROOT}o = "o"; then
-   echo ERROR : You have not set your XML4CROOT environment variable
+if test ${XERCESCROOT}o = "o"; then
+   echo ERROR : You have not set your XERCESCROOT environment variable
    echo Though this environment variable has nothing to do with creating makefiles,
    echo this is just a general warning to prevent you from pitfalls in future. Please
-   echo set an environment variable called XML4CROOT to indicate where you installed
-   echo the XML4C files, and run this command again to proceed. See the documentation
+   echo set an environment variable called XERCESCROOT to indicate where you installed
+   echo the XERCES-C files, and run this command again to proceed. See the documentation
    echo for an example if you are still confused.
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 if test $1 = "-h"; then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 # Get the command line parameters
@@ -113,13 +179,13 @@
 if [ $? != 0 ]
    then
    usage
-   exit -1
+   exit ${ERROR_EXIT_CODE}
 fi
 
 # Set up the default values for each parameter
 debug=off                # by default debug is off
 transcoder=native        # by default use native transcoder
-msgloader=iconv          # by default use native transcoder
+msgloader=inmem          # by default use native transcoder
 netaccessor=fileonly     # by default use fileonly
 
 for i in $*
@@ -157,7 +223,7 @@
    
    -h) 
         usage
-        exit -1;; 
+        exit ${ERROR_EXIT_CODE};; 
    
    --) 
         shift; break;; 
@@ -170,149 +236,195 @@
 echo "C++ Compiler: $cppcompiler"
 echo "Extra compile options: $compileroption"
 echo "Extra link options: $linkeroption"
-if test $debug = "off"; then
-    echo "Debug is OFF"
-    debugflag="-w -O";
-else
-    echo "Debug is ON"
-    debugflag="-g";
-fi
 echo "Message Loader: $msgloader"
 echo "Net Accessor: $netaccessor"
 echo "Transcoder: $transcoder"
 echo "Thread option: $thread"
 
+
+#
 # Now check if the options are correct or not, bail out if incorrect
+#
+
 case $platform in
-   aix | linux | solaris | hp-10 | hp-11)
+   aix | linux | solaris | hp-10 | hp-11 | irix)
        # platform has been recognized
        ;;
    *)
       echo "I do not recognize the platform '$platform'. Please type '${0} -h' for help."
-      exit -1;;
+      exit ${ERROR_EXIT_CODE};;
 esac
 
-# Now check for the transcoder
-transcoderoption="-DXML_USE_NATIVE_TRANSCODER"
+
+#
+# Enable debugging or not...
+#
+
+if test $debug = "off"; then
+    echo "Debug is OFF"
+    debugflag="-O";
+else
+    echo "Debug is ON"
+    debugflag="-g";
+fi
+
+
+
+#
+# Check for the threading option only for hp-11
+#
+
+threadingLibs="-lpthread"
+if test $platform = "hp-11"; then
+    if test $thread; then
+    case $thread in
+       pthread)
+           ;;
+    
+       dce)
+           threadingLibs="-lcma";
+           threadingDefines="-D_PTHREADS_DRAFT4 -DXML_USE_DCE" ;;
+    
+       *)
+           echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help."
+           exit ${ERROR_EXIT_CODE};;
+    esac
+    fi
+elif test $platform = "aix"; then
+    threadingLibs="-lpthreads"
+elif test $platform = "hp-10"; then
+    threadingLibs="-lcma"
+    threadingDefines="-DXML_USE_DCE"
+fi
+
+
+#
+# Now check for what kind of transcoding service is desired.
+#
+
+transcodingDefines="-DXML_USE_NATIVE_TRANSCODER"
 TRANSCODER=NATIVE
 
 if test $transcoder; then
 case $transcoder in
    icu)
-       transcoderoption="-DXML_USE_ICU_TRANSCODER" ;
-       TRANSCODER=ICU ;;
+       if test -z $ICUROOT; then
+           echo '***Error*** ICUROOT environment variable not defined. Exiting...';
+           exit ${ERROR_EXIT_CODE};
+       fi
+       transcodingDefines="-DXML_USE_ICU_TRANSCODER -I${ICUROOT}/include";
+       transcodingLibs="-L${ICUROOT}/lib -licu-uc";
+       TRANSCODER=ICU;;
 
    native)
-       transcoderoption="-DXML_USE_NATIVE_TRANSCODER" ;
-       TRANSCODER=NATIVE ;;
+       ;;
 
    *)
       echo "I do not recognize the transcoder option '$transcoder'. Please type '${0} -h' for help."
-      exit -1;;
+      exit ${ERROR_EXIT_CODE};;
 esac
 fi
 
 export TRANSCODER
 
+
+#
 # Now check for the message loader
-MESSAGELOADER=INMEM;   # By default use in-memory
-msgloaderoption="-DXML_USE_INMEM_MESSAGELOADER"
+#
+
+MESSAGELOADER=INMEM         # By default use in-memory
+msgloaderDefines="-DXML_USE_INMEM_MESSAGELOADER"
 
 if test $msgloader ; then
 case $msgloader in
    icu)
+       if test -z $ICUROOT ; then
+           echo '***Error*** ICUROOT environment variable not defined. Exiting...';
+           exit ${ERROR_EXIT_CODE};
+       fi
        MESSAGELOADER=ICU;
-       msgloaderoption="-DXML_USE_ICU_MESSAGELOADER" ;;
+       msgloaderDefines="-DXML_USE_ICU_MESSAGELOADER" ;;
 
    inmem)
-       MESSAGELOADER=INMEM;
-       msgloaderoption="-DXML_USE_INMEM_MESSAGELOADER" ;;
+       ;;
 
    iconv)
        MESSAGELOADER=ICONV;
-       msgloaderoption="-DXML_USE_ICONV_MESSAGELOADER" ;;
+       msgloaderDefines="-DXML_USE_ICONV_MESSAGELOADER" ;;
 
    *)
-      echo "I do not recognize the message loader option '$msgloader'. Please type '${0} -h' for help."
-      exit -1;;
+      echo "I do not recognize the message loader option '$msgloader'. Please type '${0} -h' for help.";
+      exit ${ERROR_EXIT_CODE};;
 esac
 fi
 
 export MESSAGELOADER
 
-# Check for the threading option only for hp-11
-if test $platform = "hp-11"; then
-    if test $thread; then
-    case $thread in
-       pthread)
-           threadingoption="-DXML_USE_PTHREAD" ;;
-    
-       dce)
-           threadingoption="-DXML_USE_DCE" ;;
-    
-       *)
-          echo "I do not recognize the thread option '$thread'. Please type '${0} -h' for help."
-          exit -1;;
-    esac
-    else
-          echo "You must provide a thread option for HPUX-11". Cannot proceed any further.
-          exit -1;
-    fi
+
+
+
+#
+# Check for the type of net accessor
+#
+
+USELIBWWW=0;                   # By default use file-only
+if test $netaccessor ; then
+case $netaccessor in
+   fileonly)
+       netaccessorDefines="" ;;
+
+   libwww)
+       if test -z ${LIBWWWROOT} ; then
+           echo "You have not defined your LIBWWWROOT environment variable. Cannot proceed further ..."
+           exit ${ERROR_EXIT_CODE};
+       fi
+       netaccessorDefines="-DXML_USE_NETACCESSOR_LIBWWW -I${LIBWWWROOT}/include" ;
+       netaccessorLibs="-L${LIBWWWROOT}/lib -lwww";
+       USELIBWWW=1;; 
+
+   *)
+      echo "I do not recognize the netaccessor option '$netaccessor'. Please type '${0} -h' for help."
+      exit ${ERROR_EXIT_CODE};;
+esac
 fi
 
+export USELIBWWW
+
+
+
+#
 # Set the C compiler and C++ compiler environment variables
-CC=$ccompiler; export CC
-CXX=$cppcompiler; export CXX
+#
 
 case $cppcompiler in
-   xlC | xlc | xlC_r | xlc_r)
-       LDFLAGS="-lC"; export LDFLAGS
-       LIBS="-L/usr/lpp/xlC/lib"; export LIBS ;;
-
-   g++ | c++)
-       LDFLAGS="-lc"; export LDFLAGS
-       LIBS="-L/usr/local/lib"; export LIBS ;;
-
-   cc | CC)
-       LDFLAGS="-lC"; export LDFLAGS
-       LIBS="-L/usr/lib -L/usr/ccs/lib"; export LIBS ;;
-
-   acc | aCC)
-       LDFLAGS="-lC"; export LDFLAGS
-       LIBS="-L/usr/lib -L/opt/aCC/lib"; export LIBS ;;
+   xlC | xlc | xlC_r | xlc_r | g++ | c++ | cc | CC | aCC)
+      ;;
 
    *)
       echo "I do not recognize the C++ compiler '$cppcompiler'. Continuing anyway ..." 
       ;;
 esac
 
-USELIBWWW=0;   # By default use file-only
-# Check for the type of net accessor
-if test $netaccessor ; then
-case $netaccessor in
-   fileonly)
-       netaccessoroption="" ;;
+CC="$ccompiler"
+export CC
 
-   libwww)
-       if test -z ${LIBWWWROOT} ; then
-           echo "You have not defined your LIBWWWROOT environment variable. Cannot proceed further ..."
-           exit -1;
-       fi
-       netaccessoroption="-DXML_USE_NETACCESSOR_LIBWWW -I${LIBWWWROOT}/include" ;
-       LIBS="$LIBS -L${LIBWWWROOT}/lib -lwww";
-       USELIBWWW=1;; 
+CXX="$cppcompiler"
+export CXX
 
-   *)
-      echo "I do not recognize the netaccessor option '$netaccessor'. Please type '${0} -h' for help."
-      exit -1;;
-esac
-fi
 
-export USELIBWWW;
-
+#
 # Set the extra C and C++ compiler flags
-CXXFLAGS="$debugflag $compileroption $transcoderoption $msgloaderoption $threadingoption $netaccessoroption"; export CXXFLAGS
-CFLAGS="$debugflag $compileroption $transcoderoption $msgloaderoption $threadingoption $netaccessoroption"; export CFLAGS
+#
+
+CXXFLAGS="$debugflag $transcodingDefines $msgloaderDefines $threadingDefines $netaccessorDefines"
+export CXXFLAGS
+
+CFLAGS="$debugflag $transcodingDefines $msgloaderDefines $threadingDefines $netaccessorDefines"
+export CFLAGS
+
+LIBS="$transcodingLibs $threadingLibs $netaccessorLibs"
+export LIBS
+
 
 echo
 rm -f config.cache
@@ -322,7 +434,7 @@
 
 echo
 echo If the result of the above commands look OK to you, go to the directory
-echo ${XML4CROOT}/src and type \"make\" to make the XML4C system.
+echo ${XERECSCROOT}/src and type \"make\" to make the XERECS-C system.
 
-exit 0;
+exit  0;
 
diff --git a/src/sax/Makefile.in b/src/sax/Makefile.in
index a1ea3ab..458b8dc 100644
--- a/src/sax/Makefile.in
+++ b/src/sax/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:46  twl
-# Initial revision
+# Revision 1.2  1999/11/23 01:59:59  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:46  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:01  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -127,9 +132,6 @@
 	@for file in $(SAX_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
 	done
-	@for file in $(SAX_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE) object files ..."
 	@for file in $(SAX_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/src/util/AutoSense.hpp b/src/util/AutoSense.hpp
index 3295062..5b087d6 100644
--- a/src/util/AutoSense.hpp
+++ b/src/util/AutoSense.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:03:55  twl
- * Initial revision
+ * Revision 1.2  1999/12/01 17:16:16  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ * Revision 1.1.1.1  1999/11/09 01:03:55  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:03  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -69,7 +72,7 @@
 
 // ---------------------------------------------------------------------------
 //  This section attempts to auto detect the operating system. It will set
-//  up XML4C specific defines that are used by the rest of the code.
+//  up XercesC specific defines that are used by the rest of the code.
 // ---------------------------------------------------------------------------
 #if defined(_AIX)
     #define XML_AIX
@@ -85,6 +88,9 @@
 #elif defined(__linux__)
     #define XML_LINUX
     #define XML_UNIX
+#elif defined(IRIX)
+    #define XML_IRIX
+    #define XML_UNIX
 #elif defined(__MVS__)
     #define XML_OE390
     #define XML_UNIX
@@ -149,6 +155,8 @@
     #elif (__cplusplus == 199707 || __cplusplus == 199711)
         #define XML_HPUX_aCC
     #endif
+#elif defined(XML_IRIX)
+    #define XML_MIPSPRO_CC
 #elif defined(XML_TANDEM)
     #define XML_TANDEMCC
 #elif defined(__linux__)
diff --git a/src/util/Compilers/BorlandCDefs.hpp b/src/util/Compilers/BorlandCDefs.hpp
index 7c60829..2314a66 100644
--- a/src/util/Compilers/BorlandCDefs.hpp
+++ b/src/util/Compilers/BorlandCDefs.hpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:28  twl
- * Initial revision
+ * Revision 1.2  1999/12/02 19:02:57  roddey
+ * Get rid of a few statically defined XMLMutex objects, and lazy eval them
+ * using atomic compare and swap. I somehow let it get by me that we don't
+ * want any static/global objects at all.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:28  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:22  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -95,3 +100,10 @@
 #ifdef _DEBUG
 #define XML4C_DEBUG
 #endif
+
+
+// ---------------------------------------------------------------------------
+//  The name of the DLL as built by the Borland projects. At this time, it
+//  does not use the versioning stuff.
+// ---------------------------------------------------------------------------
+const char* const XML4C_DLLName = "XercesLib;
diff --git a/src/util/Compilers/CSetDefs.hpp b/src/util/Compilers/CSetDefs.hpp
index ffdb3f2..a14ff72 100644
--- a/src/util/Compilers/CSetDefs.hpp
+++ b/src/util/Compilers/CSetDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:31  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:51  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:31  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:22  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -123,4 +126,4 @@
 // ---------------------------------------------------------------------------
 //  The name of the DLL that is built by the CSet C++ version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/CodeWarriorDefs.hpp b/src/util/Compilers/CodeWarriorDefs.hpp
index c2bbcc3..aafea12 100644
--- a/src/util/Compilers/CodeWarriorDefs.hpp
+++ b/src/util/Compilers/CodeWarriorDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:29  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:53  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:29  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:22  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -112,4 +115,4 @@
 //  versioning string. This is defined in XML4CDefs.hpp which is what this
 //  file is included into.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "IXXML4C" XML4C_DLLVersionStr;
+const char* const XML4C_DLLName = "xerces-c" XML4C_DLLVersionStr;
diff --git a/src/util/Compilers/GCCDefs.hpp b/src/util/Compilers/GCCDefs.hpp
index 73c0c38..3e20f27 100644
--- a/src/util/Compilers/GCCDefs.hpp
+++ b/src/util/Compilers/GCCDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:32  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:54  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:32  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:23  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -117,4 +120,4 @@
 // ---------------------------------------------------------------------------
 //  The name of the DLL that is built by the GCC version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/GNUGDefs.hpp b/src/util/Compilers/GNUGDefs.hpp
index 227bcb2..ac71592 100644
--- a/src/util/Compilers/GNUGDefs.hpp
+++ b/src/util/Compilers/GNUGDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:33  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:55  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:33  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:23  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -106,4 +109,4 @@
 // ---------------------------------------------------------------------------
 //  The name of the DLL that is built by the GNUG version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/HPCCDefs.hpp b/src/util/Compilers/HPCCDefs.hpp
index 42f7a55..a47b9a0 100644
--- a/src/util/Compilers/HPCCDefs.hpp
+++ b/src/util/Compilers/HPCCDefs.hpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:34  twl
- * Initial revision
+ * Revision 1.4  1999/11/23 02:00:12  rahulj
+ * Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+ *
+ * Revision 1.3  1999/11/12 20:36:57  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:34  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:23  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -84,6 +91,14 @@
 //  Define our version of the XML character
 // ---------------------------------------------------------------------------
 typedef unsigned short XMLCh;
+typedef unsigned short UTF16Ch;
+
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
 
 
 // ---------------------------------------------------------------------------
@@ -95,14 +110,6 @@
 
 
 // ---------------------------------------------------------------------------
-//  Force on the XML4C debug token if it was on in the build environment
-// ---------------------------------------------------------------------------
-#if 0
-#define XML4C_DEBUG
-#endif
-
-
-// ---------------------------------------------------------------------------
 //  The name of the DLL that is built by the HP CC version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/IBMVAOS2Defs.hpp b/src/util/Compilers/IBMVAOS2Defs.hpp
index ae6a308..414ef10 100644
--- a/src/util/Compilers/IBMVAOS2Defs.hpp
+++ b/src/util/Compilers/IBMVAOS2Defs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:35  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:58  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:35  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -102,7 +105,7 @@
 //  versioning string. This is defined in XML4CDefs.hpp which is what this
 //  file is included into.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "VAOXML4C" XML4C_DLLVersionStr;
+const char* const XML4C_DLLName = "VAOXERCESC" XML4C_DLLVersionStr;
 
 
 // ---------------------------------------------------------------------------
diff --git a/src/util/Compilers/IBMVAW32Defs.hpp b/src/util/Compilers/IBMVAW32Defs.hpp
index 5d1f4fe..dddbed9 100644
--- a/src/util/Compilers/IBMVAW32Defs.hpp
+++ b/src/util/Compilers/IBMVAW32Defs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:36  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:36:59  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:36  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -103,4 +106,4 @@
 //  versioning string. This is defined in XML4CDefs.hpp which is what this
 //  file is included into.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "VAWXML4C" XML4C_DLLVersionStr;
+const char* const XML4C_DLLName = "VAWXERCESC" XML4C_DLLVersionStr;
diff --git a/src/util/Compilers/MIPSproDefs.cpp b/src/util/Compilers/MIPSproDefs.cpp
new file mode 100644
index 0000000..1f5373e
--- /dev/null
+++ b/src/util/Compilers/MIPSproDefs.cpp
@@ -0,0 +1,83 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <util/Compilers/MIPSproDefs.hpp>
+#include <strings.h>
+
+
+int stricmp(const char* const str1, const char* const  str2) 
+{
+    return strcasecmp(str1, str2);
+}
+
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count)
+{
+    if (count == 0)
+        return 0;
+
+    return strncasecmp( str1, str2, (size_t)count);
+}
diff --git a/src/util/Compilers/MIPSproDefs.hpp b/src/util/Compilers/MIPSproDefs.hpp
new file mode 100644
index 0000000..243c953
--- /dev/null
+++ b/src/util/Compilers/MIPSproDefs.hpp
@@ -0,0 +1,99 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+// Define these away for this platform
+// ---------------------------------------------------------------------------
+#define PLATFORM_EXPORT
+#define PLATFORM_IMPORT
+
+
+// ---------------------------------------------------------------------------
+//  Define our version of the XML character
+// ---------------------------------------------------------------------------
+typedef unsigned short XMLCh;
+typedef unsigned short UTF16Ch;
+
+
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
+
+
+// ---------------------------------------------------------------------------
+//  Provide prototypes for some string methods that are not always available
+//  on all platforms.
+// ---------------------------------------------------------------------------
+int stricmp(const char* const str1, const char* const  str2);
+int strnicmp(const char* const str1, const char* const  str2, const unsigned int count);
+
+// ---------------------------------------------------------------------------
+//  The name of the DSO that is built by the MIPSpro C++ version of the
+//  system. We append a previously defined token which holds the DSO
+//  versioning string. This is defined in XML4CDefs.hpp which is what this
+//  file is included into.
+// ---------------------------------------------------------------------------
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/Makefile.in b/src/util/Compilers/Makefile.in
index fd503c9..77ac568 100644
--- a/src/util/Compilers/Makefile.in
+++ b/src/util/Compilers/Makefile.in
@@ -55,8 +55,15 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:36  twl
-# Initial revision
+# Revision 1.3  1999/12/01 17:16:17  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
+# Revision 1.2  1999/11/23 02:00:13  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:36  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:24  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +71,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -91,28 +99,32 @@
 	IBMVAW32Defs.hpp \
 	SunCCDefs.hpp \
 	SunKaiDefs.hpp \
+    MIPSproDefs.hpp \
 	TandemCCDefs.hpp \
 	VCPPDefs.hpp
 
 
-ifeq (${COMPILER},CC)
+ifeq (${CXX},CC)
     ifeq (${PLATFORM},SOLARIS)
         CPP_OBJECTS = SunCCDefs.o
     endif
     ifeq (${PLATFORM},HPUX)
         CPP_OBJECTS = HPCCDefs.o
     endif
+    ifeq (${PLATFORM},IRIX)
+        CPP_OBJECTS = MIPSproDefs.o
+    endif
 endif
-ifeq (${COMPILER},xlC_r)
+ifeq (${CXX},xlC_r)
     CPP_OBJECTS = CSetDefs.o
 endif
-ifeq (${COMPILER},g++)
+ifeq (${CXX},g++)
     CPP_OBJECTS = GCCDefs.o
 endif
-ifeq (${COMPILER},aCC)
+ifeq (${CXX},aCC)
 	CPP_OBJECTS = HPCCDefs.o
 endif
-ifeq (${COMPILER},c++)
+ifeq (${CXX},c++)
     ifeq (${PLATFORM},OS390)
         CPP_OBJECTS = MVSCPPDefs.o
     endif
diff --git a/src/util/Compilers/SunCCDefs.hpp b/src/util/Compilers/SunCCDefs.hpp
index 570be6b..8a179e9 100644
--- a/src/util/Compilers/SunCCDefs.hpp
+++ b/src/util/Compilers/SunCCDefs.hpp
@@ -56,8 +56,18 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:39  twl
- * Initial revision
+ * Revision 1.4  1999/11/17 21:49:42  abagchi
+ * Added the definitions of XMLUInt16 and XMLUInt32
+ * PR:
+ * Obtained from:
+ * Submitted by:
+ * Reviewed by:
+ *
+ * Revision 1.3  1999/11/12 20:37:00  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:39  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:25  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -83,6 +93,11 @@
 // ---------------------------------------------------------------------------
 typedef unsigned short XMLCh;
 
+// ---------------------------------------------------------------------------
+//  Define unsigned 16 and 32 bits integers
+// ---------------------------------------------------------------------------
+typedef unsigned short  XMLUInt16;
+typedef unsigned int    XMLUInt32;
 
 // ---------------------------------------------------------------------------
 //  Force on the XML4C debug token if it was on in the build environment
@@ -116,4 +131,4 @@
 // ---------------------------------------------------------------------------
 //  The name of the DLL that is built by the CC version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/SunKaiDefs.hpp b/src/util/Compilers/SunKaiDefs.hpp
index 158d181..eada6e2 100644
--- a/src/util/Compilers/SunKaiDefs.hpp
+++ b/src/util/Compilers/SunKaiDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:40  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:37:01  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:40  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:25  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -112,7 +115,7 @@
 //  versioning string. This is defined in XML4CDefs.hpp which is what this
 //  file is included into.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "KAIXML4C" XML4C_DLLVersionStr;
+const char* const XML4C_DLLName = "KAIXERCESC" XML4C_DLLVersionStr;
 
 
 // ---------------------------------------------------------------------------
diff --git a/src/util/Compilers/TandemCCDefs.hpp b/src/util/Compilers/TandemCCDefs.hpp
index 9fbf33e..2fb17bb 100644
--- a/src/util/Compilers/TandemCCDefs.hpp
+++ b/src/util/Compilers/TandemCCDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:40  twl
- * Initial revision
+ * Revision 1.3  1999/11/12 20:37:03  rahulj
+ * Changed library name to xerces-c.lib.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:40  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:25  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -117,4 +120,4 @@
 // ---------------------------------------------------------------------------
 //  The name of the library that is built by the Tandem version of the system.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "libIXXML4C";
+const char* const XML4C_DLLName = "libxerces-c";
diff --git a/src/util/Compilers/VCPPDefs.hpp b/src/util/Compilers/VCPPDefs.hpp
index a0411c6..b9dd50e 100644
--- a/src/util/Compilers/VCPPDefs.hpp
+++ b/src/util/Compilers/VCPPDefs.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:41  twl
- * Initial revision
+ * Revision 1.2  1999/11/10 21:26:14  abagchi
+ * Changed the DLL name
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:41  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:25  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -113,4 +116,4 @@
 //  versioning string. This is defined in XML4CDefs.hpp which is what this
 //  file is included into.
 // ---------------------------------------------------------------------------
-const char* const XML4C_DLLName = "IXXML4C" XML4C_DLLVersionStr;
+const char* const XML4C_DLLName = "xerces-c_" XML4C_DLLVersionStr;
diff --git a/src/util/Makefile.in b/src/util/Makefile.in
index 424c60a..e1186b4 100644
--- a/src/util/Makefile.in
+++ b/src/util/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:04:40  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:00:05  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:04:40  twl
+# Initial checkin
 #
 # Revision 1.4  1999/11/08 20:45:09  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/MsgLoaders/ICU/ICUMsgLoader.cpp b/src/util/MsgLoaders/ICU/ICUMsgLoader.cpp
index 066df4a..a54ca6e 100644
--- a/src/util/MsgLoaders/ICU/ICUMsgLoader.cpp
+++ b/src/util/MsgLoaders/ICU/ICUMsgLoader.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:23  twl
- * Initial revision
+ * Revision 1.2  1999/11/19 21:24:03  aruna1
+ * incorporated ICU 1.3.1 related changes int he file
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:23  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:26  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -117,9 +120,9 @@
     }
 
     // Ok, lets try to create the bundle now
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     fBundle = new ResourceBundle(tmpPath, err);
-    if (!SUCCESS(err))
+    if (!U_SUCCESS(err))
     {
         // <TBD> Need to panic again here?
     }
diff --git a/src/util/MsgLoaders/ICU/Makefile.in b/src/util/MsgLoaders/ICU/Makefile.in
index 49a6a77..3975dfc 100644
--- a/src/util/MsgLoaders/ICU/Makefile.in
+++ b/src/util/MsgLoaders/ICU/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:25  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:00:18  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:25  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:26  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/MsgLoaders/InMemory/InMemMsgLoader.cpp b/src/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
index 4ea8e7b..77cd90b 100644
--- a/src/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
+++ b/src/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:19  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:48:47  rahulj
+ * Removed byteswapping logic as its not needed for InMemory message loading.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:19  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:26  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -123,11 +126,7 @@
         const XMLCh* srcPtr = gXMLErrArray[msgToLoad - 1];
         while (*srcPtr && (outPtr < endPtr))
         {
-            #if defined(ENDIANMODE_LITTLE)
             *outPtr++ = *srcPtr++;
-            #else
-            *outPtr++ = BitOps::swapBytes(*srcPtr++);
-            #endif
         }
         *outPtr = 0;
     }
@@ -136,11 +135,7 @@
         const XMLCh* srcPtr = gXMLExceptArray[msgToLoad - 1];
         while (*srcPtr && (outPtr < endPtr))
         {
-            #if defined(ENDIANMODE_LITTLE)
             *outPtr++ = *srcPtr++;
-            #else
-            *outPtr++ = BitOps::swapBytes(*srcPtr++);
-            #endif
         }
         *outPtr = 0;
     }
@@ -149,11 +144,7 @@
         const XMLCh* srcPtr = gXMLValidityArray[msgToLoad - 1];
         while (*srcPtr && (outPtr < endPtr))
         {
-            #if defined(ENDIANMODE_LITTLE)
             *outPtr++ = *srcPtr++;
-            #else
-            *outPtr++ = BitOps::swapBytes(*srcPtr++);
-            #endif
         }
         *outPtr = 0;
     }
diff --git a/src/util/MsgLoaders/InMemory/Makefile.in b/src/util/MsgLoaders/InMemory/Makefile.in
index e74f099..bdc1a8c 100644
--- a/src/util/MsgLoaders/InMemory/Makefile.in
+++ b/src/util/MsgLoaders/InMemory/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:20  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:00:22  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:20  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:27  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/MsgLoaders/MsgCatalog/Makefile.in b/src/util/MsgLoaders/MsgCatalog/Makefile.in
index 74aabbe..35aa461 100644
--- a/src/util/MsgLoaders/MsgCatalog/Makefile.in
+++ b/src/util/MsgLoaders/MsgCatalog/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:07:16  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:00:25  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:07:16  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:27  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/Mutexes.cpp b/src/util/Mutexes.cpp
index 55d9732..4142de7 100644
--- a/src/util/Mutexes.cpp
+++ b/src/util/Mutexes.cpp
@@ -56,8 +56,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:04:45  twl
- * Initial revision
+ * Revision 1.2  1999/12/02 19:42:35  roddey
+ * Got rid of attempts to fancy/schmanzy lazy eval mutex implementation and just
+ * force anyone who needs a global/static mutex to lazy eval that themselves.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:04:45  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:09  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -82,6 +86,8 @@
 
     fHandle(0)
 {
+    // Ask the per-platform driver to make us a mutex
+    fHandle = XMLPlatformUtils::makeMutex();
 }
 
 
@@ -100,12 +106,6 @@
 // ---------------------------------------------------------------------------
 void XMLMutex::lock()
 {
-    if (!fHandle)
-    {
-        void* tmpHandle = XMLPlatformUtils::makeMutex();
-        if (XMLPlatformUtils::compareAndSwap(&fHandle, tmpHandle, 0) != 0)
-            XMLPlatformUtils::closeMutex(tmpHandle);
-    }
     XMLPlatformUtils::lockMutex(fHandle);
 }
 
diff --git a/src/util/Platforms/AIX/AIXPlatformUtils.cpp b/src/util/Platforms/AIX/AIXPlatformUtils.cpp
index 8f408ab..e0b7d61 100644
--- a/src/util/Platforms/AIX/AIXPlatformUtils.cpp
+++ b/src/util/Platforms/AIX/AIXPlatformUtils.cpp
@@ -56,8 +56,17 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:11  twl
- * Initial revision
+ * Revision 1.4  1999/12/03 02:35:22  aruna1
+ * mutex recursive attribute introduced in makeMutex
+ *
+ * Revision 1.3  1999/12/01 02:55:42  aruna1
+ * Added panic calls and modified makeTransService for  AIX
+ *
+ * Revision 1.2  1999/11/23 02:00:34  rahulj
+ * Code now works under HPUX 11. Tested inmemory message loader.Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:11  twl
+ * Initial checkin
  *
  * Revision 1.6  1999/11/08 20:45:29  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -73,10 +82,6 @@
 #include    <sys/atomic_op.h>
 #endif
 
-#include    <util/PlatformUtils.hpp>
-#include    <util/RuntimeException.hpp>
-#include    <util/Janitor.hpp>
-#include    <util/XMLString.hpp>
 #include    <stdio.h>
 #include    <stdlib.h>
 #include    <errno.h>
@@ -86,6 +91,11 @@
 #include    <unistd.h>
 #include 	<sys/ldr.h>
 
+#include    <util/PlatformUtils.hpp>
+#include    <util/RuntimeException.hpp>
+#include    <util/Janitor.hpp>
+#include    <util/XMLString.hpp>
+
 #if defined (XML_USE_ICU_TRANSCODER)
     #include <util/Transcoders/ICU/ICUTransService.hpp>
 #else   // use native transcoder
@@ -145,7 +155,7 @@
     // Here you would also set the fgLibLocation global variable
     // XMLPlatformUtils::fgLibLocation is the variable to be set
 
-    static const char * libraryPath = 0;
+    char * libraryPath = 0;
 
     char libName[256];
     strcpy(libName, XML4C_DLLName);
@@ -156,16 +166,12 @@
     char buf[bufLen];		   // it's in the stack anyway
 
     if (load(libName, L_LIBPATH_EXEC, ".") == NULL) {
-		char errorBuffer[1024];
-        sprintf(errorBuffer, "Could not load library '%s'", libName);
-		perror (errorBuffer);
-        exit(-1);
+		panic( XMLPlatformUtils::Panic_CantFindLib );
     }
 
     int retval = loadquery(L_GETINFO, buf, bufLen);
     if (retval == -1) {
-        fprintf(stderr, "Unable to load library '%s'.\n", libName);
-        exit(-1);
+		panic( XMLPlatformUtils::Panic_CantFindLib );
     }
 
     struct ld_info* oneBufPtr = (struct ld_info*)buf;
@@ -198,7 +204,7 @@
 
     if (XMLPlatformUtils::fgLibLocation == NULL)
     {
-        panic( XMLPlatformUtils::Panic_NoTransService );
+        panic( XMLPlatformUtils::Panic_CantFindLib );
     }
 }
 
@@ -217,9 +223,8 @@
     //  in the .\Intl subdirectory under this DLL.
     //
 
-    static const char * xml4cIntlDirEnvVar = "ICU_DATA";
-    static const char * sharedLibEnvVar    = "LIBPATH";
-    static char * intlPath = 0;
+    static const char * xml4cIntlDirEnvVar	= "ICU_DATA";
+    char * 				intlPath 			= 0;
 
     char* envVal = getenv(xml4cIntlDirEnvVar);
     //check if environment variable is set
@@ -235,88 +240,27 @@
             strcat((char *) intlPath, "/");
         }
 		ICUTransService::setICUPath(intlPath);
-        if (intlPath != NULL) delete intlPath;
+        delete intlPath;
 
         return new ICUTransService;
     }
 
-    //
-    //  If we did not find the environment var, so lets try to go the auto
-    //  search route.
+ 	//
+    //  If the environment variable ICU_DATA is not set, assume that the
+    //  converter files are stored relative to the Xerces-C library.
     //
 
-    char libName[256];
-    strcpy(libName, XML4C_DLLName);
-    strcat(libName, gXML4CVersionStr);
-    strcat(libName, ".a");
+    unsigned int  lent = strlen(XMLPlatformUtils::fgLibLocation) +
+                         strlen("/icu/data/") + 1;
+    intlPath = new char[lent];
+    strcpy(intlPath, XMLPlatformUtils::fgLibLocation);
+    strcat(intlPath, "/icu/data/");
 
-    char* libEnvVar = getenv(sharedLibEnvVar);
-    char* libPath = NULL;
-
-    if (libEnvVar == NULL)
-    {
-        fprintf(stderr,
-                "Error: Could not locate i18n converter files.\n");
-        fprintf(stderr,
-                "Environment variable '%s' is not defined.\n", sharedLibEnvVar);
-        fprintf(stderr,
-                "Environment variable 'ICU_DATA' is also not defined.\n");
-        exit(-1);
-    }
-
-    //
-    // Its necessary to create a copy because strtok() modifies the
-    // string as it returns tokens. We don't want to modify the string
-    // returned to by getenv().
-    //
-
-    libPath = new char[strlen(libEnvVar) + 1];
-    strcpy(libPath, libEnvVar);
-
-    //First do the searching process for the first directory listing
-    //
-    char*  allPaths = libPath;
-    char*  libPathName;
-
-    while ((libPathName = strtok(allPaths, ":")) != NULL)
-    {
-        FILE*  dummyFptr = 0;
-        allPaths = 0;
-
-        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
-        strcpy(libfile, libPathName);
-        strcat(libfile, "/");
-        strcat(libfile, libName);
-
-        dummyFptr = (FILE *) fopen(libfile, "rb");
-        delete [] libfile;
-        if (dummyFptr != NULL)
-        {
-            fclose(dummyFptr);
-            intlPath =
-              new char[strlen(libPathName)+ strlen("/icu/data/")+1];
-            strcpy((char *) intlPath, libPathName);
-            strcat((char *) intlPath, "/icu/data/");
-            break;
-        }
-
-    } // while
-
-    delete libPath;
 	ICUTransService::setICUPath(intlPath);
-
-    if (intlPath == NULL)
-    {
-        panic( XMLPlatformUtils::Panic_NoTransService );
-    }
-    if (intlPath != NULL) delete intlPath;
+    delete intlPath;
 
     return new ICUTransService;
 }
-#elif defined (XML_USE_ICONV_TRANSCODER)
-{
-    return new IconvTransService;
-}
 #else
 {
     return new IconvTransService;
@@ -344,7 +288,7 @@
 
     catch(...)
     {
-        panic( XMLPlatformUtils::Panic_NoDefTranscoder );
+		 panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
     }
     return retVal;
 }
@@ -354,17 +298,26 @@
 // ---------------------------------------------------------------------------
 void XMLPlatformUtils::panic(const PanicReasons reason)
 {
-    //
+//
     //  We just print a message and exit
     //
-    printf("The XML4C system could not be initialized.\n");
-    printf("The most likely reason for this failure is the inability to find\n");
-    printf("the international encoding files. By default, the encoding files\n");
-    printf("have the extension .cnv and exist in a directory icu/data relative\n");
-    printf("to the XML4C shared library. If you have kept the converter files\n");
-    printf("in a different location, you need to set up an environment variable\n");
-    printf("called ICU_DATA which directly points to the directory where the\n");
-    printf("encoding files are kept.\n");
+
+    fprintf(stderr,
+        "The Xerces-C system could not be initialized.\n");
+    fprintf(stderr,
+        "If you are using ICU, then the most likely reason for this failure\n");
+    fprintf(stderr,
+        "is the inability to find the ICU coverter files. The converter files\n");
+    fprintf(stderr,
+        "have the extension .cnv and exist in a directory 'icu/data' relative\n");
+    fprintf(stderr,
+        "to the Xerces-C shared library. If you have installed the converter files\n");
+    fprintf(stderr,
+        "in a different location, you need to set up the environment variable\n");
+    fprintf(stderr,
+        "'ICU_DATA' to point directly to the directory containing the\n");
+    fprintf(stderr,
+        "converter files.\n");
 
     exit(-1);
 }
@@ -556,16 +509,21 @@
 void* XMLPlatformUtils::makeMutex()
 {
     pthread_mutex_t* mutex = new pthread_mutex_t;
-    if (mutex == NULL)
+    if (mutex ==  NULL)
     {
-		ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotCreate);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
     }
-
-    if (pthread_mutex_init(mutex, NULL))
+    pthread_mutexattr_t*  attr = new pthread_mutexattr_t;
+    pthread_mutexattr_init(attr);
+    pthread_mutexattr_setkind_np(attr, MUTEX_RECURSIVE_NP);
+    if (pthread_mutex_init(mutex, attr))
     {
-		ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotCreate);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
     }
-
+    pthread_mutexattr_destroy(attr);
+    delete attr;
     return (void*)(mutex);
 }
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
diff --git a/src/util/Platforms/HPUX/HPPlatformUtils.cpp b/src/util/Platforms/HPUX/HPPlatformUtils.cpp
index 8236d9a..2de293e 100644
--- a/src/util/Platforms/HPUX/HPPlatformUtils.cpp
+++ b/src/util/Platforms/HPUX/HPPlatformUtils.cpp
@@ -56,8 +56,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:05  twl
- * Initial revision
+ * Revision 1.2  1999/11/23 02:00:44  rahulj
+ * Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:05  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:29  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -84,25 +88,28 @@
 #include    <libgen.h>
 #include    <string.h>
 #include    <unistd.h>
-
 #include    <util/XMLString.hpp>
 #include    <util/XMLUni.hpp>
 
-#if defined (XML_USE_ICU_TRANSCODER)
+
+#if defined(XML_USE_ICU_TRANSCODER)
     #include <util/Transcoders/ICU/ICUTransService.hpp>
-#else   // use native transcoder
+#else
+    // Use native transcoder. Same as -DXML_USE_NATIVE_TRANSCODER
     #include <util/Transcoders/Iconv/IconvTransService.hpp>
 #endif
 
-#if defined (XML_USE_ICU_MESSAGELOADER)
+
+#if defined(XML_USE_ICU_MESSAGELOADER)
     #include <util/MsgLoaders/ICU/ICUMsgLoader.hpp>
-#elif defined (XML_USE_ICONV_MESSAGELOADER)
-    #include <util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp>
-#else   // use In-memory message loader
+
+#else
+    // Same as -DXML_USE_INMEM_MESSAGELOADER
     #include <util/MsgLoaders/InMemory/InMemMsgLoader.hpp>
 #endif
 
 
+
 #if !defined(XML_HPUX_KAICC)
 #include    <sys/timeb.h>             // does not work with KAI compiler
 #endif
@@ -191,6 +198,44 @@
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
     atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+
+
+    // Here you would also set the fgLibLocation global variable
+    // XMLPlatformUtils::fgLibLocation is the variable to be set
+
+    char*           libraryPath = 0;
+    char            libName[256];
+    shl_descriptor* desc = NULL;
+    int             ret = 0;
+    int             index = 1;
+
+    strcpy(libName, XML4C_DLLName);
+    strcat(libName, gXML4CVersionStr);
+    strcat(libName, ".sl");
+
+    ret = shl_get(index, &desc);
+    while (ret != -1)
+    {
+       char* fileName = desc->filename;
+       if (strstr(fileName, libName) != NULL)
+       {
+           char* lastSlash = strrchr(fileName, '/');
+           size_t chars_to_extract = lastSlash - fileName;
+           libraryPath = new char[chars_to_extract + 1];
+           strncpy(libraryPath, fileName, chars_to_extract);
+           libraryPath[chars_to_extract] = 0;
+           break;
+       }
+       index++;
+       ret = shl_get(index, &desc);
+    }
+
+    XMLPlatformUtils::fgLibLocation = libraryPath;
+
+    if (XMLPlatformUtils::fgLibLocation == NULL)
+    {
+        panic(XMLPlatformUtils::Panic_CantFindLib);
+    }
 }
 
 
@@ -211,15 +256,14 @@
     {
 #if defined (XML_USE_ICU_MESSAGELOADER)
         retVal = new ICUMsgLoader(msgDomain);
-#elif defined (XML_USE_ICONV_MESSAGELOADER)
-        retVal = new MsgCatalogLoader(msgDomain);
 #else
+        // same as -DXML_USE_INMEM_MESSAGELOADER
         retVal = new InMemMsgLoader(msgDomain);
 #endif
     }
     catch(...)
     {
-        panic(XMLPlatformUtils::Panic_NoDefTranscoder);
+        panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
     }
     return retVal;
 }
@@ -240,6 +284,7 @@
     //
 
     static const char * xml4cIntlDirEnvVar = "ICU_DATA";
+    char *              intlPath        = 0;
 
     //
     // Check if environment variable 'ICU_DATA' is set.
@@ -250,7 +295,7 @@
     if (envVal != NULL)
     {
         unsigned int pathLen  = strlen(envVal);
-        char*        intlPath = new char[pathLen + 2];
+        intlPath = new char[pathLen + 2];
 
         strcpy((char *) intlPath, envVal);
         if (envVal[pathLen - 1] != '/')
@@ -265,63 +310,31 @@
     }
 
     //
-    //  If we did not find the environment var, so lets try to go the auto
-    //  search route.
+    //  If the environment variable ICU_DATA is not set, assume that the
+    //  converter files are stored relative to the Xerces-C library.
     //
 
-    char libName[256];
-    strcpy(libName, XML4C_DLLName);
-    strcat(libName, gXML4CVersionStr);
-    strcat(libName, ".sl");
+    unsigned int  lent = strlen(XMLPlatformUtils::fgLibLocation) +
+                         strlen("/icu/data/") + 1;
+    intlPath = new char[lent];
+    strcpy(intlPath, XMLPlatformUtils::fgLibLocation);
+    strcat(intlPath, "/icu/data/");
 
-    shl_descriptor* desc = NULL;
-    int             ret = 0;
-    int             index = 1;
+    ICUTransService::setICUPath(intlPath);
+    delete intlPath;
 
-    ret = shl_get(index, &desc);
-    while (ret != -1)
-    {
-       char* fileName = desc->filename;
-       if (strstr(fileName, libName) != NULL)
-       {
-           char* lastSlash = strrchr(fileName, '/');
-           size_t chars_to_extract = lastSlash - fileName;
-           char *libPathName = new char[chars_to_extract + 1];
-           strncpy(libPathName, fileName, chars_to_extract);
-           libPathName[chars_to_extract] = 0;
-           fgIntlPath = new char[strlen(libPathName)+ strlen("/icu/data/")+1];
-           strcpy((char *) fgIntlPath, libPathName);
-           strcat((char *) fgIntlPath, "/icu/data/");
-           delete libPathName;
-           break;
-       }
-       index++;
-       ret = shl_get(index, &desc);
-    }
-
-    if (fgIntlPath == NULL)
-    {
-        fprintf(stderr,
-                "Fatal error: Could not find /icu/data relative to %s \n",
-                libName);
-        fprintf(stderr, 
-                "             while trying to auto detect the location ");
-        fprintf(stderr, "of the converter files.\n");
-        fprintf(stderr,
-                "             And the environment variable 'ICU_DATA' is ");
-        fprintf(stderr, "not defined.\n");
-        panic(XMLPlatformUtils::Panic_NoTransService);
-    }
-
-    ICUTransService::setICUPath(fgIntlPath);
     return new ICUTransService;
 
-#else // Use Native transcoding service
+#else
 
+    // Use native transcoding services.
+    // same as -DXML_USE_INMEM_MESSAGELOADER
     return new IconvTransService;
 
 #endif
-}
+
+} // XMLPlatformUtils::makeTransService
+
 
 
 // ---------------------------------------------------------------------------
@@ -332,22 +345,23 @@
     //
     //  We just print a message and exit
     //
+    
     fprintf(stderr,
-            "The XML4C system could not be initialized.\n");
+        "The Xerces-C system could not be initialized.\n");
     fprintf(stderr,
-            "The most likely reason for this failure is the inability to find\n");
+        "If you are using ICU, then the most likely reason for this failure\n");
     fprintf(stderr,
-            "the ICU coverter files, if you are using ICU. The converter files\n");
+        "is the inability to find the ICU coverter files. The converter files\n");
     fprintf(stderr,
-            "have the extension .cnv and exist in a directory 'icu/data' relative\n");
+        "have the extension .cnv and exist in a directory 'icu/data' relative\n");
     fprintf(stderr,
-            "to the XML4C shared library. If you have installed the converter files\n");
+        "to the Xerces-C shared library. If you have installed the converter files\n");
     fprintf(stderr,
-            "in a different location, you need to set up the environment variable\n");
+        "in a different location, you need to set up the environment variable\n");
     fprintf(stderr,
-            "'ICU_DATA' to point directly to the directory containing the\n");
+        "'ICU_DATA' to point directly to the directory containing the\n");
     fprintf(stderr,
-            "converter files.\n");
+        "converter files.\n");
     
     exit(-1);
 }
@@ -477,12 +491,12 @@
     //  as Unicode always
     //
     char* newSrc = XMLString::transcode(srcPath);
+    ArrayJanitor<char>  janText(newSrc);
 
     // Use a local buffer that is big enough for the largest legal path.
     // Note #1186: dirName() is not thread safe.
 
     char* tmpPath = dirname(newSrc); // dirname() never returns NULL.
-    delete [] newSrc;
 
     char* newXMLString = new char[strlen(tmpPath) + 2];
     ArrayJanitor<char> newJanitor(newXMLString);
@@ -516,8 +530,36 @@
 //  Mutex methods 
 // -----------------------------------------------------------------------
 
-#if !defined (APP_NO_THREADS)
+#if !defined(APP_NO_THREADS)
 
+void* XMLPlatformUtils::makeMutex()
+{
+    pthread_mutex_t* mutex = new pthread_mutex_t;
+    pthread_mutexattr_t*  attr = new pthread_mutexattr_t;
+
+#if defined(XML_USE_DCE)
+    pthread_mutexattr_create(attr);
+    pthread_mutexattr_setkind_np(attr, MUTEX_RECURSIVE_NP);
+    if (pthread_mutex_init(mutex, *attr))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
+    }
+    pthread_mutexattr_delete(attr);
+#else
+    pthread_mutexattr_init(attr);
+    pthread_mutexattr_settype(attr, PTHREAD_MUTEX_RECURSIVE);
+    if (pthread_mutex_init(mutex, attr))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
+    }
+    pthread_mutexattr_destroy(attr);
+#endif
+    delete attr;
+
+    return (void*) mutex;
+}
 
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
 {
@@ -543,18 +585,6 @@
     }
 }
 
-void* XMLPlatformUtils::makeMutex()
-{
-    pthread_mutex_t* mutex = new pthread_mutex_t;
-
-    if (pthread_mutex_init(mutex, pthread_mutexattr_default))
-    {
-        ThrowXML(XMLPlatformUtilsException,
-                 XML4CExcepts::Mutex_CouldNotCreate);
-    }
-    return (void*) mutex;
-}
-
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
 {
     if (mtxHandle != NULL)
diff --git a/src/util/Platforms/IRIX/IRIXDefs.hpp b/src/util/Platforms/IRIX/IRIXDefs.hpp
new file mode 100644
index 0000000..b890b39
--- /dev/null
+++ b/src/util/Platforms/IRIX/IRIXDefs.hpp
@@ -0,0 +1,71 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:17  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  IRIX runs in big endian mode
+// ---------------------------------------------------------------------------
+
+#define ENDIANMODE_BIG
+typedef void* FileHandle;
+
diff --git a/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp b/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp
new file mode 100644
index 0000000..b7ea443
--- /dev/null
+++ b/src/util/Platforms/IRIX/IRIXPlatformUtils.cpp
@@ -0,0 +1,672 @@
+/*
+ * The Apache Software License, Version 1.1
+ * 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:  
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ * 
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written 
+ *    permission, please contact apache\@apache.org.
+ * 
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ * 
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ * 
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/**
+ * $Log$
+ * Revision 1.1  1999/12/01 17:16:18  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ */
+
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+
+#ifndef APP_NO_THREADS
+#include    <pthread.h>
+#endif
+
+#include    <unistd.h>
+#include    <stdio.h>
+#include    <stdlib.h>
+#include    <errno.h>
+#include    <libgen.h>
+#include    <sys/timeb.h>
+#include    <string.h>
+#include    <util/PlatformUtils.hpp>
+#include    <util/RuntimeException.hpp>
+#include    <util/Janitor.hpp>
+#include    <util/Mutexes.hpp>
+#include    <util/XMLString.hpp>
+#include    <util/XMLUni.hpp>
+
+
+#if defined(XML_USE_ICU_TRANSCODER)
+    #include <util/Transcoders/ICU/ICUTransService.hpp>
+#else
+    // Use native transcoder. Same as -DXML_USE_NATIVE_TRANSCODER
+    #include <util/Transcoders/Iconv/IconvTransService.hpp>
+#endif
+
+
+#if defined(XML_USE_ICU_MESSAGELOADER)
+    #include <util/MsgLoaders/ICU/ICUMsgLoader.hpp>
+
+#else
+    // Same as -DXML_USE_INMEM_MESSAGELOADER
+    #include <util/MsgLoaders/InMemory/InMemMsgLoader.hpp>
+#endif
+
+
+
+// ---------------------------------------------------------------------------
+//  Local Methods
+// ---------------------------------------------------------------------------
+
+static void WriteCharStr( FILE* stream, const char* const toWrite)
+{
+    if (fputs(toWrite, stream) == EOF)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Strm_StdErrWriteFailure);
+    }
+}
+
+static void WriteUStrStdErr( const XMLCh* const toWrite)
+{
+    char* tmpVal = XMLString::transcode(toWrite);
+    ArrayJanitor<char> janText(tmpVal);
+    if (fputs(tmpVal, stderr) == EOF)
+    {
+       ThrowXML(XMLPlatformUtilsException,
+                XML4CExcepts::Strm_StdErrWriteFailure);
+   }
+}
+
+static void WriteUStrStdOut( const XMLCh* const toWrite)
+ {
+    char* tmpVal = XMLString::transcode(toWrite);
+    ArrayJanitor<char> janText(tmpVal);
+    if (fputs(tmpVal, stdout) == EOF)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Strm_StdOutWriteFailure);
+    }
+}
+
+XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
+{
+    return 0;
+}
+
+
+// -----------------------------------------------------------------------
+//  Standard out/error support
+// -----------------------------------------------------------------------
+
+void XMLPlatformUtils::writeToStdErr(const char* const toWrite)
+{
+    WriteCharStr(stderr, toWrite);
+}
+void XMLPlatformUtils::writeToStdErr(const XMLCh* const toWrite)
+{
+    WriteUStrStdErr(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const XMLCh* const toWrite)
+{
+    WriteUStrStdOut(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const char* const toWrite)
+{
+    WriteCharStr(stdout, toWrite);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Platform init method
+// ---------------------------------------------------------------------------
+
+static XMLMutex atomicOpsMutex;
+
+
+
+void XMLPlatformUtils::platformInit()
+{
+    //
+    // The atomicOps mutex needs to be created early.
+    // Normally, mutexes are created on first use, but there is a
+    // circular dependency between compareAndExchange() and
+    // mutex creation that must be broken.
+    atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+
+    // Here you would also set the fgLibLocation global variable
+    // XMLPlatformUtils::fgLibLocation is the variable to be set
+
+    static const char*  libEnvVar = "LD_LIBRARY_PATH";
+    char*               libraryPath = 0;
+    char                libName[256];
+
+    // Construct the library name from the global variables
+
+    strcpy(libName, XML4C_DLLName);
+    strcat(libName, gXML4CVersionStr);
+    strcat(libName, ".so");
+
+    char* libEnvVar = getenv(sharedLibEnvVar);
+    char* libPath = NULL;
+
+    if (libEnvVar == NULL)
+    {
+        panic(XMLPlatformUtils::Panic_CantFindLib);
+    }
+
+    //
+    // Its necessary to create a copy because strtok() modifies the
+    // string as it returns tokens. We don't want to modify the string
+    // returned to by getenv().
+    //
+
+    libPath = new char[strlen(libEnvVar) + 1];
+    strcpy(libPath, libEnvVar);
+
+
+    // First do the searching process for the first directory listing
+
+    char*  allPaths = libPath;
+    char*  libPathName;
+
+    while ((libPathName = strtok(allPaths, ":")) != NULL)
+    {
+        FILE*  dummyFptr = 0;
+        allPaths = 0;
+
+        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
+        strcpy(libfile, libPathName);
+        strcat(libfile, "/");
+        strcat(libfile, libName);
+
+        dummyFptr = (FILE *) fopen(libfile, "rb");
+        delete [] libfile;
+        if (dummyFptr != NULL)
+        {
+            fclose(dummyFptr);
+            libraryPath = new char[strlen(libPathName)+1];
+            strcpy((char *) libraryPath, libPathName);
+            break;
+        }
+
+    } // while
+
+    delete libPath;
+
+    XMLPlatformUtils::fgLibLocation = libraryPath;
+
+    if (XMLPlatformUtils::fgLibLocation == NULL)
+    {
+        panic(XMLPlatformUtils::Panic_CantFindLib);
+    }
+
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Private Static Methods
+// ---------------------------------------------------------------------------
+
+//
+//  This method is called by the platform independent part of this class
+//  when client code asks to have one of the supported message sets loaded.
+//
+
+XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain)
+{
+    XMLMsgLoader* retVal;
+    try
+    {
+#if defined (XML_USE_ICU_MESSAGELOADER)
+        retVal = new ICUMsgLoader(msgDomain);
+#else
+        // same as -DXML_USE_INMEM_MESSAGELOADER
+        retVal = new InMemMsgLoader(msgDomain);
+#endif
+    }
+
+    catch(...)
+    {
+        panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
+    }
+    return retVal;
+}
+
+
+//
+//  This method is called very early in the bootstrapping process. This guy
+//  must create a transcoding service and return it. It cannot use any string
+//  methods, any transcoding services, throw any exceptions, etc... It just
+//  makes a transcoding service and returns it, or returns zero on failure.
+//
+
+XMLTransService* XMLPlatformUtils::makeTransService()
+{
+#if defined (XML_USE_ICU_TRANSCODER)
+    //
+    //  We need to figure out the path to the Intl converter files.
+    //
+
+    static const char * icuDataEnvVar   = "ICU_DATA";
+    char *              intlPath        = 0;
+
+    char* envVal = getenv(icuDataEnvVar);
+
+    // Check if environment variable is set...
+    if (envVal != NULL)
+    {
+        unsigned int pathLen = strlen(envVal);
+        intlPath = new char[pathLen + 2];
+
+        strcpy((char *) intlPath, envVal);
+        if (envVal[pathLen - 1] != '/')
+        {
+            strcat((char *) intlPath, "/");
+        }
+
+        ICUTransService::setICUPath(intlPath);
+        delete intlPath;
+
+        return new ICUTransService;
+    }
+
+    //
+    //  If the environment variable ICU_DATA is not set, assume that the
+    //  converter files are stored relative to the Xerces-C library.
+    //
+
+    unsigned int  lent = strlen(XMLPlatformUtils::fgLibLocation) +
+                         strlen("/icu/data/") + 1;
+    intlPath = new char[lent];
+    strcpy(intlPath, XMLPlatformUtils::fgLibLocation);
+    strcat(intlPath, "/icu/data/");
+
+    ICUTransService::setICUPath(intlPath);
+    delete intlPath;
+
+    return new ICUTransService;
+
+
+#else
+
+    // Use native transcoding services.
+    // same as -DXML_USE_INMEM_MESSAGELOADER
+    return new IconvTransService;
+
+#endif
+
+} // XMLPlatformUtils::makeTransService
+
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: The panic method
+// ---------------------------------------------------------------------------
+void XMLPlatformUtils::panic(const PanicReasons reason)
+{
+    //
+    //  We just print a message and exit
+    //
+    
+    fprintf(stderr,
+        "The Xerces-C system could not be initialized.\n");
+    fprintf(stderr,
+        "If you are using ICU, then the most likely reason for this failure\n");
+    fprintf(stderr,
+        "is the inability to find the ICU coverter files. The converter files\n");
+    fprintf(stderr,
+        "have the extension .cnv and exist in a directory 'icu/data' relative\n");
+    fprintf(stderr,
+        "to the Xerces-C shared library. If you have installed the converter files\n");
+    fprintf(stderr,
+        "in a different location, you need to set up the environment variable\n");
+    fprintf(stderr,
+        "'ICU_DATA' to point directly to the directory containing the\n");
+    fprintf(stderr,
+        "converter files.\n");
+    
+    exit(-1);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: File Methods
+// ---------------------------------------------------------------------------
+unsigned int XMLPlatformUtils::curFilePos(FileHandle theFile)
+{
+    int curPos = ftell( (FILE*)theFile);
+    if (curPos == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetSize);
+
+    return (unsigned int)curPos;
+}
+
+void XMLPlatformUtils::closeFile(FileHandle theFile)
+{
+    if (fclose((FILE*)theFile))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotCloseFile);
+}
+
+unsigned int XMLPlatformUtils::fileSize(FileHandle theFile)
+{
+    // Get the current position
+    long  int curPos = ftell((FILE*) theFile);
+    if (curPos == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetCurPos);
+
+    // Seek to the end and save that value for return
+     if (fseek((FILE*) theFile, 0, SEEK_END))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
+
+    long int retVal = ftell((FILE*)theFile);
+    if (retVal == -1)
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
+
+    // And put the pointer back
+
+    if (fseek( (FILE*)theFile, curPos, SEEK_SET) )
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToPos);
+
+    return (unsigned int)retVal;
+}
+
+FileHandle XMLPlatformUtils::openFile(const unsigned short* const fileName)
+{
+    const char* tmpFileName = XMLString::transcode(fileName);
+    ArrayJanitor<char> janText((char*)tmpFileName);
+    FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" );
+
+    if (retVal == NULL)
+        return 0;
+    return retVal;
+}
+
+
+
+FileHandle XMLPlatformUtils::openStdInHandle()
+{
+    return (FileHandle) fdopen(dup(0), "rb");
+}
+
+
+unsigned int
+XMLPlatformUtils::readFileBuffer( FileHandle          theFile
+                                , const unsigned int  toRead
+                                , XMLByte* const      toFill)
+{
+    size_t noOfItemsRead = fread((void*) toFill, 1, toRead, (FILE*)theFile);
+
+    if(ferror((FILE*)theFile))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotReadFromFile);
+    }
+
+    return (unsigned int)noOfItemsRead;
+}
+
+
+void XMLPlatformUtils::resetFile(FileHandle theFile)
+{
+    // Seek to the start of the file
+    if (fseek((FILE*)theFile, 0, SEEK_SET))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotResetFile);
+}
+
+
+// ---------------------------------------------------------------------------
+//  XMLPlatformUtils: Timing Methods
+// ---------------------------------------------------------------------------
+
+unsigned long XMLPlatformUtils::getCurrentMillis()
+{
+    timeb aTime;
+    ftime(&aTime);
+    return (unsigned long)(aTime.time*1000 + aTime.millitm);
+
+}
+
+
+XMLCh* XMLPlatformUtils::getBasePath(const XMLCh* const srcPath)
+{
+
+    //
+    //  NOTE: THe path provided has always already been opened successfully,
+    //  so we know that its not some pathological freaky path. It comes in
+    //  in native format, and goes out as Unicode always
+    //
+    char* newSrc = XMLString::transcode(srcPath);
+    ArrayJanitor<char> janText(newSrc);
+
+    // Use a local buffer that is big enough for the largest legal path
+    // Note #1186: dirName() is not thread safe.
+    char* tmpPath = dirname(newSrc);
+    if (!tmpPath)
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetBasePathName);
+    }
+
+    char* newXMLString = new char [strlen(tmpPath) +2];
+    ArrayJanitor<char> newJanitor(newXMLString);
+    strcpy(newXMLString, tmpPath);
+    strcat(newXMLString , "/");
+
+    // Return a copy of the path, in Unicode format
+    return XMLString::transcode(newXMLString);
+}
+
+
+bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck)
+{
+    // Check for pathological case of empty path
+    if (!toCheck[0])
+        return false;
+
+    //
+    //  If it starts with a slash, then it cannot be relative. This covers
+    //  both something like "\Test\File.xml" and an NT Lan type remote path
+    //  that starts with a node like "\\MyNode\Test\File.xml".
+    //
+    if (toCheck[0] == XMLCh('/'))
+        return false;
+
+    // Else assume its a relative path
+    return true;
+}
+
+
+// -----------------------------------------------------------------------
+//  Mutex methods
+// -----------------------------------------------------------------------
+
+#if !defined(APP_NO_THREADS)
+
+void* XMLPlatformUtils::makeMutex()
+{
+    pthread_mutex_t* mutex = new pthread_mutex_t;
+    pthread_mutexattr_t*  attr = new pthread_mutexattr_t;
+    pthread_mutexattr_init(attr);
+    pthread_mutexattr_setkind_np(attr, PTHREAD_MUTEX_RECURSIVE_NP);
+    if (pthread_mutex_init(mutex, attr))
+    {
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
+    }
+    pthread_mutexattr_destroy(attr);
+    delete attr;
+    return (void*)(mutex);
+
+}
+
+
+void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_destroy((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotDestroy);
+        }
+        delete mtxHandle;
+    }
+}
+
+
+void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_lock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotLock);
+        }
+    }
+}
+
+
+void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+{
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_unlock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotUnlock);
+        }
+    }
+}
+
+
+// -----------------------------------------------------------------------
+//  Miscellaneous synchronization methods
+// -----------------------------------------------------------------------
+
+void* XMLPlatformUtils::compareAndSwap(void**            toFill
+                                     , const void* const newValue
+                                     , const void* const toCompare)
+{
+    XMLMutexLock lockMutex(&atomicOpsMutex);
+
+    void *retVal = *toFill;
+    if (*toFill == toCompare)
+        *toFill = (void *)newValue;
+
+    return retVal;
+}
+
+int XMLPlatformUtils::atomicIncrement(int &location)
+{
+    XMLMutexLock localLock(&atomicOpsMutex);
+
+    return ++location;
+}
+
+int XMLPlatformUtils::atomicDecrement(int &location)
+{
+    XMLMutexLock localLock(&atomicOpsMutex);
+
+    return --location;
+}
+
+#else // #if !defined (APP_NO_THREADS)
+
+void* XMLPlatformUtils::makeMutex()
+{
+        return 0;
+}
+
+void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+{
+}
+
+void* XMLPlatformUtils::compareAndSwap (void**             toFill,
+                                        const void* const  newValue,
+                                        const void* const  toCompare)
+{
+    void *retVal = *toFill;
+    if (*toFill == toCompare)
+       *toFill = (void *)newValue;
+    return retVal;
+}
+
+int XMLPlatformUtils::atomicIncrement(int &location)
+{
+    return ++location;
+}
+
+int XMLPlatformUtils::atomicDecrement(int &location)
+{
+    return --location;
+}
+
+#endif // APP_NO_THREADS
+
+
diff --git a/src/util/Platforms/Linux/LinuxPlatformUtils.cpp b/src/util/Platforms/Linux/LinuxPlatformUtils.cpp
index 7cc6364..83d9086 100644
--- a/src/util/Platforms/Linux/LinuxPlatformUtils.cpp
+++ b/src/util/Platforms/Linux/LinuxPlatformUtils.cpp
@@ -56,8 +56,15 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:07:01  twl
- * Initial revision
+ * Revision 1.3  1999/11/23 02:00:48  rahulj
+ * Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+ *
+ * Revision 1.2  1999/11/17 22:35:33  rahulj
+ * Replaced default attr mutexes with recursive mutexes. Also code works with ICU transcoding service
+ *
+ * Revision 1.1.1.1  1999/11/09 01:07:01  twl
+ * Initial checkin
  *
  * Revision 1.6  1999/11/08 20:45:30  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -69,7 +76,7 @@
 //  Includes
 // ---------------------------------------------------------------------------
 
-#ifndef APP_NO_THREADS
+#if !defined(APP_NO_THREADS)
 #include    <pthread.h>
 #endif
 
@@ -87,20 +94,25 @@
 #include    <util/XMLString.hpp>
 #include    <util/XMLUni.hpp>
 
-#if defined (XML_USE_ICU_TRANSCODER)
+
+#if defined(XML_USE_ICU_TRANSCODER)
     #include <util/Transcoders/ICU/ICUTransService.hpp>
-#else	// use native transcoder
+#else
+    // Use native transcoder. Same as -DXML_USE_NATIVE_TRANSCODER
     #include <util/Transcoders/Iconv/IconvTransService.hpp>
 #endif
 
-#if defined (XML_USE_ICU_MESSAGELOADER)
+
+#if defined(XML_USE_ICU_MESSAGELOADER)
     #include <util/MsgLoaders/ICU/ICUMsgLoader.hpp>
-#elif defined (XML_USE_ICONV_MESSAGELOADER)
-    #include <util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp>
-#else	// use In-memory message loader
-    #include <util/MsgLoaders/InMemory/InMemMsgLoader.hpp>   //hint for the user to include this file.
+
+#else
+    // Same as -DXML_USE_INMEM_MESSAGELOADER
+    #include <util/MsgLoaders/InMemory/InMemMsgLoader.hpp>
 #endif
 
+
+
 // ---------------------------------------------------------------------------
 //  Local Methods
 // ---------------------------------------------------------------------------
@@ -110,7 +122,7 @@
     if (fputs(toWrite, stream) == EOF)
     {
         ThrowXML(XMLPlatformUtilsException,
-				 XML4CExcepts::Strm_StdErrWriteFailure);
+                 XML4CExcepts::Strm_StdErrWriteFailure);
     }
 }
 
@@ -121,7 +133,7 @@
     if (fputs(tmpVal, stderr) == EOF)
     {
        ThrowXML(XMLPlatformUtilsException,
-				XML4CExcepts::Strm_StdErrWriteFailure);
+                XML4CExcepts::Strm_StdErrWriteFailure);
    }
 }
 
@@ -132,7 +144,7 @@
     if (fputs(tmpVal, stdout) == EOF)
     {
         ThrowXML(XMLPlatformUtilsException,
-				 XML4CExcepts::Strm_StdOutWriteFailure);
+                 XML4CExcepts::Strm_StdOutWriteFailure);
     }
 }
 
@@ -141,12 +153,37 @@
     return 0;
 }
 
+
+// -----------------------------------------------------------------------
+//  Standard out/error support
+// -----------------------------------------------------------------------
+
+void XMLPlatformUtils::writeToStdErr(const char* const toWrite)
+{
+    WriteCharStr(stderr, toWrite);
+}
+void XMLPlatformUtils::writeToStdErr(const XMLCh* const toWrite)
+{
+    WriteUStrStdErr(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const XMLCh* const toWrite)
+{
+    WriteUStrStdOut(toWrite);
+}
+void XMLPlatformUtils::writeToStdOut(const char* const toWrite)
+{
+    WriteCharStr(stdout, toWrite);
+}
+
+
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: Platform init method
 // ---------------------------------------------------------------------------
+
 static XMLMutex atomicOpsMutex;
 
 
+
 void XMLPlatformUtils::platformInit()
 {
     //
@@ -154,17 +191,18 @@
     // Normally, mutexes are created on first use, but there is a
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
+
     atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
 
     // Here you would also set the fgLibLocation global variable
     // XMLPlatformUtils::fgLibLocation is the variable to be set
 
-    static const char *sharedLibEnvVar = "LD_LIBRARY_PATH";
-    static const char * libraryPath = 0;
-
-    char libName[256];
+    static const char*  sharedLibEnvVar = "LD_LIBRARY_PATH";
+    char*               libraryPath = 0;
+    char                libName[256];
 
     // Construct the library name from the global variables
+
     strcpy(libName, XML4C_DLLName);
     strcat(libName, gXML4CVersionStr);
     strcat(libName, ".so");
@@ -174,18 +212,21 @@
 
     if (libEnvVar == NULL)
     {
-        panic( XMLPlatformUtils::Panic_NoTransService );
+        panic(XMLPlatformUtils::Panic_CantFindLib);
     }
 
     //
     // Its necessary to create a copy because strtok() modifies the
     // string as it returns tokens. We don't want to modify the string
     // returned to by getenv().
+    //
 
     libPath = new char[strlen(libEnvVar) + 1];
     strcpy(libPath, libEnvVar);
 
+
     // First do the searching process for the first directory listing
+
     char*  allPaths = libPath;
     char*  libPathName;
 
@@ -209,7 +250,7 @@
             break;
         }
 
-    }
+    } // while
 
     delete libPath;
 
@@ -217,7 +258,7 @@
 
     if (XMLPlatformUtils::fgLibLocation == NULL)
     {
-        panic( XMLPlatformUtils::Panic_NoTransService );
+        panic(XMLPlatformUtils::Panic_CantFindLib);
     }
 }
 
@@ -229,8 +270,8 @@
 //
 //  This method is called by the platform independent part of this class
 //  when client code asks to have one of the supported message sets loaded.
-//  In our case, we use the ICU based message loader mechanism.
 //
+
 XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain)
 {
     XMLMsgLoader* retVal;
@@ -238,43 +279,42 @@
     {
 #if defined (XML_USE_ICU_MESSAGELOADER)
         retVal = new ICUMsgLoader(msgDomain);
-#elif defined (XML_USE_ICONV_MESSAGELOADER)
-        retVal = new MsgCatalogLoader(msgDomain);
 #else
+        // same as -DXML_USE_INMEM_MESSAGELOADER
         retVal = new InMemMsgLoader(msgDomain);
 #endif
     }
 
     catch(...)
     {
-        panic( XMLPlatformUtils::Panic_NoDefTranscoder );
+        panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
     }
     return retVal;
 }
 
+
 //
 //  This method is called very early in the bootstrapping process. This guy
 //  must create a transcoding service and return it. It cannot use any string
 //  methods, any transcoding services, throw any exceptions, etc... It just
 //  makes a transcoding service and returns it, or returns zero on failure.
 //
-XMLTransService* XMLPlatformUtils::makeTransService()
 
-#if defined (XML_USE_ICU_TRANSCODER)
+XMLTransService* XMLPlatformUtils::makeTransService()
 {
+#if defined (XML_USE_ICU_TRANSCODER)
     //
     //  We need to figure out the path to the Intl converter files.
     //
 
-    static const char * xml4cIntlDirEnvVar = "ICU_DATA";
-    static const char * sharedLibEnvVar    = "LD_LIBRARY_PATH";
-    static const char * intlPath = 0;
+    static const char * icuDataEnvVar   = "ICU_DATA";
+    char *              intlPath        = 0;
 
-    char* envVal = getenv(xml4cIntlDirEnvVar);
-    //check if environment variable is set
-    if (envVal != NULL) // We have found an environment variable
+    char* envVal = getenv(icuDataEnvVar);
+
+    // Check if environment variable is set...
+    if (envVal != NULL)
     {
-        // Store this string in the static member
         unsigned int pathLen = strlen(envVal);
         intlPath = new char[pathLen + 2];
 
@@ -285,86 +325,39 @@
         }
 
         ICUTransService::setICUPath(intlPath);
-        if (intlPath != NULL) delete intlPath;
+        delete intlPath;
 
         return new ICUTransService;
     }
 
     //
-    //  If we did not find the environment var, so lets try to go the auto
-    //  search route.
-    //
-    char libName[256];
-    strcpy(libName, XML4C_DLLName);
-    strcat(libName, gXML4CVersionStr);
-    strcat(libName, ".so");
-
-    char* libEnvVar = getenv(sharedLibEnvVar);
-    char* libPath = NULL;
-
-    if (libEnvVar == NULL)
-    {
-        panic( XMLPlatformUtils::Panic_NoTransService );
-    }
-
-    //
-    // Its necessary to create a copy because strtok() modifies the
-    // string as it returns tokens. We don't want to modify the string
-    // returned to by getenv().
+    //  If the environment variable ICU_DATA is not set, assume that the
+    //  converter files are stored relative to the Xerces-C library.
     //
 
-    libPath = new char[strlen(libEnvVar) + 1];
-    strcpy(libPath, libEnvVar);
-
-    // First do the searching process for the first directory listing
-    char*  allPaths = libPath;
-    char*  libPathName;
-
-    while ((libPathName = strtok(allPaths, ":")) != NULL)
-    {
-        FILE*  dummyFptr = 0;
-        allPaths = 0;
-
-        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
-        strcpy(libfile, libPathName);
-        strcat(libfile, "/");
-        strcat(libfile, libName);
-
-        dummyFptr = (FILE *) fopen(libfile, "rb");
-        delete [] libfile;
-        if (dummyFptr != NULL)
-        {
-            fclose(dummyFptr);
-            intlPath = new char[strlen(libPathName)+ strlen("/icu/data/")+1];
-            strcpy((char *) intlPath, libPathName);
-            strcat((char *) intlPath, "/icu/data/");
-            break;
-        }
-
-    } // while
-
-    delete libPath;
+    unsigned int  lent = strlen(XMLPlatformUtils::fgLibLocation) +
+                         strlen("/icu/data/") + 1;
+    intlPath = new char[lent];
+    strcpy(intlPath, XMLPlatformUtils::fgLibLocation);
+    strcat(intlPath, "/icu/data/");
 
     ICUTransService::setICUPath(intlPath);
-
-    if (intlPath == NULL)
-    {
-        panic( XMLPlatformUtils::Panic_NoTransService );
-    }
-    if (intlPath != NULL) delete intlPath;
+    delete intlPath;
 
     return new ICUTransService;
-}
-#elif defined (XML_USE_ICONV_TRANSCODER)
-{
-    return new IconvTransService;
-}
+
+
 #else
-{
+
+    // Use native transcoding services.
+    // same as -DXML_USE_INMEM_MESSAGELOADER
     return new IconvTransService;
-}
+
 #endif
 
+} // XMLPlatformUtils::makeTransService
+
+
 
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: The panic method
@@ -374,27 +367,38 @@
     //
     //  We just print a message and exit
     //
-    printf("The XML4C system could not be initialized.\n");
-    printf("The most likely reason for this failure is the inability to find\n");
-    printf("the international encoding files. By default, the encoding files\n");
-    printf("have the extension .cnv and exist in a directory icu/data relative\n");
-    printf("to the XML4C shared library. If you have kept the converter files\n");
-    printf("in a different location, you need to set up an environment variable\n");
-    printf("called ICU_DATA which directly points to the directory where the\n");
-    printf("encoding files are kept.\n");
-
+    
+    fprintf(stderr,
+        "The Xerces-C system could not be initialized.\n");
+    fprintf(stderr,
+        "If you are using ICU, then the most likely reason for this failure\n");
+    fprintf(stderr,
+        "is the inability to find the ICU coverter files. The converter files\n");
+    fprintf(stderr,
+        "have the extension .cnv and exist in a directory 'icu/data' relative\n");
+    fprintf(stderr,
+        "to the Xerces-C shared library. If you have installed the converter files\n");
+    fprintf(stderr,
+        "in a different location, you need to set up the environment variable\n");
+    fprintf(stderr,
+        "'ICU_DATA' to point directly to the directory containing the\n");
+    fprintf(stderr,
+        "converter files.\n");
+    
     exit(-1);
 }
 
+
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: File Methods
 // ---------------------------------------------------------------------------
+
 unsigned int XMLPlatformUtils::curFilePos(FileHandle theFile)
 {
-    // Get the current position
     int curPos = ftell( (FILE*)theFile);
     if (curPos == -1)
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotGetSize);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetSize);
 
     return (unsigned int)curPos;
 }
@@ -402,27 +406,33 @@
 void XMLPlatformUtils::closeFile(FileHandle theFile)
 {
     if (fclose((FILE*)theFile))
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotCloseFile);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotCloseFile);
 }
 
 unsigned int XMLPlatformUtils::fileSize(FileHandle theFile)
 {
     // Get the current position
-    long  int curPos = ftell((FILE*)theFile);
+    long  int curPos = ftell((FILE*) theFile);
     if (curPos == -1)
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotGetCurPos);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetCurPos);
 
     // Seek to the end and save that value for return
-     if (fseek( (FILE*)theFile, 0, SEEK_END) )
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotSeekToEnd);
+     if (fseek((FILE*) theFile, 0, SEEK_END))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
 
-    long int retVal = ftell( (FILE*)theFile);
+    long int retVal = ftell((FILE*)theFile);
     if (retVal == -1)
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotSeekToEnd);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToEnd);
 
     // And put the pointer back
+
     if (fseek( (FILE*)theFile, curPos, SEEK_SET) )
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotSeekToPos);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotSeekToPos);
 
     return (unsigned int)retVal;
 }
@@ -438,16 +448,26 @@
     return retVal;
 }
 
-unsigned int
-XMLPlatformUtils::readFileBuffer(  FileHandle      theFile
-                                , const unsigned int    toRead
-                                , XMLByte* const  toFill)
+
+
+FileHandle XMLPlatformUtils::openStdInHandle()
 {
-    size_t noOfItemsRead = fread( (void*) toFill, 1, toRead, (FILE*)theFile);
+        return (FileHandle)fdopen(dup(0), "rb");
+}
+
+
+
+unsigned int
+XMLPlatformUtils::readFileBuffer( FileHandle          theFile
+                                , const unsigned int  toRead
+                                , XMLByte* const      toFill)
+{
+    size_t noOfItemsRead = fread((void*) toFill, 1, toRead, (FILE*)theFile);
 
     if(ferror((FILE*)theFile))
     {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotReadFromFile);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotReadFromFile);
     }
 
     return (unsigned int)noOfItemsRead;
@@ -457,10 +477,12 @@
 void XMLPlatformUtils::resetFile(FileHandle theFile)
 {
     // Seek to the start of the file
-    if (fseek((FILE*)theFile, 0, SEEK_SET) )
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotResetFile);
+    if (fseek((FILE*)theFile, 0, SEEK_SET))
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotResetFile);
 }
 
+
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: Timing Methods
 // ---------------------------------------------------------------------------
@@ -485,20 +507,24 @@
     ArrayJanitor<char> janText(newSrc);
 
     // Use a local buffer that is big enough for the largest legal path
-     char* tmpPath = dirname((char*)newSrc);
+    // Note #1186: dirName() is not thread safe.
+    char* tmpPath = dirname(newSrc);
     if (!tmpPath)
     {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::File_CouldNotGetBasePathName);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::File_CouldNotGetBasePathName);
     }
 
     char* newXMLString = new char [strlen(tmpPath) +2];
     ArrayJanitor<char> newJanitor(newXMLString);
     strcpy(newXMLString, tmpPath);
-        strcat(newXMLString , "/");
+    strcat(newXMLString , "/");
+
     // Return a copy of the path, in Unicode format
     return XMLString::transcode(newXMLString);
 }
 
+
 bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck)
 {
     // Check for pathological case of empty path
@@ -517,125 +543,90 @@
     return true;
 }
 
-// -----------------------------------------------------------------------
-//  Standard out/error support
-// -----------------------------------------------------------------------
-
-void XMLPlatformUtils::writeToStdErr(const char* const toWrite)
-{
-    WriteCharStr(stderr, toWrite);
-}
-void XMLPlatformUtils::writeToStdErr(const XMLCh* const toWrite)
-{
-    WriteUStrStdErr(toWrite);
-}
-void XMLPlatformUtils::writeToStdOut(const XMLCh* const toWrite)
-{
-    WriteUStrStdOut(toWrite);
-}
-void XMLPlatformUtils::writeToStdOut(const char* const toWrite)
-{
-    WriteCharStr(stdout, toWrite);
-}
 
 // -----------------------------------------------------------------------
 //  Mutex methods
 // -----------------------------------------------------------------------
 
-#ifndef APP_NO_THREADS
-void XMLPlatformUtils::closeMutex(void* const mtxHandle)
-{
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_destroy( (pthread_mutex_t*)mtxHandle))
-    {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotDestroy);
-    }
-    if ((pthread_mutex_t*)mtxHandle)
-        delete mtxHandle;
-}
-
-void XMLPlatformUtils::lockMutex(void* const mtxHandle)
-{
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_lock( (pthread_mutex_t*)mtxHandle))
-    {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotLock);
-    }
-}
+#if !defined(APP_NO_THREADS)
 
 void* XMLPlatformUtils::makeMutex()
 {
     pthread_mutex_t* mutex = new pthread_mutex_t;
-
-    if (pthread_mutex_init(mutex, NULL))
+    pthread_mutexattr_t*  attr = new pthread_mutexattr_t;
+    pthread_mutexattr_init(attr);
+    pthread_mutexattr_setkind_np(attr, PTHREAD_MUTEX_RECURSIVE_NP);
+    if (pthread_mutex_init(mutex, attr))
     {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotCreate);
+        ThrowXML(XMLPlatformUtilsException,
+                 XML4CExcepts::Mutex_CouldNotCreate);
     }
+    pthread_mutexattr_destroy(attr);
+    delete attr;
     return (void*)(mutex);
+
 }
 
-void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
-{
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_unlock( (pthread_mutex_t*)mtxHandle))
-    {
-        ThrowXML(XMLPlatformUtilsException, XML4CExcepts::Mutex_CouldNotUnlock);
-    }
-}
-
-#else // #ifndef APP_NO_THREADS
 
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
 {
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_destroy((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotDestroy);
+        }
+        delete mtxHandle;
+    }
 }
 
+
 void XMLPlatformUtils::lockMutex(void* const mtxHandle)
 {
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_lock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotLock);
+        }
+    }
 }
 
-void* XMLPlatformUtils::makeMutex()
-{
-        return 0;
-}
 
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
 {
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_unlock((pthread_mutex_t*) mtxHandle))
+        {
+            ThrowXML(XMLPlatformUtilsException,
+                     XML4CExcepts::Mutex_CouldNotUnlock);
+        }
+    }
 }
 
-#endif // APP_NO_THREADS
 
 // -----------------------------------------------------------------------
 //  Miscellaneous synchronization methods
 // -----------------------------------------------------------------------
-//atomic system calls in Solaris is only restricted to kernel libraries
-//So, to make operations thread safe we implement static mutex and lock
-//the atomic operations. It makes the process slow but what's the alternative!
 
-void* XMLPlatformUtils::compareAndSwap ( void**      toFill ,
-                    const void* const newValue ,
-                    const void* const toCompare)
+void* XMLPlatformUtils::compareAndSwap(void**            toFill
+                                     , const void* const newValue
+                                     , const void* const toCompare)
 {
-    //return ((void*)cas32( (uint32_t*)toFill,  (uint32_t)toCompare, (uint32_t)newValue) );
-    // the below calls are temporarily made till the above functions are part of user library
-    // Currently its supported only in the kernel mode
-
-    lockMutex(&atomicOpsMutex);
+    XMLMutexLock lockMutex(&atomicOpsMutex);
 
     void *retVal = *toFill;
     if (*toFill == toCompare)
-              *toFill = (void *)newValue;
-
-    unlockMutex(&atomicOpsMutex);
+        *toFill = (void *)newValue;
 
     return retVal;
 }
 
 int XMLPlatformUtils::atomicIncrement(int &location)
 {
-    //return (int)atomic_add_32_nv( (uint32_t*)&location, 1);
     XMLMutexLock localLock(&atomicOpsMutex);
 
     return ++location;
@@ -643,14 +634,49 @@
 
 int XMLPlatformUtils::atomicDecrement(int &location)
 {
-    //return (int)atomic_add_32_nv( (uint32_t*)&location, -1);
     XMLMutexLock localLock(&atomicOpsMutex);
 
     return --location;
 }
 
-FileHandle XMLPlatformUtils::openStdInHandle()
+#else // #if !defined (APP_NO_THREADS)
+
+void* XMLPlatformUtils::makeMutex()
 {
-        return (FileHandle)fdopen(dup(0), "rb");
+        return 0;
 }
 
+void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+{
+}
+
+void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+{
+}
+
+void* XMLPlatformUtils::compareAndSwap (void**             toFill,
+                                        const void* const  newValue,
+                                        const void* const  toCompare)
+{
+    void *retVal = *toFill;
+    if (*toFill == toCompare)
+       *toFill = (void *)newValue;
+    return retVal;
+}
+
+int XMLPlatformUtils::atomicIncrement(int &location)
+{
+    return ++location;
+}
+
+int XMLPlatformUtils::atomicDecrement(int &location)
+{
+    return --location;
+}
+
+#endif // APP_NO_THREADS
+
diff --git a/src/util/Platforms/Makefile.in b/src/util/Platforms/Makefile.in
index d424ad9..224692e 100644
--- a/src/util/Platforms/Makefile.in
+++ b/src/util/Platforms/Makefile.in
@@ -55,8 +55,18 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:06:14  twl
-# Initial revision
+# Revision 1.4  1999/12/01 17:16:17  rahulj
+# Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+#
+# Revision 1.3  1999/11/23 02:00:28  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.2  1999/11/17 22:36:37  rahulj
+# Code works with ICU transcoding service
+#
+# Revision 1.1.1.1  1999/11/09 01:06:14  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:28  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +74,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -91,6 +102,7 @@
 endif
 ifeq (${PLATFORM}, LINUX)
     SUBMODULE = Platforms/Linux
+    CXXFLAGS += -D__USE_UNIX98 -D__USE_GNU
     CPP_PUBHEADERS = Linux/LinuxDefs.hpp
     CPP_OBJECTS = Linux/LinuxPlatformUtils.o
 endif
@@ -104,6 +116,11 @@
     CPP_PUBHEADERS = OS390/OS390Defs.hpp
     CPP_OBJECTS = OS390/OS390PlatformUtils.o
 endif
+ifeq (${PLATFORM}, IRIX)
+    SUBMODULE = Platforms/IRIX
+    CPP_PUBHEADERS = IRIX/IRIXDefs.hpp
+    CPP_OBJECTS = IRIX/IRIXPlatformUtils.o
+endif
 
 include ../Makefile.util.submodule
 
diff --git a/src/util/Platforms/Solaris/SolarisPlatformUtils.cpp b/src/util/Platforms/Solaris/SolarisPlatformUtils.cpp
index 851e85d..de70fa3 100644
--- a/src/util/Platforms/Solaris/SolarisPlatformUtils.cpp
+++ b/src/util/Platforms/Solaris/SolarisPlatformUtils.cpp
@@ -56,8 +56,18 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:06:31  twl
- * Initial revision
+ * Revision 1.3  1999/12/02 23:07:13  aruna1
+ * Solaris Atomic Mutex initailization changed to native calls
+ *
+ * Revision 1.2  1999/11/19 23:50:56  aruna1
+ * added changes for platformInit and makeTransService functions
+ * PR:
+ * Obtained from:
+ * Submitted by:
+ * Reviewed by:
+ *
+ * Revision 1.1.1.1  1999/11/09 01:06:31  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:32  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -147,7 +157,8 @@
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: Platform init method
 // ---------------------------------------------------------------------------
-static XMLMutex atomicOpsMutex;
+
+static mutex_t* gAtomicOpMutex =0 ;
 
 void XMLPlatformUtils::platformInit()
 {
@@ -156,7 +167,78 @@
     // Normally, mutexes are created on first use, but there is a
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
-    atomicOpsMutex.fHandle = XMLPlatformUtils::makeMutex();
+    gAtomicOpMutex = new mutex_t;	
+    if (mutex_init(gAtomicOpMutex, NULL, NULL))
+    {
+	printf("atomicOpMutex not created \n");
+	exit(1);
+        //panic( XMLPlatformUtils::Panic_MutexInit ); //to be changed later
+    }
+
+    // Here you would also set the fgLibLocation global variable
+    // XMLPlatformUtils::fgLibLocation is the variable to be set
+
+    static const char *sharedLibEnvVar = "LD_LIBRARY_PATH";
+    static const char * libraryPath = 0;
+
+    char libName[256];
+
+    // Construct the library name from the global variables
+    strcpy(libName, XML4C_DLLName);
+    strcat(libName, gXML4CVersionStr);
+    strcat(libName, ".so");
+
+    char* libEnvVar = getenv(sharedLibEnvVar);
+    char* libPath = NULL;
+
+    if (libEnvVar == NULL)
+    {
+        panic( XMLPlatformUtils::Panic_NoTransService );
+    }
+
+    //
+    // Its necessary to create a copy because strtok() modifies the
+    // string as it returns tokens. We don't want to modify the string
+    // returned to by getenv().
+
+    libPath = new char[strlen(libEnvVar) + 1];
+    strcpy(libPath, libEnvVar);
+
+    // First do the searching process for the first directory listing
+    char*  allPaths = libPath;
+    char*  libPathName;
+
+    while ((libPathName = strtok(allPaths, ":")) != NULL)
+    {
+        FILE*  dummyFptr = 0;
+        allPaths = 0;
+
+        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
+        strcpy(libfile, libPathName);
+        strcat(libfile, "/");
+        strcat(libfile, libName);
+
+        dummyFptr = (FILE *) fopen(libfile, "rb");
+        delete [] libfile;
+        if (dummyFptr != NULL)
+        {
+            fclose(dummyFptr);
+            libraryPath = new char[strlen(libPathName)+1];
+            strcpy((char *) libraryPath, libPathName);
+            break;
+        }
+
+    }
+
+    delete libPath;
+
+    XMLPlatformUtils::fgLibLocation = libraryPath;
+
+    if (XMLPlatformUtils::fgLibLocation == NULL)
+    {
+        panic( XMLPlatformUtils::Panic_NoTransService );
+     }
+
 }
 
 
@@ -197,23 +279,22 @@
 //
 
 XMLTransService* XMLPlatformUtils::makeTransService()
-{
 
 #if defined (XML_USE_ICU_TRANSCODER)
+{
     //
-    //  We need to figure out the path to the Intl classes. They will be
-    //  in the ./Intl subdirectory under this DLL.
+    //  We need to figure out the path to the Intl converter files.
     //
 
     static const char * xml4cIntlDirEnvVar = "ICU_DATA";
-    char * intlPath = 0;
+    static const char * sharedLibEnvVar    = "LD_LIBRARY_PATH";
+    static const char * intlPath = 0;
 
     char* envVal = getenv(xml4cIntlDirEnvVar);
-    //
-    // Check if environment variable is set
-    //
-    if (envVal != NULL)         // We have found an environment variable
+    //check if environment variable is set
+    if (envVal != NULL) // We have found an environment variable
     {
+        // Store this string in the static member
         unsigned int pathLen = strlen(envVal);
         intlPath = new char[pathLen + 2];
 
@@ -224,81 +305,86 @@
         }
 
         ICUTransService::setICUPath(intlPath);
-        if (intlPath != NULL) delete intlPath;
+        if (intlPath != NULL) delete (char*)intlPath;
 
         return new ICUTransService;
     }
 
-    //
+
     //  If we did not find the environment var, so lets try to go the auto
     //  search route.
     //
-
     char libName[256];
     strcpy(libName, XML4C_DLLName);
     strcat(libName, gXML4CVersionStr);
     strcat(libName, ".so");
 
-    void* handle = NULL;
-    handle = dlopen(libName, RTLD_LAZY);
-    if (!handle)
+    char* libEnvVar = getenv(sharedLibEnvVar);
+    char* libPath = NULL;
+
+    if (libEnvVar == NULL)
     {
-        char errorBuffer[1024];
-        sprintf(errorBuffer,
-                "Fatal error: Could not open library '%s'", libName);
-        perror (errorBuffer);
-        panic(XMLPlatformUtils::Panic_NoTransService);
+        panic( XMLPlatformUtils::Panic_NoTransService );
     }
 
-    int       ret = 0;
-    Link_map *firstLib   = NULL;
+    //
+    // Its necessary to create a copy because strtok() modifies the
+    // string as it returns tokens. We don't want to modify the string
+    // returned to by getenv().
+    //
 
-    ret = dlinfo(handle, RTLD_DI_LINKMAP, (void*) &firstLib);
-    Link_map* nextLib = NULL;
-    nextLib = firstLib;
+    libPath = new char[strlen(libEnvVar) + 1];
+    strcpy(libPath, libEnvVar);
 
-    while (nextLib)
+    // First do the searching process for the first directory listing
+    char*  allPaths = libPath;
+    char*  libPathName;
+
+    while ((libPathName = strtok(allPaths, ":")) != NULL)
     {
-        char* fileName = nextLib->l_name;
-        if (strstr(fileName, libName) != NULL)
+        FILE*  dummyFptr = 0;
+        allPaths = 0;
+
+        char* libfile = new char[strlen(libPathName) + strlen(libName) + 2];
+        strcpy(libfile, libPathName);
+        strcat(libfile, "/");
+        strcat(libfile, libName);
+
+        dummyFptr = (FILE *) fopen(libfile, "rb");
+        delete [] libfile;
+        if (dummyFptr != NULL)
         {
-            char* copyTo = strrchr(fileName, '/');
-            size_t chars_to_extract = copyTo - fileName;
-            char *libPathName = new char[chars_to_extract + 1];
-            strncpy(libPathName, fileName, chars_to_extract);
-            libPathName[chars_to_extract] = 0;
-            fgIntlPath = new char[strlen(libPathName)+ strlen("/icu/data/")+1];
-            strcpy((char *) fgIntlPath, libPathName);
-            strcat((char *) fgIntlPath, "/icu/data/");
-            delete libPathName;
+            fclose(dummyFptr);
+            intlPath = new char[strlen(libPathName)+ strlen("/icu/data/")+1];
+            strcpy((char *) intlPath, libPathName);
+            strcat((char *) intlPath, "/icu/data/");
             break;
         }
-        nextLib = nextLib->l_next;
-    }
 
-    if (fgIntlPath == NULL)
+    } // while
+
+    delete libPath;
+
+    ICUTransService::setICUPath(intlPath);
+
+    if (intlPath == NULL)
     {
-        fprintf(stderr,
-                "Fatal error: Could not find /icu/data relative to %s \n",
-                libName);
-        fprintf(stderr, 
-                "             while trying to auto detect the location ");
-        fprintf(stderr, "of the converter files.\n");
-        fprintf(stderr,
-                "             And the environment variable 'ICU_DATA' is ");
-        fprintf(stderr, "not defined.\n");
-        panic(XMLPlatformUtils::Panic_NoTransService);
+        panic( XMLPlatformUtils::Panic_NoTransService );
     }
+    if (intlPath != NULL) delete (char*)intlPath;
 
-    ICUTransService::setICUPath(fgIntlPath);
     return new ICUTransService;
-
+}
+#elif defined (XML_USE_ICONV_TRANSCODER)
+{
+    return new IconvTransService;
+}
 #else // Use Native transcoding service
-
+{
     return new IconvTransService;
 
-#endif
 }
+#endif
 
 
 // ---------------------------------------------------------------------------
@@ -564,13 +650,23 @@
     // the below calls are temporarily made till the above functions are part of user library
     // Currently its supported only in the kernel mode
 
-    lockMutex(&atomicOpsMutex);
+    if (mutex_lock( gAtomicOpMutex))
+    {
+	printf("could not lock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
 
     void *retVal = *toFill;
     if (*toFill == toCompare)
               *toFill = (void *)newValue;
 
-    unlockMutex(&atomicOpsMutex);
+    if (mutex_unlock( gAtomicOpMutex))
+    {
+	printf("could not unlock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
 
     return retVal;
 }
@@ -578,16 +674,41 @@
 int XMLPlatformUtils::atomicIncrement(int &location)
 {
     //return (int)atomic_add_32_nv( (uint32_t*)&location, 1);
-    XMLMutexLock localLock(&atomicOpsMutex);
 
-    return ++location;
+    if (mutex_lock( gAtomicOpMutex))
+    {
+	printf("could not lock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
+    int tmp = ++location;
+    if (mutex_unlock( gAtomicOpMutex))
+    {
+	printf("could not unlock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
+    return tmp;
 }
 int XMLPlatformUtils::atomicDecrement(int &location)
 {
     //return (int)atomic_add_32_nv( (uint32_t*)&location, -1);
-    XMLMutexLock localLock(&atomicOpsMutex);
 
-    return --location;
+    if (mutex_lock( gAtomicOpMutex))
+    {
+	printf("could not lock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
+	
+    int tmp = --location;
+    if (mutex_unlock( gAtomicOpMutex))
+    {
+	printf("could not unlock atomicOpMutex\n");
+	exit(1);
+	//call panic instead
+    }
+    return tmp;
 }
 
 #else // #if !defined (APP_NO_THREADS)
diff --git a/src/util/Platforms/Win32/Version.rc b/src/util/Platforms/Win32/Version.rc
index 6959ea1..98a4f5d 100644
--- a/src/util/Platforms/Win32/Version.rc
+++ b/src/util/Platforms/Win32/Version.rc
@@ -29,8 +29,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,0,0,0
- PRODUCTVERSION 3,0,0,0
+ FILEVERSION 1,0,0,0
+ PRODUCTVERSION 1,0,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -45,17 +45,17 @@
     BEGIN
         BLOCK "040904b0"
         BEGIN
-            VALUE "Comments", "Dynamic linked library for XML4C2\0"
-            VALUE "CompanyName", "International Business Machines Corp.\0"
-            VALUE "FileDescription", "Shared Library for XML4C Version 3.0.0\0"
-            VALUE "FileVersion", "3, 0, 0, 0\0"
-            VALUE "InternalName", "IXXML4C3_0_0\0"
-            VALUE "LegalCopyright", "Copyright © IBM Corp. 1999 subject to licensing terms\0"
+            VALUE "Comments", "Dynamic linked library for Xerces-C\0"
+            VALUE "CompanyName", "Apache Software Foundation\0"
+            VALUE "FileDescription", "Shared Library for Xerces-C Version 1.0.0\0"
+            VALUE "FileVersion", "1, 0, 0, 0\0"
+            VALUE "InternalName", "xerces-c_1_0_0.dll\0"
+            VALUE "LegalCopyright", "Copyright © Apache Software Foundation 1999 subject to licensing terms\0"
             VALUE "LegalTrademarks", "\0"
-            VALUE "OriginalFilename", "IXXML4C3_0.dll\0"
+            VALUE "OriginalFilename", "xerces-c_1_0.dll\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "XML4C Version 3.0.0\0"
-            VALUE "ProductVersion", "3, 0, 0, 0\0"
+            VALUE "ProductName", "Xerces-C Version 1.0.0\0"
+            VALUE "ProductVersion", "1, 0, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
@@ -99,249 +99,320 @@
 //
 // String Table
 //
-STRINGTABLE DISCARDABLE
+
+STRINGTABLE DISCARDABLE 
 BEGIN
-    2                 L"\x004E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    3                 L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    4                 L"\x0045\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x0020\x0028\x007B\x0030\x007D\x002C\x0020\x0066\x0072\x006F\x006D\x0020\x0058\x004D\x004C\x0044\x0065\x0063\x006C\x0020\x006F\x0072\x0020\x006D\x0061\x006E\x0075\x0061\x006C\x006C\x0079\x0020\x0073\x0065\x0074\x0029\x0020\x0063\x006F\x006E\x0074\x0072\x0061\x0064\x0069\x0063\x0074\x0073\x0020\x0074\x0068\x0065\x0020\x0061\x0075\x0074\x006F\x002D\x0073\x0065\x006E\x0073\x0065\x0064\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x002C\x0020\x0069\x0067\x006E\x006F\x0072\x0069\x006E\x0067\x0020\x0069\x0074\x00"
-    5                 L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0064\x0020\x0069\x006E\x0020\x0061\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0020\x0062\x0075\x0074\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    6                 L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0064\x0020\x0069\x006E\x0020\x0061\x006E\x0020\x0061\x0074\x0074\x006C\x0069\x0073\x0074\x0020\x0062\x0075\x0074\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    9                 L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x0020\x006F\x0072\x0020\x0043\x0044\x0041\x0054\x0041\x00"
-    10                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x006E\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x006E\x0061\x006D\x0065\x00"
-    11                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x006E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x006E\x0061\x006D\x0065\x00"
-    12                L"\x0052\x0065\x0070\x0065\x0074\x0069\x0074\x0069\x006F\x006E\x0020\x006F\x0066\x0020\x0069\x006E\x0064\x0069\x0076\x0069\x0064\x0075\x0061\x006C\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0073\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x006C\x0065\x0067\x0061\x006C\x0020\x0066\x006F\x0072\x0020\x006D\x0069\x0078\x0065\x0064\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0073\x00"
-    13                L"\x0042\x0061\x0064\x0020\x0064\x0065\x0066\x0061\x0075\x006C\x0074\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    14                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0064\x0065\x0066\x0061\x0075\x006C\x0074\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x002C\x0020\x0061\x0073\x0073\x0075\x006D\x0069\x006E\x0067\x0020\x0023\x0049\x004D\x0050\x004C\x0049\x0045\x0044\x0020\x0020\x00"
-    15                L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x006C\x0069\x0073\x0074\x0020\x0073\x0079\x006E\x0074\x0061\x0078\x0020\x0065\x0072\x0072\x006F\x0072\x00"
-    16                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x0071\x0075\x0061\x006C\x0020\x0073\x0069\x0067\x006E\x00"
-    17                L"\x0044\x0075\x0070\x006C\x0069\x0063\x0061\x0074\x0069\x006F\x006E\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x006E\x0061\x006D\x0065\x00"
-    18                L"\x0042\x0061\x0064\x0020\x0049\x0044\x0020\x0066\x006F\x0072\x0020\x0078\x006D\x006C\x003A\x006C\x0061\x006E\x0067\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x00"
-    19                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x006E\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x006E\x0061\x006D\x0065\x00"
-    20                L"\x004D\x0075\x0073\x0074\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0077\x0069\x0074\x0068\x0020\x0061\x006E\x0020\x0058\x004D\x004C\x0044\x0065\x0063\x006C\x00"
-    21                L"\x0043\x006F\x006D\x006D\x0065\x006E\x0074\x0073\x0020\x006D\x0075\x0073\x0074\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0077\x0069\x0074\x0068\x0020\x003C\x0021\x002D\x002D\x00"
-    22                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0064\x006F\x0063\x0075\x006D\x0065\x006E\x0074\x0020\x0073\x0074\x0072\x0075\x0063\x0074\x0075\x0072\x0065\x00"
-    23                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x0027\x0076\x0065\x0072\x0073\x0069\x006F\x006E\x003D\x0027\x002C\x0020\x0027\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x003D\x0027\x002C\x0020\x006F\x0072\x0020\x0027\x0073\x0074\x0061\x006E\x0064\x0061\x006C\x006F\x006E\x0065\x003D\x0027\x00"
-    24                L"\x0042\x0061\x0064\x0020\x0058\x004D\x004C\x0020\x0076\x0065\x0072\x0073\x0069\x006F\x006E\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x00"
-    25                L"\x0055\x006E\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x0020\x0058\x004D\x004C\x0020\x0076\x0065\x0072\x0073\x0069\x006F\x006E\x00"
-    26                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0058\x004D\x004C\x0020\x0064\x0065\x0063\x006C\x00"
-    27                L"\x0042\x0061\x0064\x0020\x0058\x004D\x004C\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    28                L"\x0042\x0061\x0064\x0020\x0073\x0074\x0061\x006E\x0064\x0061\x006C\x006F\x006E\x0065\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    29                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x00"
-    30                L"\x0050\x0072\x006F\x0063\x0065\x0073\x0073\x0069\x006E\x0067\x0020\x0069\x006E\x0073\x0074\x0072\x0075\x0063\x0074\x0069\x006F\x006E\x0020\x006E\x0061\x006D\x0065\x0020\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x00"
-    31                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x0069\x006E\x0067\x0020\x0069\x006E\x0073\x0074\x0072\x0075\x0063\x0074\x0069\x006F\x006E\x00"
-    32                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    33                L"\x0055\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0074\x0065\x0078\x0074\x0020\x0062\x0065\x0066\x006F\x0072\x0065\x0020\x0072\x006F\x006F\x0074\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x00"
-    34                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0074\x0061\x0067\x00"
-    35                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x006E\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    36                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0065\x006E\x0064\x0020\x0074\x0061\x0067\x00"
-    37                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0074\x0079\x0070\x0065\x0020\x0028\x0043\x0044\x0041\x0054\x0041\x002C\x0020\x0049\x0044\x002C\x0020\x004E\x004D\x0054\x004F\x004B\x0045\x004E\x002C\x0020\x002E\x002E\x0029\x002C\x00"
-    38                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0074\x0061\x0067\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    39                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0074\x0061\x0067\x0020\x006E\x0061\x006D\x0065\x002C\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x002C\x0020\x0050\x0049\x002C\x0020\x006F\x0072\x0020\x006F\x0074\x0068\x0065\x0072\x0020\x006D\x0061\x0072\x006B\x0075\x0070\x00"
-    40                L"\x004E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0061\x0066\x0074\x0065\x0072\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x00"
-    41                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x00"
-    42                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x0020\x006F\x0072\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x0069\x006E\x0067\x0020\x0069\x006E\x0073\x0074\x0072\x0075\x0063\x0074\x0069\x006F\x006E\x00"
-    43                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0077\x0068\x0069\x0074\x0065\x0073\x0070\x0061\x0063\x0065\x00"
-    44                L"\x004E\x006F\x0020\x0072\x006F\x006F\x0074\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0069\x006E\x0020\x0044\x004F\x0043\x0054\x0059\x0050\x0045\x00"
-    45                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0071\x0075\x006F\x0074\x0065\x0064\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x00"
-    46                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0070\x0075\x0062\x006C\x0069\x0063\x0020\x0069\x0064\x00"
-    47                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0069\x006E\x0020\x0070\x0075\x0062\x006C\x0069\x0063\x0020\x0069\x0064\x00"
-    48                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0044\x004F\x0043\x0054\x0059\x0050\x0045\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    49                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0069\x006E\x0020\x0069\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0073\x0075\x0062\x0073\x0065\x0074\x00"
-    50                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0043\x0044\x0041\x0054\x0041\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x00"
-    51                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0069\x006E\x0069\x0074\x0069\x0061\x006C\x0020\x006E\x0061\x006D\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    52                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x006E\x0061\x006D\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    53                L"\x0055\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0077\x0068\x0069\x0074\x0065\x0073\x0070\x0061\x0063\x0065\x00"
-    54                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0069\x006E\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    55                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x006D\x0061\x0072\x006B\x0075\x0070\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    56                L"\x0054\x0065\x0078\x0074\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x006E\x006F\x0074\x0020\x006C\x0065\x0067\x0061\x006C\x0020\x0068\x0065\x0072\x0065\x00"
-    57                L"\x0043\x006F\x006E\x0064\x0069\x0074\x0069\x006F\x006E\x0061\x006C\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x0020\x0069\x006E\x0020\x0069\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0073\x0075\x0062\x0073\x0065\x0074\x00"
-    58                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0070\x0061\x0072\x0061\x006D\x0065\x0074\x0065\x0072\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x006E\x0061\x006D\x0065\x00"
-    59                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    60                L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x00"
-    61                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x00"
-    62                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x006E\x0061\x006D\x0065\x0020\x0066\x006F\x0072\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x00"
-    63                L"\x0045\x006E\x0074\x0069\x0074\x0079\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0066\x006F\x0075\x006E\x0064\x00"
-    64                L"\x0055\x006E\x0070\x0061\x0072\x0073\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0074\x0079\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0068\x0065\x0072\x0065\x00"
-    65                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x00"
-    66                L"\x0052\x0065\x0063\x0075\x0072\x0073\x0069\x0076\x0065\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0065\x0078\x0070\x0061\x006E\x0073\x0069\x006F\x006E\x00"
-    67                L"\x0050\x0061\x0072\x0074\x0069\x0061\x006C\x0020\x006D\x0061\x0072\x006B\x0075\x0070\x0020\x0069\x006E\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    68                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    69                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x0073\x0070\x0065\x0063\x0069\x0066\x0069\x0063\x0061\x0074\x0069\x006F\x006E\x0020\x0065\x0078\x0070\x0072\x0065\x0073\x0073\x0069\x006F\x006E\x00"
-    70                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0073\x0074\x0065\x0072\x0069\x0073\x006B\x00"
-    71                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0043\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x00"
-    72                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0073\x0079\x0073\x0074\x0065\x006D\x0020\x0069\x0064\x00"
-    73                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0073\x0079\x0073\x0074\x0065\x006D\x0020\x006F\x0072\x0020\x0070\x0075\x0062\x006C\x0069\x0063\x0020\x0069\x0064\x00"
-    74                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x006E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x00"
-    75                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0027\x002C\x0027\x002C\x0020\x0027\x007C\x0027\x002C\x0020\x006F\x0072\x0020\x0027\x0029\x0027\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0073\x00"
-    76                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0027\x007C\x0027\x0020\x006F\x0072\x0020\x0027\x0029\x0027\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0073\x00"
-    77                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0027\x002C\x0027\x0020\x006F\x0072\x0020\x0027\x0029\x0027\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0073\x0020\x006F\x0072\x0020\x0063\x006C\x006F\x0073\x0065\x0020\x0070\x0061\x0072\x0065\x006E\x0074\x0068\x0065\x0073\x0069\x0073\x00"
-    78                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    79                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x007C\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x0073\x0065\x0070\x0061\x0072\x0061\x0074\x006F\x0072\x002C\x0020\x006F\x0072\x0020\x0063\x006C\x006F\x0073\x0069\x006E\x0067\x0020\x0070\x0061\x0072\x0065\x006E\x00"
-    80                L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x006C\x0069\x0074\x0065\x0072\x0061\x006C\x00"
-    81                L"\x0054\x0068\x0065\x0072\x0065\x0020\x0061\x0072\x0065\x0020\x006D\x006F\x0072\x0065\x0020\x0065\x006E\x0064\x0020\x0074\x0061\x0067\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0074\x0061\x0067\x0073\x00"
-    82                L"\x0052\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0020\x0074\x006F\x0020\x0065\x0078\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x0069\x006E\x0020\x0073\x0074\x0061\x006E\x0064\x0061\x006C\x006F\x006E\x0065\x0020\x0064\x006F\x0063\x0075\x006D\x0065\x006E\x0074\x002E\x0020\x0045\x006E\x0074\x0069\x0074\x0079\x003D\x007B\x0030\x007D\x00"
-    83                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x006E\x0020\x006F\x0070\x0065\x006E\x0020\x0070\x0061\x0072\x0065\x006E\x0074\x0068\x0065\x0073\x0069\x0073\x00"
-    84                L"\x0054\x0068\x0065\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0075\x0073\x0065\x0064\x0020\x0069\x006E\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    85                L"\x0041\x0020\x0027\x003C\x0027\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0075\x0073\x0065\x0064\x0020\x0069\x006E\x0020\x0061\x006E\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x002C\x0020\x0065\x0078\x0063\x0065\x0070\x0074\x0020\x0074\x0068\x0072\x006F\x0075\x0067\x0068\x0020\x003C\x00"
-    86                L"\x0041\x0020\x006C\x0065\x0061\x0064\x0069\x006E\x0067\x0020\x0073\x0075\x0072\x0072\x006F\x0067\x0061\x0074\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0066\x006F\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0062\x0079\x0020\x0061\x0020\x006C\x0065\x0067\x0061\x006C\x0020\x0073\x0065\x0063\x006F\x006E\x0064\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    87                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0027\x005D\x005D\x003E\x0027\x0020\x0074\x006F\x0020\x0065\x006E\x0064\x0020\x0061\x0020\x0063\x006F\x006E\x0064\x0069\x0074\x0069\x006F\x006E\x0061\x006C\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x00"
-    88                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0049\x004E\x0043\x004C\x0055\x0044\x0045\x0020\x006F\x0072\x0020\x0049\x0047\x004E\x004F\x0052\x0045\x0020\x0068\x0065\x0072\x0065\x00"
-    89                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x005B\x0020\x0074\x006F\x0020\x0066\x006F\x006C\x006C\x006F\x0077\x0020\x0049\x004E\x0043\x004C\x0055\x0044\x0045\x0020\x006F\x0072\x0020\x0049\x0047\x004E\x004F\x0052\x0045\x00"
-    90                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x0054\x0065\x0078\x0074\x0044\x0065\x0063\x006C\x0020\x0068\x0065\x0072\x0065\x003A\x0020\x003C\x003F\x0078\x006D\x006C\x0020\x002E\x002E\x002E\x002E\x00"
-    91                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x0058\x004D\x004C\x0044\x0065\x0063\x006C\x0020\x0068\x0065\x0072\x0065\x003A\x0020\x003C\x003F\x0078\x006D\x006C\x0020\x002E\x002E\x002E\x002E\x00"
-    92                L"\x0055\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x007B\x0030\x007D\x00"
-    93                L"\x0041\x0020\x0050\x0045\x0020\x0070\x0072\x006F\x0070\x006F\x0067\x0061\x0074\x0065\x0064\x0020\x006F\x0075\x0074\x0020\x006F\x0066\x0020\x0074\x0068\x0065\x0020\x0069\x006E\x0074\x002F\x0065\x0078\x0074\x0020\x0073\x0075\x0062\x0073\x0065\x0074\x002C\x0020\x0064\x0069\x0073\x0063\x0061\x0072\x0064\x0069\x006E\x0067\x0020\x0065\x0078\x0074\x0072\x0061\x0020\x0074\x0065\x0078\x0074\x00"
-    94                L"\x0041\x006E\x0020\x0065\x0078\x0074\x0072\x0061\x0020\x005D\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0077\x0061\x0073\x0020\x0066\x006F\x0075\x006E\x0064\x0020\x0061\x006E\x0020\x0069\x0067\x006E\x006F\x0072\x0065\x0064\x00"
-    95                L"\x0050\x0045\x0020\x0072\x0065\x0066\x0073\x0020\x0061\x0072\x0065\x0020\x006E\x006F\x0074\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0069\x006E\x0073\x0069\x0064\x0065\x0020\x006D\x0061\x0072\x006B\x0075\x0070\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x0069\x006E\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0073\x0075\x0062\x0073\x0065\x0074\x00"
-    96                L"\x0041\x006E\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0070\x0072\x006F\x0070\x006F\x0067\x0061\x0074\x0065\x0064\x0020\x006F\x0075\x0074\x0020\x006F\x0066\x0020\x0074\x0068\x0065\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x0020\x0069\x006E\x0074\x006F\x0020\x004D\x0069\x0073\x0063\x0065\x006C\x006C\x0061\x006E\x0065\x006F\x0075\x0073\x00"
-    97                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0026\x0023\x0020\x0074\x006F\x0020\x0062\x0065\x0020\x0066\x006F\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0062\x0079\x0020\x0061\x0020\x006E\x0075\x006D\x0065\x0072\x0069\x0063\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    98                L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x006E\x0020\x006F\x0070\x0065\x006E\x0020\x0062\x0072\x0061\x0063\x006B\x0065\x0074\x0020\x0028\x0027\x005B\x0027\x0029\x0020\x0068\x0065\x0072\x0065\x00"
-    99                L"\x0054\x0068\x0065\x0020\x0073\x0065\x0071\x0075\x0065\x006E\x0063\x0065\x0020\x0027\x005D\x005D\x003E\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0069\x006E\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0064\x0061\x0074\x0061\x00"
-    100               L"\x0049\x006C\x006C\x0065\x0067\x0061\x006C\x0020\x0073\x0065\x0071\x0075\x0065\x006E\x0063\x0065\x0020\x0027\x002D\x002D\x0027\x0020\x0069\x006E\x0020\x0063\x006F\x006D\x006D\x0065\x006E\x0074\x00"
-    101               L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0043\x0044\x0041\x0054\x0041\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x00"
-    102               L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x004E\x0044\x0041\x0054\x0041\x00"
-    103               L"\x004E\x0044\x0041\x0054\x0041\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x006C\x0065\x0067\x0061\x006C\x0020\x0066\x006F\x0072\x0020\x0070\x0061\x0072\x0061\x006D\x0065\x0074\x0065\x0072\x0020\x0065\x006E\x0074\x0069\x0074\x0069\x0065\x0073\x00"
-    104               L"\x0048\x0065\x0078\x0020\x0072\x0061\x0064\x0069\x0078\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0072\x0065\x0066\x0073\x0020\x006D\x0075\x0073\x0074\x0020\x0075\x0073\x0065\x0020\x0027\x0078\x0027\x002C\x0020\x006E\x006F\x0074\x0020\x0027\x0058\x0027\x00"
-    105               L"\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0073\x0065\x0074\x002E\x0020\x0049\x0067\x006E\x006F\x0072\x0069\x006E\x0067\x0020\x0072\x0065\x0064\x0075\x006E\x0064\x0061\x006E\x0074\x0020\x0073\x0065\x0074\x0074\x0069\x006E\x0067\x00"
-    106               L"\x0054\x0068\x0065\x0020\x0058\x004D\x004C\x0044\x0065\x0063\x006C\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x0073\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x006F\x0072\x0064\x0065\x0072\x003A\x0020\x0076\x0065\x0072\x0073\x0069\x006F\x006E\x002C\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x002C\x0020\x0073\x0074\x0061\x006E\x0064\x0061\x006C\x006F\x006E\x0065\x00"
-    107               L"\x0045\x0078\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0065\x006E\x0074\x0069\x0074\x0069\x0065\x0073\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0072\x0065\x0066\x0065\x0072\x0072\x0065\x0064\x0020\x0074\x006F\x0020\x0066\x0072\x006F\x006D\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0073\x00"
-    108               L"\x0054\x0068\x0065\x0020\x0058\x004D\x004C\x0020\x006F\x0072\x0020\x0054\x0065\x0078\x0074\x0020\x0064\x0065\x0063\x006C\x0020\x006D\x0075\x0073\x0074\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0077\x0069\x0074\x0068\x0020\x0027\x003C\x003F\x0078\x006D\x006C\x0020\x0027\x002C\x0020\x006E\x006F\x0074\x0020\x0027\x003C\x003F\x0058\x004D\x004C\x0020\x0027\x00"
-    109               L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0061\x0020\x006C\x0069\x0074\x0065\x0072\x0061\x006C\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x006F\x0072\x0020\x0050\x0055\x0042\x004C\x0049\x0043\x002F\x0053\x0059\x0053\x0054\x0045\x004D\x0020\x0069\x0064\x00"
-    110               L"\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0061\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0064\x0069\x0067\x0069\x0074\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0069\x006E\x0064\x0069\x0063\x0061\x0074\x0065\x0064\x0020\x0072\x0061\x0064\x0069\x0078\x00"
-    111               L"\x0054\x0068\x0065\x0020\x0069\x006E\x0070\x0075\x0074\x0020\x0065\x006E\x0064\x0065\x0064\x0020\x0062\x0065\x0066\x006F\x0072\x0065\x0020\x0061\x006C\x006C\x0020\x0073\x0074\x0061\x0072\x0074\x0065\x0064\x0020\x0074\x0061\x0067\x0073\x0020\x0077\x0065\x0072\x0065\x0020\x0065\x006E\x0064\x0065\x0064\x002E\x0020\x004C\x0061\x0073\x0074\x0020\x0074\x0061\x0067\x0020\x0073\x0074\x0061\x0072\x0074\x0065\x0064\x0020\x0077\x0061\x0073\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    112               L"\x0054\x0068\x0065\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0020\x0066\x006F\x0072\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x0061\x006D\x0062\x0069\x0067\x0075\x006F\x0075\x0073\x00"
-    113               L"\x004E\x0065\x0073\x0074\x0065\x0064\x0020\x0043\x0044\x0041\x0054\x0041\x0020\x0073\x0065\x0063\x0074\x0069\x006F\x006E\x0073\x0020\x0061\x0072\x0065\x0020\x006E\x006F\x0074\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x00"
-    114               L"\x0054\x0068\x0065\x0020\x0070\x0072\x0065\x0066\x0069\x0078\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0065\x006E\x0020\x006D\x0061\x0070\x0070\x0065\x0064\x0020\x0074\x006F\x0020\x0061\x006E\x0079\x0020\x0055\x0052\x0049\x00"
-    115               L"\x0054\x0068\x0065\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0061\x006E\x0064\x0020\x0074\x0068\x0065\x0020\x0065\x006E\x0064\x0020\x0074\x0061\x0067\x0020\x0077\x0065\x0072\x0065\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x0064\x0069\x0066\x0066\x0065\x0072\x0065\x006E\x0074\x0020\x0065\x006E\x0074\x0069\x0074\x0069\x0065\x0073\x00"
-    116               L"\x0054\x0068\x0065\x0020\x006D\x0061\x0069\x006E\x0020\x0058\x004D\x004C\x0020\x0064\x006F\x0063\x0075\x006D\x0065\x006E\x0074\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0065\x006D\x0070\x0074\x0079\x00"
-    117               L"\x0043\x0044\x0041\x0054\x0041\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x006F\x0075\x0074\x0073\x0069\x0064\x0065\x0020\x0074\x0068\x0065\x0020\x0072\x006F\x006F\x0074\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x00"
-    118               L"\x004F\x006E\x006C\x0079\x0020\x006E\x0075\x006D\x0065\x0072\x0069\x0063\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0065\x006E\x0074\x0069\x0074\x0069\x0065\x0073\x0020\x006F\x0072\x0020\x0073\x0070\x0065\x0063\x0069\x0061\x006C\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0065\x006E\x0074\x0069\x0074\x0069\x0065\x0073\x0020\x0061\x0072\x0065\x0020\x006C\x0065\x0067\x0061\x006C\x0020\x0068\x0065\x0072\x0065\x00"
-    119               L"\x0047\x006F\x0074\x0020\x0061\x006E\x0020\x0075\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0074\x0072\x0061\x0069\x006C\x0069\x006E\x0067\x0020\x0073\x0075\x0072\x0072\x006F\x0067\x0061\x0074\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    120               L"\x004E\x006F\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x0069\x006E\x0067\x0020\x0069\x006E\x0073\x0074\x0072\x0075\x0063\x0074\x0069\x006F\x006E\x0020\x0073\x0074\x0061\x0072\x0074\x0073\x0020\x0077\x0069\x0074\x0068\x0020\x0027\x0078\x006D\x006C\x0027\x00"
-    121               L"\x0054\x0068\x0065\x0020\x0058\x004D\x004C\x0020\x006F\x0072\x0020\x0054\x0065\x0078\x0074\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x006D\x0075\x0073\x0074\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0061\x0074\x0020\x006C\x0069\x006E\x0065\x002F\x0063\x006F\x006C\x0075\x006D\x006E\x0020\x0031\x002F\x0031\x00"
-    122               L"\x0054\x0068\x0065\x0020\x0027\x0076\x0065\x0072\x0073\x0069\x006F\x006E\x003D\x0027\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x0020\x0069\x0073\x0020\x0072\x0065\x0071\x0075\x0069\x0072\x0065\x0064\x0020\x0069\x006E\x0020\x0061\x006E\x0020\x0058\x004D\x004C\x0044\x0065\x0063\x006C\x00"
-    123               L"\x0054\x0068\x0065\x0020\x0027\x0073\x0074\x0061\x006E\x0064\x0061\x006C\x006F\x006E\x0065\x003D\x0027\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x0020\x0069\x0073\x0020\x006F\x006E\x006C\x0079\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x006D\x0061\x0069\x006E\x0020\x0058\x004D\x004C\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x00"
-    124               L"\x0057\x0068\x0065\x006E\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x0073\x0020\x0061\x0072\x0065\x0020\x0065\x006E\x0061\x0062\x006C\x0065\x0064\x002C\x0020\x0061\x0020\x006E\x0061\x006D\x0065\x0020\x0063\x0061\x006E\x0020\x0068\x0061\x0076\x0065\x0020\x006F\x006E\x006C\x0079\x0020\x006F\x006E\x0065\x0020\x0063\x006F\x006C\x006F\x006E\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    125               L"\x0057\x0068\x0065\x006E\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x0073\x0020\x0061\x0072\x0065\x0020\x0065\x006E\x0061\x0062\x006C\x0065\x0064\x002C\x0020\x0074\x0068\x0065\x0020\x0063\x006F\x006C\x006F\x006E\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0074\x0068\x0065\x0020\x0066\x0069\x0072\x0073\x0074\x0020\x006F\x0072\x0020\x006C\x0061\x0073\x0074\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x00"
-    126               L"\x0043\x006F\x006C\x006F\x006E\x0073\x0020\x0061\x0072\x0065\x0020\x006E\x006F\x0074\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0069\x006E\x0020\x0074\x0068\x0069\x0073\x0020\x006E\x0061\x006D\x0065\x0020\x0077\x0068\x0065\x006E\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x0073\x0020\x0061\x0072\x0065\x0020\x0065\x006E\x0061\x0062\x006C\x0065\x0064\x00"
-    127               L"\x0041\x0020\x0073\x0079\x0073\x0074\x0065\x006D\x0020\x0065\x0078\x0063\x0065\x0070\x0074\x0069\x006F\x006E\x0020\x006F\x0063\x0063\x0075\x0072\x0065\x0064\x0020\x0064\x0075\x0072\x0069\x006E\x0067\x0020\x0070\x0072\x006F\x0063\x0065\x0073\x0073\x0069\x006E\x0067\x00"
-    128               L"\x0041\x006E\x0020\x0065\x0078\x0063\x0065\x0070\x0074\x0069\x006F\x006E\x0020\x006F\x0063\x0063\x0075\x0072\x0065\x0064\x0021\x0020\x0054\x0079\x0070\x0065\x003A\x007B\x0030\x007D\x002C\x0020\x004D\x0065\x0073\x0073\x0061\x0067\x0065\x003A\x007B\x0031\x007D\x00"
-    129               L"\x0055\x006E\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0066\x0069\x006C\x0065\x0020\x0065\x0078\x0063\x0065\x0070\x0074\x0069\x006F\x006E\x002E\x0020\x004D\x0065\x0073\x0073\x0061\x0067\x0065\x003A\x0020\x007B\x0030\x007D\x00"
-END
-STRINGTABLE DISCARDABLE
-BEGIN
-    16386             L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    16387             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006E\x006F\x0074\x0020\x0064\x0065\x0066\x0069\x006E\x0065\x0064\x00"
-    16388             L"\x004E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0064\x0020\x0062\x0075\x0074\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    16389             L"\x0052\x006F\x006F\x0074\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0064\x0069\x0066\x0066\x0065\x0072\x0065\x006E\x0074\x0020\x0066\x0072\x006F\x006D\x0020\x0044\x004F\x0043\x0054\x0059\x0050\x0045\x00"
-    16390             L"\x0052\x0065\x0071\x0075\x0069\x0072\x0065\x0064\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0070\x0072\x006F\x0076\x0069\x0064\x0065\x0064\x00"
-    16391             L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0066\x006F\x0072\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x003A\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    16392             L"\x0049\x0044\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0073\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0023\x0049\x004D\x0050\x004C\x0049\x0045\x0044\x0020\x006F\x0072\x0020\x0023\x0052\x0045\x0051\x0055\x0049\x0052\x0045\x0044\x00"
-    16393             L"\x0054\x0068\x0069\x0073\x0020\x0074\x0079\x0070\x0065\x0020\x006F\x0066\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0068\x0061\x0076\x0065\x0020\x0061\x006E\x0020\x0065\x006D\x0070\x0074\x0079\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    16394             L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    16395             L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x006D\x006F\x0072\x0065\x0020\x0074\x0068\x0061\x006E\x0020\x006F\x006E\x0065\x0020\x0049\x0044\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x00"
-    16396             L"\x0049\x0044\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0062\x0065\x0065\x006E\x0020\x0075\x0073\x0065\x0064\x00"
-    16397             L"\x0049\x0044\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x0072\x0065\x0066\x0065\x0072\x0065\x006E\x0063\x0065\x0064\x0020\x0062\x0075\x0074\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    16398             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0072\x0065\x0066\x0065\x0072\x0073\x0020\x0074\x006F\x0020\x0061\x006E\x0020\x0075\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x006E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    16399             L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0077\x0061\x0073\x0020\x0075\x0073\x0065\x0064\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x0044\x004F\x0043\x0054\x0059\x0050\x0045\x0020\x0062\x0075\x0074\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x00"
-    16400             L"\x0045\x006D\x0070\x0074\x0079\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0066\x006F\x0072\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x003A\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    16401             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x007B\x0030\x007D\x007D\x007B\x0031\x007D\x0027\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0064\x0065\x0063\x006C\x0061\x0072\x0065\x0064\x0020\x0066\x006F\x0072\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0032\x007D\x0027\x00"
-    16402             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0073\x0020\x006F\x0066\x0020\x0074\x0079\x0070\x0065\x0020\x0045\x004E\x0054\x0049\x0054\x0059\x002F\x0045\x004E\x0054\x0049\x0054\x0049\x0045\x0053\x0020\x006D\x0075\x0073\x0074\x0020\x0072\x0065\x0066\x0065\x0072\x0020\x0074\x006F\x0020\x0061\x006E\x0020\x0065\x0078\x0074\x0065\x0072\x006E\x0061\x006C\x002C\x0020\x0075\x006E\x0070\x0061\x0072\x0073\x0065\x0064\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x00"
-    16403             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0072\x0065\x0066\x0065\x0072\x0073\x0020\x0074\x006F\x0020\x0061\x006E\x0020\x0075\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0027\x007B\x0031\x007D\x0027\x00"
-    16404             L"\x004E\x006F\x0074\x0020\x0065\x006E\x006F\x0075\x0067\x0068\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0073\x0020\x0074\x006F\x0020\x006D\x0061\x0074\x0063\x0068\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0020\x003A\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    16405             L"\x004E\x006F\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0064\x0061\x0074\x0061\x0020\x0069\x0073\x0020\x0061\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0062\x0079\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x00"
-    16406             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x006D\x0061\x0074\x0063\x0068\x0020\x0069\x0074\x0073\x0020\x0064\x0065\x0066\x0069\x006E\x0065\x0064\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x006F\x0072\x0020\x006E\x006F\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x006C\x0069\x0073\x0074\x00"
-    16407             L"\x0054\x0068\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0073\x0020\x0066\x006F\x0072\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006E\x0061\x006D\x0065\x0073\x0020\x006F\x0072\x0020\x006E\x0061\x006D\x0065\x0020\x0074\x006F\x006B\x0065\x006E\x0073\x00"
-    16408             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0020\x006D\x0075\x006C\x0074\x0069\x0070\x006C\x0065\x0020\x0076\x0061\x006C\x0075\x0065\x0073\x00"
-    16409             L"\x0041\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0068\x0061\x0073\x0020\x0061\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0074\x0068\x0061\x0074\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x006D\x0061\x0074\x0063\x0068\x0020\x0069\x0074\x0073\x0020\x0023\x0046\x0049\x0058\x0045\x0044\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    16410             L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0074\x0079\x0070\x0065\x0073\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0064\x0075\x0070\x006C\x0069\x0063\x0061\x0074\x0065\x0064\x0020\x0069\x006E\x0020\x004D\x0069\x0078\x0065\x0064\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0073\x00"
-END
-STRINGTABLE DISCARDABLE
-BEGIN
-    8194              L"\x0054\x0068\x0065\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0069\x0073\x0020\x0062\x0065\x0079\x006F\x006E\x0064\x0020\x0074\x0068\x0065\x0020\x0061\x0072\x0072\x0061\x0079\x0020\x0062\x006F\x0075\x006E\x0064\x0073\x0020\x0020\x00"
-    8195              L"\x0054\x0068\x0065\x0020\x006E\x0065\x0077\x0020\x0073\x0069\x007A\x0065\x0020\x0069\x0073\x0020\x006C\x0065\x0073\x0073\x0020\x0074\x0068\x0061\x006E\x0020\x0074\x0068\x0065\x0020\x006F\x006C\x0064\x0020\x006F\x006E\x0065\x00"
-    8196              L"\x0054\x0068\x0065\x0020\x0062\x0069\x0074\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0077\x0061\x0073\x0020\x0062\x0065\x0079\x006F\x006E\x0064\x0020\x0074\x0068\x0065\x0020\x0073\x0065\x0074\x0020\x0073\x0069\x007A\x0065\x00"
-    8197              L"\x0054\x0068\x0065\x0020\x0070\x006F\x0069\x006E\x0074\x0065\x0072\x0020\x0068\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0065\x006E\x0020\x0073\x0065\x0074\x00"
-    8198              L"\x0054\x0068\x0065\x0020\x0065\x006E\x0075\x006D\x0065\x0072\x0061\x0074\x006F\x0072\x0020\x0063\x006F\x006E\x0074\x0061\x0069\x006E\x0073\x0020\x006E\x006F\x0020\x006D\x006F\x0072\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0073\x00"
-    8199              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x006F\x0070\x0065\x006E\x0020\x0066\x0069\x006C\x0065\x003A\x0020\x007B\x0030\x007D\x00"
-    8200              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0071\x0075\x0065\x0072\x0079\x0020\x0074\x0068\x0065\x0020\x0063\x0075\x0072\x0072\x0065\x006E\x0074\x0020\x0066\x0069\x006C\x0065\x0020\x0070\x006F\x0073\x0069\x0074\x0069\x006F\x006E\x00"
-    8201              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0063\x006C\x006F\x0073\x0065\x0020\x0074\x0068\x0065\x0020\x0066\x0069\x006C\x0065\x00"
-    8202              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0073\x0065\x0065\x006B\x0020\x0074\x006F\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0066\x0069\x006C\x0065\x00"
-    8203              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0073\x0065\x0065\x006B\x0020\x0074\x006F\x0020\x0072\x0065\x0071\x0075\x0069\x0072\x0065\x0064\x0020\x0070\x006F\x0073\x0069\x0074\x0069\x006F\x006E\x0020\x0069\x006E\x0020\x0066\x0069\x006C\x0065\x00"
-    8204              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0064\x0075\x0070\x006C\x0069\x0063\x0061\x0074\x0065\x0020\x0074\x0068\x0065\x0020\x0068\x0061\x006E\x0064\x006C\x0065\x00"
-    8205              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0072\x0065\x0061\x0064\x0020\x0064\x0061\x0074\x0061\x0020\x0066\x0072\x006F\x006D\x0020\x0066\x0069\x006C\x0065\x00"
-    8206              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0072\x0065\x0073\x0065\x0074\x0020\x0066\x0069\x006C\x0065\x0020\x0074\x006F\x0020\x0062\x0065\x0067\x0069\x006E\x006E\x0069\x006E\x0067\x00"
-    8207              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0061\x0063\x0065\x0072\x0074\x0061\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x0066\x0069\x006C\x0065\x0020\x0073\x0069\x007A\x0065\x00"
-    8208              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0064\x0065\x0074\x0065\x0072\x006D\x0069\x006E\x0065\x0020\x0062\x0061\x0073\x0065\x0020\x0070\x0061\x0074\x0068\x006E\x0061\x006D\x0065\x0020\x006F\x0066\x0020\x0074\x0068\x0065\x0020\x0066\x0069\x006C\x0065\x00"
-    8209              L"\x0054\x0068\x0065\x0020\x0068\x0061\x0073\x0068\x0020\x006D\x006F\x0064\x0075\x006C\x0075\x0073\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x007A\x0065\x0072\x006F\x00"
-    8210              L"\x0048\x0061\x0073\x0068\x0069\x006E\x0067\x0020\x0074\x0068\x0065\x0020\x006B\x0065\x0079\x0020\x0072\x0065\x0074\x0075\x0072\x006E\x0065\x0064\x0020\x0061\x006E\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0062\x0061\x0064\x0020\x0068\x0061\x0073\x0068\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8211              L"\x0054\x0068\x0065\x0020\x006B\x0065\x0079\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0063\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0066\x006F\x0075\x006E\x0064\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x0068\x0061\x0073\x0068\x0020\x0074\x0061\x0062\x006C\x0065\x00"
-    8212              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0063\x0072\x0065\x0061\x0074\x0065\x0020\x006D\x0075\x0074\x0065\x0078\x00"
-    8213              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0063\x006C\x006F\x0073\x0065\x0020\x006D\x0075\x0074\x0065\x0078\x00"
-    8214              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x006C\x006F\x0063\x006B\x0020\x006D\x0075\x0074\x0065\x0078\x00"
-    8215              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0075\x006E\x006C\x006F\x0063\x006B\x0020\x006D\x0075\x0074\x0065\x0078\x00"
-    8216              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0064\x0065\x0073\x0074\x0072\x006F\x0079\x0020\x006D\x0075\x0074\x0065\x0078\x00"
-    8217              L"\x0054\x0068\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x007B\x0030\x007D\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0065\x0078\x0069\x0073\x0074\x0073\x00"
-    8218              L"\x0048\x0061\x0073\x0068\x0069\x006E\x0067\x0020\x0074\x0068\x0065\x0020\x006B\x0065\x0079\x0020\x0072\x0065\x0074\x0075\x0072\x006E\x0065\x0064\x0020\x0061\x006E\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0062\x0061\x0064\x0020\x0068\x0061\x0073\x0068\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8219              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0069\x0064\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0069\x0073\x0020\x0070\x006F\x006F\x006C\x00"
-    8220              L"\x0054\x0068\x0065\x0020\x006D\x006F\x0064\x0075\x006C\x0075\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x007A\x0065\x0072\x006F\x00"
-    8221              L"\x0054\x0068\x0065\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0069\x0073\x0020\x0070\x0061\x0073\x0074\x0020\x0074\x0068\x0065\x0020\x0074\x006F\x0070\x0020\x006F\x0066\x0020\x0073\x0074\x0061\x0063\x006B\x00"
-    8222              L"\x0054\x0068\x0065\x0020\x0073\x0074\x0061\x0063\x006B\x0020\x0069\x0073\x0020\x0065\x006D\x0070\x0074\x0079\x002C\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0061\x0063\x0063\x0065\x0073\x0073\x0020\x006D\x0065\x006D\x0062\x0065\x0072\x0073\x00"
-    8223              L"\x0054\x0068\x0065\x0020\x0074\x0061\x0072\x0067\x0065\x0074\x0020\x0062\x0075\x0066\x0066\x0065\x0072\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0068\x0061\x0076\x0065\x0020\x0061\x0020\x006D\x0061\x0078\x0020\x0073\x0069\x007A\x0065\x0020\x006F\x0066\x0020\x007A\x0065\x0072\x006F\x00"
-    8224              L"\x0054\x0068\x0065\x0020\x0067\x0069\x0076\x0065\x006E\x0020\x0072\x0061\x0064\x0069\x0078\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x002E\x0020\x0055\x0073\x0065\x0020\x0032\x002C\x0020\x0038\x002C\x0020\x0031\x0030\x002C\x0020\x006F\x0072\x0020\x0031\x0036\x00"
-    8225              L"\x0054\x0068\x0065\x0020\x0074\x0061\x0072\x0067\x0065\x0074\x0020\x0062\x0075\x0066\x0066\x0065\x0072\x0020\x0069\x0073\x0020\x0074\x006F\x006F\x0020\x0073\x006D\x0061\x006C\x006C\x0020\x0074\x006F\x0020\x0061\x0063\x0063\x0065\x0070\x0074\x0020\x0074\x0068\x0065\x0020\x0072\x0065\x0073\x0075\x006C\x0074\x0073\x00"
-    8226              L"\x0054\x0068\x0065\x0020\x0073\x0074\x0061\x0072\x0074\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0069\x0073\x0020\x0070\x0061\x0073\x0074\x0020\x0074\x0068\x0065\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0074\x0068\x0065\x0020\x0073\x0074\x0072\x0069\x006E\x0067\x00"
-    8227              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0077\x0072\x0069\x0074\x0065\x0020\x0074\x006F\x0020\x0073\x0074\x0061\x006E\x0064\x0061\x0072\x0064\x0020\x0065\x0072\x0072\x00"
-    8228              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0077\x0072\x0069\x0074\x0065\x0020\x0074\x006F\x0020\x0073\x0074\x0061\x006E\x0064\x0061\x0072\x0064\x0020\x006F\x0075\x0074\x00"
-    8229              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0077\x0072\x0069\x0074\x0065\x0020\x0074\x006F\x0020\x0063\x006F\x006E\x0073\x006F\x006C\x0065\x00"
-    8230              L"\x0053\x0074\x0072\x0069\x006E\x0067\x0020\x0070\x006F\x006F\x006C\x0020\x0069\x0064\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x006C\x0065\x0067\x0061\x006C\x00"
-    8231              L"\x0054\x0068\x0065\x0020\x0055\x0052\x004C\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0063\x006F\x0072\x0072\x0065\x0063\x0074\x006C\x0079\x0020\x0066\x006F\x0072\x006D\x0065\x0064\x00"
-    8232              L"\x0054\x0068\x0065\x0020\x0055\x0052\x004C\x0020\x0075\x0073\x0065\x0064\x0020\x0061\x006E\x0020\x0075\x006E\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x0020\x0070\x0072\x006F\x0074\x006F\x0063\x006F\x006C\x00"
-    8233              L"\x0055\x006E\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x0020\x0055\x0052\x004C\x0020\x0070\x0072\x006F\x0074\x006F\x0063\x006F\x006C\x003A\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    8234              L"\x004F\x006E\x006C\x0079\x0020\x006C\x006F\x0063\x0061\x006C\x0068\x006F\x0073\x0074\x0020\x0069\x0073\x0020\x0073\x0075\x0070\x0070\x006F\x0072\x0074\x0065\x0064\x0020\x0061\x0074\x0020\x0074\x0068\x0069\x0073\x0020\x0074\x0069\x006D\x0065\x00"
-    8235              L"\x004E\x006F\x0020\x0070\x0072\x006F\x0074\x006F\x0063\x006F\x006C\x0020\x0070\x0072\x0065\x0066\x0069\x0078\x0020\x0070\x0072\x0065\x0073\x0065\x006E\x0074\x00"
-    8236              L"\x0045\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x0020\x002F\x002F\x0020\x0061\x0066\x0074\x0065\x0072\x0020\x0070\x0072\x006F\x0074\x006F\x0063\x006F\x006C\x00"
-    8237              L"\x0025\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x0066\x006F\x006C\x006C\x006F\x0077\x0065\x0064\x0020\x0062\x0079\x0020\x0074\x0077\x006F\x0020\x0068\x0065\x0078\x0020\x0064\x0069\x0067\x0069\x0074\x0073\x00"
-    8238              L"\x0055\x006E\x0074\x0065\x0072\x006D\x0069\x006E\x0061\x0074\x0065\x0064\x0020\x0068\x006F\x0073\x0074\x0020\x0063\x006F\x006D\x0070\x006F\x006E\x0065\x006E\x0074\x00"
-    8239              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0069\x0073\x0020\x0070\x0061\x0073\x0074\x0020\x0074\x0068\x0065\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0074\x0068\x0065\x0020\x0076\x0065\x0063\x0074\x006F\x0072\x00"
-    8240              L"\x0050\x0061\x0072\x0073\x0065\x0020\x006D\x0061\x0079\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0063\x0061\x006C\x006C\x0065\x0064\x0020\x0077\x0068\x0069\x006C\x0065\x0020\x0070\x0061\x0072\x0073\x0069\x006E\x0067\x00"
-    8241              L"\x0041\x0020\x0044\x004F\x0043\x0054\x0059\x0050\x0045\x0020\x0077\x0061\x0073\x0020\x0073\x0065\x0065\x006E\x0020\x0062\x0075\x0074\x0020\x0074\x0068\x0065\x0020\x0069\x006E\x0073\x0074\x0061\x006C\x006C\x0065\x0064\x0020\x0076\x0061\x006C\x0069\x0064\x0061\x0074\x006F\x0072\x0020\x0064\x006F\x0065\x0073\x0020\x006E\x006F\x0074\x0020\x0075\x006E\x0064\x0065\x0072\x0073\x0074\x0061\x006E\x0064\x0020\x0044\x0054\x0044\x0073\x00"
-    8242              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x006F\x0070\x0065\x006E\x0020\x0044\x0054\x0044\x0020\x0066\x0069\x006C\x0065\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    8243              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x006F\x0070\x0065\x006E\x0020\x0065\x0078\x0074\x0065\x0072\x006E\x0061\x006C\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0027\x007B\x0030\x007D\x0027\x00"
-    8244              L"\x0054\x0068\x0065\x0020\x0065\x006E\x0064\x0020\x006F\x0066\x0020\x0069\x006E\x0070\x0075\x0074\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0065\x0078\x0070\x0065\x0063\x0074\x0065\x0064\x00"
-    8245              L"\x0054\x0068\x0065\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0067\x0069\x0076\x0065\x006E\x0020\x0077\x0061\x0073\x0020\x0062\x0065\x0079\x006F\x006E\x0064\x0020\x0074\x0068\x0065\x0020\x006D\x0061\x0078\x0020\x0061\x0074\x0074\x0072\x0069\x0062\x0075\x0074\x0065\x0020\x0069\x006E\x0064\x0065\x0078\x00"
-    8246              L"\x0054\x0068\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0073\x0074\x0061\x0063\x006B\x0020\x0069\x0073\x0020\x0065\x006D\x0070\x0074\x0079\x00"
-    8247              L"\x0054\x0068\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0073\x0074\x0061\x0063\x006B\x0020\x0069\x006E\x0064\x0065\x0078\x0020\x0067\x0069\x0076\x0065\x006E\x0020\x0077\x0061\x0073\x0020\x0062\x0065\x0079\x006F\x006E\x0064\x0020\x0074\x0068\x0065\x0020\x0073\x0074\x0061\x0063\x006B\x0020\x0074\x006F\x0070\x00"
-    8248              L"\x0054\x0068\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0073\x0074\x0061\x0063\x006B\x0020\x0077\x0061\x0073\x0020\x0061\x006C\x0072\x0065\x0061\x0064\x0079\x0020\x0065\x006D\x0070\x0074\x0079\x0020\x0077\x0068\x0065\x006E\x0020\x0061\x0020\x0070\x006F\x0070\x0020\x0072\x0065\x0071\x0075\x0065\x0073\x0074\x0020\x006F\x0063\x0063\x0075\x0072\x0065\x0064\x00"
-    8249              L"\x0041\x0020\x0070\x0061\x0072\x0065\x006E\x0074\x0020\x006F\x0070\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x0077\x0061\x0073\x0020\x0072\x0065\x0071\x0075\x0065\x0073\x0074\x0065\x0064\x002C\x0020\x0062\x0075\x0074\x0020\x006F\x006E\x006C\x0079\x0020\x006F\x006E\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0069\x0073\x0020\x006F\x006E\x0020\x0074\x0068\x0065\x0020\x0073\x0074\x0061\x0063\x006B\x00"
-    8250              L"\x0054\x0068\x0065\x0020\x0069\x006E\x0064\x0069\x0063\x0061\x0074\x0065\x0064\x0020\x0072\x0065\x0061\x0064\x0065\x0072\x0020\x0069\x0064\x0020\x0077\x0061\x0073\x0020\x006E\x0065\x0076\x0065\x0072\x0020\x0066\x006F\x0075\x006E\x0064\x00"
-    8251              L"\x0054\x0068\x0065\x0020\x0061\x0075\x0074\x006F\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x0020\x0065\x006E\x0075\x006D\x0020\x0068\x0061\x0073\x0020\x0061\x006E\x0020\x0075\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0076\x0061\x006C\x0075\x0065\x00"
-    8252              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0063\x0072\x0065\x0061\x0074\x0065\x0020\x0061\x0020\x0063\x006F\x006E\x0076\x0065\x0072\x0074\x0065\x0072\x0020\x0066\x006F\x0072\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x003A\x0020\x007B\x0030\x007D\x00"
-    8253              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0064\x0065\x0063\x006F\x0064\x0065\x0020\x0066\x0069\x0072\x0073\x0074\x0020\x006C\x0069\x006E\x0065\x0020\x006F\x0066\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x003A\x0020\x007B\x0030\x007D\x00"
-    8254              L"\x0045\x006E\x0064\x0020\x006F\x0066\x0020\x0069\x006E\x0070\x0075\x0074\x0020\x0077\x0061\x0073\x0020\x0068\x0069\x0074\x0020\x0069\x006E\x0020\x0074\x0068\x0065\x0020\x006D\x0069\x0064\x0064\x006C\x0065\x0020\x006F\x0066\x0020\x0061\x0020\x006D\x0075\x006C\x0074\x0069\x0062\x0079\x0074\x0065\x0020\x0073\x0065\x0071\x0075\x0065\x006E\x0063\x0065\x00"
-    8255              L"\x0054\x0068\x0069\x0073\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x0020\x0028\x007B\x0030\x007D\x0029\x0073\x0068\x006F\x0075\x006C\x0064\x0020\x0068\x0061\x0076\x0065\x0020\x0068\x0061\x0064\x0020\x0061\x0020\x0074\x0072\x0061\x006E\x0073\x0063\x006F\x0064\x0065\x0072\x00"
-    8256              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0073\x0065\x0063\x006F\x006E\x0064\x0020\x0062\x0079\x0074\x0065\x0020\x006F\x0066\x0020\x0061\x0020\x0055\x0054\x0046\x002D\x0038\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0073\x0065\x0071\x0075\x0065\x006E\x0063\x0065\x00"
-    8257              L"\x0049\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0073\x0075\x0072\x0072\x006F\x0067\x0061\x0074\x0065\x0020\x0063\x0068\x0061\x0072\x0061\x0063\x0074\x0065\x0072\x0020\x0066\x006F\x0075\x006E\x0064\x0020\x0069\x006E\x0020\x0055\x0054\x0046\x002D\x0038\x0020\x0064\x0061\x0074\x0061\x00"
-    8258              L"\x0054\x0068\x0065\x0020\x0070\x0072\x0069\x006D\x0061\x0072\x0079\x0020\x0064\x006F\x0063\x0075\x006D\x0065\x006E\x0074\x0020\x0065\x006E\x0074\x0069\x0074\x0079\x0020\x0063\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x006F\x0070\x0065\x006E\x0065\x0064\x002E\x0020\x0049\x0064\x003D\x007B\x0030\x007D\x00"
-    8259              L"\x0055\x006E\x0062\x0061\x006C\x0061\x006E\x0063\x0065\x0064\x0020\x0073\x0074\x0061\x0072\x0074\x002F\x0065\x006E\x0064\x0020\x0074\x0061\x0067\x0073\x0020\x0066\x006F\x0075\x006E\x0064\x002C\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0063\x006F\x006E\x0074\x0069\x006E\x0075\x0065\x00"
-    8260              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0041\x0074\x0074\x0054\x0079\x0070\x0065\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x006B\x006E\x006F\x0077\x006E\x00"
-    8261              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0044\x0065\x0066\x0041\x0074\x0074\x0054\x0079\x0070\x0065\x0073\x0020\x0076\x0061\x006C\x0075\x0065\x0020\x0069\x0073\x0020\x006E\x006F\x0074\x0020\x006B\x006E\x006F\x0077\x006E\x00"
-    8262              L"\x0054\x0068\x0065\x0020\x0062\x0075\x0066\x0066\x0065\x0072\x0020\x006D\x0061\x006E\x0061\x0067\x0065\x0072\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0070\x0072\x006F\x0076\x0069\x0064\x0065\x0020\x0061\x006E\x0079\x0020\x006D\x006F\x0072\x0065\x0020\x0062\x0075\x0066\x0066\x0065\x0072\x0073\x00"
-    8263              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0062\x0075\x0066\x0066\x0065\x0072\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x0066\x006F\x0075\x006E\x0064\x0020\x0069\x006E\x0020\x0074\x0068\x0069\x0073\x0020\x006D\x0061\x006E\x0061\x0067\x0065\x0072\x0027\x0073\x0020\x0070\x006F\x006F\x006C\x00"
-    8264              L"\x0054\x0068\x0065\x0020\x0070\x0061\x0073\x0073\x0065\x0064\x0020\x0072\x0065\x0063\x006F\x0067\x006E\x0069\x007A\x0065\x0072\x0020\x0065\x006E\x0063\x006F\x0064\x0069\x006E\x0067\x0020\x0077\x0061\x0073\x0020\x006E\x006F\x0074\x0020\x006B\x006E\x006F\x0077\x006E\x00"
-    8265              L"\x0054\x0068\x0065\x0020\x0062\x006C\x006F\x0063\x006B\x0020\x006F\x0066\x0020\x0058\x004D\x004C\x0020\x0064\x0061\x0074\x0061\x0020\x0063\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0074\x0072\x0061\x006E\x0073\x0063\x006F\x0064\x0065\x0064\x00"
-    8266              L"\x0043\x006F\x0075\x006C\x0064\x0020\x006E\x006F\x0074\x0020\x0063\x0072\x0065\x0061\x0074\x0065\x0020\x0061\x0020\x0064\x0065\x0066\x0061\x0075\x006C\x0074\x0020\x0074\x0072\x0061\x006E\x0073\x0063\x006F\x0064\x0065\x0072\x00"
-    8267              L"\x0054\x0068\x0065\x0020\x0062\x0069\x006E\x0061\x0072\x0079\x0020\x006F\x0070\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x006E\x006F\x0064\x0065\x0020\x0068\x0061\x0064\x0020\x0061\x0020\x0075\x006E\x0061\x0072\x0079\x0020\x006E\x006F\x0064\x0065\x0020\x0074\x0079\x0070\x0065\x00"
-    8268              L"\x0054\x0068\x0065\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x0074\x0079\x0070\x0065\x0020\x006D\x0075\x0073\x0074\x0020\x0062\x0065\x0020\x006D\x0069\x0078\x0065\x0064\x0020\x006F\x0072\x0020\x0063\x0068\x0069\x006C\x0064\x0072\x0065\x006E\x00"
-    8269              L"\x0050\x0043\x0044\x0041\x0054\x0041\x0020\x006E\x006F\x0064\x0065\x0073\x0020\x0061\x0072\x0065\x0020\x006E\x006F\x0074\x0020\x0076\x0061\x006C\x0069\x0064\x0020\x0068\x0065\x0072\x0065\x00"
-    8270              L"\x0054\x0068\x0065\x0020\x007B\x0030\x007D\x0020\x006F\x0070\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x0069\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x0020\x0066\x006F\x0072\x0020\x0074\x0068\x0065\x0020\x0073\x0070\x0065\x0063\x0020\x0074\x0079\x0070\x0065\x00"
-    8271              L"\x0054\x0068\x0065\x0020\x0075\x006E\x0061\x0072\x0079\x0020\x006F\x0070\x0065\x0072\x0061\x0074\x0069\x006F\x006E\x0020\x006E\x006F\x0064\x0065\x0020\x0068\x0061\x0064\x0020\x0061\x0020\x0062\x0069\x006E\x0061\x0072\x0079\x0020\x006E\x006F\x0064\x0065\x0020\x0074\x0079\x0070\x0065\x00"
-    8272              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x006D\x006F\x0064\x0065\x006C\x0020\x0074\x0079\x0070\x0065\x00"
-    8273              L"\x0055\x006E\x006B\x006E\x006F\x0077\x006E\x0020\x0063\x006F\x006E\x0074\x0065\x006E\x0074\x0020\x0073\x0070\x0065\x0063\x0020\x0074\x0079\x0070\x0065\x00"
-    8274              L"\x0054\x0068\x0065\x0020\x0065\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0069\x0064\x0020\x0077\x0061\x0073\x0020\x0069\x006E\x0076\x0061\x006C\x0069\x0064\x00"
-    8275              L"\x0054\x0068\x0065\x0020\x0063\x0061\x006C\x006C\x0020\x0074\x006F\x0020\x0073\x0063\x0061\x006E\x004E\x0065\x0078\x0074\x0028\x0029\x0020\x0069\x0073\x0020\x0069\x006C\x006C\x0065\x0067\x0061\x006C\x0020\x0061\x0074\x0020\x0074\x0068\x0069\x0073\x0020\x0074\x0069\x006D\x0065\x00"
+    2                       "Notation '{0}' has already been declared"
+    3                       "Attribute '{0}' has already been declared"
+    4                       "Encoding ({0}, from XMLDecl or manually set) contradicts the auto-sensed encoding, ignoring it"
+    5                       "Element '{0}' was referenced in a content model but never declared"
+    6                       "Element '{0}' was referenced in an attlist but never declared"
+    9                       "Expected comment or CDATA"
+    10                      "Expected an attribute name"
+    11                      "Expected a notation name"
+    12                      "Repetition of individual elements is not legal for mixed content models"
+    13                      "Bad default attribute declaration"
+    14                      "Expected default attribute declaration, assuming #IMPLIED  "
+    15                      "Attribute list syntax error"
 END
 
+STRINGTABLE DISCARDABLE 
+BEGIN
+    16                      "Expected equal sign"
+    17                      "Duplication attribute name"
+    18                      "Bad ID for xml:lang attribute"
+    19                      "Expected an element name"
+    20                      "Must start with an XMLDecl"
+    21                      "Comments must start with <!--"
+    22                      "Invalid document structure"
+    23                      "Expected a 'version=', 'encoding=', or 'standalone='"
+    24                      "Bad XML version string"
+    25                      "Unsupported XML version"
+    26                      "Unterminated XML decl"
+    27                      "Bad XML encoding declaration"
+    28                      "Bad standalone declaration"
+    29                      "Unterminated comment"
+    30                      "Processing instruction name expected"
+    31                      "Unterminated processing instruction"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    32                      "Invalid character"
+    33                      "Unexpected text before root element"
+    34                      "Unterminated start tag"
+    35                      "Expected an attribute value"
+    36                      "Unterminated end tag"
+    37                      "Expected attribute type (CDATA, ID, NMTOKEN, ..),"
+    38                      "Expected end of tag '{0}'"
+    39                      "Expected tag name, comment, PI, or other markup"
+    40                      "Not valid after content"
+    41                      "Expected comment"
+    42                      "Expected comment or processing instruction"
+    43                      "Expected whitespace"
+    44                      "No root element in DOCTYPE"
+    45                      "Expected quoted string"
+    46                      "Expected public id"
+    47                      "Invalid character in public id"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    48                      "Unterminated DOCTYPE declaration"
+    49                      "Invalid character in internal subset"
+    50                      "Expected CDATA section"
+    51                      "Invalid initial name character"
+    52                      "Invalid name character"
+    53                      "Unexpected whitespace"
+    54                      "Invalid character in attribute value"
+    55                      "Expected a markup declaration"
+    56                      "Text declaration not legal here"
+    57                      "Conditional section in internal subset"
+    58                      "Expected parameter entity name"
+    59                      "Unterminated entity declaration"
+    60                      "Invalid character reference"
+    61                      "Unterminated character reference"
+    62                      "Expected entity name for reference"
+    63                      "Entity '{0}' was not found"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    64                      "Unparsed entitty references not valid here"
+    65                      "Unterminated entity reference"
+    66                      "Recursive entity expansion"
+    67                      "Partial markup in entity value"
+    68                      "Unterminated element declaration"
+    69                      "Expected content specification expression"
+    70                      "Expected asterisk"
+    71                      "Unterminated Content model"
+    72                      "Expected system id"
+    73                      "Expected system or public id"
+    74                      "Unterminated notation declaration"
+    75                      "Expected ',', '|', or ')' characters"
+    76                      "Expected '|' or ')' characters"
+    77                      "Expected ',' or ')' characters or close parenthesis"
+    78                      "Expected enumeration value"
+    79                      "Expected | enumeration separator, or closing paren"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    80                      "Unterminated entity literal"
+    81                      "There are more end tags than start tags"
+    82                      "Reference to external declaration in standalone document. Entity={0}"
+    83                      "Expected an open parenthesis"
+    84                      "The attribute '{0}' is already used in element '{1}'"
+    85                      "A '<' character cannot be used in an attribute value, except through <"
+    86                      "A leading surrogate character was not followed by a legal second character"
+    87                      "Expected ']]>' to end a conditional section"
+    88                      "Expected INCLUDE or IGNORE here"
+    89                      "Expected [ to follow INCLUDE or IGNORE"
+    90                      "Expected a TextDecl here: <?xml ...."
+    91                      "Expected a XMLDecl here: <?xml ...."
+    92                      "Unexpected end of entity {0}"
+    93                      "A PE propogated out of the int/ext subset, discarding extra text"
+    94                      "An extra ] character was found an ignored"
+    95                      "PE refs are not allowed inside markup in the internal subset"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    96                      "An entity propogated out of the content section into Miscellaneous"
+    97                      "Expected &# to be followed by a numeric character value"
+    98                      "Expected an open bracket ('[') here"
+    99                      "The sequence ']]>' is not allowed in character data"
+    100                     "Illegal sequence '--' in comment"
+    101                     "Unterminated CDATA section"
+    102                     "Expected NDATA"
+    103                     "NDATA is not legal for parameter entities"
+    104                     "Hex radix character refs must use 'x', not 'X'"
+    105                     "'{0}' has already been set. Ignoring redundant setting"
+    106                     "The XMLDecl strings must be in the order: version, encoding, standalone"
+    107                     "External entities cannot be referred to from attribute values"
+    108                     "The XML or Text decl must start with '<?xml ', not '<?XML '"
+    109                     "Expected a literal entity value or PUBLIC/SYSTEM id"
+    110                     "'{0}' is not a valid digit for the indicated radix"
+    111                     "The input ended before all started tags were ended. Last tag started was '{0}'"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    112                     "The content model for element '{0}' is ambiguous"
+    113                     "Nested CDATA sections are not allowed"
+    114                     "The prefix '{0}' has not been mapped to any URI"
+    115                     "The start and the end tag were in the different entities"
+    116                     "The main XML document cannot be empty"
+    117                     "CDATA is not allowed outside the root element"
+    118                     "Only numeric character entities or special character entities are legal here"
+    119                     "Got an unexpected trailing surrogate character"
+    120                     "No processing instruction starts with 'xml'"
+    121                     "The XML or Text declaration must start at line/column 1/1"
+    122                     "The 'version=' string is required in an XMLDecl"
+    123                     "The 'standalone=' string is only allowed in the main XML entity"
+    124                     "When namespaces are enabled, a name can have only one colon character"
+    125                     "When namespaces are enabled, the colon cannot be the first or last character"
+    126                     "Colons are not allowed in this name when namespaces are enabled"
+    127                     "A system exception occured during processing"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    128                     "An exception occured! Type:{0}, Message:{1}"
+    129                     "Unexpected end of file exception. Message: {0}"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    16386                   "Unknown element '{0}'"
+    16387                   "Attribute '{0}' not defined"
+    16388                   "Notation '{0}' was referenced but never declared"
+    16389                   "Root element different from DOCTYPE"
+    16390                   "Required attribute '{0}' was not provided"
+    16391                   "Element '{0}' is not valid for content model: '{1}'"
+    16392                   "ID attributes must be #IMPLIED or #REQUIRED"
+    16393                   "This type of attribute cannot have an empty value"
+    16394                   "Element '{0}' has already been declared"
+    16395                   "Element '{0}' has more than one ID attribute"
+    16396                   "ID '{0}' has already been used"
+    16397                   "ID attribute '{0}' was referenced but never declared"
+    16398                   "Attribute '{0}' refers to an unknown notation '{1}'"
+    16399                   "Element '{0}' was used in the DOCTYPE but never declared"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    16400                   "Empty content not valid for content model: '{0}'"
+    16401                   "Attribute '{{0}}{1}' is not declared for element '{2}'"
+    16402                   "Attributes of type ENTITY/ENTITIES must refer to an external, unparsed entity"
+    16403                   "Attribute '{0}' refers to an unknown entity '{1}'"
+    16404                   "Not enough elements to match content model : '{0}'"
+    16405                   "No character data is allowed by content model"
+    16406                   "Attribute '{0}' does not match its defined enumeration or notation list"
+    16407                   "The values for attribute '{0}' must be names or name tokens"
+    16408                   "Attribute '{0}' does not support multiple values"
+    16409                   "Attribute '{0}' has a value that does not match its #FIXED value"
+    16410                   "Element types cannot be duplicated in Mixed content models"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8194                    "The index is beyond the array bounds  "
+    8195                    "The new size is less than the old one"
+    8196                    "The bit index was beyond the set size"
+    8197                    "The pointer has not been set"
+    8198                    "The enumerator contains no more elements"
+    8199                    "Could not open file: {0}"
+    8200                    "Could not query the current file position"
+    8201                    "Could not close the file"
+    8202                    "Could not seek to end of file"
+    8203                    "Could not seek to required position in file"
+    8204                    "Could not duplicate the handle"
+    8205                    "Could not read data from file"
+    8206                    "Could not reset file to beginning"
+    8207                    "Could not acertain the file size"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8208                    "Could not determine base pathname of the file"
+    8209                    "The hash modulus cannot be zero"
+    8210                    "Hashing the key returned an invalid bad hash value"
+    8211                    "The key '{0}' could not be found in the hash table"
+    8212                    "Could not create mutex"
+    8213                    "Could not close mutex"
+    8214                    "Could not lock mutex"
+    8215                    "Could not unlock mutex"
+    8216                    "Could not destroy mutex"
+    8217                    "The element {0} already exists"
+    8218                    "Hashing the key returned an invalid bad hash value"
+    8219                    "The passed id is not valid for this pool"
+    8220                    "The modulus value cannot be zero"
+    8221                    "The index is past the top of stack"
+    8222                    "The stack is empty, cannot access members"
+    8223                    "The target buffer cannot have a max size of zero"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8224                    "The given radix is not supported. Use 2, 8, 10, or 16"
+    8225                    "The target buffer is too small to accept the results"
+    8226                    "The start index is past the end of the string"
+    8227                    "Could not write to standard err"
+    8228                    "Could not write to standard out"
+    8229                    "Could not write to console"
+    8230                    "String pool id was not legal"
+    8231                    "The URL was not correctly formed"
+    8232                    "The URL used an unsupported protocol"
+    8233                    "Unsupported URL protocol: '{0}'"
+    8234                    "Only localhost is supported at this time"
+    8235                    "No protocol prefix present"
+    8236                    "Expected // after protocol"
+    8237                    "% must be followed by two hex digits"
+    8238                    "Unterminated host component"
+    8239                    "The passed index is past the end of the vector"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8240                    "Parse may not be called while parsing"
+    8241                    "A DOCTYPE was seen but the installed validator does not understand DTDs"
+    8242                    "Could not open DTD file '{0}'"
+    8243                    "Could not open external entity '{0}'"
+    8244                    "The end of input was not expected"
+    8245                    "The index given was beyond the max attribute index"
+    8246                    "The element stack is empty"
+    8247                    "The element stack index given was beyond the stack top"
+    8248                    "The element stack was already empty when a pop request occured"
+    8249                    "A parent operation was requested, but only one element is on the stack"
+    8250                    "The indicated reader id was never found"
+    8251                    "The auto encoding enum has an unknown value"
+    8252                    "Could not create a converter for encoding: {0}"
+    8253                    "Could not decode first line of entity: {0}"
+    8254                    "End of input was hit in the middle of a multibyte sequence"
+    8255                    "This encoding ({0})should have had a transcoder"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8256                    "Invalid second byte of a UTF-8 character sequence"
+    8257                    "Invalid surrogate character found in UTF-8 data"
+    8258                    "The primary document entity could not be opened. Id={0}"
+    8259                    "Unbalanced start/end tags found, cannot continue"
+    8260                    "The passed AttTypes value is not known"
+    8261                    "The passed DefAttTypes value is not known"
+    8262                    "The buffer manager cannot provide any more buffers"
+    8263                    "The passed buffer was not found in this manager's pool"
+    8264                    "The passed recognizer encoding was not known"
+    8265                    "The block of XML data could not be transcoded"
+    8266                    "Could not create a default transcoder"
+    8267                    "The binary operation node had a unary node type"
+    8268                    "The content type must be mixed or children"
+    8269                    "PCDATA nodes are not valid here"
+    8270                    "The {0} operation is invalid for the spec type"
+    8271                    "The unary operation node had a binary node type"
+END
+
+STRINGTABLE DISCARDABLE 
+BEGIN
+    8272                    "Unknown content model type"
+    8273                    "Unknown content spec type"
+    8274                    "The element id was invalid"
+    8275                    "The call to scanNext() is illegal at this time"
+END
 
 #endif    // English (U.S.) resources
 /////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/src/util/Platforms/Win32/Win32PlatformUtils.cpp b/src/util/Platforms/Win32/Win32PlatformUtils.cpp
index 49ca030..b4afa1f 100644
--- a/src/util/Platforms/Win32/Win32PlatformUtils.cpp
+++ b/src/util/Platforms/Win32/Win32PlatformUtils.cpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:06:21  twl
- * Initial revision
+ * Revision 1.2  1999/11/22 20:41:26  abagchi
+ * Changed 'intlFiles/Locales' to 'icu/data'
+ *
+ * Revision 1.1.1.1  1999/11/09 01:06:21  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:33  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -695,7 +698,7 @@
     if (!::GetEnvironmentVariableA("ICU_DATA", tmpBuf, 4096))
     {
         strcpy(tmpBuf, fgLibLocation);
-        strcat(tmpBuf, "intlFiles\\Locales\\");
+        strcat(tmpBuf, "icu\\data\\");
         ICUTransService::setICUPath(tmpBuf);
     }
     return new ICUTransService;
diff --git a/src/util/Transcoders/ICU/ICUTransService.cpp b/src/util/Transcoders/ICU/ICUTransService.cpp
index e9fdeab..f6f72c1 100644
--- a/src/util/Transcoders/ICU/ICUTransService.cpp
+++ b/src/util/Transcoders/ICU/ICUTransService.cpp
@@ -56,8 +56,14 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:06:07  twl
- * Initial revision
+ * Revision 1.3  1999/11/18 20:16:52  abagchi
+ * Now works with ICU 1.3.1
+ *
+ * Revision 1.2  1999/11/17 22:36:41  rahulj
+ * Code works with ICU transcoding service
+ *
+ * Revision 1.1.1.1  1999/11/09 01:06:07  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:33  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -77,6 +83,7 @@
 #include <ustring.h>
 
 
+
 // ---------------------------------------------------------------------------
 //  ICUTransService: Public, static methods
 // ---------------------------------------------------------------------------
@@ -174,7 +181,7 @@
     //  which will basically cause the system to give up because we really can't
     //  do anything without one.
     //
-    UErrorCode uerr = ZERO_ERROR;
+    UErrorCode uerr = U_ZERO_ERROR;
     UConverter* converter = ucnv_open(NULL, &uerr);
     if (!converter)
         return 0;
@@ -189,7 +196,7 @@
                                         ,       XMLTransService::Codes& resValue
                                         , const unsigned int            blockSize)
 {
-    UErrorCode uerr = ZERO_ERROR;
+    UErrorCode uerr = U_ZERO_ERROR;
     UConverter* converter = ucnv_openU(encodingName, &uerr);
     if (!converter)
     {
@@ -239,7 +246,7 @@
 
     XMLMutexLock lockConverter(&fMutex);
 
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     const int32_t targetCap = ucnv_fromUChars
     (
         fConverter
@@ -249,7 +256,7 @@
         , &err
     );
 
-    if (err != BUFFER_OVERFLOW_ERROR)
+    if (err != U_BUFFER_OVERFLOW_ERROR)
         return 0;
 
     return (unsigned int)targetCap;
@@ -262,7 +269,7 @@
 
     XMLMutexLock lockConverter(&fMutex);
 
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     const int32_t targetCap = ucnv_toUChars
     (
         fConverter
@@ -273,7 +280,7 @@
         , &err
     );
 
-    if (err != BUFFER_OVERFLOW_ERROR)
+    if (err != U_BUFFER_OVERFLOW_ERROR)
         return 0;
 
     // Subtract one since it includes the terminator space
@@ -291,7 +298,7 @@
 
     XMLMutexLock lockConverter(&fMutex);
 
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     const char* startSrc = srcData;
     const XMLCh chRet = ucnv_getNextUChar
     (
@@ -302,7 +309,7 @@
     );
 
     // Bail out if an error
-    if (FAILURE(err))
+    if (U_FAILURE(err))
         return 0;
 
     // Calculate the bytes eaten and return the char
@@ -335,7 +342,7 @@
     retBuf = new char[targetLen + 1];
 
     //Convert the Unicode string to char* using Intl stuff
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     int32_t targetCap = ucnv_fromUChars
     (
         fConverter
@@ -346,16 +353,16 @@
     );
 
     // If targetLen is not enough then buffer overflow might occur
-    if (err == BUFFER_OVERFLOW_ERROR)
+    if (err == U_BUFFER_OVERFLOW_ERROR)
     {
         // Reset the error, delete the old buffer, allocate a new one, and try again
-        err = ZERO_ERROR;
+        err = U_ZERO_ERROR;
         delete [] retBuf;
         retBuf = new char[targetCap];
         targetCap = ucnv_fromUChars(fConverter, retBuf, targetCap, toTranscode, &err);
     }
 
-    if (FAILURE(err))
+    if (U_FAILURE(err))
     {
         delete [] retBuf;
         return 0;
@@ -386,11 +393,11 @@
 
     XMLMutexLock lockConverter(&fMutex);
 
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     int32_t targetCap;
     targetCap = ucnv_fromUChars(fConverter, toFill, maxChars + 1, toTranscode, &err);
 
-    if (FAILURE(err))
+    if (U_FAILURE(err))
         return false;
 
     return true;
@@ -422,10 +429,10 @@
 
     //
     //  Here we don't know what the target length will be so use 0 and expect
-    //  an BUFFER_OVERFLOW_ERROR in which case it'd get resolved by the
+    //  an U_BUFFER_OVERFLOW_ERROR in which case it'd get resolved by the
     //  correct capacity value.
     //
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     int32_t targetCap;
     targetCap = ucnv_toUChars
     (
@@ -437,10 +444,10 @@
         , &err
     );
 
-    if (err != BUFFER_OVERFLOW_ERROR)
+    if (err != U_BUFFER_OVERFLOW_ERROR)
         return 0;
 
-    err = ZERO_ERROR;
+    err = U_ZERO_ERROR;
     retVal = new XMLCh[targetCap];
     ucnv_toUChars
     (
@@ -452,7 +459,7 @@
         , &err
     );
 
-    if (FAILURE(err))
+    if (U_FAILURE(err))
         return 0;
 
     return retVal;
@@ -478,7 +485,7 @@
 
     XMLMutexLock lockConverter(&fMutex);
 
-    UErrorCode err = ZERO_ERROR;
+    UErrorCode err = U_ZERO_ERROR;
     const int32_t srcLen = (int32_t)strlen(toTranscode);
 
     ucnv_toUChars
@@ -491,7 +498,7 @@
         , &err
     );
 
-    if (FAILURE(err))
+    if (U_FAILURE(err))
         return false;
     return true;
 }
@@ -524,7 +531,7 @@
     //  when the raw input buffer holds more characters than will fit
     //  in the Unicode output buffer.
     //
-    UErrorCode  err = ZERO_ERROR;
+    UErrorCode  err = U_ZERO_ERROR;
     ucnv_toUnicode
     (
         fConverter
@@ -537,7 +544,7 @@
         , &err
     );
 
-    if ((err != ZERO_ERROR) && (err != INDEX_OUTOFBOUNDS_ERROR))
+    if ((err != U_ZERO_ERROR) && (err != U_INDEX_OUTOFBOUNDS_ERROR))
         ThrowXML(TranscodingException, XML4CExcepts::Trans_CouldNotXCodeXMLData);
 
     // Calculate the bytes eaten and store in caller's param
diff --git a/src/util/Transcoders/ICU/Makefile.in b/src/util/Transcoders/ICU/Makefile.in
index 520eaa4..30c819c 100644
--- a/src/util/Transcoders/ICU/Makefile.in
+++ b/src/util/Transcoders/ICU/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:06:08  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:00:54  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:06:08  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:34  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/Transcoders/Iconv/IconvTransService.cpp b/src/util/Transcoders/Iconv/IconvTransService.cpp
index f5756ed..3dab4d1 100644
--- a/src/util/Transcoders/Iconv/IconvTransService.cpp
+++ b/src/util/Transcoders/Iconv/IconvTransService.cpp
@@ -56,8 +56,23 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:06:10  twl
- * Initial revision
+ * Revision 1.4  1999/12/02 20:20:16  rahulj
+ * Fixed incorrect comparision of int with a pointer.
+Got burnt because definition of NULL varies on different platforms,
+though use of NULL was not correct in the first place.
+ *
+ * Revision 1.3  1999/11/20 00:28:19  rahulj
+ * Added code for case-insensitive wide character string compares
+ *
+ * Revision 1.2  1999/11/17 21:52:49  abagchi
+ * Changed wcscasecmp() to wcscmp() to make it work on Solaris and AIX
+ * PR:
+ * Obtained from:
+ * Submitted by:
+ * Reviewed by:
+ *
+ * Revision 1.1.1.1  1999/11/09 01:06:10  twl
+ * Initial checkin
  *
  * Revision 1.7  1999/11/08 20:45:34  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -110,60 +125,47 @@
 int IconvTransService::compareIString(  const   XMLCh* const    comp1
                                         , const XMLCh* const    comp2)
 {
-    unsigned int  lent1 = getWideCharLength(comp1);
-    unsigned int  lent2 = getWideCharLength(comp2);
+    const XMLCh* cptr1 = comp1;
+    const XMLCh* cptr2 = comp2;
 
-    wchar_t*    tmp1 = new wchar_t[lent1 + 1];
-    wchar_t*    tmp2 = new wchar_t[lent2 + 1];
+    while ((*cptr1 != 0) && (*cptr2 != 0))
+    {
+        wint_t  wch1 = towupper(*cptr1);
+        wint_t  wch2 = towupper(*cptr2);
+        if (wch1 < wch2)
+            return -1;
+        if (wch1 > wch2)
+            return 1;
 
-    const XMLCh*  ptr = comp1;
-    wchar_t*      target = tmp1;
-    while (*ptr++)
-        *target++ = *ptr;
-    *target = 0x00;
-    
-    ptr = comp2;
-    target = tmp2;
-    while (*ptr++)
-        *target++ = *ptr;
-    *target = 0x00;
-
-    int retval = wcscasecmp(tmp1, tmp2);
-
-    delete [] tmp1;
-    delete [] tmp2;
-
-    return retval;
+        cptr1++;
+        cptr2++;
+    }
+    return 0;
 }
 
+
 int IconvTransService::compareNIString( const   XMLCh* const    comp1
                                         , const XMLCh* const    comp2
                                         , const unsigned int    maxChars)
 {
-    unsigned int  lent1 = getWideCharLength(comp1);
-    unsigned int  lent2 = getWideCharLength(comp2);
+    const XMLCh* cptr1 = comp1;
+    const XMLCh* cptr2 = comp2;
 
-    wchar_t*    tmp1 = new wchar_t[lent1 + 1];
-    wchar_t*    tmp2 = new wchar_t[lent2 + 1];
+    unsigned int  n = 0;
+    while ((*cptr1 != 0) && (*cptr2 != 0) && (n < maxChars))
+    {
+        wint_t  wch1 = towupper(*cptr1);
+        wint_t  wch2 = towupper(*cptr2);
+        if (wch1 < wch2)
+            return -1;
+        if (wch1 > wch2)
+            return 1;
 
-    const XMLCh*  ptr = comp1;
-    wchar_t*      target = tmp1;
-    while (*ptr++)
-        *target++ = *ptr;
-    *target = 0x00;
-    
-    ptr = comp2;
-    target = tmp2;
-    while (*ptr++)
-        *target++ = *ptr;
-    *target = 0x00;
-
-    int retval = wcsncasecmp(tmp1, tmp2, maxChars);
-
-    delete [] tmp1;
-    delete [] tmp2;
-
-    return retval;
+        cptr1++;
+        cptr2++;
+        n++;
+    }
+    return 0;
 }
 
 
diff --git a/src/util/Transcoders/Iconv/Makefile.in b/src/util/Transcoders/Iconv/Makefile.in
index 52a95bd..76c420c 100644
--- a/src/util/Transcoders/Iconv/Makefile.in
+++ b/src/util/Transcoders/Iconv/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:06:11  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:01:00  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:06:11  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:35  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
diff --git a/src/util/Transcoders/Win32/Win32TransService.cpp b/src/util/Transcoders/Win32/Win32TransService.cpp
index 32c96da..c95f0fe 100644
--- a/src/util/Transcoders/Win32/Win32TransService.cpp
+++ b/src/util/Transcoders/Win32/Win32TransService.cpp
@@ -56,8 +56,14 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:06:04  twl
- * Initial revision
+ * Revision 1.2  1999/12/01 18:54:26  roddey
+ * Small syntactical change to make it compile under Borland's compiler.
+ * It does not make it worse under other compilers, so why not. Basically
+ * it was just changing ::iswspace() to iswspace(), i.e. get rid of the ::
+ * prefix, which freaked out Borland for some reason.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:06:04  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:35  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -102,7 +108,7 @@
 
 bool Win32TransService::isSpace(const XMLCh toCheck) const
 {
-    return (::iswspace(toCheck) != 0);
+    return (iswspace(toCheck) != 0);
 }
 
 XMLTranscoder* Win32TransService::makeNewDefTranscoder()
diff --git a/src/util/URL.hpp b/src/util/URL.hpp
index 81c27e8..1c5b582 100644
--- a/src/util/URL.hpp
+++ b/src/util/URL.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:05:22  twl
- * Initial revision
+ * Revision 1.2  1999/11/23 01:49:56  rahulj
+ * Cannot use class qualifier in class defn. CC under HPUX is happy.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:05:22  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:45:16  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -138,7 +141,7 @@
     const XMLCh* getHost() const;
     const XMLCh* getProtocol() const;
     const XMLCh* getPath() const;
-    URL::Protocols getType() const;
+    Protocols getType() const;
     const XMLCh* getURL() const;
 
 
@@ -160,7 +163,7 @@
     //  Private helper methods
     // -----------------------------------------------------------------------
     void cleanup();
-    URL::Protocols findType(unsigned int& curPos) const;
+    Protocols findType(unsigned int& curPos) const;
     XMLCh getNextCh(unsigned int& pos, const bool endOk = false) const;
     XMLCh peekNextCh(unsigned int pos) const;
     void parse();
diff --git a/src/util/XML4CDefs.hpp b/src/util/XML4CDefs.hpp
index f64377d..ed65b08 100644
--- a/src/util/XML4CDefs.hpp
+++ b/src/util/XML4CDefs.hpp
@@ -56,8 +56,14 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:05:35  twl
- * Initial revision
+ * Revision 1.3  1999/12/01 17:16:16  rahulj
+ * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel
+ *
+ * Revision 1.2  1999/11/10 02:02:51  abagchi
+ * Changed version numbers
+ *
+ * Revision 1.1.1.1  1999/11/09 01:05:35  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:19  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -74,10 +80,10 @@
 //  These are updated for every build. They must be at the top because they
 //  can be used by various per-compiler headers below.
 // ---------------------------------------------------------------------------
-#define XML4C_DLLVersionStr "3_0"
-static const char* const    gXML4CVersionStr = "3_0";
-static const char* const    gXML4CFullVersionStr = "3_0_0";
-static const unsigned int   gXML4CMajVersion = 3;
+#define XML4C_DLLVersionStr "1_0"
+static const char* const    gXML4CVersionStr = "1_0";
+static const char* const    gXML4CFullVersionStr = "1_0_0";
+static const unsigned int   gXML4CMajVersion = 1;
 static const unsigned int   gXML4CMinVersion = 0;
 static const unsigned int   gXML4CRevision   = 0;
 
@@ -110,6 +116,10 @@
 #include    <util/Platforms/HPUX/HPUXDefs.hpp>
 #endif
 
+#if defined(XML_IRIX)
+#include    <util/Platforms/IRIX/IRIXDefs.hpp>
+#endif
+
 #if defined(XML_TANDEM)
 #include    <util/Platforms/Tandem/TandemDefs.hpp>
 #endif
@@ -164,6 +174,10 @@
 #include    <util/Compilers/HPCCDefs.hpp>
 #endif
 
+#if defined(XML_MIPSPRO_CC)
+#include    <util/Compilers/MIPSproDefs.hpp>
+#endif
+
 #if defined(XML_TANDEMCC)
 #include    <util/Compilers/TandemCCDefs.hpp>
 #endif
diff --git a/src/util/XMLException.cpp b/src/util/XMLException.cpp
index dbe56de..0de9548 100644
--- a/src/util/XMLException.cpp
+++ b/src/util/XMLException.cpp
@@ -56,8 +56,13 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:05:39  twl
- * Initial revision
+ * Revision 1.2  1999/12/02 19:02:57  roddey
+ * Get rid of a few statically defined XMLMutex objects, and lazy eval them
+ * using atomic compare and swap. I somehow let it get by me that we don't
+ * want any static/global objects at all.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:05:39  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:19  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -79,15 +84,10 @@
 // ---------------------------------------------------------------------------
 //  Local data
 //
-//  gMsgMutex
-//      This is a mutex that is used to synchronize access to our one and
-//      only exception text message loader.
-//
 //  gDefErrMsg
 //      For now, if we cannot load an exception message, we load up the
 //      default.
 // ---------------------------------------------------------------------------
-static XMLMutex     gMsgMutex;
 static const XMLCh  gDefErrMsg[] = 
 {
         chLatin_C, chLatin_o, chLatin_u, chLatin_l, chLatin_d
@@ -98,6 +98,30 @@
 };
 
 
+// ---------------------------------------------------------------------------
+//  Local, static functions
+// ---------------------------------------------------------------------------
+
+//
+//  We need to fault in this mutex. But, since its used for synchronization
+//  itself, we have to do this the low level way using a compare and swap.
+//
+static XMLMutex& gMsgMutex()
+{
+    static XMLMutex* msgMutex = 0;
+    if (!msgMutex)
+    {
+        XMLMutex* tmpMutex = new XMLMutex;
+        if (XMLPlatformUtils::compareAndSwap((void**)&msgMutex, tmpMutex, 0))
+        {
+            // Someone beat us to it, so let's clean up ours
+            delete tmpMutex;
+        }
+    }
+    return *msgMutex;
+}
+
+
 
 // ---------------------------------------------------------------------------
 //  Local methods
@@ -221,7 +245,7 @@
 
     // Lock the message loader mutex and load the text
     {
-        XMLMutexLock lockInit(&gMsgMutex);
+        XMLMutexLock lockInit(&gMsgMutex());
         if (!gGetMsgLoader().loadMsg(toLoad, errText, msgSize))
         {
             fMsg = XMLString::replicate(gDefErrMsg);
@@ -250,7 +274,7 @@
 
     // Lock the message loader mutex and load the text
     {
-        XMLMutexLock lockInit(&gMsgMutex);
+        XMLMutexLock lockInit(&gMsgMutex());
         if (!gGetMsgLoader().loadMsg(toLoad, errText, msgSize, text1, text2, text3, text4))
         {
             fMsg = XMLString::replicate(gDefErrMsg);
@@ -279,7 +303,7 @@
 
     // Lock the message loader mutex and load the text
     {
-        XMLMutexLock lockInit(&gMsgMutex);
+        XMLMutexLock lockInit(&gMsgMutex());
         if (!gGetMsgLoader().loadMsg(toLoad, errText, msgSize, text1, text2, text3, text4))
         {
             fMsg = XMLString::replicate(gDefErrMsg);
diff --git a/src/validators/DTD/DTDElementDecl.hpp b/src/validators/DTD/DTDElementDecl.hpp
index 18dcb12..7e3f7d1 100644
--- a/src/validators/DTD/DTDElementDecl.hpp
+++ b/src/validators/DTD/DTDElementDecl.hpp
@@ -56,8 +56,11 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:03:32  twl
- * Initial revision
+ * Revision 1.2  1999/11/23 01:51:04  rahulj
+ * Cannot use class qualifier in class defn. CC under HPUX is happy.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:03:32  twl
+ * Initial checkin
  *
  * Revision 1.3  1999/11/08 20:45:40  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -144,7 +147,7 @@
     DTDAttDef* getAttDef(const XMLCh* const attName);
     ContentSpecNode* getContentSpec();
     const ContentSpecNode* getContentSpec() const;
-    DTDElementDecl::ModelTypes getModelType() const;
+    ModelTypes getModelType() const;
 
 
     // -----------------------------------------------------------------------
diff --git a/src/validators/DTD/DTDValidator.cpp b/src/validators/DTD/DTDValidator.cpp
index 1bb0806..f20edd3 100644
--- a/src/validators/DTD/DTDValidator.cpp
+++ b/src/validators/DTD/DTDValidator.cpp
@@ -56,8 +56,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:03:35  twl
- * Initial revision
+ * Revision 1.2  1999/11/30 20:24:45  roddey
+ * Fixes for incorrect deletion of temporary decl objects, which would cause
+ * a double delete when the parser is deleted.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:03:35  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:40  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -579,7 +583,10 @@
 
     // An empty string cannot be valid for any of the other types
     if (!attrValue[0])
+    {
         emitError(XML4CValid::InvalidEmptyAttValue, fullName);
+        return;
+    }
 
     // See whether we are doing multiple values or not
     const bool multipleValues =
diff --git a/src/validators/DTD/DTDValidator2.cpp b/src/validators/DTD/DTDValidator2.cpp
index 277c973..17ef241 100644
--- a/src/validators/DTD/DTDValidator2.cpp
+++ b/src/validators/DTD/DTDValidator2.cpp
@@ -56,8 +56,16 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:03:38  twl
- * Initial revision
+ * Revision 1.3  1999/12/04 01:13:16  roddey
+ * Fixed the logic for checking for PIs that start with 'xml'. It was doing doing "if (stringICompare()) "
+ * instead of "if (!stringICompare()).
+ *
+ * Revision 1.2  1999/11/30 20:24:45  roddey
+ * Fixes for incorrect deletion of temporary decl objects, which would cause
+ * a double delete when the parser is deleted.
+ *
+ * Revision 1.1.1.1  1999/11/09 01:03:38  twl
+ * Initial checkin
  *
  * Revision 1.4  1999/11/08 20:45:42  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -382,19 +390,24 @@
         // It already exists, so put out a warning
         getScanner()->emitError(XML4CErrs::AttListAlreadyExists, bufToUse.getRawBuffer());
 
-        // Use the dummy decl to parse into
+        // Use the dummy decl to parse into and set its name to the name we got
         if (!fDumAttDef)
+        {
             fDumAttDef = new DTDAttDef;
+            fDumAttDef->setId(fNextAttrId++);
+        }
         fDumAttDef->setName(bufToUse.getRawBuffer());
         decl = fDumAttDef;
     }
      else
     {
-        // It does not already exist so create a new one
+        //
+        //  It does not already exist so create a new one, give it the next
+        //  available unique id, and add it
+        //
         decl = new DTDAttDef(bufToUse.getRawBuffer());
-
-        // Give it the next available unique id
         decl->setId(fNextAttrId++);
+        parentElem.addAttDef(decl);
     }
 
     // Set a flag to indicate whether we are doing a dummy parse
@@ -434,8 +447,6 @@
          else
         {
             getScanner()->emitError(XML4CErrs::ExpectedAttributeType);
-            if (isIgnored)
-                delete decl;
             return 0;
         }
     }
@@ -454,11 +465,7 @@
 
         decl->setType(XMLAttDef::Notation);
         if (!scanEnumeration(bufToUse, true))
-        {
-            if (isIgnored)
-                delete decl;
             return 0;
-        }
 
         // Set the value as the enumeration for this decl
         decl->setEnumeration(bufToUse.getRawBuffer());
@@ -467,11 +474,7 @@
     {
         decl->setType(XMLAttDef::Enumeration);
         if (!scanEnumeration(bufToUse, false))
-        {
-            if (isIgnored)
-                delete decl;
             return 0;
-        }
 
         // Set the value as the enumeration for this decl
         decl->setEnumeration(bufToUse.getRawBuffer());
@@ -479,8 +482,6 @@
      else
     {
         getScanner()->emitError(XML4CErrs::ExpectedAttributeType);
-        if (isIgnored)
-            delete decl;
         return 0;
     }
 
@@ -491,10 +492,6 @@
     // And then scan for the optional default value declaration
     scanDefaultDecl(*decl);
 
-    // Add this guy to element's attr list (if not ignoring.)
-    if (!isIgnored)
-        parentElem.addAttDef(decl);
-
     // If validating, then do a couple of validation constraints
     if (getScanner()->getDoValidation())
     {
@@ -1646,7 +1643,6 @@
     //  scan over the content model so use the dummy declaration that the
     //  parsing code can fill in.
     //
-    bool isNew = false;
     if (decl)
     {
         if (decl->isDeclared())
@@ -1662,17 +1658,20 @@
     }
      else
     {
-        // Create the new empty declaration to fill in. Mark it declared
+        //
+        //  Create the new empty declaration to fill in and put it into
+        //  the decl pool.
+        //
         decl = new DTDElementDecl(bbName.getRawBuffer());
-        isNew = true;
-
-        // Put it in the element decl pool
         fElemDeclPool->put(decl);
     }
 
     // Set a flag for whether we will ignore this one
     const bool isIgnored = (decl == fDumElemDecl);
 
+    // Mark this one as being declared
+    decl->setCreateReason(XMLElementDecl::Declared);
+
     // Another check for a PE ref, with at least required whitespace
     if (!checkForPERef(true, false, true))
         getScanner()->emitError(XML4CErrs::ExpectedWhitespace);
@@ -1681,18 +1680,12 @@
     if (!scanContentSpec(*decl))
     {
         getReaderMgr()->skipPastChar(chCloseAngle);
-        if (isNew)
-            delete decl;
         return;
     }
 
     // Another check for a PE ref, but we don't require whitespace here
     checkForPERef(false, false, true);
 
-    // If this is not one we are ignoring, then set it declared
-    if (!isIgnored)
-        decl->setCreateReason(XMLElementDecl::Declared);
-
     // And we should have the ending angle bracket
     if (!getReaderMgr()->skippedChar(chCloseAngle))
     {
@@ -1707,13 +1700,7 @@
     //  if advanced callbacks are enabled.
     //
     if (fDocTypeHandler)
-    {
-        fDocTypeHandler->elementDecl
-        (
-            *decl
-            , isIgnored
-        );
-    }
+        fDocTypeHandler->elementDecl(*decl, isIgnored);
 }
 
 
@@ -1791,11 +1778,18 @@
         entityDecl = new DTDEntityDecl(bbName.getRawBuffer());
 
         //
-        //  Set the declaration location. The parameter indicates whether
-        //  its declared in the content/internal subset, so we do
-        //  whether its not in the external subset.
+        //  Set the declaration location. The parameter indicates whether its
+        //  declared in the content/internal subset, so we know whether or not
+        //  its in the external subset.
         //
         entityDecl->setDeclaredInIntSubset(fInternalSubset);
+
+        // Add it to the appropriate entity decl pool
+        if (isPEDecl)
+            fPEntityDeclPool->put(entityDecl);
+        else
+            fEntityDeclPool->put(entityDecl);
+
     }
 
     // Set a flag that indicates whether we are ignoring this one
@@ -1816,9 +1810,6 @@
     if (!scanEntityDef(*entityDecl, isPEDecl))
     {
         getReaderMgr()->skipPastChar(chCloseAngle);
-        if (!isIgnored)
-            delete entityDecl;
-
         getScanner()->emitError(XML4CErrs::ExpectedEntityValue);
         return;
     }
@@ -1834,31 +1825,11 @@
     }
 
     //
-    //  And add this guy to the appropriate entity decl pool, if it was
-    //  not an override of an existing entity that we just parsed into the
-    //  dummy decl.
-    //
-    if (!isIgnored)
-    {
-        if (isPEDecl)
-            fPEntityDeclPool->put(entityDecl);
-        else
-            fEntityDeclPool->put(entityDecl);
-    }
-
-    //
     //  If we have a doc type handler, then call it. But only call it for
     //  ignored elements if advanced callbacks are enabled.
     //
     if (fDocTypeHandler)
-    {
-        fDocTypeHandler->entityDecl
-        (
-            *entityDecl
-            , isPEDecl
-            , (entityDecl == fDumEntityDecl)
-        );
-    }
+        fDocTypeHandler->entityDecl(*entityDecl, isPEDecl, isIgnored);
 }
 
 
@@ -3303,7 +3274,7 @@
     namePtr = bbName.getRawBuffer();
 
     // See if it issome form of 'xml' and emit a warning
-    if (XMLString::compareIString(namePtr, XMLUni::fgXMLString))
+    if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
         getScanner()->emitError(XML4CErrs::NoPIStartsWithXML);
 
     // If namespaces are enabled, then no colons allowed
diff --git a/src/validators/DTD/Makefile.in b/src/validators/DTD/Makefile.in
index 356d436..d26bf4d 100644
--- a/src/validators/DTD/Makefile.in
+++ b/src/validators/DTD/Makefile.in
@@ -55,8 +55,12 @@
 # 
 #
 # $Log$
-# Revision 1.1  1999/11/09 01:03:42  twl
-# Initial revision
+# Revision 1.2  1999/11/23 02:01:05  rahulj
+# Code now works under HPUX 11. Tested inmemory message loader.
+Revamped makefiles. Builds with both DCE threads as well as pthread libraries.
+#
+# Revision 1.1.1.1  1999/11/09 01:03:42  twl
+# Initial checkin
 #
 # Revision 1.3  1999/11/08 20:45:43  rahul
 # Swat for adding in Product name and CVS comment log variable.
@@ -64,7 +68,8 @@
 #
 
 PLATFORM = @platform@
-COMPILER = @compiler@
+CC  = @cc@
+CXX = @cxx@
 CXXFLAGS = @cxxflags@
 CFLAGS = @cflags@
 PREFIX = @prefix@
@@ -140,9 +145,6 @@
 	@for file in $(VALIDATORS_DTD_CPP_PUBHEADERS); do \
 	rm -f $(XML_INC_DIR)/$(MODULE)/$(SUBMODULE)/$$file; \
 	done
-	@for file in $(VALIDATORS_DTD_C_FILES); do \
-	rm -f $(XML_INC_DIR)/$(MODULE)/$(SUBMODULE)/$$file; \
-	done
 	@echo "Removing all $(MODULE)/$(SUBMODULE) object files ..."
 	@for file in $(VALIDATORS_DTD_CPP_OBJECTS); do \
 	rm -f $(ALL_OBJECTS_DIR)/$$file; \
diff --git a/tests/DOM/DOMMemTest/DOMMemTest.cpp b/tests/DOM/DOMMemTest/DOMMemTest.cpp
index d3cbc73..4000240 100644
--- a/tests/DOM/DOMMemTest/DOMMemTest.cpp
+++ b/tests/DOM/DOMMemTest/DOMMemTest.cpp
@@ -66,8 +66,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:02:43  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:02:25  andyh
+ * DOM tests updated to catch DOMException by ref.
+ * Added tests of DOMString::transcode() and append()
+ *
+ * Revision 1.1.1.1  1999/11/09 01:02:43  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:42:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -75,10 +79,11 @@
  */
 
 #include <stdio.h>
+#include <string.h>
 #include <dom/DOM.hpp>
 #include <dom/DomMemDebug.hpp>
 #include <util/PlatformUtils.hpp>
-#include <util/Exception.hpp>
+#include <util/XMLException.hpp>
 #include <util/StdOut.hpp>
 
 
@@ -653,10 +658,9 @@
              DOM_Element el = doc.createElement("!@@ bad element name");
              TASSERT(false);  // Exception above should prevent us reaching here.
          }
-         catch ( DOM_DOMException *e)
+         catch ( DOM_DOMException &e)
          {
-             TASSERT(e->code == DOM_DOMException::INVALID_CHARACTER_ERR);
-             delete e;
+             TASSERT(e.code == DOM_DOMException::INVALID_CHARACTER_ERR);
          }
          catch (...)
          {
@@ -718,6 +722,33 @@
     TESTEPILOG;
 
 
+	//
+	// Minimal test of DOMString::transcode()
+	//
+	TESTPROLOG;
+	{
+		static char testStr[] = "This is our test string.";
+
+		DOMString DOMTestStr = testStr;
+		char *roundTripString = DOMTestStr.transcode();
+		TASSERT(strcmp(testStr, roundTripString) == 0);
+		delete roundTripString;
+	}
+    TESTEPILOG;
+
+
+    //
+    //  String bug submitted by David Chung
+    //
+	TESTPROLOG;
+	{
+        DOMString greeting("hello");
+        greeting.appendData(greeting);
+        TASSERT(greeting.equals("hellohello"));
+        greeting.println();
+    }
+    TESTEPILOG;
+
     //
     //  Print Final allocation stats for full test
     //
diff --git a/tests/DOM/DOMTest/DTest.cpp b/tests/DOM/DOMTest/DTest.cpp
index 820b96d..1aa65b2 100644
--- a/tests/DOM/DOMTest/DTest.cpp
+++ b/tests/DOM/DOMTest/DTest.cpp
@@ -56,8 +56,12 @@
 
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:02:34  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:02:25  andyh
+ * DOM tests updated to catch DOMException by ref.
+ * Added tests of DOMString::transcode() and append()
+ *
+ * Revision 1.1.1.1  1999/11/09 01:02:34  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:42:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -76,8 +80,12 @@
  
 /**
  * $Log$
- * Revision 1.1  1999/11/09 01:02:34  twl
- * Initial revision
+ * Revision 1.2  1999/12/03 00:02:25  andyh
+ * DOM tests updated to catch DOMException by ref.
+ * Added tests of DOMString::transcode() and append()
+ *
+ * Revision 1.1.1.1  1999/11/09 01:02:34  twl
+ * Initial checkin
  *
  * Revision 1.2  1999/11/08 20:42:24  rahul
  * Swat for adding in Product name and CVS comment log variable.
@@ -87,7 +95,7 @@
 #include <stdio.h>
 #include "DTest.h"
 #include <util/PlatformUtils.hpp>
-#include <util/Exception.hpp>
+#include <util/XMLException.hpp>
 #include <util/StdOut.hpp>
 
 
@@ -98,9 +106,9 @@
             operation;                                              \
             fprintf(stderr, "Exceptions Test # %d: no Exception thrown.\n", testNum); \
         }                                                           \
-        catch (DOM_DOMException *e)                                 \
+        catch (DOM_DOMException &e)                                 \
         {                                                           \
-            if (e->code != expectedException) {                      \
+            if (e.code != expectedException) {                      \
                 fprintf(stderr, "Exceptions Test # %d: wrong DOM_DOMException thrown.\n", \
                     testNum);                                       \
                 resultFlag = false;                                 \