You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sh...@apache.org on 2012/07/15 10:11:53 UTC

svn commit: r1361650 [1/2] - in /xalan/c/branches/GSoC-2012/GSoC-Code: ./ XalanDatesAndTimes v0.2/ XalanDatesAndTimes v0.2/Projects/ XalanDatesAndTimes v0.2/Projects/VC10/ XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/ XalanDatesAndTimes v0.2/Proje...

Author: shathaway
Date: Sun Jul 15 08:11:51 2012
New Revision: 1361650

URL: http://svn.apache.org/viewvc?rev=1361650&view=rev
Log:
EXSLT code committed to xalan-c-branches-GSoC-2012, contains .NET 2003 and .NET 2010 builds

Added:
    xalan/c/branches/GSoC-2012/GSoC-Code/
    xalan/c/branches/GSoC-2012/GSoC-Code/GSoC-ReadMe.txt
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/MakeDateTime.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj.filters
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/GSOC-2.sln
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj.filters
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/DateTimeLib/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/DateTimeLib/DateTimeLib.vcproj
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/GSOC-2.sln
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/TestDateTime/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/TestDateTime/TestDateTime.vcproj
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC8/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC9/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/TestDateTime.cpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/Tester.cpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanCalendar.hpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.cpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.hpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTimeDefinitons.hpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.cpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.hpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDuration.cpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDuration.hpp
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/list.diff
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/bin/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/lib/
    xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/lib/DateTimeLibD.lib   (with props)
    xalan/c/branches/GSoC-2012/GSoC-Code/exclude-src.txt
    xalan/c/branches/GSoC-2012/GSoC-Code/vs71env.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-build-11-31-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-build-11-31-VC71.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-build-11-31-X64-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-inst-11-31-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-inst-11-31-VC71.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xalan-inst-11-31-X64-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-build-31-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-build-31-VC71.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-build-31-X64-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-inst-31-VC100.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-inst-31-VC71.bat
    xalan/c/branches/GSoC-2012/GSoC-Code/xerces-inst-31-X64-VC100.bat

Added: xalan/c/branches/GSoC-2012/GSoC-Code/GSoC-ReadMe.txt
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/GSoC-ReadMe.txt?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/GSoC-ReadMe.txt (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/GSoC-ReadMe.txt Sun Jul 15 08:11:51 2012
@@ -0,0 +1,54 @@
+
+The Directory Path structure on Windows Platform - My Virtual Machines
+
+C:\Apache
+C:\Apache\GSoC-2012
+C:\Apache\GSoC-2012\xerces-src-31
+    projects
+    src\xercesc
+C:\Apache\GSoC-2012\xalan-src-11\c
+    Projects
+    src\xalanc
+C:\Apache\GSoC-2012\XalanDatesAndTimes v0.2
+    bin
+    lib
+    Projects\VC7.1
+       DateTimeLib
+       TestDateTime
+    Projects\VC10
+       DateTimeLib
+       TestDateTime         
+
+SCRIPTS IN C:\Apache\GSoC-2012
+
+Scripts are here to build the Apache XALANC and XERCESC sources using
+MS Studio .NET 2003 and 2010.
+
+Order of Apache Software Builds
+
+   xerces-build ...
+
+   xerces-inst ...
+
+   xalan-build ...
+
+   xalan-inst ...
+
+The packages are
+
+   XERCESCPKG-31-arch-compiler
+
+   XALANCPKG-11-31-arch-compiler
+
+
+SCRIPTS IN C:\Apache\GSOC\2012\XalanDatesAndTimes V0.1\Projects
+
+   MakeDateTime-VC7.bat  Launches VS 2003 to build the 32-bit arch library
+
+   MakeDateTime-VC100.bat  Launches VS 2010 to build the 32-bit arch library
+
+
+Sincerely,
+Steven J. Hathaway
+Xalan Documentation Project
+<sh...@apache.org>

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/MakeDateTime.bat
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/MakeDateTime.bat?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/MakeDateTime.bat (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/MakeDateTime.bat Sun Jul 15 08:11:51 2012
@@ -0,0 +1,21 @@
+
+SET ROOTDEV=C:
+SET ROOTDIR=\Apache\GSoC-2012
+
+SET XERCESCROOT=%ROOTDEV%%ROOTDIR%\XERCESCPKG-31-VC100
+
+SET XALANCROOT=%ROOTDEV%%ROOTDIR%\XALANCPKG-11-31-VC100
+
+SET XERCESCSRC=%ROOTDEV%ROOTDIR%\xerces-src-31\src
+
+SET XALANCSRC=%ROOTDEV%%ROOTDIR%\xalan-src-11\c\src
+
+SET INCLUDE=%INCLUDE%;%XERCESCROOT%\include;%XALANCROOT%\include
+SET LIB=%LIB%;%XERCESCROOT%\lib;%XALANCROOT%\lib;$(SolutionDir)..\..\lib
+SET PATH=%PATH%;%XERCESCROOT%\bin;%XALANCROOT%\bin;$(SolutionDir)..\..\bin
+
+CALL "%VS100COMNTOOLS%\vsvars32.bat"
+
+devenv -useenv VC10\GSOC-2.sln
+
+

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj Sun Jul 15 08:11:51 2012
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\lib\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
+    </ClCompile>
+    <Lib>
+      <OutputFile>$(OutDir)DateTimeLibD.lib</OutputFile>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
+    </ClCompile>
+    <Lib>
+      <OutputFile>$(OutDir)DateTimeLib.lib</OutputFile>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\Sources\XalanDatesAndTimes.cpp" />
+    <ClCompile Include="..\..\..\Sources\XalanDateTime.cpp" />
+    <ClCompile Include="..\..\..\Sources\XalanDuration.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\Sources\XalanCalendar.hpp" />
+    <ClInclude Include="..\..\..\Sources\XalanDatesAndTimes.hpp" />
+    <ClInclude Include="..\..\..\Sources\XalanDateTime.hpp" />
+    <ClInclude Include="..\..\..\Sources\XalanDateTimeDefinitons.hpp" />
+    <ClInclude Include="..\..\..\Sources\XalanDuration.hpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj.filters
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj.filters?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj.filters (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/DateTimeLib/DateTimeLib.vcxproj.filters Sun Jul 15 08:11:51 2012
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\Sources\XalanDatesAndTimes.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Sources\XalanDateTime.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\Sources\XalanDuration.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\Sources\XalanCalendar.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Sources\XalanDatesAndTimes.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Sources\XalanDateTime.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Sources\XalanDateTimeDefinitons.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\Sources\XalanDuration.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/GSOC-2.sln
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC10/GSOC-2.sln?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/GSOC-2.sln (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/GSOC-2.sln Sun Jul 15 08:11:51 2012
@@ -0,0 +1,25 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTimeLib", "DateTimeLib\DateTimeLib.vcxproj", "{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDateTime", "TestDateTime\TestDateTime.vcxproj", "{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Debug|Win32.Build.0 = Debug|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Release|Win32.ActiveCfg = Release|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Release|Win32.Build.0 = Release|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Debug|Win32.Build.0 = Debug|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Release|Win32.ActiveCfg = Release|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj Sun Jul 15 08:11:51 2012
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <OutputFile>$(OutDir)TestDateTime.exe</OutputFile>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(OutDir)TestDateTime.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4996</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <OutputFile>$(OutDir)TestDateTime.exe</OutputFile>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\Sources\TestDateTime.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\DateTimeLib\DateTimeLib.vcxproj">
+      <Project>{a40d54d7-2e85-4e56-bc7e-b672feab24b6}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj.filters
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj.filters?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj.filters (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC10/TestDateTime/TestDateTime.vcxproj.filters Sun Jul 15 08:11:51 2012
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\Sources\TestDateTime.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/DateTimeLib/DateTimeLib.vcproj
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC7.1/DateTimeLib/DateTimeLib.vcproj?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/DateTimeLib/DateTimeLib.vcproj (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/DateTimeLib/DateTimeLib.vcproj Sun Jul 15 08:11:51 2012
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="DateTimeLib"
+	ProjectGUID="{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)..\..\lib"
+			IntermediateDirectory="Debug"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="5"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="$(OutDir)/DateTimeLibD.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+				RuntimeLibrary="4"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="$(OutDir)/DateTimeLib.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\..\..\Sources\XalanDatesAndTimes.cpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDateTime.cpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDuration.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath="..\..\..\Sources\XalanCalendar.hpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDatesAndTimes.hpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDateTime.hpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDateTimeDefinitons.hpp">
+			</File>
+			<File
+				RelativePath="..\..\..\Sources\XalanDuration.hpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/GSOC-2.sln
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC7.1/GSOC-2.sln?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/GSOC-2.sln (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/GSOC-2.sln Sun Jul 15 08:11:51 2012
@@ -0,0 +1,30 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTimeLib", "DateTimeLib\DateTimeLib.vcproj", "{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestDateTime", "TestDateTime\TestDateTime.vcproj", "{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}"
+	ProjectSection(ProjectDependencies) = postProject
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6} = {A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Debug.ActiveCfg = Debug|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Debug.Build.0 = Debug|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Release.ActiveCfg = Release|Win32
+		{A40D54D7-2E85-4E56-BC7E-B672FEAB24B6}.Release.Build.0 = Release|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Debug.ActiveCfg = Debug|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Debug.Build.0 = Debug|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Release.ActiveCfg = Release|Win32
+		{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/TestDateTime/TestDateTime.vcproj
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Projects/VC7.1/TestDateTime/TestDateTime.vcproj?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/TestDateTime/TestDateTime.vcproj (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Projects/VC7.1/TestDateTime/TestDateTime.vcproj Sun Jul 15 08:11:51 2012
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="TestDateTime"
+	ProjectGUID="{C3FE428D-14A7-47EE-AB3E-F6ABBF521963}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="5"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/TestDateTime.exe"
+				LinkIncremental="2"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/TestDateTime.pdb"
+				SubSystem="1"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="1"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="4"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/TestDateTime.exe"
+				LinkIncremental="1"
+				GenerateDebugInformation="TRUE"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath="..\..\..\Sources\TestDateTime.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/TestDateTime.cpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/TestDateTime.cpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/TestDateTime.cpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/TestDateTime.cpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,370 @@
+//File: TestDateTime.cpp
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "XalanDateTime.hpp"
+
+#include <iostream>
+#include <fstream>
+using namespace std;
+
+
+void CPPUNIT_FAIL(const char * erstring)
+{
+    cerr << erstring << endl;
+}
+
+void NOTIFY_TRAP(const char * errstring, const char * ValueString)
+{
+	cerr << errstring << " " << ValueString << endl;
+}
+
+XALAN_CPP_NAMESPACE_USE
+
+void dateTimeFromStringTest()
+{
+	char * invalidRepresentations[] =
+	{
+		// Empty string
+		"",
+
+		// Strings completely out of format.
+		"GSoC 2012",
+		"This function is well tested.",
+
+		// Representations where the fields are not numbers
+		"yyyy",
+		"yyyy-mm",
+		"yyyy-mm-dd",
+		"yyyy-mm-ddThh:mm:ss.sss",
+
+		// Fields with wrong sizes
+		"-1",
+		"0001-2",
+		"-0001-002",
+		"-0001-02-1",
+		"0001-02-001",
+		"-0001-02-01T1:1:1",
+		"-0001-02-01T001:001:001",
+		"0001-02-01T10:1:1",
+		"-0001-02-01T10:001:001",
+		"-0001-02-01T10:10:1",
+		"0001-02-01T10:10:001",
+
+		// Values exceeding the upper bounds
+		"2012-13",
+		"-2012-12-32",
+		"2012-12-32T24:00:00",
+		"2012-12-32T23:99:00",
+		"-2012-12-32T23:59:60",
+
+		// Wrong Separators
+		"-2012*12*12",
+		"2012-12-12P12:12:12",
+		"-2012-12-12T12-12-12",
+
+		// Wrong floating-point representation of seconds
+		"0001-12-01T12:32:2.123",
+		"0001-12-01T12:32:2.",
+
+		// Days that do not exist
+		"1970-02-29",
+		"1970-04-31",
+		"1970-06-31",
+		"1970-09-31",
+		"1970-11-31",
+		"-0002-02-29",
+		"-0002-04-31",
+		"-0002-06-31",
+		"-0002-09-31",
+		"-0002-11-31",
+
+		// Year, month and day fields with zero value
+		"0000",
+		"0001-00",
+		"0001-01-00",
+
+		// Incomplete time representation
+		"-1234-12-12T14",
+		"-1234-12-12T14:10",
+
+		// Floating-point in integers fields
+		"0001.5",
+		"2000-11.2",
+		"2000-11-10.7",
+		"2000-11-10T12.2:12:12",
+		"2000-11-10T12:1.2:12",
+
+		// Representation does not ends with '\0'
+		"2000'GSoC - Google Summer of Code'",
+		"2000-01-01Z'GSoC - Google Summer of Code'",
+
+		// Date/time separator missing
+		"2000-11-1012:12:12",
+
+		// Timezone: Strings completely out of format.
+		"-1234-12-12T14:10:10GSoC 2012",
+
+		// Timezone: Representations where the fields are not numbers
+		"2012-09-08T12:00:00+hh:ss",
+
+		// Timezone: Fields with wrong sizes
+		"2012-09-08T12:00:00+1:20",
+		"2012-09-08T12:00:00-10:1",
+
+		// Timezone: Values exceeding the upper bounds
+		"-0001-01-01T01:01:01+15:00",
+		"-0001-01-01T01:01:01-13:60",
+
+		// Timezone: Wrong Separator
+		"0001-01-01T01:01:01+10-00",
+
+		// Timezone: UTC wrong representation
+		"0001-01-01T01:01:01z",
+
+		// When timezone has hours 14, minutes must be 0
+		"0001-01-01T01:01:01+14:01",
+		"0001-01-01T01:01:01-14:01",
+
+		// Timezone: incomplete representation
+		"2000+14",
+		"2000-12-12T00:00:00-14",
+
+		// Timezone: floating-point representing hours and minutes
+		"-1234+12.2:32",
+		"-0003+12:32.5"
+	};
+
+	for (int iErr = 0; iErr < sizeof(invalidRepresentations)/sizeof(*invalidRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDateTime::fromString(invalidRepresentations[iErr]);
+
+			CPPUNIT_FAIL("An Exception was expected!");
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			NOTIFY_TRAP("InvalidFormat DateTime Exception", invalidRepresentations[iErr]);
+		}
+	}
+
+	char * validRepresentations[] =
+	{
+		// xs:gYear representation
+		"0001",
+		"0001Z",
+		"0001+14:00",
+		"0001-14:00",
+		"-0001",
+		"-0001Z",
+		"-0001+14:00",
+		"-0001-14:00",
+
+		// xs:gYearMonth representation
+		"0001-12",
+		"0001-12Z",
+		"0001-12+14:00",
+		"0001-12-14:00",
+		"-0001-12",
+		"-0001-12Z",
+		"-0001-12+14:00",
+		"-0001-12-14:00",
+
+		// xs:date representation
+		"0001-12-31",
+		"0001-12-31Z",
+		"0001-12-31+14:00",
+		"0001-12-31-14:00",
+		"-0001-12-31",
+		"-0001-12-31Z",
+		"-0001-12-31+14:00",
+		"-0001-12-31-14:00",
+
+		// xs:dateTime representation
+		"0001-12-31T00:00:00.1",
+		"0001-12-31T00:00:00.1Z",
+		"0001-12-31T00:00:00.1+14:00",
+		"0001-12-31T00:00:00.1-14:00",
+		"-0001-12-31T00:00:00.1",
+		"-0001-12-31T00:00:00.1Z",
+		"-0001-12-31T00:00:00.1+14:00",
+		"-0001-12-31T00:00:00.1-14:00"
+	};
+
+	for (int iErr = 0; iErr < sizeof(validRepresentations)/sizeof(*validRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDateTime::fromString(validRepresentations[iErr]);
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			CPPUNIT_FAIL("An Exception was unexpected!");
+		}
+	}
+}
+
+void durationFromStringTest()
+{
+	char * invalidRepresentations[] =
+	{
+		// Empty string
+		"",
+
+		// Strings completely out of format.
+		"GSoC 2012",
+		"This function is well tested.",
+
+		// Representations where the fields are not numbers
+		"PnY",
+		"PnM",
+		"-PnD",
+		"PTnH",
+		"PTnM",
+		"-PTnS",
+		"PnYnMnDTnHnMnS",
+
+		// Wrong Date/time separator or inexistent
+		"PnYnMnDnHnMnS",
+		"-PnYnMnDtnHnMnS",
+
+		// Wrong floating-point representation of seconds
+		"-P2YT2.S",
+		"PT673M.212S",
+
+		// Seconds' field identifier not present
+		"PT1M3",
+		"-P312Y93MT33M13.3",
+
+		// All fields with zero value
+		"P",
+		"PT",
+
+		// Floating-point in integers fields
+		"P1.2Y",
+		"P3.5M",
+		"P17.9D",
+		"PT23.1H",
+		"PT12.31M",
+
+		// Representation does not ends with '\0'
+		"P2000Y'GSoC - Google Summer of Code'",
+		"P1Y1M1DT1H1M1.1S'GSoC - Google Summer of Code'",
+
+		// Date/time separator missing
+		"P1D3H",
+		"P124Y187M541D781H31M13S",
+
+		"-P10Y112M13DT12H13M11",
+	};
+
+	for (int iErr = 0; iErr < sizeof(invalidRepresentations)/sizeof(*invalidRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDuration::fromString(invalidRepresentations[iErr]);
+
+			CPPUNIT_FAIL("An Exception was expected!");
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			NOTIFY_TRAP("InvalidFormat Duration Exception", invalidRepresentations[iErr]);
+		}
+	}
+
+	char * validRepresentations[] =
+	{
+		// Duration of Year 
+		"P1Y",
+		"-P1Y",
+		"P2012Y",
+		"-P2012Y",
+
+		// Duration of Month
+		"P1M",
+		"-P1M",
+		"P13M",
+		"-P13M",
+
+		// Duration of Day
+		"P31D",
+		"-P31D",
+		"P365D",
+		"-P365D",
+
+		// Duration of Hours
+		"PT24H",
+		"-PT24H",
+		"PT480H",
+		"-PT480H",
+
+		// Duration of Minutes
+		"PT59M",
+		"-PT59M",
+		"PT1440M",
+		"-PT1440M",
+
+		// Duration of Seconds
+		"PT1S",
+		"-PT1S",
+		"PT86400S",
+		"-PT86400S",
+
+		// Mixed Durations
+		"P1Y9M",
+		"P1Y90D",
+		"P1YT4H",
+		"P1YT40M",
+		"P1YT80S",
+		"P83M43D",
+		"P83MT41H",
+		"P83MT12M",
+		"P83MT12.346S",
+		"P46DT32H",
+		"P46DT64M",
+		"P46DT32.765S",
+		"PT534H123M",
+		"PT534H1.3S",
+		"PT512M0.321S",
+		"P5MT5M0.5S"
+	};
+
+	for (int iErr = 0; iErr < sizeof(validRepresentations)/sizeof(*validRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDuration::fromString(validRepresentations[iErr]);
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			CPPUNIT_FAIL("An Exception was unexpected!");
+		}
+	}
+}
+
+int main(int argc, char *argv[])
+{
+	int i = 0;
+    dateTimeFromStringTest();
+	
+    durationFromStringTest();
+
+    return 0;
+}

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/Tester.cpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/Tester.cpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/Tester.cpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/Tester.cpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,326 @@
+
+
+//#include <xalanc/Include/PlatformDefinitions.hpp>
+
+#include "XalanDateTime.hpp"
+
+
+void dateTimeFromStringTest()
+{
+	char * invalidRepresentations[] =
+	{
+		// Empty string
+		"",
+
+		// Strings completely out of format.
+		"GSoC 2012",
+		"This function is well tested.",
+
+		// Representations where the fields are not numbers
+		"yyyy",
+		"yyyy-mm",
+		"yyyy-mm-dd",
+		"yyyy-mm-ddThh:mm:ss.sss",
+
+		// Fields with wrong sizes
+		"-1",
+		"0001-2",
+		"-0001-002",
+		"-0001-02-1",
+		"0001-02-001",
+		"-0001-02-01T1:1:1",
+		"-0001-02-01T001:001:001",
+		"0001-02-01T10:1:1",
+		"-0001-02-01T10:001:001",
+		"-0001-02-01T10:10:1",
+		"0001-02-01T10:10:001",
+
+		// Values exceeding the upper bounds
+		"2012-13",
+		"-2012-12-32",
+		"2012-12-32T24:00:00",
+		"2012-12-32T23:99:00",
+		"-2012-12-32T23:59:60",
+
+		// Wrong Separators
+		"-2012*12*12",
+		"2012-12-12P12:12:12",
+		"-2012-12-12T12-12-12",
+
+		// Wrong floating-point representation of seconds
+		"0001-12-01T12:32:2.123",
+		"0001-12-01T12:32:2.",
+
+		// Days that do not exist
+		"1970-02-29",
+		"1970-04-31",
+		"1970-06-31",
+		"1970-09-31",
+		"1970-11-31",
+		"-0002-02-29",
+		"-0002-04-31",
+		"-0002-06-31",
+		"-0002-09-31",
+		"-0002-11-31",
+
+		// Year, month and day fields with zero value
+		"0000",
+		"0001-00",
+		"0001-01-00",
+
+		// Incomplete time representation
+		"-1234-12-12T14",
+		"-1234-12-12T14:10",
+
+		// Floating-point in integers fields
+		"0001.5",
+		"2000-11.2",
+		"2000-11-10.7",
+		"2000-11-10T12.2:12:12",
+		"2000-11-10T12:1.2:12",
+
+		// Representation does not ends with '\0'
+		"2000'GSoC - Google Summer of Code'",
+		"2000-01-01Z'GSoC - Google Summer of Code'",
+
+		// Date/time separator missing
+		"2000-11-1012:12:12",
+
+		// Timezone: Strings completely out of format.
+		"-1234-12-12T14:10:10GSoC 2012",
+
+		// Timezone: Representations where the fields are not numbers
+		"2012-09-08T12:00:00+hh:ss",
+
+		// Timezone: Fields with wrong sizes
+		"2012-09-08T12:00:00+1:20",
+		"2012-09-08T12:00:00-10:1",
+
+		// Timezone: Values exceeding the upper bounds
+		"-0001-01-01T01:01:01+15:00",
+		"-0001-01-01T01:01:01-13:60",
+
+		// Timezone: Wrong Separator
+		"0001-01-01T01:01:01+10-00",
+
+		// Timezone: UTC wrong representation
+		"0001-01-01T01:01:01z",
+
+		// When timezone has hours 14, minutes must be 0
+		"0001-01-01T01:01:01+14:01",
+		"0001-01-01T01:01:01-14:01",
+
+		// Timezone: incomplete representation
+		"2000+14",
+		"2000-12-12T00:00:00-14",
+
+		// Timezone: floating-point representing hours and minutes
+		"-1234+12.2:32",
+		"-0003+12:32.5"
+	};
+
+	for (int iErr = 0; iErr < sizeof(invalidRepresentations)/sizeof(*invalidRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDateTime::fromString(invalidRepresentations[iErr]);
+
+			CPPUNIT_FAIL("An Exception was expected!");
+		}
+		catch (InvalidFormat& iFormat)
+		{
+		}
+	}
+
+	char * validRepresentations[] =
+	{
+		// xs:gYear representation
+		"0001",
+		"0001Z",
+		"0001+14:00",
+		"0001-14:00",
+		"-0001",
+		"-0001Z",
+		"-0001+14:00",
+		"-0001-14:00",
+
+		// xs:gYearMonth representation
+		"0001-12",
+		"0001-12Z",
+		"0001-12+14:00",
+		"0001-12-14:00",
+		"-0001-12",
+		"-0001-12Z",
+		"-0001-12+14:00",
+		"-0001-12-14:00",
+
+		// xs:date representation
+		"0001-12-31",
+		"0001-12-31Z",
+		"0001-12-31+14:00",
+		"0001-12-31-14:00",
+		"-0001-12-31",
+		"-0001-12-31Z",
+		"-0001-12-31+14:00",
+		"-0001-12-31-14:00",
+
+		// xs:dateTime representation
+		"0001-12-31T00:00:00.1",
+		"0001-12-31T00:00:00.1Z",
+		"0001-12-31T00:00:00.1+14:00",
+		"0001-12-31T00:00:00.1-14:00",
+		"-0001-12-31T00:00:00.1",
+		"-0001-12-31T00:00:00.1Z",
+		"-0001-12-31T00:00:00.1+14:00",
+		"-0001-12-31T00:00:00.1-14:00"
+	};
+
+	for (int iErr = 0; iErr < sizeof(validRepresentations)/sizeof(*validRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDateTime::fromString(validRepresentations[iErr]);
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			CPPUNIT_FAIL("An Exception was unexpected!");
+		}
+	}
+}
+
+void durationFromStringTest()
+{
+	char * invalidRepresentations[] =
+	{
+		// Empty string
+		"",
+
+		// Strings completely out of format.
+		"GSoC 2012",
+		"This function is well tested.",
+
+		// Representations where the fields are not numbers
+		"PnY",
+		"PnM",
+		"-PnD",
+		"PTnH",
+		"PTnM",
+		"-PTnS",
+		"PnYnMnDTnHnMnS",
+
+		// Wrong Date/time separator or inexistent
+		"PnYnMnDnHnMnS",
+		"-PnYnMnDtnHnMnS",
+
+		// Wrong floating-point representation of seconds
+		"-P2YT2.S",
+		"PT673M.212S",
+
+		// Seconds' field identifier not present
+		"PT1M3",
+		"-P312Y93MT33M13.3",
+
+		// All fields with zero value
+		"P",
+		"PT",
+
+		// Floating-point in integers fields
+		"P1.2Y",
+		"P3.5M",
+		"P17.9D",
+		"PT23.1H",
+		"PT12.31M",
+
+		// Representation does not ends with '\0'
+		"P2000Y'GSoC - Google Summer of Code'",
+		"P1Y1M1DT1H1M1.1S'GSoC - Google Summer of Code'",
+
+		// Date/time separator missing
+		"P1D3H",
+		"P124Y187M541D781H31M13S",
+
+		"-P10Y112M13DT12H13M11",
+	};
+
+	for (int iErr = 0; iErr < sizeof(invalidRepresentations)/sizeof(*invalidRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDuration::fromString(invalidRepresentations[iErr]);
+
+			CPPUNIT_FAIL("An Exception was expected!");
+		}
+		catch (InvalidFormat& iFormat)
+		{
+		}
+	}
+
+	char * validRepresentations[] =
+	{
+		// Duration of Year 
+		"P1Y",
+		"-P1Y",
+		"P2012Y",
+		"-P2012Y",
+
+		// Duration of Month
+		"P1M",
+		"-P1M",
+		"P13M",
+		"-P13M",
+
+		// Duration of Day
+		"P31D",
+		"-P31D",
+		"P365D",
+		"-P365D",
+
+		// Duration of Hours
+		"PT24H",
+		"-PT24H",
+		"PT480H",
+		"-PT480H",
+
+		// Duration of Minutes
+		"PT59M",
+		"-PT59M",
+		"PT1440M",
+		"-PT1440M",
+
+		// Duration of Seconds
+		"PT1S",
+		"-PT1S",
+		"PT86400S",
+		"-PT86400S",
+
+		// Mixed Durations
+		"P1Y9M",
+		"P1Y90D",
+		"P1YT4H",
+		"P1YT40M",
+		"P1YT80S",
+		"P83M43D",
+		"P83MT41H",
+		"P83MT12M",
+		"P83MT12.346S",
+		"P46DT32H",
+		"P46DT64M",
+		"P46DT32.765S",
+		"PT534H123M",
+		"PT534H1.3S",
+		"PT512M0.321S",
+		"P5MT5M0.5S"
+	};
+
+	for (int iErr = 0; iErr < sizeof(validRepresentations)/sizeof(*validRepresentations); iErr++)
+	{
+		try
+		{
+			XalanDuration::fromString(validRepresentations[iErr]);
+		}
+		catch (InvalidFormat& iFormat)
+		{
+			CPPUNIT_FAIL("An Exception was unexpected!");
+		}
+	}
+}

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanCalendar.hpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanCalendar.hpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanCalendar.hpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanCalendar.hpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,237 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include <sstream>
+
+#ifndef _XALANCALENDAR_H
+#define _XALANCALENDAR_H
+
+#include <xalanc/Include/PlatformDefinitions.hpp>
+
+XALAN_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class defines Calendar Objects
+ *
+ * Calendar objects represent a moment in the time. Thus, these objects
+ * have year, month and day fields regarding the date values; and hours, 
+ * minutes and seconds fields regarding the time values.
+ *
+ * Often, moments in the time are represented as strings. Thus, they
+ * may to have them values retrieved from strings and represented as
+ * strings back.
+ */
+class XalanCalendar
+{
+public:
+    XalanCalendar(
+        int year,
+        int month,
+        int day,
+        int hours,
+        int minutes,
+        double seconds)
+        : year(year),
+          month(month),
+          day(day),
+          hours(hours),
+          minutes(minutes),
+          seconds(seconds)
+    {
+    }
+
+    /**
+     * Returns the year value of the XalanCalendar object.
+     */
+    inline int getYear() const
+    {
+        return year;
+    }
+
+    /**
+     * Returns the month value of the XalanCalendar object.
+     */
+    inline int getMonth() const
+    {
+        return month;
+    }
+
+    /**
+     * Returns the day value of the XalanCalendar object.
+     */
+    inline int getDay() const
+    {
+        return day;
+    }
+
+    /**
+     * Returns the hours value of the XalanCalendar object.
+     */
+    inline int getHours() const
+    {
+        return hours;
+    }
+
+    /**
+     * Returns the minutes value of the XalanCalendar object.
+     */
+    inline int getMinutes() const
+    {
+        return minutes;
+    }
+
+    /**
+     * Returns the seconds value of the XalanCalendar object.
+     */
+    inline double getSeconds() const
+    {
+        return seconds;
+    }
+
+    /**
+     * Gives a string representation of the XalanCalendar instance,
+     * containing its date and time values.
+     *
+     * @return The string representing the XalanCalendar instance.
+     */
+    virtual char * toString() = 0;
+
+protected:
+    int year, month, day;
+    
+    int hours, minutes;
+    double seconds;
+
+    /* Generally, in string representations of objects, values are
+       separated by special fields. This variable represents the
+       length of a separator character. */
+    static const int SEPR_FLD = 1;
+
+    /* In string representations of XalanCalendar, the date and time
+       values are separated by a 'T' character, indicating the init
+       of time values representation. */
+    static const char DTTM_SEPR_SYM = 'T';
+
+    /* C strings are represented as a sequence of characters ending
+       with the null character. */
+    static const char NULL_CHAR = '\0';
+    
+    /**
+     * Given a string, analyses it and gives the location of the point
+     * character of the number that have its string representation
+     * starten at the init of the string. Numbers are any sequence of
+     * digits and may include one point.
+     * Futhermore, this method stores into the location pointed by
+     * nLength the length of the number.
+     *
+     * @param info The information containing the number to have
+     *     information known.
+     *
+     * @param nLength The pointer to the location at memory to store
+     *     the length of the number.
+     *
+     * @return The location of the point character into the number
+     *     representation.
+     */
+	static int getNumberInfo(char * info, int * nLength)
+	{
+		int len = 0;
+		int pointAt = 0;
+		while (isdigit(*info) 
+			|| (!pointAt && (pointAt = (*info == '.') ? len + 1 : 0)))
+		{
+			len++;
+			info++;
+		}
+
+		*nLength = *info == '.' ? 0 : len;
+
+		return pointAt;
+	}
+
+    /**
+     * Given a string and a length, extracts from the string a double
+     * with the specified length. This method do not do any validation
+     * of the arguments: it considers there is a double in the string
+     * with the specified length.
+     *
+     * @param info The information to have the double extracted.
+     *
+     * @param length The length of the double representation into the
+     *     string.
+     *
+     * @return The double retrieved from the string, with the
+     *     specified length.
+     */
+    static double getDouble(char * info, int length)
+    {
+        char * n = new char[length + 1];
+        
+        n[length] = NULL_CHAR;
+        strncpy(n, info, length);
+
+        return atof(n);
+    }
+
+    /**
+     * Given a string and a length, extracts from the string an integer
+     * with the specified length. This method do not do any validation
+     * of the arguments: it considers there is a double in the string
+     * with the specified length.
+     *
+     * @param info The information to have the integer extracted.
+     *
+     * @param length The length of the integer representation into the
+     *     string.
+     *
+     * @return The integer retrieved from the string, with the
+     *     specified length.
+     */
+    static int getInteger(char * info, int length)
+    {
+        char * n = new char[length + 1];
+        
+        n[length] = NULL_CHAR;
+        strncpy(n, info, length);
+
+        return atoi(n);
+    }
+};
+
+/**
+ * Often, moments in the time are represented as strings. This class
+ * represents exceptions thrown when those strings are not in valid
+ * formats.
+ */
+class InvalidFormat : public std::invalid_argument
+{
+public:
+	InvalidFormat(const char * message)
+		: invalid_argument(message)
+	{
+	}
+};
+
+XALAN_CPP_NAMESPACE_END
+
+#endif
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.cpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanDateTime.cpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.cpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.cpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,288 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "XalanDateTime.hpp"
+
+XALAN_CPP_NAMESPACE_USE
+
+const char * XalanDateTime::INVALID_DATETIME_ERR =
+{
+	"The representation must be a right-truncated date/time string in "
+	"one of the formats defined in [XML Schema Part 2: Datatypes]. "
+	"The permitted formats are: xs:dateTime (CCYY-MM-DDThh:mm:ss); "
+	"xs:date (CCYY-MM-DD); xs:gYearMonth (CCYY-MM) and xs:gYear (CCYY). "
+	"An optional minus signal is accepted at the beginning, representing "
+	"a BC time. These formats are accurately described at the following "
+	"links, respectively: "
+    "http://www.w3.org/TR/xmlschema-2/#dateTime; "
+    "http://www.w3.org/TR/xmlschema-2/#date; "
+    "http://www.w3.org/TR/xmlschema-2/#gYearMonth"" and "
+    "http://www.w3.org/TR/xmlschema-2/#gYear"
+};
+
+const char * XalanDateTime::INVALID_TIMEZONE_ERR =
+{
+	"The representation of timezone must be a duration with "
+	"(integer-valued) hour and minute properties (with the hour "
+	"magnitude limited to at most 14, and the minute magnitude limited "
+	"to at most 59, except that if the hour magnitude is 14, the minute "
+	"value must be 0); they may be both positive or both negative. The "
+	"lexical representation of a timezone is a string of the form: "
+	"(('+' | '-') hh ':' mm) | 'Z'"
+};
+
+void XalanDateTime::addDuration(
+    XalanDuration * duration)
+{
+    // Temporary variables declarations
+    double tDouble;
+    int tInteger, tCarry;
+
+    // Resultant variables declarations
+    double rSeconds;
+    int rYear, rMonth, rDay, rHours, rMinutes;
+
+    // Calculating the month
+    tInteger = this->month + duration->getMonth();
+    rMonth = modulo(tInteger, 1, 13);
+    tCarry = fQuotient(tInteger, 1, 13);
+
+    // Calculating the year
+    rYear = this->year + duration->getYear() + tCarry;
+
+    // Calculating the seconds
+    tDouble = this->seconds + duration->getSeconds();
+    rSeconds = modulo(tDouble, 60);
+    tCarry = fQuotient(tDouble, 60);
+
+    // Calculating the minutes
+    tInteger = this->minutes + duration->getMinutes() + tCarry;
+    rMinutes = modulo(tInteger, 60);
+    tCarry = fQuotient(tInteger, 60);
+
+    // Calculating the hours
+    tInteger = this->hours + duration->getHours() + tCarry;
+    rHours = modulo(tInteger, 24);
+    tCarry = fQuotient(tInteger, 24);
+
+    // Calculating the day
+    rDay = duration->getDay() + tCarry + (this->day > maximumDayInMonthFor(rYear, rMonth) ? maximumDayInMonthFor(rYear, rMonth) : this->day < 1 ? 1 : this->day);
+    
+    // Adjusting day, month and year
+    bool negDay;
+    while ((negDay = (rDay < 1)) || rDay > maximumDayInMonthFor(rYear, rMonth))
+    {
+		if (negDay)
+        {
+            tCarry = -1;
+            rDay += maximumDayInMonthFor(rYear, rMonth - 1);
+        }
+        else
+        {
+            tCarry = 1;
+            rDay -= maximumDayInMonthFor(rYear, rMonth);
+        }
+
+        tInteger = rMonth + tCarry;
+        rMonth = modulo(tInteger, 1, 13);
+        rYear += fQuotient(tInteger, 1, 13);
+    }
+
+    /* Verifying if the year value has crossed the year zero.
+       If true, an adjustment is made, because there is no zero year. */
+    if (this->year < 0  && rYear > this->year && rYear >= 0)
+    {
+        rYear++;
+    }
+    else if (this->year > 0  && rYear < this->year && rYear <= 0)
+    {
+        rYear--;
+    }
+
+    this->year = rYear;
+    this->month = rMonth;
+    this->day = rDay;
+    this->hours = rHours;
+    this->minutes = rMinutes;
+    this->seconds = rSeconds;
+} 
+
+char * XalanDateTime::toString()
+{
+    char * dateTime = new char[30];
+
+    sprintf(year < 0 && (*dateTime = '-') ? dateTime + 1 : dateTime,
+        format, abs(year), abs(month), abs(day), abs(hours),
+        abs(minutes), abs(seconds));
+
+    return strcat(dateTime, timeZone);
+}
+
+bool XalanDateTime::isTimeZoneValid(char * timeZone)
+{
+	if (*timeZone == '+' || *timeZone == '-')
+	{
+		timeZone += SEPR_FLD;
+
+		int hoursMinutes[2];
+		int upperBounds[] = {14, 59};
+		int fieldsLens[] = {HH_FLD, MM_FLD};
+    
+		int nLength;
+		int iPointer = 0;
+		do
+		{
+			if (getNumberInfo(timeZone, &nLength)
+				|| (nLength != fieldsLens[iPointer]))
+			{
+				return false;
+			}
+
+			if ((hoursMinutes[iPointer] = getInteger(timeZone, fieldsLens[iPointer]))
+					> upperBounds[iPointer])
+			{
+				return false;
+			}
+
+			timeZone += nLength;
+
+			if (*timeZone && (*timeZone != TM_SEPR_SYM))
+			{
+				return false;
+			}
+
+			timeZone += !iPointer ? SEPR_FLD : 0;
+		} while (*timeZone && ++iPointer);
+
+		if (hoursMinutes[0] == 14 && hoursMinutes[1])
+		{
+			return false;
+		}
+	}
+	else if (*timeZone != UTC_TMZN_SYM || *(++timeZone))
+	{
+		return false;
+	}
+
+	return true;
+}
+
+XalanDateTime * XalanDateTime::fromString(char * dateTime)
+{
+    double seconds = 0;
+    int year = 1, month = 1, day = 1,
+        hours = 0, minutes = 0;
+
+    // The timezone is a string in format '+hh:mm', '-hh:mm' or 'Z'
+    char * timeZone = new char[6];
+    
+    // Verifying if it is a negative date/time
+    bool negDate;
+    if (negDate = *dateTime == '-')
+    {
+        dateTime++;
+    }
+
+	int * fieldsPointers[] =
+        {&year, &month, &day, &hours, &minutes};
+    int fieldsLens[] =
+        {YY_FLD, MN_FLD, DD_FLD, HH_FLD, MM_FLD};
+	int upperBounds[] =
+        {32767, 12, 31, 23, 59};
+    
+    // Getting the values for each date/time field
+
+	
+	int iPointer = 0;
+	int pointAt, nLength;
+    do
+    {
+		if (getNumberInfo(dateTime, &nLength)
+			|| (iPointer ? nLength != fieldsLens[iPointer]
+				: nLength < fieldsLens[iPointer]))
+		{
+			throw InvalidFormat(INVALID_DATETIME_ERR);
+		}
+
+		if (abs(*fieldsPointers[iPointer] = negDate && !iPointer
+				? -getInteger(dateTime, fieldsLens[iPointer])
+				: getInteger(dateTime, fieldsLens[iPointer]))
+			> upperBounds[iPointer] || (iPointer < 3 && !*fieldsPointers[iPointer]))
+		{
+			throw InvalidFormat(INVALID_DATETIME_ERR);
+		}
+
+        dateTime += nLength;
+
+        if (!*dateTime || isTimeZone(dateTime))
+        {
+            break;
+        }
+
+		if (*dateTime && *dateTime
+			!= (iPointer == 2 ? DTTM_SEPR_SYM : iPointer < 2 ? DT_SEPR_SYM : TM_SEPR_SYM))
+		{
+			throw InvalidFormat(INVALID_DATETIME_ERR);
+		}
+
+        dateTime += SEPR_FLD;
+
+        if (iPointer++ == (sizeof(fieldsLens)/sizeof(*fieldsLens)) -1)
+        {
+			pointAt = getNumberInfo(dateTime, &nLength);
+            
+			if (pointAt)
+			{
+				if (pointAt - 1 != SS_FLD)
+				{
+					throw InvalidFormat(INVALID_DATETIME_ERR);
+				}
+				else if (!(nLength - pointAt))
+				{
+					throw InvalidFormat(INVALID_DATETIME_ERR);
+				}
+			}
+			else if (nLength != SS_FLD)
+			{
+				throw InvalidFormat(INVALID_DATETIME_ERR);
+			}
+
+            seconds = getDouble(dateTime, nLength);
+            dateTime += nLength;
+
+            break;
+        }
+    } while (*dateTime);
+	
+	if (iPointer == 3 || iPointer == 4
+		|| day > maximumDayInMonthFor(year, month))
+	{
+		throw InvalidFormat(INVALID_DATETIME_ERR);
+	}
+
+	if (*dateTime && !isTimeZoneValid(dateTime))
+	{
+		throw InvalidFormat(INVALID_TIMEZONE_ERR);
+	}
+
+	// Getting the timezone
+    strcpy(timeZone, dateTime);
+
+    return new XalanDateTime(year, month, day, hours, minutes,
+        seconds, timeZone, getFormat(iPointer + 1));
+}
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.hpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanDateTime.hpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.hpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTime.hpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,338 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef _XALANDATETIME_H
+#define _XALANDATETIME_H
+
+#include "XalanCalendar.hpp"
+#include "XalanDuration.hpp"
+
+XALAN_CPP_NAMESPACE_BEGIN
+
+/**
+ * This class defines date/time objects
+ *
+ * Date/time objects are specializations of Calendar objects, thus this
+ * class inherits the attributes and behavior from the Calendar class.
+ * Beyond the attributes inherited, date/time objects have an optional
+ * timezone value.
+ *
+ * The timezone value is a string in format '+hh:mm', '-hh:mm' or 'Z'.
+ * This class refers to the Gregorian Calendar algorithm where there is
+ * no year zero.
+ *
+ * A complete and accurately description of date/time may be found at
+ * http://www.w3.org/TR/xmlschema-2/#dateTime. Right-truncated
+ * string representation are too allowed, beyond the described at this
+ * link, but it is the complete representation.
+ */
+class XalanDateTime : public XalanCalendar
+{
+public:
+    XalanDateTime(
+        int year,
+        int month,
+        int day,
+        int hours,
+        int minutes,
+        double seconds,
+        char * timeZone,
+        char * format)
+        : XalanCalendar(
+            year,
+            month,
+            day,
+            hours,
+            minutes,
+            seconds),
+            format(format),
+            timeZone(timeZone)
+    {
+    }
+
+    /**
+     * This method adds to the a XalanDuration to a XalanDateTime
+     *
+     * Given a XalanDuration, this method adds to the XalanDateTime
+     * instance's fields the corresponding values in the duration.
+     * This function refers to the EXSLT DATE:ADD function described at
+     * http://www.exslt.org/date/functions/add/index.html.
+     * The implemented algorithm is according the one described at
+     * http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes.
+     * There is no zero year. Thus, some adjust may be made in the
+     * computation.
+     *
+     * @param duration A instance of XalanDuration, that has the
+     *     values of date/time fields to be added to the XalanDateTime
+     *     instance.
+     */
+    void addDuration(XalanDuration * duration);
+
+    /**
+     * Gives a string representation of the XalanDateTime instance,
+     * containing its date and time values
+     *
+     * Based on the format of the date/time received as parameter to
+     * creates a new instance from the fromString(..) method, this
+     * method gives a string representation of the XalanDateTime in
+     * the same format. For information about the possible formats,
+     * see the information about the accepted formats in the
+     * fromString(..) method.
+     *
+     * @return A string representing the XalanDateTime instance.
+     */
+    char * toString();
+
+    /**
+     * Given a string representation of date/time, this method returns
+     * an instance of this class
+     * 
+     * Based on the date/time represented as string received as
+     * argument, this method validates the string representation,
+     * extract the date/time values and creates an instance of this
+     * XalanDateTime class.
+     * 
+     * @param dateTime This argument must be a right-truncated
+     *     date/time string in one of the formats defined in
+     *     [XML Schema Part 2: Datatypes].
+     *     The permitted formats are as follows:
+     *     - xs:dateTime (CCYY-MM-DDThh:mm:ss);
+     *     - xs:date (CCYY-MM-DD);
+     *     - xs:gYearMonth (CCYY-MM);
+     *     - xs:gYear (CCYY).
+     *     These formats are accurately described at the bellow links,
+     *     respectively:
+     *     - http://www.w3.org/TR/xmlschema-2/#dateTime;
+     *     - http://www.w3.org/TR/xmlschema-2/#date;
+     *     - http://www.w3.org/TR/xmlschema-2/#gYearMonth;
+     *     - http://www.w3.org/TR/xmlschema-2/#gYear.
+     *
+     * @return An instance of this XalanDateTime class. The values of
+     *     the date/time received as argument are loaded in the
+     *     instance's fields.
+     *
+     * @exception InvalidFormat Thrown when the date/time
+     *     represented as string received as argument is not in one of
+     *     the accepted formats. Also, when the timezone representation
+	 *     is not valid, see isTimeZoneValid method.
+     */
+    static XalanDateTime * fromString(char * dateTime);
+
+	/**
+	 * Given a string representation of a timezone, this method
+	 * evaluates it and determines if it is valid or not.
+	 * The representation of timezone must be a duration with
+	 * (integer-valued) hour and minute properties (with the hour
+	 * magnitude limited to at most 14, and the minute magnitude limited
+	 * to at most 59, except that if the hour magnitude is 14, the minute
+	 * value must be 0); they may be both positive or both negative. The
+	 * lexical representation of a timezone is a string of the form:
+	 * (('+' | '-') hh ':' mm) | 'Z'
+	 *
+	 * @param timeZone The string representation of a timezone to be
+	 *     evaluated.
+	 *
+	 * @return true, if the timezone is valid; false, otherwise.
+	 */
+	static bool isTimeZoneValid(char * timeZone);
+
+	/* The error message when a string representation of date/time is
+	   not valid. */
+	static const char * INVALID_DATETIME_ERR;
+
+	/* The error message when a string representation of timezone is
+	   not valid. */
+	static const char * INVALID_TIMEZONE_ERR;
+
+private:
+
+    /* The format of the string representation for the date/time object.
+       This format is built considering the formats accepted by the
+       printf function. For more information, see getFormat() method.
+       It is loaded when the fromString() method is called, getting the
+       format of the string received, allowing to give a representation
+       in the same format. */
+    char * format;
+
+    char * timeZone;
+
+    /**
+     * Representing date/time as string, there are specifc symbols
+     * for separators and default timezone.
+     */
+    enum DateTimeSymbols
+    {
+        DT_SEPR_SYM   = '-',
+        TM_SEPR_SYM   = ':',
+        UTC_TMZN_SYM  = 'Z'
+    };
+
+    /**
+     * Representing date/time as string, there are fixed lengths for the
+     * month, day, hours and minutes fields.
+     */
+    enum DateTimeFieldsSize
+    {
+		YY_FLD = 4,
+        MN_FLD = 2,
+        DD_FLD = 2,
+        HH_FLD = 2,
+        MM_FLD = 2,
+        SS_FLD = 2
+    };
+
+    /**
+     * Given a range value, reporting how many fields of date/time must
+     * be present in the resultant format, the required format is
+     * returned.
+     *
+     * @param range The number reporting how many fields must be present
+     *     in the format.
+     *
+     * @return The format string, as required.
+     */
+    static char * getFormat(int range)
+    {
+        const char DTTM_FORMAT[] = 
+        {
+            '%', '0', '4', 'd', DT_SEPR_SYM,
+            '%', '0', '2', 'd', DT_SEPR_SYM,
+            '%', '0', '2', 'd', DTTM_SEPR_SYM,
+            '%', '0', '2', 'd', TM_SEPR_SYM,
+            '%', '0', '2', 'd', TM_SEPR_SYM,
+            '%', '0', '2', 'g'
+        };
+
+        int n = 5 * range;
+        char * dateFormat = new char[n];
+
+        dateFormat[n - 1] = NULL_CHAR;
+        strncpy(dateFormat, DTTM_FORMAT, n - 1);
+
+        return dateFormat;
+    }
+
+    /**
+     * Returns the floor of the quotient of a and b.
+     *
+     * @param a The first number.
+     *
+     * @param b The second number.
+     *
+     * @return The floor of the quotient of a and b.
+     */
+    static int fQuotient(double a, double b)
+    {
+        return floor( a / b );
+    }
+
+    /**
+     * Returns the a modulo b.
+     *
+     * @param a The first number.
+     *
+     * @param b The second number.
+     *
+     * @return a modulo b.
+     */
+    static double modulo(double a, double b)
+    {
+        return a - fQuotient(a,b) * b;
+    }
+    
+    /**
+     * Returns the floor of the quotient of (a - low) and (high - low).
+     *
+     * @param a The first number.
+     *
+     * @param low The second number.
+     *
+     * @param high The third number.
+     *
+     * @return The floor of the quotient of (a - low) and (high - low).
+     */
+    static int fQuotient(double a, int low, int high)
+    {
+        return fQuotient(a - low, high - low);
+    }
+
+    /**
+     * Returns the result of low + (a - low) modulo (high - low).
+     *
+     * @param a The first number.
+     *
+     * @param low The second number.
+     *
+     * @param high The third number.
+     *
+     * @return The result of low + (a - low) modulo (high - low)
+     */
+    static double modulo(double a, int low, int high)
+    {
+        return modulo(a - low, high - low) + low;
+    }
+
+    /**
+     * Given a year and a month, this method returns the maximum day
+     * of that month.
+     *
+     * @param yearValue The year containing the specified month.
+     * @param monthValue The month in the year that the maximum day
+     *     will be calculated.
+     *
+     * @return The maximum day of the specified month/year.
+     */
+    static int maximumDayInMonthFor(int yearValue, int monthValue)
+    {
+		if (yearValue < 0)
+		{
+			yearValue = abs(yearValue) - 1;
+		}
+
+		return ((monthValue < 8 && monthValue % 2 != 0)
+            || (monthValue >= 8 && monthValue % 2 == 0))
+            ? 31
+            : (monthValue != 02 ? 30
+            : (yearValue % 400 == 0 ||
+              (yearValue % 100 != 0 && yearValue % 4 == 0)) ? 29
+            : 28);
+    }
+    
+    /**
+     * Analyses an string received as argument and reports if it
+     * determines a timezone.
+     * The timezone is a string in format '+hh:mm', '-hh:mm' or 'Z'.
+     * This method do not do any validation of timezones.
+     *
+     * @param info The string to be analyzed.
+     *
+     * @return true, if the string determines a timezone value;
+     *     false, otherwise.
+     */
+    static bool isTimeZone(char * info)
+    {
+        return *info == UTC_TMZN_SYM
+            || ((*info == '-' || *info == '+')
+                && *(info + 3) == TM_SEPR_SYM);
+    }
+};
+
+XALAN_CPP_NAMESPACE_END
+
+#endif
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTimeDefinitons.hpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanDateTimeDefinitons.hpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTimeDefinitons.hpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDateTimeDefinitons.hpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !define(DATETIMEDEFINITIONS_HEADER_GUARD_82838485)
+#define DATETIMEDEFINITIONS_HEADER_GUARD_82838485
+
+#include <xalanc/Include/PlatformDefinitions.hpp>
+
+#if defined(XALAN_BUILD_DLL)
+# define XALAN_DATETIME_EXPORT XALAN_PLATFORM_EXPORT
+# define XALAN_DATETIME_EXPORT_FUNCTION(T) XALAN_PLATFORM_EXPORT_FUNCTION(T)
+#else
+# define XALAN_DATETIME_EXPORT XALAN_PLATFORM_IMPORT
+# define XALAN_DATETIME_EXPORT_FUNCTION(T) XALAN_PLATFORM_IMPORT_FUNCTION(T)
+#endif
+
+#endif

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.cpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanDatesAndTimes.cpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.cpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.cpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "XalanDatesAndTimes.hpp"
+#include "XalanDateTime.hpp"
+#include "XalanDuration.hpp"
+
+XALAN_CPP_NAMESPACE_USE
+
+char * XalanDatesAndTimes::add(char * dateTime, char * duration)
+{
+    XalanDateTime * dtTm = XalanDateTime::fromString(dateTime);
+    XalanDuration * dur = XalanDuration::fromString(duration);
+
+    dtTm->addDuration(dur);
+
+    char * result = dtTm->toString();
+    
+    delete dtTm;
+    delete dur;
+
+    return result;
+}
\ No newline at end of file

Added: xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.hpp
URL: http://svn.apache.org/viewvc/xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes%20v0.2/Sources/XalanDatesAndTimes.hpp?rev=1361650&view=auto
==============================================================================
--- xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.hpp (added)
+++ xalan/c/branches/GSoC-2012/GSoC-Code/XalanDatesAndTimes v0.2/Sources/XalanDatesAndTimes.hpp Sun Jul 15 08:11:51 2012
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the  "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _XALANDATESANDTIMES_H
+#define _XALANDATESANDTIMES_H
+
+#include <xalanc/Include/PlatformDefinitions.hpp>
+
+XALAN_CPP_NAMESPACE_BEGIN
+
+class XalanDatesAndTimes
+{
+public:
+
+    /**
+     * This function returns the date/time resulting from adding a
+     * duration to a date/time
+     *
+     * @param dateTime This argument must be a right-truncated
+     *     date/time string in one of the formats defined in
+     *     [XML Schema Part 2: Datatypes].
+     *     The permitted formats are as follows:
+     *     - xs:dateTime (CCYY-MM-DDThh:mm:ss);
+     *     - xs:date (CCYY-MM-DD);
+     *     - xs:gYearMonth (CCYY-MM);
+     *     - xs:gYear (CCYY).
+     *     These formats are accurately described at the bellow links,
+     *     respectively:
+     *     - http://www.w3.org/TR/xmlschema-2/#dateTime;
+     *     - http://www.w3.org/TR/xmlschema-2/#date;
+     *     - http://www.w3.org/TR/xmlschema-2/#gYearMonth;
+     *     - http://www.w3.org/TR/xmlschema-2/#gYear.
+     *
+     * @param duration This argument must conforms to  the [ISO 8601]
+     *     extended format PnYnMnDTnHnMnS, where nY represents the
+     *     number of years, nM the number of months, nD the number of
+     *     days, 'T' is the date/time separator, nH the number of
+     *     hours, nM the number of minutes and nS the number of
+     *     seconds. The number of seconds can include decimal digits
+     *     to arbitrary precision.
+     *     This format are accurately described at:
+     *     http://www.w3.org/TR/xmlschema-2/#duration
+     *
+     * @return The resultant date/time by adding the duration to the
+     *     date/time in the same format of the date/time received as
+     *     argument.
+     */
+    static char * add(char * dateTime, char * duration);
+
+};
+
+XALAN_CPP_NAMESPACE_END
+
+#endif
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org