This commit was manufactured by cvs2svn to create tag
'Xalan-C_1_1_0'.
diff --git a/License b/License
deleted file mode 100644
index b6f8711..0000000
--- a/License
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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 "Xalan" 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, Lotus
- * Development Corporation., http://www.lotus.com. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
diff --git a/README b/README
deleted file mode 100644
index e29372f..0000000
--- a/README
+++ /dev/null
@@ -1,13 +0,0 @@
-README for xml-xalan/C++ project at apache.org
-
-
-Basic Build Instructions for xml-xalan/c:
-
-- We currently have checked in project files for MSVC++ 6.0. Load and build the "TestXSLT" subproject from
-Projects\Win32\VC6\Xalan.dsw. Note that the STL headers are very noisy in MSVC with hundreds of warnings that
-can be safely ignored. Once you're built, copy the DLL's (8 of them) and the testXSLT.exe executable into a directory
-containing the xerces-c_1_0 DLL from Xerces. Then run. The command line is the same as Xalan/J.
-
-
-
-
diff --git a/Tests/Harness/FileUtility.cpp b/Tests/Harness/FileUtility.cpp
deleted file mode 100644
index 24377e7..0000000
--- a/Tests/Harness/FileUtility.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-*
-* FileUtility.cpp
-*
-* Copyright 2000 Lotus Development Corporation. All rights reserved.
-* This software is subject to the Lotus Software Agreement, Restricted
-* Rights for U.S. government users and applicable export regulations.
-*/
-
-#include <stdlib.h>
-#include <cstdio>
-#include <ctime>
-#include <vector>
-
-#if defined(XALAN_OLD_STREAM_HEADERS)
-#include <iostream.h>
-#else
-#include <iostream>
-#endif
-
-#if !defined(NDEBUG) && defined(_MSC_VER)
-#include <crtdbg.h>
-#endif
-
-//#include <Include/PlatformDefinitions.hpp>
-
-#include <framework/URLInputSource.hpp>
-#include <util/PlatformUtils.hpp>
-
-#include <XalanDOM/XalanNode.hpp>
-#include <XalanDOM/XalanDocument.hpp>
-#include <XalanDOM/XalanElement.hpp>
-#include <XalanDOM/XalanNodeList.hpp>
-
-#include <PlatformSupport/DoubleSupport.hpp>
-#include <PlatformSupport/DirectoryEnumerator.hpp>
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/XalanUnicode.hpp>
-#include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
-#include <PlatformSupport/XalanStdOutputStream.hpp>
-#include "FileUtility.hpp"
-
-#if defined(XALAN_NO_NAMESPACES)
- typedef vector<XalanDOMString> FileNameVectorType;
-#else
- typedef std::vector<XalanDOMString> FileNameVectorType;
-#endif
-
-/* This routine retrieves test file names from specified directories.
-// Inputs: baseDir: typically "conf" or "perf"
-// relDir: sub-directory to search.
-//
-// Notes: It builds the searchSpecification by concatenating all the
-// necessary components.
-// */
-FileNameVectorType FileUtility::getTestFileNames(XalanDOMString baseDir, XalanDOMString relDir)
-{
- const XalanDOMString pathSep(XALAN_STATIC_UCODE_STRING("\\"));
- const XalanDOMString searchSuffix(XALAN_STATIC_UCODE_STRING("*.xml"));
- const XalanDOMString searchSpecification(baseDir + relDir + pathSep + relDir + searchSuffix);
-
- DirectoryEnumeratorFunctor<FileNameVectorType, XalanDOMString> theEnumerator;
- FileNameVectorType theFiles;
- theEnumerator(searchSpecification, theFiles);
-
- return theFiles;
-}
-
-/* This routine retrieves all sub-directories from the specified directories.
-// Inputs: rootDirectory: typically "conf" or "perf"
-//
-// Notes: The searchSpecification in this case is just "*".
-// */
-FileNameVectorType FileUtility::getDirectoryNames(XalanDOMString rootDirectory)
-{
- const XalanDOMString dirSpec(XALAN_STATIC_UCODE_STRING("*"));
-
- DirectoryEnumeratorFunctor<FileNameVectorType, XalanDOMString, DirectoryFilterPredicate> theEnumerator;
- FileNameVectorType theFiles;
- theEnumerator(XalanDOMString(rootDirectory), XalanDOMString(dirSpec), theFiles);
-
- return theFiles;
-}
-
-/* This routine generates file names based on the provide suffix
-// Inputs: theXMLFileName: typically "conf" or "perf"
-// suffix: typically "xsl" or "out".
-//
-// Notes:
-// */
-
-XalanDOMString FileUtility::GenerateFileName(const XalanDOMString& theXMLFileName, char* suffix)
-{
- XalanDOMString theResult;
- int thePeriodIndex = -1;
- const int theLength = length(theXMLFileName);
-
- for (int i = theLength - 1; i > 0; i--)
- {
- if (charAt(theXMLFileName, i) == XalanUnicode::charFullStop)
- {
- thePeriodIndex = i; // charFullStop is the dot (x2E)
- break;
- }
- }
-
- if (thePeriodIndex != -1)
- {
- theResult = substring(theXMLFileName,
- 0,
- thePeriodIndex + 1);
-
-
- theResult += XalanDOMString(suffix);
- }
-
- return theResult;
-}
\ No newline at end of file
diff --git a/Tests/Harness/FileUtility.hpp b/Tests/Harness/FileUtility.hpp
deleted file mode 100644
index df29a41..0000000
--- a/Tests/Harness/FileUtility.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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 "Xalan" 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/>.
- *
- * FileUtility.hpp
- */
-#if !defined(FILEUTILITY_HEADER_GUARD_1357924680)
-#define FILEUTILITY_HEADER_GUARD_1357924680
-
-
-#include<string>
-#include<stdio.h>
-#include <time.h>
-
-
-
-using namespace std;
-
-
-
-/**
- * Utility call that extracts test file names from testsuite.
- * @author Paul Dick@lotus.com
- * @version $Id$
- */
-
-#if defined HARNESS_EXPORTS
-#define HARNESS_API __declspec(dllexport)
-#else
-#define HARNESS_API __declspec(dllimport)
-#endif
-
-#if defined(XALAN_NO_NAMESPACES)
- typedef vector<XalanDOMString> FileNameVectorType;
-#else
- typedef std::vector<XalanDOMString> FileNameVectorType;
-#endif
-
-// This class is exported from the Harness.dll
-class HARNESS_API FileUtility
-{
-
-
-public:
-
- /** Simple constructor, does not perform initialization. */
- FileUtility()
- {
- }
-
- /**
- * Utility method used to get test files from a specific directory.
- * @returns a vector containing test files.
- */
- FileNameVectorType getTestFileNames(XalanDOMString baseDir, XalanDOMString relDir);
- //FileNameVectorType getTestFileNames (char* theDirectory);
-
- /**
- * Utility method used to get subdirectories from a specific directory.
- * @returns a vector containing directory files.
- */
- FileNameVectorType getDirectoryNames(XalanDOMString rootDirectory);
- /**
- * Utility method used to get XSL file based on XML file.
- * @returns a XalanDOMString.
- */
-
- XalanDOMString GetXSLFileName(const XalanDOMString& theXMLFileName);
-
- /**
- * Utility method used to get OUT file based on XML file.
- * @returns a XalanDOMString.
- */
-
- XalanDOMString FileUtility::GenerateFileName(const XalanDOMString& theXMLFileName, char* suffix);
-
-}; // end of class FileUtility
-#endif
-
diff --git a/Tests/Harness/Harness.dsp b/Tests/Harness/Harness.dsp
deleted file mode 100644
index c67b99d..0000000
--- a/Tests/Harness/Harness.dsp
+++ /dev/null
@@ -1,139 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Harness" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Harness - 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 "Harness.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 "Harness.mak" CFG="Harness - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Harness - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "Harness - 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)" == "Harness - 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\Harness"
-# 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 "HARNESS_EXPORTS" /Yu"stdafx.h" /FD /c
-# ADD CPP /nologo /MD /W4 /GR /GX /O2 /Ob2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I "..\harness\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HARNESS_EXPORTS" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /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 /dll /machine:I386
-# ADD LINK32 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\PlatformSupport.lib ..\..\Build\Win32\VC6\Release\XalanDOM.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 /dll /incremental:yes /machine:I386
-# SUBTRACT LINK32 /debug
-
-!ELSEIF "$(CFG)" == "Harness - 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\Harness"
-# 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 "HARNESS_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
-# ADD CPP /nologo /MDd /W4 /Gm /GR /GX /Zi /Od /Gf /Gy /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I "..\harness\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HARNESS_EXPORTS" /Yc /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\PlatformSupport.lib ..\..\Build\Win32\VC6\Release\XalanDOM.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 /dll /debug /machine:I386 /pdbtype:sept
-# SUBTRACT LINK32 /incremental:no
-
-!ENDIF
-
-# Begin Target
-
-# Name "Harness - Win32 Release"
-# Name "Harness - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\FileUtility.cpp
-
-!IF "$(CFG)" == "Harness - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Harness - Win32 Debug"
-
-# ADD CPP /YX
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\XMLFileReporter.cpp
-
-!IF "$(CFG)" == "Harness - Win32 Release"
-
-!ELSEIF "$(CFG)" == "Harness - Win32 Debug"
-
-# ADD CPP /YX
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\FileUtility.hpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\XMLFileReporter.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/Tests/Harness/XMLFileReporter.cpp b/Tests/Harness/XMLFileReporter.cpp
deleted file mode 100644
index 442c3f3..0000000
--- a/Tests/Harness/XMLFileReporter.cpp
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
-*
-* XMLFileReporter.cpp
-*
-* Copyright 2000 Lotus Development Corporation. All rights reserved.
-* This software is subject to the Lotus Software Agreement, Restricted
-* Rights for U.S. government users and applicable export regulations.
-*/
-
-#include <stdlib.h>
-#include "XMLFileReporter.hpp"
-
-
-#include "PlatformSupport/XalanUnicode.hpp"
-
-
-const XalanDOMString XMLFileReporter::OPT_FILENAME("filename");
-const XalanDOMString XMLFileReporter::ELEM_RESULTSFILE("resultsfile");
-const XalanDOMString XMLFileReporter::ELEM_TESTFILE("testfile");
-const XalanDOMString XMLFileReporter::ELEM_FILERESULT("fileresult");
-const XalanDOMString XMLFileReporter::ELEM_TESTCASE("testcase");
-const XalanDOMString XMLFileReporter::ELEM_CASERESULT("caseresult");
-const XalanDOMString XMLFileReporter::ELEM_CHECKRESULT("checkresult");
-const XalanDOMString XMLFileReporter::ELEM_STATISTIC("statistic");
-const XalanDOMString XMLFileReporter::ELEM_LONGVAL("longval");
-const XalanDOMString XMLFileReporter::ELEM_DOUBLEVAL("doubleval");
-const XalanDOMString XMLFileReporter::ELEM_MESSAGE("message");
-const XalanDOMString XMLFileReporter::ELEM_ARBITRARY("arbitrary");
-const XalanDOMString XMLFileReporter::ELEM_HASHTABLE("hashtable");
-const XalanDOMString XMLFileReporter::ELEM_HASHITEM("hashitem");
-const XalanDOMString XMLFileReporter::ATTR_LEVEL("level");
-const XalanDOMString XMLFileReporter::ATTR_DESC("desc");
-const XalanDOMString XMLFileReporter::ATTR_TIME("time");
-const XalanDOMString XMLFileReporter::ATTR_RESULT("result");
-const XalanDOMString XMLFileReporter::ATTR_KEY("key");
-const XalanDOMString XMLFileReporter::ATTR_FILENAME = XMLFileReporter::OPT_FILENAME;
-
-const XalanDOMString XMLFileReporter::TESTCASEINIT_HDR("<" + ELEM_TESTCASE + " " + ATTR_DESC + "=\"");
-const XalanDOMString XMLFileReporter::TESTCASECLOSE_HDR("<" + ELEM_CASERESULT + " " + ATTR_DESC + "=\"");
-const XalanDOMString XMLFileReporter::MESSAGE_HDR("<" + ELEM_MESSAGE + " " + ATTR_LEVEL + "=\"");
-const XalanDOMString XMLFileReporter::STATISTIC_HDR("<" + ELEM_STATISTIC + " " + ATTR_LEVEL + "=\"");
-const XalanDOMString XMLFileReporter::ARBITRARY_HDR("<" + ELEM_ARBITRARY + " " + ATTR_LEVEL + "=\"");
-const XalanDOMString XMLFileReporter::HASHTABLE_HDR("<" + ELEM_HASHTABLE + " " + ATTR_LEVEL + "=\"");
-const XalanDOMString XMLFileReporter::HASHITEM_HDR(" <" + ELEM_HASHITEM + " " + ATTR_KEY + "=\"");
-const XalanDOMString XMLFileReporter::CHECKPASS_HDR("<" + ELEM_CHECKRESULT + " " + ATTR_RESULT + "=\"" + "PASS" + "\" " + ATTR_DESC + "=\"");
-const XalanDOMString XMLFileReporter::CHECKAMBG_HDR("<" + ELEM_CHECKRESULT + " " + ATTR_RESULT + "=\"" + "AMBG" + "\" " + ATTR_DESC + "=\"");
-const XalanDOMString XMLFileReporter::CHECKERRR_HDR("<" + ELEM_CHECKRESULT + " " + ATTR_RESULT + "=\"" + "ERRR" + "\" " + ATTR_DESC + "=\"");
-const XalanDOMString XMLFileReporter::CHECKFAIL_HDR("<" + ELEM_CHECKRESULT + " " + ATTR_RESULT + "=\"" + "FAIL" + "\" " + ATTR_DESC + "=\"");
-
-
-
-XMLFileReporter::XMLFileReporter():
- m_anyOutput(false),
- m_fileName(""),
- m_fileHandle(0),
- m_ready(false),
- m_error(false),
- m_flushOnCaseClose(true)
-{
-}
-
-
-
-XMLFileReporter::XMLFileReporter(const XalanDOMString& fileName):
- m_anyOutput(false),
- m_fileName(fileName),
- m_fileHandle(0),
- m_ready(false),
- m_error(false),
- m_flushOnCaseClose(true)
-{
- m_ready = initialize();
-}
-
-XMLFileReporter::XMLFileReporter(const char* fileName):
- m_anyOutput(false),
- m_fileName(XalanDOMString(fileName)),
- m_fileHandle(0),
- m_ready(false),
- m_error(false),
- m_flushOnCaseClose(true)
-{
- m_ready = initialize();
-}
-
-bool
-XMLFileReporter::initialize()
-{
- if (length(m_fileName) == 0)
- {
- // We don't have a valid file, so bail
- m_error = true;
- m_ready = false;
- fprintf(stderr, "XMLFileReporter.initialize() ERROR: file name is blank");
- return(false);
- }
-
- // Create a file and ensure it has a place to live
- m_fileHandle = fopen(&m_fileName.transcode().front(), "w");
- if (m_fileHandle == 0)
- {
- // Couldn't create or find the directory for the file to live in, so bail
- m_error = true;
- m_ready = false;
- fprintf(stderr, "XMLFileReporter.initialize() ERROR: unble to open file, %s", m_fileName);
- return(false);
- }
-
- m_ready = true;
- startResultsFile();
- // fprintf(stderr, "DEBUG:XMLFileReporter.initialize() complete with " + fileName);
-
- return m_ready;
-}
-
-
-
-bool
-XMLFileReporter::getFlushOnCaseClose()
-{
- return(m_flushOnCaseClose);
-}
-
-
-
-const XalanDOMString&
-XMLFileReporter::getFileName() const
-{
- return(m_fileName);
-}
-
-
-
-void
-XMLFileReporter::setFileName(const XalanDOMString& fileName)
-{
- m_fileName = fileName;
-}
-
-
-
-bool
-XMLFileReporter::checkError()
-{
- // Ensure our underlying reporter, if one, is still OK
- if (m_fileHandle == 0)
- {
- m_error = true;
- }
- return(m_error);
-}
-
-
-
-bool
-XMLFileReporter::isReady()
-{
- // Ensure our underlying reporter, if one, is still OK
- if (m_fileHandle == 0)
- {
- // NEEDSWORK: should we set m_ready = false in this case?
- // errors in the PrintStream are not necessarily fatal
- m_error = true;
- m_ready = false;
- }
- return(m_ready);
-}
-
-
-
-void
-XMLFileReporter::flush()
-{
- if (isReady())
- {
- fflush(m_fileHandle);
- }
-}
-
-
-
-void
-XMLFileReporter::close()
-{
- fflush(m_fileHandle);
- if (isReady())
- {
- if (m_fileHandle != 0)
- {
- closeResultsFile();
- fclose(m_fileHandle);
- }
- }
- m_ready = false;
-}
-
-
-
-void
-XMLFileReporter::logTestFileInit(const XalanDOMString& msg)
-{
- if (isReady())
- {
- printToFile("<" + ELEM_TESTFILE
- + " " + ATTR_DESC + "=\"" + escapestring(msg) + "\" " + ATTR_TIME + "=\"" + getDateTimeString() + "\">");
- }
-}
-
-
-
-void
-XMLFileReporter::logTestFileClose(const XalanDOMString& msg, const XalanDOMString& result)
-{
- if (isReady())
- {
- printToFile("<" + ELEM_FILERESULT
- + " " + ATTR_DESC + "=\"" + escapestring(msg) + "\" " + ATTR_RESULT + "=\"" + result + "\" " + ATTR_TIME + "=\"" + getDateTimeString() + "\"/>");
- printToFile("</" + ELEM_TESTFILE + ">");
- }
- flush();
-}
-
-
-
-void
-XMLFileReporter::logTestCaseInit(const XalanDOMString& msg)
-{
- if (isReady())
- {
- printToFile(TESTCASEINIT_HDR + escapestring(msg) + "\">");
- }
-}
-
-
-
-void
-XMLFileReporter::logTestCaseClose(const XalanDOMString& msg, const XalanDOMString& result)
-{
- if (isReady())
- {
- printToFile(TESTCASECLOSE_HDR + escapestring(msg) + "\" " + ATTR_RESULT + "=\"" + result + "\"/>");
- printToFile("</" + ELEM_TESTCASE + ">");
- }
- if (getFlushOnCaseClose())
- {
- flush();
- }
-}
-
-
-
-void
-XMLFileReporter::logMessage(int level, const XalanDOMString& msg)
-{
- char tmp[20];
- sprintf(tmp, "%d", level);
-
- if (isReady())
- {
- printToFile(MESSAGE_HDR + tmp + "\">");
- printToFile(escapestring(msg));
- printToFile("</" + ELEM_MESSAGE +">");
- }
-}
-
-
-
-void
-XMLFileReporter::logStatistic (int level, long lVal, double dVal, const XalanDOMString& msg)
-{
- char tmp[20];
-
-
- if (isReady())
- {
- sprintf(tmp, "%d", level);
- printToFile(STATISTIC_HDR + tmp + "\" " + ATTR_DESC + "=\"" + escapestring(msg) + "\">");
-
- sprintf(tmp, "%d", lVal);
- printToFile("<" + ELEM_LONGVAL + ">" + tmp + "</" + ELEM_LONGVAL + ">");
-
- sprintf(tmp, "%d", dVal);
- printToFile("<" + ELEM_DOUBLEVAL + ">" + tmp + "</" + ELEM_DOUBLEVAL + ">");
-
- printToFile("</" + ELEM_STATISTIC + ">");
-
- }
-}
-
-
-
-void
-XMLFileReporter::logArbitraryMessage (int level, const XalanDOMString& msg)
-{
- char tmp[20];
- sprintf(tmp, "%d", level);
-
- if (isReady())
- {
- printToFile(ARBITRARY_HDR + tmp + "\">");
- printToFile(escapestring(msg));
- printToFile("</" + ELEM_ARBITRARY +">");
- }
-}
-
-/*
-void logHashtable (int level, Hashtable hash, XalanDOMString msg)
-{
- if (isReady())
- {
- printToFile(HASHTABLE_HDR + level + "\" " + ATTR_DESC + "=\"" + msg + "\">");
- if (hash == null)
- {
- printToFile("<" + ELEM_HASHITEM + " " + ATTR_KEY + "=\"null\">");
- printToFile("</" + ELEM_HASHITEM + ">");
- }
- try
- {
- for (Enumeration enum = hash.keys(); enum.hasMoreElements();)
- {
- Object key = enum.nextElement();
- // Ensure we'll have clean output by pre-fetching value before outputting anything
- XalanDOMString value = hash.get(key).tostring();
- printToFile(HASHITEM_HDR + key.tostring() + "\">");
- printToFile(value);
- printToFile("</" + ELEM_HASHITEM + ">");
- }
- }
- catch (Exception e)
- {
- // No-op: should ensure we have clean output
- }
- printToFile("</" + ELEM_HASHTABLE +">");
- }
-}
-*/
-
-
-
-void
-XMLFileReporter::logCheckPass(const XalanDOMString& comment)
-{
- if (isReady())
- {
- printToFile(CHECKPASS_HDR + escapestring(comment) + "\"/>");
- }
-}
-
-
-
-void
-XMLFileReporter::logCheckAmbiguous(const XalanDOMString& comment)
-{
- if (isReady())
- {
- printToFile(CHECKAMBG_HDR + escapestring(comment) + "\"/>");
- }
-}
-
-
-
-void
-XMLFileReporter::logCheckFail(const XalanDOMString& comment)
-{
- if (isReady())
- {
- printToFile(CHECKFAIL_HDR + escapestring(comment) + "\"/>");
- }
-}
-
-
-
-void
-XMLFileReporter::logCheckErr(const XalanDOMString& comment)
-{
- if (isReady())
- {
- printToFile(CHECKERRR_HDR + escapestring(comment) + "\"/>");
- }
-}
-
-
-static const XalanDOMChar theLessThanString[] =
-{
- XalanUnicode::charAmpersand,
- XalanUnicode::charLetter_l,
- XalanUnicode::charLetter_t,
- XalanUnicode::charSemicolon,
- 0
-};
-
-
-static const XalanDOMChar theGreaterThanString[] =
-{
- XalanUnicode::charAmpersand,
- XalanUnicode::charLetter_g,
- XalanUnicode::charLetter_t,
- XalanUnicode::charSemicolon,
- 0
-};
-
-
-
-XalanDOMString
-XMLFileReporter::escapestring(const XalanDOMString& s)
-{
- XalanDOMString sb;
-
- const unsigned int length = s.length();
-
- for (unsigned int i = 0; i < length; i++)
- {
- const XalanDOMChar ch = charAt(s, i);
-
- if (XalanUnicode::charLessThanSign == ch)
- {
- append(sb, theLessThanString);
- }
- else if (XalanUnicode::charGreaterThanSign == ch)
- {
- append(sb, theGreaterThanString);
- }
- // Note: Skipping escaping of UTF-16 surrogates and & ampersands, since
- // I don't think we'll be outputting them or they won't affect our output
- else
- {
- append(sb, ch);
- }
- }
-
- return sb;
-}
-
-
-
-bool
-XMLFileReporter::startResultsFile()
-{
- if (isReady())
- {
- // Write out XML header and root test result element
- printToFile(XalanDOMString("<?xml version=\"1.0\"?>"));
-
- // Note: this tag is closed in our .close() method, which the caller had better call!
- printToFile("<" + ELEM_RESULTSFILE + " " + ATTR_FILENAME + "=\"" + m_fileName + "\">");
-
- return true;
- }
- else
- {
- return false;
- }
-}
-
-
-
-bool
-XMLFileReporter::closeResultsFile()
-{
- if (isReady())
- {
- printToFile("</" + ELEM_RESULTSFILE + ">");
- return true;
- }
- else
- return false;
-}
-
-
-bool
-XMLFileReporter::printToFile(const XalanDOMString& output)
-{
- if (isReady())
- {
- fprintf(m_fileHandle, &output.transcode().front());
- fprintf(m_fileHandle, "\n");
- return true;
- }
- else
- return false;
-}
-
-
-
-XalanDOMString
-XMLFileReporter::getDateTimeString()
-{
- struct tm *tmNow;
- time_t time_tNow;
-
- time(&time_tNow);
- tmNow = localtime(&time_tNow);
-
- const char* const theTime = asctime(tmNow);
-
- return XalanDOMString(theTime, strlen(theTime) - 1);
-}
diff --git a/Tests/Harness/XMLFileReporter.hpp b/Tests/Harness/XMLFileReporter.hpp
deleted file mode 100644
index b1d39a1..0000000
--- a/Tests/Harness/XMLFileReporter.hpp
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * 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 "Xalan" 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/>.
- *
- * XMLFileReporter.hpp
- */
-#if !defined(HARNESS_HEADER_GUARD_1357924680)
-#define HARNESS_HEADER_GUARD_1357924680
-
-#include<stdio.h>
-#include <time.h>
-
-//#include <util/PlatformUtils.hpp>
-#include <PlatformSupport/DOMStringHelper.hpp>
-
-
-/**
- * Reporter that saves output to a simple XML-format file.
- * @author Shane_Curcuru@lotus.com
- * @version $Id$
- */
-
-#if defined HARNESS_EXPORTS
-#define HARNESS_API __declspec(dllexport)
-#else
-#define HARNESS_API __declspec(dllimport)
-#endif
-
-// This class is exported from the Harness.dll
-class HARNESS_API XMLFileReporter
-{
-
-
-public:
-
- /** Simple constructor, does not perform initialization. */
- XMLFileReporter();
-
-
- /** Construct and initialize this reporter with specified filename. */
- XMLFileReporter(const XalanDOMString& fileName);
-
- /** Construct and initialize this reporter with specified filename. */
- XMLFileReporter::XMLFileReporter(const char* fileName);
-
- /** Initialize this XMLFileReporter. Must be called before attempting to log anything. */
- bool initialize();
-
- /** Accessor for flushing; is set from properties. */
- bool getFlushOnCaseClose();
-
- /** Accessor methods for our properties block. */
- const XalanDOMString& getFileName() const;
-
- /** Accessor methods for our properties block. */
- void setFileName(const XalanDOMString& fileName);
-
- /** Accessor methods for our properties block. */
- void setFileName(const char* fileName)
- {
- setFileName(XalanDOMString(fileName));
- }
-
- /**
- * Is this Reporter still running OK?
- * @returns status - true if an error has occoured, false if it's still working fine
- * <P>XMLFileReporter should just about never have errors.</P>
- */
- bool checkError();
-
-
- /**
- * Is this Reporter ready to log results?
- * @returns status - true if it's ready to report, false otherwise
- */
- bool isReady();
-
- /** Flush this reporter - ensure our File is flushed. */
- void flush();
-
-
- /** Close this reporter - ensure our File, etc. are closed. */
- void close();
-
- //-----------------------------------------------------
- //-------- Testfile / Testcase start and stop routines --------
- //-----------------------------------------------------
-
- /**
- * Report that a testfile has started.
- * @param msg message to log out
- */
- void logTestFileInit(const XalanDOMString& msg);
-
- void logTestFileInit(const char* msg)
- {
- logTestFileInit(XalanDOMString(msg));
- }
-
- /**
- * Report that a testfile has finished, and report it's result.
- * @param msg message to log out
- * @param result result of testfile
- */
- void logTestFileClose(const XalanDOMString& msg, const XalanDOMString& result);
-
- void logTestFileClose(const char* msg, const char* result)
- {
- logTestFileClose(XalanDOMString(msg), XalanDOMString(result));
- }
-
- void logTestCaseInit(const XalanDOMString& msg);
-
- void logTestCaseInit(const char* msg)
- {
- logTestCaseInit(XalanDOMString(msg));
- }
-
- /**
- * Report that a testcase has finished, and report it's result.
- * @param msg message to log out
- * @param result result of testfile
- */
- void logTestCaseClose(const XalanDOMString& msg, const XalanDOMString& result);
-
- void logTestCaseClose(const char* msg, const char* result)
- {
- logTestCaseClose(XalanDOMString(msg), XalanDOMString(result));
- }
- //-----------------------------------------------------
- //-------- Test results reporting and logging routines --------
- //-----------------------------------------------------
-
-
- /**
- * Report a comment to result file with specified severity.
- * <P>Record format: <message level="##">msg</message></P>
- * @param level severity or class of message.
- * @param msg comment to log out.
- */
- void logMessage(int level, const XalanDOMString& msg);
-
- /**
- * Logs out statistics to result file with specified severity.
- * <P>Record format: <statistic level="##" desc="msg"><longval>1234</longval><doubleval>1.234</doubleval></statistic></P>
- * @param level severity of message.
- * @param lVal statistic in long format.
- * @param dVal statistic in double format.
- * @param msg comment to log out.
- */
- void logStatistic (int level, long lVal, double dVal, const XalanDOMString& msg);
-
- void logStatistic (int level, long lVal, double dVal, const char* msg)
- {
- logStatistic(level, lVal, dVal, XalanDOMString(msg));
- }
-
- /**
- * Report an arbitrary XalanDOMString to result file with specified severity.
- * <P>Appends and prepends \\n newline characters at the start and
- * end of the message to separate it from the tags.</P>
- * <P>Record format: <arbitrary level="##"><BR/>
- * msg<BR/>
- * </arbitrary>
- * </P>
- * @param level severity or class of message.
- * @param msg arbitrary XalanDOMString to log out.
- */
- void logArbitraryMessage (int level, const XalanDOMString& msg);
-
- /**
- * Report a complete Hashtable to result file with specified severity.
- * <P>Indents each hashitem within the table.</P>
- * <P>Record format: <hashtable level="##" desc="msg"/><BR/>
- * <hashitem key="key1">value1</hashitem><BR/>
- * <hashitem key="key2">value2</hashitem><BR/>
- * </hashtable>
- * </P>
- * @param level severity or class of message.
- * @param hash Hashtable to log the contents of.
- * @param msg decription of the Hashtable.
- */
- /*
- void logHashtable (int level, Hashtable hash, const XalanDOMString& msg);
- */
-
- /**
- * Writes out a Pass record with comment.
- * <P>Record format: <checkresult result="PASS" desc="comment"/></P>
- * @param comment comment to log with the pass record.
- */
- void logCheckPass(const XalanDOMString& comment);
-
- /**
- * Writes out an ambiguous record with comment.
- * <P>Record format: <checkresult result="AMBG" desc="comment"/></P>
- * @param comment comment to log with the ambg record.
- */
- void logCheckAmbiguous(const XalanDOMString& comment);
-
- /**
- * Writes out a Fail record with comment.
- * <P>Record format: <checkresult result="FAIL" desc="comment"/></P>
- * @param comment comment to log with the fail record.
- */
- void logCheckFail(const XalanDOMString& comment);
-
- /**
- * Writes out a Error record with comment.
- * <P>Record format: <checkresult result="ERRR" desc="comment"/></P>
- * @param comment comment to log with the error record.
- */
- void logCheckErr(const XalanDOMString& comment);
-
- /**
- * Escapes a XalanDOMString to remove < and > so it's valid XML.
- * <P>Stolen mostly from Xalan applet sample.</P>
- * @param s XalanDOMString to escape.
- * @return XalanDOMString that has been escaped.
- */
- XalanDOMString escapestring(const XalanDOMString& s);
-
-
-private:
-
- /**
- * worker method to dump the xml header and open the resultsfile element.
- */
- bool startResultsFile();
-
- /**
- * worker method to close the resultsfile element.
- */
- bool closeResultsFile();
-
- /**
- * worker method to prints to the resultsfile.
- */
- bool printToFile(const XalanDOMString& output);
-
- /**
- * worker method to prints to the resultsfile.
- */
- XalanDOMString getDateTimeString();
-
- /** Key for Properties block that denotes our output filename. */
- static const XalanDOMString OPT_FILENAME;
-
- /** XML tagnames for results file structure. */
- static const XalanDOMString ELEM_RESULTSFILE;
- static const XalanDOMString ELEM_TESTFILE;
- static const XalanDOMString ELEM_FILERESULT;
- static const XalanDOMString ELEM_TESTCASE;
- static const XalanDOMString ELEM_CASERESULT;
- static const XalanDOMString ELEM_CHECKRESULT;
- static const XalanDOMString ELEM_STATISTIC;
- static const XalanDOMString ELEM_LONGVAL;
- static const XalanDOMString ELEM_DOUBLEVAL;
- static const XalanDOMString ELEM_MESSAGE;
- static const XalanDOMString ELEM_ARBITRARY;
- static const XalanDOMString ELEM_HASHTABLE;
- static const XalanDOMString ELEM_HASHITEM;
-
- /** XML attribute names for results file structure. */
- static const XalanDOMString ATTR_LEVEL;
- static const XalanDOMString ATTR_DESC;
- static const XalanDOMString ATTR_TIME;
- static const XalanDOMString ATTR_RESULT;
- static const XalanDOMString ATTR_KEY;
- static const XalanDOMString ATTR_FILENAME;
-
- /**
- * Optimization: for heavy use methods, form pre-defined constants to save on XalanDOMString concatenation.
- * <P>Note the indent; must be updated if we ever switch to another indenting method.</P>
- */
- static const XalanDOMString TESTCASEINIT_HDR;
- static const XalanDOMString TESTCASECLOSE_HDR;
- static const XalanDOMString MESSAGE_HDR;
- static const XalanDOMString STATISTIC_HDR;
- static const XalanDOMString ARBITRARY_HDR;
- static const XalanDOMString HASHTABLE_HDR;
- static const XalanDOMString HASHITEM_HDR;
- static const XalanDOMString CHECKPASS_HDR;
- static const XalanDOMString CHECKAMBG_HDR;
- static const XalanDOMString CHECKERRR_HDR;
- static const XalanDOMString CHECKFAIL_HDR;
-
- /** If we have output anything yet. */
- bool m_anyOutput;
-
- /** Name of the file we're outputing to. */
- XalanDOMString m_fileName;
-
- /** File reference and other internal convenience variables. */
- FILE* m_fileHandle;
-
- /** If we're ready to start outputting yet. */
- bool m_ready;
-
- /** If an error has occoured in this Reporter. */
- bool m_error;
-
- /** If we should flush after every logTestCaseClose. */
- bool m_flushOnCaseClose;
-
-}; // end of class XMLFileReporter
-#endif
\ No newline at end of file
diff --git a/Tests/Memory/Memory.dsp b/Tests/Memory/Memory.dsp
deleted file mode 100644
index 19f5950..0000000
--- a/Tests/Memory/Memory.dsp
+++ /dev/null
@@ -1,114 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Memory" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Memory - 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 "Memory.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 "Memory.mak" CFG="Memory - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Memory - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "Memory - 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)" == "Memory - 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\Memory"
-# 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 /MD /W3 /GX /O2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I "..\harness\\" /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 ..\..\Build\Win32\VC6\Release\Harness.lib ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\*.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 /out:"..\..\Build\Win32\VC6\Release/stressmem.exe"
-
-!ELSEIF "$(CFG)" == "Memory - 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\Memory"
-# 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 /W4 /GX /Od /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /D "_WINDOWS" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_MBCS" /YX /FD /GZ /c
-# 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 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Debug\xerces-c_1D.lib ..\..\Build\Win32\VC6\Debug\*.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 /out:"..\..\..\c\Build\Win32\VC6\debug/stressmem.exe" /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "Memory - Win32 Release"
-# Name "Memory - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Stressmem.cpp
-
-!IF "$(CFG)" == "Memory - Win32 Release"
-
-# ADD CPP /MD /Zi
-
-!ELSEIF "$(CFG)" == "Memory - Win32 Debug"
-
-# PROP Intermediate_Dir "..\..\Build\Win32\VC6\Debug\Memory"
-# ADD CPP /MDd /Zi
-
-!ENDIF
-
-# 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/Tests/Memory/Stressmem.cpp b/Tests/Memory/Stressmem.cpp
deleted file mode 100644
index 170c691..0000000
--- a/Tests/Memory/Stressmem.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * 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 "Xalan" 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/>.
- */
-#include <cassert>
-#include <fstream>
-#include <iostream>
-#include <strstream>
-
-#if !defined(NDEBUG) && defined(_MSC_VER)
-#include <crtdbg.h>
-#endif
-
-//These came from the debug test.
-#include <cstdio>
-#include <ctime>
-#include <string>
-#include <vector>
-
-#include <util/PlatformUtils.hpp>
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/XalanFileOutputStream.hpp>
-#include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
-
-#include <XalanSourceTree/XalanSourceTreeDOMSupport.hpp>
-#include <XalanSourceTree/XalanSourceTreeParserLiaison.hpp>
-
-#include <XalanTransformer/XalanTransformer.hpp>
-
-#include <XPath/XObjectFactoryDefault.hpp>
-#include <XPath/XPathFactoryDefault.hpp>
-
-#include <XSLT/StylesheetConstructionContextDefault.hpp>
-#include <XSLT/StylesheetExecutionContextDefault.hpp>
-#include <XSLT/StylesheetRoot.hpp>
-#include <XSLT/XSLTEngineImpl.hpp>
-#include <XSLT/XSLTInit.hpp>
-#include <XSLT/XSLTInputSource.hpp>
-#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
-#include <XSLT/XSLTResultTarget.hpp>
-
-#include <XMLFileReporter.hpp>
-#include <FileUtility.hpp>
-
-//This is here for the threads.
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <winbase.h>
-#define THREADFUNCTIONRETURN DWORD WINAPI
-
-#if !defined(XALAN_NO_NAMESPACES)
- using std::cerr;
- using std::cout;
- using std::cin;
- using std::endl;
- using std::ifstream;
- using std::ios_base;
- using std::ostrstream;
- using std::string;
-#endif
-
-
-// This is here for memory leak testing.
-#if defined(_DEBUG)
-#include <crtdbg.h>
-#endif
-
-const char* const excludeStylesheets[] =
-{
-
- "attribset15.xml",
- "entref08.xml",
- "entref10.xml",
- "extend01.xml",
- 0
-};
-
-
-const char* const xslStylesheets[] =
-{
- "attribset15.xml",
- "entref08.xml",
- "entref10.xml",
- "extend01.xml",
- 0
-
-};
-
-inline bool
-checkForExclusion(XalanDOMString currentFile)
-{
-
- for (int i=0; excludeStylesheets[i] != 0; i++)
- { if (equals(currentFile, XalanDOMString(excludeStylesheets[i])))
- return true;
- }
- return false;
-}
-
-void
-outputMessage(int iter)
-{
- cout << "\n" << "Starting Iteration: " << iter << '\0';
-}
-
-void
-getParams(int argc,
- const char* argv[])
-{
- if (argc != 1)
- {
- cerr << "Usage: ThreadTest" << endl;
- exit(1);
- }
-}
-
-#if defined(XALAN_NO_NAMESPACES)
- typedef vector<XalanDOMString> FileNameVectorType;
-#else
- typedef std::vector<XalanDOMString> FileNameVectorType;
-#endif
-
-int
-main(
- int argc,
- const char* argv[])
-{
-
-#if !defined(NDEBUG) && defined(_MSC_VER)
- _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
-
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
-#endif
-
- // Defined root for performance directory. Based on PD's machine.
- const XalanDOMString confDir(XALAN_STATIC_UCODE_STRING("d:\\xslt\\xsl-test\\conf\\"));
- const XalanDOMString outDir(XALAN_STATIC_UCODE_STRING("d:\\xslt\\xsl-test\\cplus-mem\\"));
-
- FileUtility f;
- FileNameVectorType dirs, files;
-
- // Get the list of Directories that are below perf
- dirs = f.getDirectoryNames(confDir);
-
- XMLFileReporter logFile("cpp.xml");
- logFile.logTestFileInit("Memory Testing - Memory leaks detected during ConformanceTests. ");
-
- getParams(argc, argv);
-
- try
- {
- // Call the static initializers...
- //XMLPlatformUtils::Initialize();
- XalanTransformer::initialize();
-
- {
- //XSLTInit theInit;
- XalanTransformer transformEngine;
- const XalanDOMString theXSLSuffix(".xsl");
- const XalanDOMString theXMLSuffix(".xml");
- const XalanDOMString pathSep(XALAN_STATIC_UCODE_STRING("\\"));
-// const XalanDOMString outputSuffix(".out");
-
- for(FileNameVectorType::size_type j = 0; j < dirs.size(); j++)
- {
- files = f.getTestFileNames(confDir, dirs[j]);
- for(FileNameVectorType::size_type i = 0; i < files.size(); i++)
- { /*
- if (skip)
- {
- if (checkForExclusion(files[i]))
- {
- continue;
- }
- } */
- // Output file name to result log.
- //logFile.logTestCaseInit(files[i]);
- cout << files[i] << endl;
-
- const XalanDOMString theXMLFile= confDir + dirs[j] + pathSep + files[i];
- const XalanDOMString outFile = outDir + dirs[j] + pathSep + files[i];
- const XalanDOMString theXSLFile = f.GenerateFileName(theXMLFile,"xsl");
- const XalanDOMString theOutputFile = f.GenerateFileName(outFile, "out");
-
- // Do a total end to end transform with no pre parsing of either xsl or xml files.
- XSLTResultTarget theResultTarget(theOutputFile);
- const XSLTInputSource xslInputSource(c_wstr(theXSLFile));
- const XSLTInputSource xmlInputSource(c_wstr(theXMLFile));
- int theResult = 0;
- /*
- const etoetran = eTOeTransform(xmlInputSource,
- xslInputSource,
- theResultTarget,
- csConstructionContext,
- psExecutionContext,
- csProcessor); */
- theResult = transformEngine.transform(xmlInputSource, xslInputSource, theResultTarget);
- }
- }
- }
- XalanTransformer::terminate();
- }
- catch(...)
- {
- cerr << "Exception caught!!!" << endl << endl;
- }
-
-
-return 0;
-}
diff --git a/Tests/Memory/TestBlock.cpp b/Tests/Memory/TestBlock.cpp
deleted file mode 100644
index 881960e..0000000
--- a/Tests/Memory/TestBlock.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-#if defined(_MSC_VER)
-
-#pragma warning(disable: 4127 4251 4511 4512 4514 4702 4710 4711 4786 4097; error: 4150 4172 4238 4239 4715)
-
-#if defined(_DEBUG)
-
-#include <crtdbg.h>
-
-#endif
-
-#endif
-
-
-
-#include "ArenaBlock.hpp"
-#include "ReusableArenaBlock.hpp"
-#include "ArenaAllocator.hpp"
-#include "ReusableArenaAllocator.hpp"
-#include "StringArenaAllocator.hpp"
-#include "ReusableStringArenaAllocator.hpp"
-
-
-#include <cstdio>
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <vector>
-
-
-
-template<class Type>
-class NullFunctor
-{
-public:
-
- void
- operator()(const Type* /* theType */) const
- {
- }
-};
-
-
-
-template<class Type>
-class DeleteFunctor
-{
-public:
-
- void
- operator()(const Type* theType) const
- {
- delete theType;
- }
-};
-
-
-
-using std::cin;
-using std::cout;
-using std::endl;
-using std::for_each;
-using std::string;
-using std::vector;
-
-
-
-void
-Usage()
-{
- cout << endl
- << "Usage: ArenaBlock <count> <block size>"
- << endl;
-}
-
-
-
-int
-main(
- int argc,
- const char* argv[])
-{
- if (argc != 3)
- {
- Usage();
- }
- else
- {
- const size_t theCount = atol(argv[1]);
- const size_t theBlockCount = atol(argv[2]);
-
- if (theCount <= 0 || theBlockCount <= 0)
- {
- Usage();
- }
- else
- {
- vector<string*> theStringVector;
-
- theStringVector.reserve(theCount);
-
- clock_t theStartClock = 0;
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- // Send all reports to STDOUT
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
- _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDOUT);
- _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
-
-#endif
-
- {
- theStartClock = clock();
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theStartState;
-
- _CrtMemCheckpoint(&theStartState);
-#endif
-
- StringArenaAllocator m_allocator(theBlockCount);
-
- for (unsigned int i = 0; i < theCount; ++i)
- {
- theStringVector.push_back(m_allocator.create("Test string"));
- }
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theEndState;
-
- _CrtMemCheckpoint(&theEndState);
-
- _CrtMemState theDiffs;
-
- _CrtMemDifference(&theDiffs, &theStartState, &theEndState);
-
- _CrtMemDumpStatistics(&theDiffs);
-#endif
-
- cout << "Create complete, hit <Enter> to continue..."
- << endl;
-
-// cin.get();
-
- for_each(theStringVector.begin(),
- theStringVector.end(),
- NullFunctor<string>());
- }
-
- clock_t theEndClock = clock();
-
- cout << "Time to create and delete "
- << theCount
- << " strings using the arena allocator was "
- << theEndClock - theStartClock
- << " clock ticks."
- << endl
- << endl;
-
- theStringVector.clear();
-
- {
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theStartState;
-
- _CrtMemCheckpoint(&theStartState);
-#endif
-
- theStartClock = clock();
-
- ReusableStringArenaAllocator m_allocator(theBlockCount);
-
- for (unsigned int i = 0; i < theCount; ++i)
- {
- theStringVector.push_back(m_allocator.create("Test string"));
- }
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theEndState;
-
- _CrtMemCheckpoint(&theEndState);
-
- _CrtMemState theDiffs;
-
- _CrtMemDifference(&theDiffs, &theStartState, &theEndState);
-
- _CrtMemDumpStatistics(&theDiffs);
-#endif
-
- cout << "Create complete, hit <Enter> to continue..."
- << endl;
-
-// cin.get();
-
- for_each(theStringVector.begin(),
- theStringVector.end(),
- NullFunctor<string>());
-
- for (unsigned int j = 0; j < theCount; ++j)
- {
- m_allocator.destroy(theStringVector[j]);
- }
- }
-
- theEndClock = clock();
-
- cout << "Time to create and delete "
- << theCount
- << " strings using the reusable arena allocator was "
- << theEndClock - theStartClock
- << " clock ticks."
- << endl
- << endl;
-
- theStringVector.clear();
-
- {
- theStartClock = clock();
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theStartState;
-
- _CrtMemCheckpoint(&theStartState);
-#endif
-
- for (unsigned int i = 0; i < theCount; ++i)
- {
- theStringVector.push_back(new string("Test string"));
- }
-
-#if defined(_MSC_VER) && defined(_DEBUG)
- _CrtMemState theEndState;
-
- _CrtMemCheckpoint(&theEndState);
-
- _CrtMemState theDiffs;
-
- _CrtMemDifference(&theDiffs, &theStartState, &theEndState);
-
- _CrtMemDumpStatistics(&theDiffs);
-#endif
-
- cout << "Create complete, hit <Enter> to continue..."
- << endl;
-
-// cin.get();
-
- for_each(theStringVector.begin(),
- theStringVector.end(),
- DeleteFunctor<string>());
-
- }
-
- theEndClock = clock();
-
- cout << "Time to create and delete "
- << theCount
- << " strings using standard new and delete was "
- << theEndClock - theStartClock
- << " clock ticks."
- << endl
- << endl;
- }
- }
-
- return 0;
-}
diff --git a/Tests/Performance/perf.cpp b/Tests/Performance/perf.cpp
deleted file mode 100644
index 2323ffc..0000000
--- a/Tests/Performance/perf.cpp
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * 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 "Xalan" 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/>.
- */
-#include <cassert>
-#include <fstream>
-#include <iostream>
-#include <strstream>
-
-#if !defined(NDEBUG) && defined(_MSC_VER)
-#include <crtdbg.h>
-#endif
-
-//These came from the debug test.
-#include <cstdio>
-#include <ctime>
-#include <string>
-#include <string.h>
-#include <vector>
-
-#include <util/PlatformUtils.hpp>
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/XalanFileOutputStream.hpp>
-#include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
-
-#include <XalanSourceTree/XalanSourceTreeDOMSupport.hpp>
-#include <XalanSourceTree/XalanSourceTreeParserLiaison.hpp>
-
-#include <XPath/XObjectFactoryDefault.hpp>
-#include <XPath/XPathFactoryDefault.hpp>
-
-#include <XSLT/StylesheetConstructionContextDefault.hpp>
-#include <XSLT/StylesheetExecutionContextDefault.hpp>
-#include <XSLT/StylesheetRoot.hpp>
-#include <XSLT/XSLTEngineImpl.hpp>
-#include <XSLT/XSLTInit.hpp>
-#include <XSLT/XSLTInputSource.hpp>
-#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
-#include <XSLT/XSLTResultTarget.hpp>
-
-#include <XMLFileReporter.hpp>
-#include <FileUtility.hpp>
-
-
-//This is here for the threads.
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <winbase.h>
-#define THREADFUNCTIONRETURN DWORD WINAPI
-
-#if !defined(XALAN_NO_NAMESPACES)
- using std::cerr;
- using std::cout;
- using std::cin;
- using std::endl;
- using std::ifstream;
- using std::ios_base;
- using std::ostrstream;
- using std::string;
-#endif
-
-
-// This is here for memory leak testing.
-#if defined(_DEBUG)
-#include <crtdbg.h>
-#endif
-
-
-const char* const excludeStylesheets[] =
-{
- "large-evans_large.xml",
- 0
-};
-
-inline bool
-checkForExclusion(XalanDOMString currentFile)
-{
-
- for (int i=0; excludeStylesheets[i] != 0; i++)
- { if (equals(currentFile, XalanDOMString(excludeStylesheets[i])))
- return true;
- }
- return false;
-}
-
-inline StylesheetRoot*
-processStylesheet(
- const XalanDOMString& theFileName,
- XSLTProcessor& theProcessor,
- StylesheetConstructionContext& theConstructionContext)
-{
- const XSLTInputSource theInputSource(c_wstr(theFileName));
-
- return theProcessor.processStylesheet(theInputSource, theConstructionContext);
-}
-
-
-
-inline XalanNode*
-parseSourceDocument(
- const XalanDOMString& theFileName,
- XSLTProcessor& theProcessor)
-{
- const XSLTInputSource theInputSource(c_wstr(theFileName));
-
- return theProcessor.getSourceTreeFromInput(theInputSource);
-}
-
-
-
-inline double
-calculateElapsedTime(
- clock_t theStartTime,
- clock_t theEndTime)
-{
- return double(theEndTime - theStartTime) / CLOCKS_PER_SEC * 1000.0;
-}
-
-inline double
-calculateAverageElapsedTime(
- clock_t theStartTime,
- clock_t theEndTime,
- long theIterationCount)
-{
- assert(theIterationCount > 0);
-
- return calculateElapsedTime(theStartTime, theEndTime) / theIterationCount;
-}
-
-inline clock_t
-transformWUnparsedSource(const XalanDOMString& theFileName,
- XSLTProcessor& theProcessor,
- const StylesheetRoot* theStylesheetRoot,
- XSLTResultTarget& theResults,
- StylesheetExecutionContextDefault& theExecutionContext)
-{
- const XSLTInputSource csSourceXML(c_wstr(theFileName)); // Creates source document
- theProcessor.setStylesheetRoot(theStylesheetRoot);
-
- const clock_t startTime = clock();
- theProcessor.process(csSourceXML, theResults, theExecutionContext);
- const clock_t endTime = clock();
-
- return endTime - startTime;
-
-}
-
-inline clock_t
-transformWParsedSource(XalanNode* theParsedSource,
- XSLTProcessor& theProcessor,
- const StylesheetRoot* theStylesheetRoot,
- XSLTResultTarget& theResults,
- StylesheetExecutionContextDefault& theExecutionContext)
-{
- // Put the parsed document into an XSLTInputSource,
- // and set stylesheet root in the processor
- const XSLTInputSource csSourceDocument(theParsedSource);
- theProcessor.setStylesheetRoot(theStylesheetRoot);
-
- const clock_t startTime = clock();
- theProcessor.process(csSourceDocument, theResults, theExecutionContext);
- const clock_t endTime = clock();
-
- return endTime - startTime;
-
-}
-inline long
-eTOeTransform(const XSLTInputSource& inputSource,
- const XSLTInputSource& stylesheetSource,
- XSLTResultTarget& outputTarget,
- StylesheetConstructionContext& constructionContext,
- StylesheetExecutionContext& executionContext,
- XSLTProcessor& theProcessor)
-{
- const clock_t startTime=clock();
- theProcessor.process(inputSource,
- stylesheetSource,
- outputTarget,
- constructionContext,
- executionContext);
- const clock_t endTime=clock();
-
- return endTime - startTime;
-}
-
-void
-getParams(int argc,
- const char* argv[],
- long& iterCount,
- bool& skip)
-{
- if (argc >= 4 )
- {
- cout << "Usage perf {count, -s(kip)} " << endl;
- exit(1);
- }
- if (argc >= 2)
- {
- iterCount = atol(argv[1]);
- if (iterCount <= 0)
- {
- cerr << "Usage: perf <count, -s(kip)>" << endl << endl;
- exit(1);
- }
- if (argc >= 3 && !stricmp(argv[2], "-s"))
- {
- skip = true;
- }
- return;
- }
-}
-
-#if defined(XALAN_NO_NAMESPACES)
- typedef vector<XalanDOMString> FileNameVectorType;
-#else
- typedef std::vector<XalanDOMString> FileNameVectorType;
-#endif
-
-int
-main(
- int argc,
- const char* argv[])
-{
-
- long iterCount = 5; // Default number of iterations
- bool skip = false; // Default will not skip long tests
-
- // Defined root for performance directory. Based on PD's machine.
- const XalanDOMString perfDir(XALAN_STATIC_UCODE_STRING("d:\\xslt\\xsl-test\\perf\\"));
-
-
-#if !defined(NDEBUG) && defined(_MSC_VER)
- _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
-
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
-#endif
-
- FileUtility f;
- FileNameVectorType dirs, files;
-
- // Get the list of Directories that are below perf
- dirs = f.getDirectoryNames(perfDir);
-
- XMLFileReporter logFile("cpp.xml");
- logFile.logTestFileInit("Performance Testing - Reports performance times for single transform, and average for multiple transforms using compiled stylesheet");
-
- getParams(argc, argv, iterCount, skip);
- try
- {
- // Call the static initializers... and define file suffixes
- XMLPlatformUtils::Initialize();
- {
- XSLTInit theInit;
-
- // Define some constants for file suffixes ...
- const XalanDOMString XSLSuffix(".xsl");
- const XalanDOMString XMLSuffix(".xml");
- const XalanDOMString outputDir("\\xslt-results\\perf\\test\\");
- const XalanDOMString pathSep(XALAN_STATIC_UCODE_STRING("\\"));
- const XalanDOMString outputSuffix(".out");
-
- // Define some variables used for timing...
- clock_t startTime, endTime, accmTime;
- double timeinMilliseconds, theAverage;
-
-
- for(FileNameVectorType::size_type j = 0; j < dirs.size(); j++)
- {
- files = f.getTestFileNames(perfDir, dirs[j]);
- for(FileNameVectorType::size_type i = 0; i < files.size(); i++)
- {
- if (skip)
- {
- if (checkForExclusion(files[i]))
- {
- continue;
- }
- }
- // Output file name to result log.
- logFile.logTestCaseInit(files[i]);
-
- const XalanDOMString theXMLFile= perfDir + dirs[j] + pathSep + files[i];
- const XalanDOMString theXSLFile = f.GenerateFileName(theXMLFile,"xsl");
- const XalanDOMString theOutputFile = f.GenerateFileName(theXMLFile, "out");
-
-
- // Create the necessary support objects to instantiate a processor.
- XalanSourceTreeDOMSupport csDOMSupport;
- XalanSourceTreeParserLiaison csParserLiaison(csDOMSupport);
-
- csDOMSupport.setParserLiaison(&csParserLiaison);
-
- XSLTProcessorEnvSupportDefault csXSLTProcessorEnvSupport;
- XObjectFactoryDefault csXObjectFactory;
- XPathFactoryDefault csXPathFactory;
-
- // Create a processor and connect to ProcessorEnvSupport object
- XSLTEngineImpl csProcessor(
- csParserLiaison,
- csXSLTProcessorEnvSupport,
- csDOMSupport,
- csXObjectFactory,
- csXPathFactory);
-
- // Hook up the processor the the support object.
- csXSLTProcessorEnvSupport.setProcessor(&csProcessor);
-
- // Create separate factory support object, so the stylesheet's
- // factory-created XPath instance are independent from processor's.
- XPathFactoryDefault ssXPathFactory;
-
- // Create a stylesheet construction context, using the
- // stylesheet's factory support objects.
- StylesheetConstructionContextDefault csConstructionContext(
- csProcessor,
- csXSLTProcessorEnvSupport,
- ssXPathFactory);
- cout << endl << files[i] << endl;
-
- // Create a parsed stylesheet (StylesheetRoot) for the
- // specified input XSL. We don't have to delete it, since
- // it is owned by the StylesheetConstructionContextDefault
- // instance. Time it as well...
-
- startTime = clock();
- const StylesheetRoot* const glbStylesheetRoot = processStylesheet(
- theXSLFile,
- csProcessor,
- csConstructionContext);
- endTime = clock();
- assert(glbStylesheetRoot != 0);
-
- // Calculate & report performance on stylesheet parse to console and log file.
- timeinMilliseconds = calculateElapsedTime(startTime, endTime);
- cout << " XSL parse: " << timeinMilliseconds << " milliseconds." << endl;
- logFile.logStatistic(60,
- long(timeinMilliseconds),
- timeinMilliseconds,
- "Parse of XSL: ");
-
- // Parse the input XML and report how long it took...
- startTime = clock();
- XalanNode* const glbSourceXML = parseSourceDocument(theXMLFile,
- csProcessor);
- endTime = clock();
-
- // Calculate & report performance on source document parse to console and log file.
- timeinMilliseconds = calculateElapsedTime(startTime, endTime);
- cout << " XML parse: " << timeinMilliseconds << " milliseconds." << endl;
- logFile.logStatistic(60,
- long(timeinMilliseconds),
- timeinMilliseconds,
- "Parse of XML: ");
-
- assert(glbSourceXML != 0);
-
- // The execution context uses the same factory support objects as
- // the processor, since those objects have the same lifetime as
- // other objects created as a result of the execution.
- StylesheetExecutionContextDefault psExecutionContext(
- csProcessor,
- csXSLTProcessorEnvSupport,
- csDOMSupport,
- csXObjectFactory);
-
-
-
- // Do a total end to end transform with no pre parsing of either xsl or xml files.
- XSLTResultTarget theResultTarget(theOutputFile);
- const XSLTInputSource xslInputSource(c_wstr(theXSLFile));
- const XSLTInputSource xmlInputSource(c_wstr(theXMLFile));
- const etoetran = eTOeTransform(xmlInputSource,
- xslInputSource,
- theResultTarget,
- csConstructionContext,
- psExecutionContext,
- csProcessor);
-
- // Output single transform time to console and result log
- cout << " eTOe transform: " << etoetran << " milliseconds." << endl;
- logFile.logStatistic(60,
- etoetran,
- etoetran,
- "end To end transform: ");
-
-
- // Perform a single transform using compiled stylesheet and report results...
- csProcessor.setStylesheetRoot(glbStylesheetRoot);
- const XSLTInputSource csSourceDocument(glbSourceXML);
-
- startTime = clock();
- csProcessor.process(csSourceDocument,
- theResultTarget,
- psExecutionContext);
- endTime = clock();
-
- psExecutionContext.reset(); // Reset the execution context...
- timeinMilliseconds = calculateElapsedTime(startTime, endTime);
-
- // Output single transform time to console and result log
- cout << " One transform w/Parsed XSL: " << timeinMilliseconds << " milliseconds." << endl;
- logFile.logStatistic(60,
- long(timeinMilliseconds),
- timeinMilliseconds,
- "Single transform took: ");
-
- // Perform multiple transforms and calculate the average time ..
- accmTime = 0;
- for(int j = 0; j < iterCount; ++j)
- {
- accmTime += transformWParsedSource(glbSourceXML,
- csProcessor,
- glbStylesheetRoot,
- theResultTarget,
- psExecutionContext);
- psExecutionContext.reset();
- }
- csParserLiaison.reset();
- theAverage = accmTime / iterCount;
-
- // Output average transform time to console and result log
- cout << " Avg: " << theAverage << " for " << iterCount << " iter's w/Parsed XML" << endl;
-
- char tmp[100];
- sprintf(tmp, "%s%d%s","Avg: transform of ", iterCount, " iter's w/Parsed XML.");
- logFile.logStatistic(60,
- long(theAverage),
- theAverage,
- tmp);
-
- // This is currently how the XalanJ 2.0 is performing transforms,
- // i.e. with the unparsed XML Source.
-
- accmTime = 0;
- for(int k = 0; k < iterCount; ++k)
- {
- accmTime += transformWUnparsedSource(theXMLFile,
- csProcessor,
- glbStylesheetRoot,
- theResultTarget,
- psExecutionContext);
- psExecutionContext.reset(); // Resets the execution context
- csParserLiaison.reset(); // This deletes the document
- }
- theAverage = accmTime / iterCount;
- cout << " Avg: " << theAverage << " for " << iterCount << " iter's w/Source XML" << endl;
-
- sprintf(tmp, "%s%d%s","Avg: transform of ", iterCount, " iter's w/Source XML.");
- logFile.logStatistic(60,
- long(theAverage),
- theAverage,
- tmp);
-
- logFile.logTestCaseClose(files[i], XalanDOMString("Done"));
- }
- }
- }
-
- logFile.logTestFileClose("Performance", "Done");
- logFile.close();
-
- XMLPlatformUtils::Terminate();
- }
- catch(...)
- {
- cerr << "Exception caught!!!" << endl << endl;
- }
-
-
- return 0;
-}
diff --git a/Tests/Performance/perf.dsp b/Tests/Performance/perf.dsp
deleted file mode 100644
index 18eafd9..0000000
--- a/Tests/Performance/perf.dsp
+++ /dev/null
@@ -1,92 +0,0 @@
-# Microsoft Developer Studio Project File - Name="perf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=perf - 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 "perf.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 "perf.mak" CFG="perf - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "perf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "perf - 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)" == "perf - 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\Performance"
-# 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 /MD /W4 /GX /O2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /I "..\harness\\" /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 /nologo /subsystem:console /machine:I386
-# ADD LINK32 ..\..\Build\Win32\VC6\Release\Harness.lib ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\*.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 /libpath:"..\Harness\Release\\"
-
-!ELSEIF "$(CFG)" == "perf - 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\Performance"
-# 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 /MDd /W4 /Gm /GR /GX /Zi /Od /Gf /Gy /I "..\..\src\\" /I "..\..\..\..\xml-xerces\c\src\\" /I "..\harness\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# SUBTRACT CPP /X
-# 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 ..\..\Build\Win32\VC6\Debug\Harness.lib ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Debug\xerces-c_1D.lib ..\..\Build\Win32\VC6\Debug\*.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 /libpath:"..\Harness\Debug\\"
-# SUBTRACT LINK32 /incremental:no
-
-!ENDIF
-
-# Begin Target
-
-# Name "perf - Win32 Release"
-# Name "perf - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\perf.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/Tests/Tests.dsw b/Tests/Tests.dsw
deleted file mode 100644
index 1c4086a..0000000
--- a/Tests/Tests.dsw
+++ /dev/null
@@ -1,68 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Harness"=".\Harness\Harness.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Memory"=".\Memory\Memory.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ThreadTest"=".\Threads\ThreadTest.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "perf"=".\Performance\perf.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Harness
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/Tests/Threads/ThreadTest.cpp b/Tests/Threads/ThreadTest.cpp
deleted file mode 100644
index 84dede3..0000000
--- a/Tests/Threads/ThreadTest.cpp
+++ /dev/null
@@ -1,394 +0,0 @@
-#include <cassert>
-#include <climits>
-#include <fstream>
-#include <iostream>
-#include <strstream>
-
-#include <process.h>
-
-#include <util/PlatformUtils.hpp>
-#include <util/Mutexes.hpp>
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <PlatformSupport/XalanFileOutputStream.hpp>
-#include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
-
-#include <XalanSourceTree/XalanSourceTreeDOMSupport.hpp>
-#include <XalanSourceTree/XalanSourceTreeParserLiaison.hpp>
-
-#include <XPath/XObjectFactoryDefault.hpp>
-#include <XPath/XPathFactoryDefault.hpp>
-
-#include <XSLT/StylesheetConstructionContextDefault.hpp>
-#include <XSLT/StylesheetExecutionContextDefault.hpp>
-#include <XSLT/StylesheetRoot.hpp>
-#include <XSLT/XSLTEngineImpl.hpp>
-#include <XSLT/XSLTInit.hpp>
-#include <XSLT/XSLTInputSource.hpp>
-#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
-#include <XSLT/XSLTResultTarget.hpp>
-
-
-//This is here for the threads.
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <winbase.h>
-
-
-#if !defined(XALAN_NO_NAMESPACES)
- using std::cerr;
- using std::cout;
- using std::endl;
- using std::ifstream;
- using std::ios_base;
- using std::ostrstream;
- using std::string;
-#endif
-
-// This is here for memory leak testing.
-#if defined(_DEBUG)
-#include <crtdbg.h>
-#endif
-
-// Used to hold compiled stylesheet
-StylesheetRoot* glbStylesheetRoot;
-
-extern "C" void theThreadRoutine(void* param);
-
-
-class SynchronizedCounter
-{
-public:
-
- SynchronizedCounter();
-
- ~SynchronizedCounter();
-
- void
- increment();
-
- void
- decrement();
-
- unsigned long
- getCounter() const;
-
-private:
-
- mutable XMLMutex m_mutex;
-
- unsigned long m_counter;
-};
-
-
-
-SynchronizedCounter::SynchronizedCounter() :
- m_mutex(),
- m_counter(0)
-{
-}
-
-
-
-SynchronizedCounter::~SynchronizedCounter()
-{
-}
-
-
-
-void
-SynchronizedCounter::increment()
-{
- XMLMutexLock theLock(&m_mutex);
-
- if (m_counter < ULONG_MAX)
- {
- ++m_counter;
- }
-}
-
-
-
-void
-SynchronizedCounter::decrement()
-{
- XMLMutexLock theLock(&m_mutex);
-
- if (m_counter > 0)
- {
- --m_counter;
- }
-}
-
-
-
-unsigned long
-SynchronizedCounter::getCounter() const
-{
- return m_counter;
-}
-
-
-
-struct
-ThreadInfo
-{
- ThreadInfo(
- unsigned int theThreadNumber,
- SynchronizedCounter* theCounter) :
- m_threadNumber(theThreadNumber),
- m_counter(theCounter)
- {
- }
-
- unsigned int m_threadNumber;
-
- SynchronizedCounter* m_counter;
-};
-
-
-
-void
-theThreadRoutine(void* param)
-{
-// This routine uses compiled stylesheet (glbStylesheetRoot), which is set using the
-// theProcessor.setStylesheetRoot method. The transform is done using the theProcessor's
-// process() method.
-
- const ThreadInfo* theInfo = reinterpret_cast<const ThreadInfo*>(param);
-
- assert(theInfo != 0);
-
- theInfo->m_counter->increment();
-
- try
- {
- // Create the support objects that are necessary for running the processor...
- XalanSourceTreeDOMSupport theDOMSupport;
- XalanSourceTreeParserLiaison theParserLiaison(theDOMSupport);
-
- theDOMSupport.setParserLiaison(&theParserLiaison);
- // The default is that documents are not thread-safe. Set this to
- // true so they are.
- //theParserLiaison.setThreadSafe(true);
-
- XSLTProcessorEnvSupportDefault theXSLTProcessorEnvSupport;
- XObjectFactoryDefault theXObjectFactory;
- XPathFactoryDefault theXPathFactory;
-
- // Create a processor...and output start message.
- XSLTEngineImpl theProcessor(
- theParserLiaison,
- theXSLTProcessorEnvSupport,
- theDOMSupport,
- theXObjectFactory,
- theXPathFactory);
-
- // Connect the processor to the support object...
- theXSLTProcessorEnvSupport.setProcessor(&theProcessor);
-
- // The execution context uses the same factory support objects as
- // the processor, since those objects have the same lifetime as
- // other objects created as a result of the execution.
- StylesheetExecutionContextDefault ssExecutionContext(
- theProcessor,
- theXSLTProcessorEnvSupport,
- theDOMSupport,
- theXObjectFactory);
-
- // Our input files. The assumption is that the executable will be run
- // from same directory as the input files.
-
- // Generate the input and output file names.
- const XalanDOMString theXMLfile("birds.xml");
-
- const XalanDOMString theOutputFile(
- XalanDOMString("birds") +
- UnsignedLongToDOMString(theInfo->m_threadNumber) +
- XalanDOMString(".out"));
-
- //Generate the XML input and output objects.
- XSLTInputSource theInputSource(c_wstr(theXMLfile));
- XSLTResultTarget theResultTarget(theOutputFile);
-
- // Set the stylesheet to be the compiled stylesheet. Then do the transform.
- // Report both the start of the transform and end of the thread.
- theProcessor.setStylesheetRoot(glbStylesheetRoot);
- theProcessor.process(theInputSource,theResultTarget,ssExecutionContext);
- }
- catch(...)
- {
- }
-
- // Decrement the counter because we're done...
- theInfo->m_counter->decrement();
-}
-
-
-
-void
-doThreads(long theThreadCount)
-{
- cout << endl << "Starting " << theThreadCount << " threads." << endl;
-
- typedef std::vector<ThreadInfo> ThreadInfoVectorType;
-
- ThreadInfoVectorType theThreadInfo;
-
- theThreadInfo.reserve(theThreadCount);
-
- try
- {
- cout << endl << "Clock before starting threads: " << clock() << endl;
-
- SynchronizedCounter theCounter;
-
- for (long i = 0; i < theThreadCount; i++)
- {
- theThreadInfo.push_back(ThreadInfoVectorType::value_type(i, &theCounter));
-
- const unsigned long theThreadID =
- _beginthread(theThreadRoutine, 4096, reinterpret_cast<LPVOID>(&theThreadInfo.back()));
-
- if (theThreadID == unsigned(-1))
- {
- cerr << endl << "Unable to create thread number " << i + 1 << "." << endl;
- }
- }
-
- clock_t theClock = 0;
-
- if (theThreadInfo.size() == 0)
- {
- cerr << endl << "No threads were created!" << endl;
- }
- else
- {
- unsigned int theCheckCount = 0;
-
- do
- {
- Sleep(2000);
-
- // Check a couple of times, just in case, since
- // getCounter() is not synchronized...
- if (theCounter.getCounter() == 0)
- {
- if (theCheckCount == 0)
- {
- theClock = clock();
- }
-
- ++theCheckCount;
- }
- }
- while(theCheckCount < 2);
- }
-
- cout << endl << "Clock after threads: " << theClock << endl;
- }
- catch(...)
- {
- cerr << "Exception caught!!!"
- << endl
- << endl;
- }
-}
-
-
-int
-main(
- int argc,
- const char* argv[])
-{
-#if !defined(NDEBUG) && defined(_MSC_VER)
- _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
-
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
-#endif
-
- if (argc > 2)
- {
- cerr << "Usage: ThreadTest"
- << endl
- << endl;
- }
- else
- {
- int threadCount = 60;
-
- if (argc == 2)
- {
- threadCount = atoi(argv[1]);
- }
-
- try
- {
- // Call the static initializers...
- XMLPlatformUtils::Initialize();
- {
- XSLTInit theInit;
-
- // Create the necessary stuff of compile the stylesheet.
- XercesDOMSupport ssDOMSupport;
- XercesParserLiaison ssParserLiaison(ssDOMSupport);
- XSLTProcessorEnvSupportDefault ssXSLTProcessorEnvSupport;
- XObjectFactoryDefault ssXObjectFactory;
- XPathFactoryDefault ssXPathFactory;
-
- // Create a processor to compile the stylesheet...
- XSLTEngineImpl ssProcessor(
- ssParserLiaison,
- ssXSLTProcessorEnvSupport,
- ssDOMSupport,
- ssXObjectFactory,
- ssXPathFactory);
-
- // Create separate factory support objects so the stylesheet's
- // factory-created XObject and XPath instances are independent
- // from processor's.
- XPathFactoryDefault ssStylesheetXPathFactory;
-
- // Create a stylesheet construction context, using the
- // stylesheet's factory support objects.
- StylesheetConstructionContextDefault ssConstructionContext(
- ssProcessor,
- ssXSLTProcessorEnvSupport,
- ssStylesheetXPathFactory);
-
- const XalanDOMString theXSLFileName("birds.xsl");
- const XalanDOMString theXMLFileName("birds.xml");
-
- // Our stylesheet input source...
- XSLTInputSource ssStylesheetSourceXSL(c_wstr(theXSLFileName));
- XSLTInputSource ssStylesheetSourceXML(c_wstr(theXMLFileName));
-
- // Ask the processor to create a StylesheetRoot for the specified
- // input XSL. This is the compiled stylesheet. We don't have to
- // delete it, since it is owned by the StylesheetConstructionContext
- // instance.
-
- glbStylesheetRoot = ssProcessor.processStylesheet(ssStylesheetSourceXSL,
- ssConstructionContext);
- assert(glbStylesheetRoot != 0);
-
-
- doThreads(threadCount);
- }
-
- XMLPlatformUtils::Terminate();
-
- }
-
- catch(...)
- {
- cerr << "Exception caught!!!"
- << endl
- << endl;
- }
-
- }
-
- return 0;
-}
diff --git a/Tests/Threads/ThreadTest.dsp b/Tests/Threads/ThreadTest.dsp
deleted file mode 100644
index bafab45..0000000
--- a/Tests/Threads/ThreadTest.dsp
+++ /dev/null
@@ -1,131 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ThreadTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=ThreadTest - 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 "ThreadTest.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 "ThreadTest.mak" CFG="ThreadTest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ThreadTest - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "ThreadTest - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "ThreadTest - Win32 Release with symbols" (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)" == "ThreadTest - 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\ThreadTest"
-# 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 /MD /W4 /GR /GX /O2 /Ob2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /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 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\*.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 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 /out:"..\..\..\c\Build\Win32\VC6\Release/ThreadTest.exe"
-
-!ELSEIF "$(CFG)" == "ThreadTest - 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\ThreadTest"
-# 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 /MDd /W4 /Gm /GR /GX /Zi /Od /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /D "_WINDOWS" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_MBCS" /YX /FD /GZ /c
-# SUBTRACT CPP /X
-# 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 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Debug\xerces-c_1D.lib ..\..\Build\Win32\VC6\Debug\*.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
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "ThreadTest - Win32 Release with symbols"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "ThreadTest___Win32_Release_with_symbols"
-# PROP BASE Intermediate_Dir "ThreadTest___Win32_Release_with_symbols"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\Build\Win32\VC6\Release.symbols"
-# PROP Intermediate_Dir "..\..\Build\Win32\VC6\Release.symbols\ThreadTest"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W4 /GR /GX /O2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W4 /GR /GX /Zi /O2 /I "..\..\..\..\xml-xerces\c\src" /I "..\..\src\\" /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 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release\*.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 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 /out:"..\..\..\c\Build\Win32\VC6\Release/ThreadTest.exe"
-# ADD LINK32 ..\..\..\..\xml-xerces\c\Build\Win32\VC6\Release\xerces-c_1.lib ..\..\Build\Win32\VC6\Release.symbols\*.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 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 /out:"..\..\..\c\Build\Win32\VC6\Release.symbols/ThreadTest.exe"
-
-!ENDIF
-
-# Begin Target
-
-# Name "ThreadTest - Win32 Release"
-# Name "ThreadTest - Win32 Debug"
-# Name "ThreadTest - Win32 Release with symbols"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\threadtest.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/Tests/Threads/ThreadTestold.cpp b/Tests/Threads/ThreadTestold.cpp
deleted file mode 100644
index 8f91dad..0000000
--- a/Tests/Threads/ThreadTestold.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-#include <cassert>
-#include <fstream>
-#include <iostream>
-#include <strstream>
-
-#include <util/PlatformUtils.hpp>
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-#include <DOMSupport/DOMSupportDefault.hpp>
-
-#include <XPath/XObjectFactoryDefault.hpp>
-#include <XPath/XPathSupportDefault.hpp>
-#include <XPath/XPathFactoryDefault.hpp>
-
-#include <XSLT/StylesheetConstructionContextDefault.hpp>
-#include <XSLT/StylesheetExecutionContextDefault.hpp>
-#include <XSLT/StylesheetRoot.hpp>
-#include <XSLT/XSLTEngineImpl.hpp>
-#include <XSLT/XSLTInputSource.hpp>
-#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
-#include <XSLT/XSLTResultTarget.hpp>
-
-#include <XercesParserLiaison/XercesParserLiaison.hpp>
-
-#include <XercesPlatformSupport/TextFileOutputStream.hpp>
-#include <XercesPlatformSupport/XercesDOMPrintWriter.hpp>
-
-//This is here for the threads.
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <winbase.h>
-#define THREADFUNCTIONRETURN DWORD WINAPI
-
-#if !defined(XALAN_NO_NAMESPACES)
- using std::cerr;
- using std::cout;
- using std::endl;
- using std::ifstream;
- using std::ios_base;
- using std::ostrstream;
- using std::string;
-#endif
-
-// Used to hold compiled stylesheet, and source document.
-StylesheetRoot* glbStylesheetRoot;
-//XalanNode* glbSourceDoc;
-
-void outputMessage(DWORD id, char msg[])
-{
- ostrstream threadMsg;
-
- threadMsg << "\n" << msg << " Thread: " << id << '\0';
- cout << threadMsg.str();
- threadMsg.freeze(false);
-}
-
-
-THREADFUNCTIONRETURN theThread(LPVOID param)
-{
-// This routine uses compiled stylesheet (glbStylesheetRoot), which is set using the
-// theProcessor.setStylesheetRoot method. The transform is done using the theProcessor's
-// process() method.
-
- const int number = reinterpret_cast<int>(param);
- const DWORD theThreadID = GetCurrentThreadId();
-
- // Create the support objects that are necessary for running the processor...
- DOMSupportDefault theDOMSupport;
- XercesParserLiaison theParserLiaison(theDOMSupport);
- XPathSupportDefault theXPathSupport(theDOMSupport);
- XSLTProcessorEnvSupportDefault theXSLTProcessorEnvSupport;
- XObjectFactoryDefault theXObjectFactory(theXSLTProcessorEnvSupport,
- theXPathSupport);
- XPathFactoryDefault theXPathFactory;
-
- // Create a processor...and output start message.
- XSLTEngineImpl theProcessor(
- theParserLiaison,
- theXPathSupport,
- theXSLTProcessorEnvSupport,
- theXObjectFactory,
- theXPathFactory);
- outputMessage(theThreadID,"Starting ");
-
- // Connect the processor to the support object...
- theXSLTProcessorEnvSupport.setProcessor(&theProcessor);
-
- // The execution context uses the same factory support objects as
- // the processor, since those objects have the same lifetime as
- // other objects created as a result of the execution.
- StylesheetExecutionContextDefault ssExecutionContext(
- theProcessor,
- theXSLTProcessorEnvSupport,
- theXPathSupport,
- theXObjectFactory);
-
- // Our input files. The assumption is that the executable will be run
- // from same directory as the input files.
-
- // Generate the input and output file names.
- ostrstream theFormatterIn, theFormatterOut;
- theFormatterIn << "Birds.xml" << '\0';
- theFormatterOut << "Birds" << number << ".out" << '\0';
-
- //Generate the XML input and output objects.
- XSLTInputSource theInputSource(theFormatterIn.str());
- XSLTResultTarget theResultTarget(theFormatterOut.str());
-
- // Unfreeze the ostrstreams, so the memory is returned...
- theFormatterIn.freeze(false);
- theFormatterOut.freeze(false);
-
- // Set the stylesheet to be the compiled stylesheet. Then do the transform.
- // Report both the start of the transform and end of the thread.
- theProcessor.setStylesheetRoot(glbStylesheetRoot);
- outputMessage(theThreadID,"Transforming");
- theProcessor.process(theInputSource,theResultTarget,ssExecutionContext);
- outputMessage(theThreadID,"Finishing");
- return (0);
-}
-void doThreads(int x)
-{
- DWORD dwStackSize = 4096; // initial thread stack size
- LPTHREAD_START_ROUTINE lpStartAddress = (LPTHREAD_START_ROUTINE)theThread;
- DWORD dwCreationFlags = 0; // creation flags
- int nThreads = x;
-
- std::vector<HANDLE> hThreads;
- hThreads.reserve(nThreads);
- int i=0;
-
- try
- {
- cout << endl << "Clock before starting threads: " << clock() << endl;
-
- for (i=0; i< nThreads; i++)
- {
- HANDLE hThread;
- DWORD threadID;
-
- hThread = CreateThread(
- 0, dwStackSize,
- lpStartAddress, // pointer to thread function
- reinterpret_cast<LPVOID>(i), // argument for new thread
- dwCreationFlags, // creation flags
- &threadID);
- assert(hThread != 0);
- hThreads.push_back(hThread);
- }
- WaitForMultipleObjects(hThreads.size(), &hThreads[0], TRUE, INFINITE);
-
- cout << endl << "Clock after threads: " << clock() << endl;
-
- for (i=0; i< nThreads; i++)
- CloseHandle(hThreads[i]);
- }
- catch(...)
- {
- cerr << "Exception caught!!!"
- << endl
- << endl;
- }
-}
-
-
-int main(int argc, const char* /* argv */[])
-{
-
- if (argc != 1)
- {
- cerr << "Usage: ThreadTest"
- << endl
- << endl;
- }
- else
- {
- try
- {
- // Call the static initializers...
- XMLPlatformUtils::Initialize();
- XSLTEngineImpl::Initialize();
-
- // Create the necessary stuff of compile the stylesheet.
- DOMSupportDefault ssDOMSupport;
- XercesParserLiaison ssParserLiaison(ssDOMSupport);
- XPathSupportDefault ssXPathSupport(ssDOMSupport);
- XSLTProcessorEnvSupportDefault ssXSLTProcessorEnvSupport;
- XObjectFactoryDefault ssXObjectFactory(ssXSLTProcessorEnvSupport,
- ssXPathSupport);
- XPathFactoryDefault ssXPathFactory;
-
- // Create a processor to compile the stylesheet...
- XSLTEngineImpl ssProcessor(
- ssParserLiaison,
- ssXPathSupport,
- ssXSLTProcessorEnvSupport,
- ssXObjectFactory,
- ssXPathFactory);
-
- // Create separate factory support objects so the stylesheet's
- // factory-created XObject and XPath instances are independent
- // from processor's.
- XObjectFactoryDefault ssStylesheetXObjectFactory(
- ssXSLTProcessorEnvSupport,
- ssXPathSupport);
- XPathFactoryDefault ssStylesheetXPathFactory;
-
- // Create a stylesheet construction context, using the
- // stylesheet's factory support objects.
- StylesheetConstructionContextDefault ssConstructionContext(
- ssProcessor,
- ssXSLTProcessorEnvSupport,
- ssStylesheetXObjectFactory,
- ssStylesheetXPathFactory);
-
- const XalanDOMString theXSLFileName("Birds.xsl");
- const XalanDOMString theXMLFileName("Birds.xml");
-
- // Our stylesheet input source...
- XSLTInputSource ssStylesheetSourceXSL(c_wstr(theXSLFileName));
- XSLTInputSource ssStylesheetSourceXML(c_wstr(theXMLFileName));
-
- // Ask the processor to create a StylesheetRoot for the specified
- // input XSL. This is the compiled stylesheet. We don't have to
- // delete it, since it is owned by the StylesheetConstructionContext
- // instance.
- glbStylesheetRoot = ssProcessor.processStylesheet(ssStylesheetSourceXSL,
- ssConstructionContext);
- assert(glbStylesheetRoot != 0);
-
- // Create a compiled source tree as well, to use with perThreadCC
- // glbSourceDoc = ssProcessor.getSourceTreeFromInput(ssStylesheetSourceXML);
- // assert(glbSourceDoc != 0);
-
- doThreads(10);
- }
- catch(...)
- {
- cerr << "Exception caught!!!"
- << endl
- << endl;
- }
- }
-
- return 0;
-}
diff --git a/Tests/Threads/birds.xml b/Tests/Threads/birds.xml
deleted file mode 100644
index 3082754..0000000
--- a/Tests/Threads/birds.xml
+++ /dev/null
@@ -1,1289 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Class xmlns:LXT="www.bogus.com">
-<Order Name="TINAMIFORMES">
- <Family Name="TINAMIDAE">
- <Species Scientific_Name="Tinamus major"> Great Tinamou.</Species>
- <Species Scientific_Name="Nothocercus">Highland Tinamou.</Species>
- <Species Scientific_Name="Crypturellus soui">Little Tinamou.</Species>
- <Species Scientific_Name="Crypturellus cinnamomeus">Thicket Tinamou.</Species>
- <Species Scientific_Name="Crypturellus boucardi">Slaty-breasted Tinamou.</Species>
- <Species Scientific_Name="Crypturellus kerriae">Choco Tinamou.</Species>
- </Family>
- </Order>
-<Order Name="GAVIIFORMES">
- <Family Name="GAVIIDAE">
- <Species Scientific_Name="Gavia stellata">Red-throated Loon.</Species>
- <Species Scientific_Name="Gavia arctica">Arctic Loon.</Species>
- <Species Scientific_Name="Gavia pacifica">Pacific Loon.</Species>
- <Species Scientific_Name="Gavia immer">Common Loon.</Species>
- <Species Scientific_Name="Gavia adamsii">Yellow-billed Loon.</Species>
- </Family>
- </Order>
-
-
-<Order Name="PODICIPEDIFORMES">
- <Family Name="PODICIPEDIDAE">
- <Species Scientific_Name="Tachybaptus dominicus">Least Grebe.</Species>
- <Species Scientific_Name="Podilymbus podiceps">Pied-billed Grebe.</Species>
- <Species Scientific_Name="">Atitlan Grebe.</Species>
- <Species Scientific_Name="">Horned Grebe.</Species>
- <Species Scientific_Name="">Red-necked Grebe.</Species>
- <Species Scientific_Name="">Eared Grebe.</Species>
- <Species Scientific_Name="">Western Grebe.</Species>
- <Species Scientific_Name="">Clark's Grebe.</Species>
- <Species Scientific_Name=""/>
- </Family>
- </Order>
-
-
-<Order Name="PROCELLARIIFORMES">
- <Family Name="DIOMEDEIDAE">
- <Species Scientific_Name="Thalassarche chlororhynchos">Yellow-nosed Albatross. (A)</Species>
- <Species Scientific_Name="Thalassarche cauta">Shy Albatross. (A)</Species>
- <Species Scientific_Name="Thalassarche melanophris">Black-browed Albatross. (A)</Species>
- <Species Scientific_Name="Phoebetria palpebrata">Light-mantled Albatross. (A)</Species>
- <Species Scientific_Name="Diomedea exulans">Wandering Albatross. (A)</Species>
- <Species Scientific_Name="Phoebastria immutabilis">Laysan Albatross.</Species>
- <Species Scientific_Name="Phoebastria nigripes">Black-footed Albatross.</Species>
- <Species Scientific_Name="Phoebastria albatrus">Short-tailed Albatross. (N)</Species>
- </Family>
- <Family Name="PROCELLARIIDAE">
- <Species Scientific_Name="Fulmarus glacialis">Northern Fulmar.</Species>
- <Species Scientific_Name="Pterodroma neglecta">Kermadec Petrel. (A)</Species>
- <Species Scientific_Name="Pterodroma arminjoniana">Herald Petrel. (A)</Species>
- <Species Scientific_Name="Pterodroma ultima">Murphy's Petrel. (N)</Species>
- <Species Scientific_Name="Pterodroma inexpectata">Mottled Petrel. (A)</Species>
- <Species Scientific_Name="Pterodroma cahow">Bermuda Petrel.</Species>
- <Species Scientific_Name="Pterodroma hasitata">Black-capped Petrel.</Species>
- <Species Scientific_Name="Pterodroma externa">Juan Fernandez Petrel. (N)</Species>
- <Species Scientific_Name="Pterodroma phaeopygia">Dark-rumped Petrel.</Species>
- <Species Scientific_Name="Pterodroma cervicalis">White-necked Petrel. (H)</Species>
- <Species Scientific_Name="Pterodroma hypoleuca">Bonin Petrel. (H)</Species>
- <Species Scientific_Name="Pterodroma nigripennis">Black-winged Petrel. (H, A)</Species>
- <Species Scientific_Name="Pterodroma cookii">Cook's Petrel. (N)</Species>
- <Species Scientific_Name="Pterodroma longirostris">Stejneger's Petrel. (A)</Species>
- <Species Scientific_Name="Bulweria bulwerii">Bulwer's Petrel. (H)</Species>
- <Species Scientific_Name="Bulweria fallax">Jouanin's Petrel. (H, A)</Species>
- <Species Scientific_Name="Procellaria parkinsoni">Parkinson's Petrel. (N)</Species>
- <Species Scientific_Name="Calonectris leucomelas">Streaked Shearwater. (A)</Species>
- <Species Scientific_Name="Calonectris diomedea">Cory's Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus creatopus">Pink-footed Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus carneipes">Flesh-footed Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus gravis">Greater Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus pacificus">Wedge-tailed Shearwater.</Species>
- <Species Scientific_Name="Puffinus bulleri">Buller's Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus griseus">Sooty Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus tenuirostris">Short-tailed Shearwater. (N)</Species>
- <Species Scientific_Name="Puffinus nativitatis">Christmas Shearwater. (H)</Species>
- <Species Scientific_Name="Puffinus puffinus">Manx Shearwater.</Species>
- <Species Scientific_Name="Puffinus auricularis">Townsend's Shearwater.</Species>
- <Species Scientific_Name="Puffinus opisthomelas">Black-vented Shearwater.</Species>
- <Species Scientific_Name="Puffinus lherminieri">Audubon's Shearwater.</Species>
- <Species Scientific_Name="Puffinus assimilis">Little Shearwater. (A)</Species>
- </Family>
- <Family Name="HYDROBATIDAE">
- <Species Scientific_Name="Oceanites oceanicus">Wilson's Storm-Petrel. (N)</Species>
- <Species Scientific_Name="Pelagodroma marina">White-faced Storm-Petrel. (A)</Species>
- <Species Scientific_Name="Hydrobates pelagicus">European Storm-Petrel. (A)</Species>
- <Species Scientific_Name="Oceanodroma furcata">Fork-tailed Storm-Petrel.</Species>
- <Species Scientific_Name="Oceanodroma leucorhoa">Leach's Storm-Petrel.</Species>
- <Species Scientific_Name="Oceanodroma homochroa">Ashy Storm-Petrel.</Species>
- <Species Scientific_Name="Oceanodroma castro">Band-rumped Storm-Petrel. (N)</Species>
- <Species Scientific_Name="Oceanodroma tethys">Wedge-rumped Storm-Petrel. (N)</Species>
- <Species Scientific_Name="Oceanodroma melania">Black Storm-Petrel.</Species>
- <Species Scientific_Name="Oceanodroma macrodactyla">Guadalupe Storm-Petrel.</Species>
- <Species Scientific_Name="Oceanodroma markhami">Markham's Storm-Petrel. (A)</Species>
- <Species Scientific_Name="Oceanodroma tristrami">Tristram's Storm-Petrel. (H)</Species>
- <Species Scientific_Name="Oceanodroma microsoma">Least Storm-Petrel.</Species>
- </Family>
- </Order>
-
-<Order Name="PELECANIFORMES">
- <Family Name="PHAETHONTIDAE">
- <Species Scientific_Name="Phaethon lepturus">White-tailed Tropicbird.</Species>
- <Species Scientific_Name="Phaethon aethereus">Red-billed Tropicbird.</Species>
- <Species Scientific_Name="Phaethon rubricauda">Red-tailed Tropicbird.</Species>
- </Family>
- <Family Name="SULIDAE">
- <Species Scientific_Name="Sula dactylatra">Masked Booby.</Species>
- <Species Scientific_Name="Sula nebouxii">Blue-footed Booby.</Species>
- <Species Scientific_Name="Sula variegata">Peruvian Booby. (A)</Species>
- <Species Scientific_Name="Sula leucogaster">Brown Booby.</Species>
- <Species Scientific_Name="Sula sula">Red-footed Booby.</Species>
- <Species Scientific_Name="Morus bassanus">Northern Gannet.</Species>
- </Family>
- <Family Name="PELECANIDAE">
- <Species Scientific_Name="Pelecanus erythrorhynchos">American White Pelican.</Species>
- <Species Scientific_Name="Pelecanus occidentalis">Brown Pelican.</Species>
- </Family>
- <Family Name="PHALACROCORACIDAE">
- <Species Scientific_Name="Phalacrocorax penicillatus">Brandt's Cormorant.</Species>
- <Species Scientific_Name="Phalacrocorax brasilianus">Neotropic Cormorant.</Species>
- <Species Scientific_Name="Phalacrocorax auritus">Double-crested Cormorant.</Species>
- <Species Scientific_Name="Phalacrocorax carbo">Great Cormorant.</Species>
- <Species Scientific_Name="Phalacrocorax urile">Red-faced Cormorant.</Species>
- <Species Scientific_Name="Phalacrocorax pelagicus">Pelagic Cormorant.</Species>
- </Family>
- <Family Name="ANHINGIDAE">
- <Species Scientific_Name="Anhinga anhinga">Anhinga.</Species>
- </Family>
- <Family Name="FREGATIDAE">
- <Species Scientific_Name="Fregata magnificens">Magnificent Frigatebird.</Species>
- <Species Scientific_Name="Fregata minor">Great Frigatebird.</Species>
- <Species Scientific_Name="Fregata ariel">Lesser Frigatebird. (A)</Species>
- </Family>
- </Order>
-
-
-
-<Order Name="CICONIIFORMES">
- <Family Name="ARDEIDAE">
- <Species Scientific_Name="Botaurus pinnatus">Pinnated Bittern.</Species>
- <Species Scientific_Name="Botaurus lentiginosus">American Bittern.</Species>
- <Species Scientific_Name="Ixobrychus sinensis ">Yellow Bittern. (A)</Species>
- <Species Scientific_Name="Ixobrychus exilis">Least Bittern.</Species>
- <Species Scientific_Name="Tigrisoma lineatum">Rufescent Tiger-Heron.</Species>
- <Species Scientific_Name="Tigrisoma fasciatum">Fasciated Tiger-Heron.</Species>
- <Species Scientific_Name="Tigrisoma mexicanum">Bare-throated Tiger-Heron.</Species>
- <Species Scientific_Name="Ardea herodias">Great Blue Heron.</Species>
- <Species Scientific_Name="Ardea cinerea">Gray Heron. (A)</Species>
- <Species Scientific_Name="Ardea cocoi">Cocoi Heron.</Species>
- <Species Scientific_Name="Ardea alba">Great Egret.</Species>
- <Species Scientific_Name="Egretta eulophotes">Chinese Egret. (A)</Species>
- <Species Scientific_Name="Egretta garzetta">Little Egret. (A)</Species>
- <Species Scientific_Name="Egretta gularis">Western Reef-Heron. (A)</Species>
- <Species Scientific_Name="Egretta thula">Snowy Egret.</Species>
- <Species Scientific_Name="Egretta caerulea">Little Blue Heron.</Species>
- <Species Scientific_Name="Egretta tricolor">Tricolored Heron.</Species>
- <Species Scientific_Name="Egretta rufescens">Reddish Egret.</Species>
- <Species Scientific_Name="Bubulcus ibis">Cattle Egret.</Species>
- <Species Scientific_Name="Butorides virescens">Green Heron.</Species>
- <Species Scientific_Name="Butorides striatus">Striated Heron.</Species>
- <Species Scientific_Name="Agamia agami">Agami Heron.</Species>
- <Species Scientific_Name="Pilherodius pileatus">Capped Heron.</Species>
- <Species Scientific_Name="Nycticorax nycticorax">Black-crowned Night-Heron. </Species>
- <Species Scientific_Name="Nyctanassa violacea">Yellow-crowned Night-Heron.</Species>
- <Species Scientific_Name="Cochlearius cochlearius">Boat-billed Heron.</Species>
- </Family>
- <Family Name="THRESKIORNITHIDAE">
- <SubFamily Name="Threskiornithinae">
- <Species Scientific_Name="Eudocimus albus">White Ibis.</Species>
- <Species Scientific_Name="Eudocimus ruber">Scarlet Ibis. (A)</Species>
- <Species Scientific_Name="Plegadis falcinellus">Glossy Ibis.</Species>
- <Species Scientific_Name="Plegadis chihi">White-faced Ibis.</Species>
- <Species Scientific_Name="Mesembrinibis cayennensis">Green Ibis.</Species>
- <Species Scientific_Name="Theristicus caudatus">Buff-necked Ibis. (A)</Species>
- </SubFamily>
- <SubFamily Name="Plataleinae">
- <Species Scientific_Name="Ajaia ajaja">Roseate Spoonbill.</Species>
- </SubFamily>
- </Family>
- <Family Name="CICONIIDAE">
- <Species Scientific_Name="Jabiru mycteria">Jabiru.</Species>
- <Species Scientific_Name="Mycteria americana">Wood Stork.</Species>
- </Family>
- <Family Name="CATHARTIDAE">
- <Species Scientific_Name="Coragyps atratus">Black Vulture.</Species>
- <Species Scientific_Name="Cathartes aura">Turkey Vulture.</Species>
- <Species Scientific_Name="Cathartes burrovianus">Lesser Yellow-headed Vulture.</Species>
- <Species Scientific_Name="Gymnogyps californianus">California Condor.</Species>
- <Species Scientific_Name="Sarcoramphus papa">King Vulture.</Species>
- </Family>
- </Order>
-
-
-
-<Order Name="PHOENICOPTERIFORMES">
- <Family Name="PHOENICOPTERIDAE">
- <Species Scientific_Name="Phoenicopterus ruber">Greater Flamingo.</Species>
- </Family>
- </Order>
-
-
-<Order Name="ANSERIFORMES">
- <Family Name="ANATIDAE">
- <SubFamily Name="Dendrocygninae">
- <Species Scientific_Name="Dendrocygna viduata">White-faced Whistling-Duck.</Species>
- <Species Scientific_Name="Dendrocygna autumnalis">Black-bellied Whistling-Duck.</Species>
- <Species Scientific_Name="Dendrocygna arborea">West Indian Whistling-Duck.</Species>
- <Species Scientific_Name="Dendrocygna bicolor">Fulvous Whistling-Duck.</Species>
- </SubFamily>
- <SubFamily Name="Anserinae">
- <Species Scientific_Name="Anser fabalis">Bean Goose. (A)</Species>
- <Species Scientific_Name="Anser brachyrhynchus">Pink-footed Goose. (A)</Species>
- <Species Scientific_Name="Anser albifrons">Greater White-fronted Goose.</Species>
- <Species Scientific_Name="Anser erythropus">Lesser White-fronted Goose. (A)</Species>
- <Species Scientific_Name="Chen canagica">Emperor Goose.</Species>
- <Species Scientific_Name="Chen caerulescens">Snow Goose.</Species>
- <Species Scientific_Name="Chen rossii">Ross's Goose.</Species>
- <Species Scientific_Name="Branta canadensis">Canada Goose.</Species>
- <Species Scientific_Name="Branta sandvicensis">Hawaiian Goose. (H)</Species>
- <Species Scientific_Name="Branta bernicla">Brant.</Species>
- <Species Scientific_Name="Branta leucopsis">Barnacle Goose. (A)</Species>
- <Species Scientific_Name="Cygnus olor">Mute Swan. (I)</Species>
- <Species Scientific_Name="Cygnus buccinator">Trumpeter Swan.</Species>
- <Species Scientific_Name="Cygnus columbianus">Tundra Swan.</Species>
- <Species Scientific_Name="Cygnus cygnus">Whooper Swan.</Species>
- </SubFamily>
- <SubFamily Name="Tadorninae">
- <Species Scientific_Name="Sarkidiornis melanotos">Comb Duck.</Species>
- <Species Scientific_Name="Neochen jubata">Orinoco Goose. (A)</Species>
- </SubFamily>
- <SubFamily Name="Anatinae">
- <Species Scientific_Name="Cairina moschata">Muscovy Duck.</Species>
- <Species Scientific_Name="Aix sponsa">Wood Duck.</Species>
- <Species Scientific_Name="Anas strepera">Gadwall.</Species>
- <Species Scientific_Name="Anas falcata">Falcated Duck. (A)</Species>
- <Species Scientific_Name="Anas penelope">Eurasian Wigeon. (N)</Species>
- <Species Scientific_Name="Anas americana">American Wigeon.</Species>
- <Species Scientific_Name="Anas rubripes">American Black Duck.</Species>
- <Species Scientific_Name="Anas platyrhynchos">Mallard.</Species>
- <Species Scientific_Name="Anas fulvigula">Mottled Duck.</Species>
- <Species Scientific_Name="Anas wyvilliana">Hawaiian Duck. (H)</Species>
- <Species Scientific_Name="Anas laysanensis">Laysan Duck. (H)</Species>
- <Species Scientific_Name="Anas poecilorhyncha">Spot-billed Duck. (A)</Species>
- <Species Scientific_Name="Anas discors">Blue-winged Teal.</Species>
- <Species Scientific_Name="Anas cyanoptera">Cinnamon Teal.</Species>
- <Species Scientific_Name="Anas clypeata">Northern Shoveler.</Species>
- <Species Scientific_Name="Anas bahamensis">White-cheeked Pintail.</Species>
- <Species Scientific_Name="Anas acuta">Northern Pintail.</Species>
- <Species Scientific_Name="Anas querquedula">Garganey. (N)</Species>
- <Species Scientific_Name="Anas formosa">Baikal Teal. (A)</Species>
- <Species Scientific_Name="Anas crecca">Green-winged Teal.</Species>
- <Species Scientific_Name="Aythya valisineria">Canvasback.</Species>
- <Species Scientific_Name="Aythya americana">Redhead.</Species>
- <Species Scientific_Name="Aythya ferina">Common Pochard. (A)</Species>
- <Species Scientific_Name="Aythya collaris">Ring-necked Duck.</Species>
- <Species Scientific_Name="Aythya fuligula">Tufted Duck.</Species>
- <Species Scientific_Name="Aythya marila">Greater Scaup.</Species>
- <Species Scientific_Name="Aythya affinis">Lesser Scaup.</Species>
- <Species Scientific_Name="Polysticta stelleri">Steller's Eider.</Species>
- <Species Scientific_Name="Somateria fischeri">Spectacled Eider.</Species>
- <Species Scientific_Name="Somateria spectabilis">King Eider.</Species>
- <Species Scientific_Name="Somateria mollissima">Common Eider.</Species>
- <Species Scientific_Name="Histrionicus histrionicus">Harlequin Duck.</Species>
- <Species Scientific_Name="Camptorhynchus labradorius">Labrador Duck.</Species>
- <Species Scientific_Name="Melanitta perspicillata">Surf Scoter.</Species>
- <Species Scientific_Name="Melanitta fusca">White-winged Scoter.</Species>
- <Species Scientific_Name="Melanitta nigra">Black Scoter.</Species>
- <Species Scientific_Name="Clangula hyemalis">Oldsquaw.</Species>
- <Species Scientific_Name="Bucephala albeola">Bufflehead.</Species>
- <Species Scientific_Name="Bucephala clangula">Common Goldeneye.</Species>
- <Species Scientific_Name="Bucephala islandica">Barrow's Goldeneye.</Species>
- <Species Scientific_Name="Mergellus albellus">Smew. (N)</Species>
- <Species Scientific_Name="Lophodytes cucullatus">Hooded Merganser.</Species>
- <Species Scientific_Name="Mergus merganser">Common Merganser.</Species>
- <Species Scientific_Name="Mergus serrator">Red-breasted Merganser.</Species>
- <Species Scientific_Name="Nomonyx">Masked Duck.</Species>
- <Species Scientific_Name="Oxyura jamaicensis">Ruddy Duck.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-<Order Name="FALCONIFORMES">
- <Family Name="ACCIPITRIDAE">
- <SubFamily Name="Pandioninae">
- <Species Scientific_Name="Pandion haliaetus">Osprey.</Species>
- </SubFamily>
- <SubFamily Name="Accipitrinae">
- <Species Scientific_Name="Leptodon cayanensis">Gray-headed Kite.</Species>
- <Species Scientific_Name="Chondrohierax uncinatus">Hook-billed Kite.</Species>
- <Species Scientific_Name="Elanoides forficatus">Swallow-tailed Kite.</Species>
- <Species Scientific_Name="Gampsonyx swainsonii">Pearl Kite.</Species>
- <Species Scientific_Name="Elanus leucurus">White-tailed Kite.</Species>
- <Species Scientific_Name="Rostrhamus sociabilis">Snail Kite.</Species>
- <Species Scientific_Name="Rostrhamus hamatus">Slender-billed Kite.</Species>
- <Species Scientific_Name="Harpagus bidentatus">Double-toothed Kite.</Species>
- <Species Scientific_Name="Ictinia mississippiensis">Mississippi Kite.</Species>
- <Species Scientific_Name="Ictinia plumbea">Plumbeous Kite.</Species>
- <Species Scientific_Name="Haliaeetus leucocephalus">Bald Eagle.</Species>
- <Species Scientific_Name="Haliaeetus albicilla">White-tailed Eagle.</Species>
- <Species Scientific_Name="Haliaeetus pelagicus">Steller's Sea-Eagle. (A)</Species>
- <Species Scientific_Name="Busarellus nigricollis">Black-collared Hawk.</Species>
- <Species Scientific_Name="Circus cyaneus">Northern Harrier.</Species>
- <Species Scientific_Name="Accipiter soloensis">Gray Frog-Hawk. (H, A)</Species>
- <Species Scientific_Name="Accipiter superciliosus">Tiny Hawk.</Species>
- <Species Scientific_Name="Accipiter striatus">Sharp-shinned Hawk.</Species>
- <Species Scientific_Name="Accipiter cooperii">Cooper's Hawk.</Species>
- <Species Scientific_Name="Accipiter gundlachi">Gundlach's Hawk.</Species>
- <Species Scientific_Name="Accipiter bicolor">Bicolored Hawk.</Species>
- <Species Scientific_Name="Accipiter gentilis">Northern Goshawk.</Species>
- <Species Scientific_Name="Geranospiza caerulescens">Crane Hawk.</Species>
- <Species Scientific_Name="Leucopternis plumbea">Plumbeous Hawk.</Species>
- <Species Scientific_Name="Leucopternis princeps">Barred Hawk.</Species>
- <Species Scientific_Name="Leucopternis semiplumbea">Semiplumbeous Hawk.</Species>
- <Species Scientific_Name="Leucopternis albicollis">White Hawk.</Species>
- <Species Scientific_Name="Asturina nitida">Gray Hawk.</Species>
- <Species Scientific_Name="Buteogallus anthracinus">Common Black-Hawk.</Species>
- <Species Scientific_Name="Buteogallus subtilis">Mangrove Black-Hawk.</Species>
- <Species Scientific_Name="Buteogallus urubitinga">Great Black-Hawk.</Species>
- <Species Scientific_Name="Buteogallus meridionalis">Savanna Hawk.</Species>
- <Species Scientific_Name="Parabuteo unicinctus">Harris's Hawk.</Species>
- <Species Scientific_Name="Harpyhaliaetus solitarius">Solitary Eagle.</Species>
- <Species Scientific_Name="Buteo magnirostris">Roadside Hawk.</Species>
- <Species Scientific_Name="Buteo lineatus">Red-shouldered Hawk.</Species>
- <Species Scientific_Name="Buteo ridgwayi">Ridgway's Hawk.</Species>
- <Species Scientific_Name="Buteo platypterus">Broad-winged Hawk.</Species>
- <Species Scientific_Name="Buteo brachyurus">Short-tailed Hawk.</Species>
- <Species Scientific_Name="Buteo swainsoni">Swainson's Hawk.</Species>
- <Species Scientific_Name="Buteo albicaudatus">White-tailed Hawk.</Species>
- <Species Scientific_Name="Buteo albonotatus">Zone-tailed Hawk.</Species>
- <Species Scientific_Name="Buteo solitarius">Hawaiian Hawk. (H)</Species>
- <Species Scientific_Name="Buteo jamaicensis">Red-tailed Hawk.</Species>
- <Species Scientific_Name="Buteo regalis">Ferruginous Hawk.</Species>
- <Species Scientific_Name="Buteo lagopus">Rough-legged Hawk.</Species>
- <Species Scientific_Name="Morphnus guianensis">Crested Eagle.</Species>
- <Species Scientific_Name="Harpia harpyja">Harpy Eagle.</Species>
- <Species Scientific_Name="Aquila chrysaetos">Golden Eagle.</Species>
- <Species Scientific_Name="Spizastur melanoleucus">Black-and-white Hawk-Eagle.</Species>
- <Species Scientific_Name="Spizaetus tyrannus">Black Hawk-Eagle.</Species>
- <Species Scientific_Name="Spizaetus ornatus">Ornate Hawk-Eagle.</Species>
- </SubFamily>
- </Family>
- <Family Name="FALCONIDAE">
- <SubFamily Name="Micrasturinae">
- <Species Scientific_Name="Micrastur ruficollis">Barred Forest-Falcon.</Species>
- <Species Scientific_Name="Micrastur mirandollei">Slaty-backed Forest-Falcon.</Species>
- <Species Scientific_Name="Micrastur semitorquatus">Collared Forest-Falcon.</Species>
- </SubFamily>
- <SubFamily Name="Caracarinae">
- <Species Scientific_Name="Daptrius americanus">Red-throated Caracara.</Species>
- <Species Scientific_Name="Caracara plancus">Crested Caracara.</Species>
- <Species Scientific_Name="Milvago chimachima">Yellow-headed Caracara.</Species>
- </SubFamily>
- <SubFamily Name="Falconinae">
- <Species Scientific_Name="Herpetotheres cachinnans">Laughing Falcon.</Species>
- <Species Scientific_Name="Falco tinnunculus">Eurasian Kestrel. (A)</Species>
- <Species Scientific_Name="Falco sparverius">American Kestrel.</Species>
- <Species Scientific_Name="Falco columbarius">Merlin.</Species>
- <Species Scientific_Name="Falco subbuteo">Eurasian Hobby. (A)</Species>
- <Species Scientific_Name="Falco femoralis">Aplomado Falcon.</Species>
- <Species Scientific_Name="Falco rufigularis">Bat Falcon.</Species>
- <Species Scientific_Name="Falco deiroleucus">Orange-breasted Falcon.</Species>
- <Species Scientific_Name="Falco rusticolus">Gyrfalcon.</Species>
- <Species Scientific_Name="Falco peregrinus">Peregrine Falcon.</Species>
- <Species Scientific_Name="Falco mexicanus">Prairie Falcon.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-<Order Name="GALLIFORMES">
- <Family Name="CRACIDAE">
- <Species Scientific_Name="Ortalis vetula">Plain Chachalaca.</Species>
- <Species Scientific_Name="Ortalis cinereiceps">Gray-headed Chachalaca.</Species>
- <Species Scientific_Name="Ortalis ruficauda">Rufous-vented Chachalaca.</Species>
- <Species Scientific_Name="Ortalis wagleri">Rufous-bellied Chachalaca.</Species>
- <Species Scientific_Name="Ortalis poliocephala">West Mexican Chachalaca.</Species>
- <Species Scientific_Name="Ortalis leucogastra">White-bellied Chachalaca.</Species>
- <Species Scientific_Name="Penelope purpurascens">Crested Guan.</Species>
- <Species Scientific_Name="Chamaepetes unicolor">Black Guan.</Species>
- <Species Scientific_Name="Penelopina nigra">Highland Guan.</Species>
- <Species Scientific_Name="Oreophasis derbianus">Horned Guan.</Species>
- <Species Scientific_Name="Crax rubra">Great Curassow.</Species>
- </Family>
- <Family Name="PHASIANIDAE">
- <SubFamily Name="Phasianinae">
- <Species Scientific_Name="Alectoris chukar">Chukar. (I)</Species>
- <Species Scientific_Name="Francolinus pondicerianus">Gray Francolin. (H, I)</Species>
- <Species Scientific_Name="Francolinus francolinus">Black Francolin. (H, I)</Species>
- <Species Scientific_Name="Francolinus erckelii">Erckel's Francolin. (H, I)</Species>
- <Species Scientific_Name="Tetraogallus himalayensis">Himalayan Snowcock. (I)</Species>
- <Species Scientific_Name="Perdix perdix">Gray Partridge. (I)</Species>
- <Species Scientific_Name="Coturnix japonica">Japanese Quail. (H, I)</Species>
- <Species Scientific_Name="Gallus gallus">Red Junglefowl. (H, I)</Species>
- <Species Scientific_Name="Lophura leucomelanos">Kalij Pheasant. (H, I)</Species>
- <Species Scientific_Name="Phasianus colchicus">Ring-necked Pheasant. (I)</Species>
- <Species Scientific_Name="Pavo cristatus">Common Peafowl. (I)</Species>
- </SubFamily>
- <SubFamily Name="Tetraoninae">
- <Species Scientific_Name="Bonasa umbellus">Ruffed Grouse.</Species>
- <Species Scientific_Name="Centrocercus urophasianus">Sage Grouse.</Species>
- <Species Scientific_Name="Falcipennis canadensis">Spruce Grouse.</Species>
- <Species Scientific_Name="Lagopus lagopus">Willow Ptarmigan.</Species>
- <Species Scientific_Name="Lagopus mutus">Rock Ptarmigan.</Species>
- <Species Scientific_Name="Lagopus leucurus">White-tailed Ptarmigan.</Species>
- <Species Scientific_Name="Dendragapus obscurus">Blue Grouse.</Species>
- <Species Scientific_Name="Tympanuchus phasianellus">Sharp-tailed Grouse.</Species>
- <Species Scientific_Name="Tympanuchus cupido">Greater Prairie-Chicken.</Species>
- <Species Scientific_Name="Tympanuchus pallidicinctus">Lesser Prairie-Chicken.</Species>
- </SubFamily>
- <SubFamily Name="Meleagridinae">
- <Species Scientific_Name="Meleagris gallopavo">Wild Turkey.</Species>
- <Species Scientific_Name="Meleagris ocellata">Ocellated Turkey.</Species>
- </SubFamily>
- <SubFamily Name="Numidinae">
- <Species Scientific_Name="Numida meleagris ">Helmeted Guineafowl. (I)</Species>
- </SubFamily>
- </Family>
- <Family Name="ODONTOPHORIDAE">
- <Species Scientific_Name="Dendrortyx barbatus">Bearded Wood-Partridge.</Species>
- <Species Scientific_Name="Dendrortyx macroura">Long-tailed Wood-Partridge.</Species>
- <Species Scientific_Name="Dendrortyx leucophrys">Buffy-crowned Wood-Partridge.</Species>
- <Species Scientific_Name="Oreortyx pictus">Mountain Quail.</Species>
- <Species Scientific_Name="Callipepla squamata">Scaled Quail.</Species>
- <Species Scientific_Name="Callipepla douglasii">Elegant Quail.</Species>
- <Species Scientific_Name="Callipepla californica">California Quail.</Species>
- <Species Scientific_Name="Callipepla gambelii">Gambel's Quail.</Species>
- <Species Scientific_Name="Philortyx fasciatus">Banded Quail.</Species>
- <Species Scientific_Name="Colinus virginianus">Northern Bobwhite.</Species>
- <Species Scientific_Name="Colinus nigrogularis">Black-throated Bobwhite.</Species>
- <Species Scientific_Name="Colinus cristatus">Crested Bobwhite.</Species>
- <Species Scientific_Name="Odontophorus gujanensis">Marbled Wood-Quail.</Species>
- <Species Scientific_Name="Odontophorus melanotis">Black-eared Wood-Quail.</Species>
- <Species Scientific_Name="Odontophorus dialeucos">Tacarcuna Wood-Quail.</Species>
- <Species Scientific_Name="Odontophorus leucolaemus">Black-breasted Wood-Quail.</Species>
- <Species Scientific_Name="Odontophorus guttatus">Spotted Wood-Quail.</Species>
- <Species Scientific_Name="Dactylortyx thoracicus">Singing Quail.</Species>
- <Species Scientific_Name="Cyrtonyx montezumae">Montezuma Quail.</Species>
- <Species Scientific_Name="Cyrtonyx ocellatus">Ocellated Quail.</Species>
- <Species Scientific_Name="Rhynchortyx cinctus">Tawny-faced Quail.</Species>
- </Family>
- </Order>
-
-
-<Order Name="GRUIFORMES">
- <Family Name="RALLIDAE">
- <Species Scientific_Name="Coturnicops noveboracensis">Yellow Rail.</Species>
- <Species Scientific_Name="Micropygia schomburgkii">Ocellated Crake. (A)</Species>
- <Species Scientific_Name="Laterallus ruber">Ruddy Crake.</Species>
- <Species Scientific_Name="Laterallus albigularis">White-throated Crake.</Species>
- <Species Scientific_Name="Laterallus exilis">Gray-breasted Crake.</Species>
- <Species Scientific_Name="Laterallus jamaicensis">Black Rail.</Species>
- <Species Scientific_Name="Crex crex">Corn Crake. (A)</Species>
- <Species Scientific_Name="Rallus longirostris">Clapper Rail.</Species>
- <Species Scientific_Name="Rallus elegans">King Rail.</Species>
- <Species Scientific_Name="Rallus limicola">Virginia Rail.</Species>
- <Species Scientific_Name="Aramides axillaris">Rufous-necked Wood-Rail.</Species>
- <Species Scientific_Name="Aramides cajanea">Gray-necked Wood-Rail.</Species>
- <Species Scientific_Name="Amaurolimnas concolor">Uniform Crake.</Species>
- <Species Scientific_Name="">Laysan Rail. (H)</Species>
- <Species Scientific_Name="">Spotted Crake. (A)</Species>
- <Species Scientific_Name="">Sora.</Species>
- <Species Scientific_Name="">Hawaiian Rail. (H)</Species>
- <Species Scientific_Name="Porzana sandwichensis">Hawaiian Rail. (H)</Species>
- <Species Scientific_Name="Porzana flaviventer">Yellow-breasted Crake.</Species>
- <Species Scientific_Name="Neocrex colombianus">Colombian Crake.</Species>
- <Species Scientific_Name="Neocrex erythrops">Paint-billed Crake.</Species>
- <Species Scientific_Name="Cyanolimnas cerverai">Zapata Rail.</Species>
- <Species Scientific_Name="Pardirallus maculatus">Spotted Rail.</Species>
- <Species Scientific_Name="Porphyrula martinica">Purple Gallinule.</Species>
- <Species Scientific_Name="Porphyrula flavirostris">Azure Gallinule. (A)</Species>
- <Species Scientific_Name="Gallinula chloropus">Common Moorhen.</Species>
- <Species Scientific_Name="Fulica atra">Eurasian Coot. (A)</Species>
- <Species Scientific_Name="Fulica alai">Hawaiian Coot. (H)</Species>
- <Species Scientific_Name="Fulica americana">American Coot.</Species>
- <Species Scientific_Name="Fulica caribaea">Caribbean Coot.</Species>
- </Family>
- <Family Name="HELIORNITHIDAE">
- <Species Scientific_Name="Heliornis fulica">Sungrebe.</Species>
- </Family>
- <Family Name="EURYPYGIDAE">
- <Species Scientific_Name="Eurypyga helias">Sunbittern.</Species>
- </Family>
- <Family Name="ARAMIDAE">
- <Species Scientific_Name="Aramus guarauna">Limpkin.</Species>
- </Family>
- <Family Name="GRUIDAE">
- <Species Scientific_Name="">Sandhill Crane.</Species>
- <Species Scientific_Name="">Common Crane. (A)</Species>
- <Species Scientific_Name="">Whooping Crane.</Species>
- <Species Scientific_Name=""/>
- </Family>
- </Order>
-
-
-<Order Name="CHARADRIIFORMES">
- <Family Name="BURHINIDAE">
- <Species Scientific_Name="Burhinus bistriatus">Double-striped Thick-knee.</Species>
- </Family>
- <Family Name="CHARADRIIDAE">
- <SubFamily Name="Vanellinae">
- <Species Scientific_Name="Vanellus vanellus">Northern Lapwing. (A)</Species>
- <Species Scientific_Name="Vanellus chilensis">Southern Lapwing. (N)</Species>
- </SubFamily>
- <SubFamily Name="Charadriinae">
- <Species Scientific_Name="Pluvialis squatarola">Black-bellied Plover.</Species>
- <Species Scientific_Name="Pluvialis apricaria">European Golden-Plover. (A)</Species>
- <Species Scientific_Name="Pluvialis dominica">American Golden-Plover.</Species>
- <Species Scientific_Name="Pluvialis fulva">Pacific Golden-Plover.</Species>
- <Species Scientific_Name="Charadrius mongolus">Mongolian Plover. (N)</Species>
- <Species Scientific_Name="Charadrius collaris">Collared Plover.</Species>
- <Species Scientific_Name="Charadrius alexandrinus">Snowy Plover.</Species>
- <Species Scientific_Name="Charadrius wilsonia">Wilson's Plover.</Species>
- <Species Scientific_Name="Charadrius hiaticula">Common Ringed Plover.</Species>
- <Species Scientific_Name="Charadrius semipalmatus">Semipalmated Plover.</Species>
- <Species Scientific_Name="Charadrius melodus">Piping Plover.</Species>
- <Species Scientific_Name="Charadrius dubius">Little Ringed Plover. (A)</Species>
- <Species Scientific_Name="Charadrius vociferus">Killdeer.</Species>
- <Species Scientific_Name="Charadrius montanus">Mountain Plover.</Species>
- <Species Scientific_Name="Charadrius morinellus">Eurasian Dotterel.</Species>
- </SubFamily>
- </Family>
- <Family Name="HAEMATOPODIDAE">
- <Species Scientific_Name="Haematopus ostralegus">Eurasian Oystercatcher. (A)</Species>
- <Species Scientific_Name="Haematopus palliatus">American Oystercatcher.</Species>
- <Species Scientific_Name="Haematopus bachmani">Black Oystercatcher.</Species>
- </Family>
- <Family Name="RECURVIROSTRIDAE">
- <Species Scientific_Name="Himantopus himantopus">Black-winged Stilt. (A)</Species>
- <Species Scientific_Name="Himantopus mexicanus">Black-necked Stilt.</Species>
- <Species Scientific_Name="Recurvirostra americana">American Avocet.</Species>
- </Family>
- <Family Name="JACANIDAE">
- <Species Scientific_Name="Jacana spinosa">Northern Jacana.</Species>
- <Species Scientific_Name="Jacana jacana">Wattled Jacana.</Species>
- </Family>
- <Family Name="SCOLOPACIDAE">
- <SubFamily Name="Scolopacinae">
- <Species Scientific_Name="Tringa nebularia">Common Greenshank. (N)</Species>
- <Species Scientific_Name="Tringa melanoleuca">Greater Yellowlegs.</Species>
- <Species Scientific_Name="Tringa flavipes">Lesser Yellowlegs.</Species>
- <Species Scientific_Name="Tringa stagnatilis">Marsh Sandpiper. (A)</Species>
- <Species Scientific_Name="Tringa totanus">Common Redshank. (A)</Species>
- <Species Scientific_Name="Tringa erythropus">Spotted Redshank. (N)</Species>
- <Species Scientific_Name="Tringa glareola">Wood Sandpiper.</Species>
- <Species Scientific_Name="Tringa ochropus">Green Sandpiper. (A)</Species>
- <Species Scientific_Name="Tringa solitaria">Solitary Sandpiper.</Species>
- <Species Scientific_Name="Catoptrophorus semipalmatus">Willet.</Species>
- <Species Scientific_Name="Heteroscelus incanus">Wandering Tattler.</Species>
- <Species Scientific_Name="Heteroscelus brevipes">Gray-tailed Tattler. (N)</Species>
- <Species Scientific_Name="Actitis hypoleucos">Common Sandpiper. (N)</Species>
- <Species Scientific_Name="Actitis macularia">Spotted Sandpiper.</Species>
- <Species Scientific_Name="Xenus cinereus">Terek Sandpiper. (N)</Species>
- <Species Scientific_Name="Bartramia longicauda">Upland Sandpiper.</Species>
- <Species Scientific_Name="Numenius minutus">Little Curlew. (A)</Species>
- <Species Scientific_Name="Numenius borealis">Eskimo Curlew.</Species>
- <Species Scientific_Name="Numenius phaeopus">Whimbrel.</Species>
- <Species Scientific_Name="Numenius tahitiensis">Bristle-thighed Curlew.</Species>
- <Species Scientific_Name="Numenius madagascariensis">Far Eastern Curlew. (N)</Species>
- <Species Scientific_Name="Numenius tenuirostris">Slender-billed Curlew. (A)</Species>
- <Species Scientific_Name="Numenius arquata">Eurasian Curlew. (A)</Species>
- <Species Scientific_Name="Numenius americanus">Long-billed Curlew.</Species>
- <Species Scientific_Name="Limosa limosa">Black-tailed Godwit. (N)</Species>
- <Species Scientific_Name="Limosa haemastica">Hudsonian Godwit.</Species>
- <Species Scientific_Name="Limosa lapponica">Bar-tailed Godwit.</Species>
- <Species Scientific_Name="Limosa fedoa">Marbled Godwit.</Species>
- <Species Scientific_Name="Arenaria interpres">Ruddy Turnstone.</Species>
- <Species Scientific_Name="Arenaria melanocephala">Black Turnstone.</Species>
- <Species Scientific_Name="Aphriza virgata">Surfbird.</Species>
- <Species Scientific_Name="Calidris tenuirostris">Great Knot. (A)</Species>
- <Species Scientific_Name="Calidris canutus">Red Knot.</Species>
- <Species Scientific_Name="Calidris alba">Sanderling.</Species>
- <Species Scientific_Name="Calidris pusilla">Semipalmated Sandpiper.</Species>
- <Species Scientific_Name="Calidris mauri">Western Sandpiper.</Species>
- <Species Scientific_Name="Calidris ruficollis">Red-necked Stint.</Species>
- <Species Scientific_Name="Calidris minuta">Little Stint. (N)</Species>
- <Species Scientific_Name="Calidris temminckii">Temminck's Stint. (A)</Species>
- <Species Scientific_Name="Calidris subminuta">Long-toed Stint. (N)</Species>
- <Species Scientific_Name="Calidris minutilla">Least Sandpiper.</Species>
- <Species Scientific_Name="Calidris fuscicollis">White-rumped Sandpiper.</Species>
- <Species Scientific_Name="Calidris bairdii">Baird's Sandpiper.</Species>
- <Species Scientific_Name="Calidris melanotos">Pectoral Sandpiper.</Species>
- <Species Scientific_Name="Calidris acuminata">Sharp-tailed Sandpiper. (N)</Species>
- <Species Scientific_Name="Calidris maritima">Purple Sandpiper.</Species>
- <Species Scientific_Name="Calidris ptilocnemis">Rock Sandpiper.</Species>
- <Species Scientific_Name="Calidris alpina">Dunlin.</Species>
- <Species Scientific_Name="Calidris ferruginea">Curlew Sandpiper.</Species>
- <Species Scientific_Name="Calidris himantopus">Stilt Sandpiper.</Species>
- <Species Scientific_Name="Eurynorhynchus pygmeus">Spoonbill Sandpiper. (A)</Species>
- <Species Scientific_Name="Limicola falcinellus">Broad-billed Sandpiper. (A)</Species>
- <Species Scientific_Name="Tryngites subruficollis">Buff-breasted Sandpiper.</Species>
- <Species Scientific_Name="Philomachus pugnax">Ruff.</Species>
- <Species Scientific_Name="Limnodromus griseus">Short-billed Dowitcher.</Species>
- <Species Scientific_Name="Limnodromus scolopaceus">Long-billed Dowitcher.</Species>
- <Species Scientific_Name="Lymnocryptes minimus">Jack Snipe. (A)</Species>
- <Species Scientific_Name="Gallinago gallinago">Common Snipe.</Species>
- <Species Scientific_Name="Gallinago stenura">Pin-tailed Snipe. (A)</Species>
- <Species Scientific_Name="Scolopax rusticola">Eurasian Woodcock. (A)</Species>
- <Species Scientific_Name="Scolopax minor">American Woodcock.</Species>
- </SubFamily>
- <SubFamily Name="Phalaropodinae">
- <Species Scientific_Name="Phalaropus tricolor">Wilson's Phalarope.</Species>
- <Species Scientific_Name="Phalaropus lobatus">Red-necked Phalarope.</Species>
- <Species Scientific_Name="Phalaropus fulicaria">Red Phalarope.</Species>
- </SubFamily>
- </Family>
- <Family Name="GLAREOLIDAE">
- <Species Scientific_Name="">Oriental Pratincole. (A)</Species>
- <Species Scientific_Name=""/>
- </Family>
- <Family Name="LARIDAE">
- <SubFamily Name="Stercorariinae">
- <Species Scientific_Name="Catharacta skua">Great Skua. (N)</Species>
- <Species Scientific_Name="Catharacta maccormicki">South Polar Skua. (N)</Species>
- <Species Scientific_Name="Stercorarius pomarinus">Pomarine Jaeger.</Species>
- <Species Scientific_Name="Stercorarius parasiticus">Parasitic Jaeger.</Species>
- <Species Scientific_Name="Stercorarius longicaudus">Long-tailed Jaeger.</Species>
- </SubFamily>
- <SubFamily Name="Larinae">
- <Species Scientific_Name="Larus atricilla">Laughing Gull.</Species>
- <Species Scientific_Name="Larus pipixcan">Franklin's Gull.</Species>
- <Species Scientific_Name="Larus minutus">Little Gull.</Species>
- <Species Scientific_Name="Larus ridibundus">Black-headed Gull.</Species>
- <Species Scientific_Name="Larus philadelphia">Bonaparte's Gull.</Species>
- <Species Scientific_Name="Larus heermanni">Heermann's Gull.</Species>
- <Species Scientific_Name="Larus modestus">Gray Gull. (A)</Species>
- <Species Scientific_Name="Larus belcheri">Band-tailed Gull. (A)</Species>
- <Species Scientific_Name="Larus crassirostris">Black-tailed Gull. (A)</Species>
- <Species Scientific_Name="Larus canus">Mew Gull.</Species>
- <Species Scientific_Name="Larus delawarensis">Ring-billed Gull.</Species>
- <Species Scientific_Name="Larus californicus">California Gull.</Species>
- <Species Scientific_Name="Larus argentatus">Herring Gull.</Species>
- <Species Scientific_Name="Larus cachinnans">Yellow-legged Gull. (A)</Species>
- <Species Scientific_Name="Larus thayeri">Thayer's Gull.</Species>
- <Species Scientific_Name="Larus glaucoides">Iceland Gull.</Species>
- <Species Scientific_Name="Larus fuscus">Lesser Black-backed Gull. (N)</Species>
- <Species Scientific_Name="Larus schistisagus">Slaty-backed Gull.</Species>
- <Species Scientific_Name="Larus livens">Yellow-footed Gull.</Species>
- <Species Scientific_Name="Larus occidentalis">Western Gull.</Species>
- <Species Scientific_Name="Larus glaucescens">Glaucous-winged Gull.</Species>
- <Species Scientific_Name="Larus hyperboreus">Glaucous Gull.</Species>
- <Species Scientific_Name="Larus marinus">Great Black-backed Gull.</Species>
- <Species Scientific_Name="Xema sabini">Sabine's Gull.</Species>
- <Species Scientific_Name="Rissa tridactyla">Black-legged Kittiwake.</Species>
- <Species Scientific_Name="Rissa brevirostris">Red-legged Kittiwake.</Species>
- <Species Scientific_Name="Rhodostethia rosea">Ross's Gull.</Species>
- <Species Scientific_Name="Pagophila eburnea">Ivory Gull.</Species>
- </SubFamily>
- <SubFamily Name="Sterninae">
- <Species Scientific_Name="Sterna nilotica">Gull-billed Tern.</Species>
- <Species Scientific_Name="Sterna caspia">Caspian Tern.</Species>
- <Species Scientific_Name="Sterna maxima">Royal Tern.</Species>
- <Species Scientific_Name="Sterna elegans">Elegant Tern.</Species>
- <Species Scientific_Name="Sterna bergii">Great Crested Tern. (H, A)</Species>
- <Species Scientific_Name="Sterna sandvicensis">Sandwich Tern.</Species>
- <Species Scientific_Name="Sterna dougallii">Roseate Tern.</Species>
- <Species Scientific_Name="Sterna hirundo">Common Tern.</Species>
- <Species Scientific_Name="Sterna paradisaea">Arctic Tern.</Species>
- <Species Scientific_Name="Sterna forsteri">Forster's Tern.</Species>
- <Species Scientific_Name="Sterna albifrons">Little Tern. (H, A)</Species>
- <Species Scientific_Name="Sterna antillarum">Least Tern.</Species>
- <Species Scientific_Name="Sterna superciliaris">Yellow-billed Tern. (A)</Species>
- <Species Scientific_Name="Sterna aleutica">Aleutian Tern.</Species>
- <Species Scientific_Name="Sterna lunata">Gray-backed Tern. (H)</Species>
- <Species Scientific_Name="Sterna anaethetus">Bridled Tern.</Species>
- <Species Scientific_Name="Sterna fuscata">Sooty Tern.</Species>
- <Species Scientific_Name="Phaetusa simplex">Large-billed Tern. (A)</Species>
- <Species Scientific_Name="Chlidonias leucopterus">White-winged Tern. (A)</Species>
- <Species Scientific_Name="Chlidonias hybridus">Whiskered Tern. (A)</Species>
- <Species Scientific_Name="Chlidonias niger">Black Tern.</Species>
- <Species Scientific_Name="Larosterna inca">Inca Tern. (A)</Species>
- <Species Scientific_Name="Anous stolidus">Brown Noddy.</Species>
- <Species Scientific_Name="Anous minutus">Black Noddy.</Species>
- <Species Scientific_Name="Procelsterna cerulea">Blue-gray Noddy. (H)</Species>
- <Species Scientific_Name="Gygis alba">Common White-Tern. (H)</Species>
- </SubFamily>
- <SubFamily Name="Rynchopinae">
- <Species Scientific_Name="Rynchops niger">Black Skimmer.</Species>
- </SubFamily>
- </Family>
- <Family Name="ALCIDAE">
- <Species Scientific_Name="Alle alle">Dovekie.</Species>
- <Species Scientific_Name="Uria aalge">Common Murre.</Species>
- <Species Scientific_Name="Uria lomvia">Thick-billed Murre.</Species>
- <Species Scientific_Name="Alca torda">Razorbill.</Species>
- <Species Scientific_Name="">Great Auk.</Species>
- <Species Scientific_Name="">Black Guillemot.</Species>
- <Species Scientific_Name="">Pigeon Guillemot.</Species>
- <Species Scientific_Name="">Long-billed Murrelet. (A)</Species>
- <Species Scientific_Name="">Marbled Murrelet.</Species>
- <Species Scientific_Name="">Kittlitz's Murrelet.</Species>
- <Species Scientific_Name="">Xantus's Murrelet.</Species>
- <Species Scientific_Name="">Craveri's Murrelet.</Species>
- <Species Scientific_Name="">Ancient Murrelet.</Species>
- <Species Scientific_Name="">Cassin's Auklet.</Species>
- <Species Scientific_Name="">Parakeet Auklet.</Species>
- <Species Scientific_Name="">Least Auklet.</Species>
- <Species Scientific_Name="">Whiskered Auklet.</Species>
- <Species Scientific_Name="">Crested Auklet.</Species>
- <Species Scientific_Name="">Rhinoceros Auklet.</Species>
- <Species Scientific_Name="">Atlantic Puffin.</Species>
- <Species Scientific_Name="">Horned Puffin.</Species>
- <Species Scientific_Name="">Tufted Puffin.</Species>
- <Species Scientific_Name=""/>
- </Family>
- <Family Name="PTEROCLIDIDAE">
- <Species Scientific_Name="Pterocles exustus">Chestnut-bellied Sandgrouse. (H, I)</Species>
- </Family>
- </Order>
-
-
-<Order Name="COLUMBIFORMES">
- <Family Name="COLUMBIDAE">
- <Species Scientific_Name="Columba livia">Rock Dove. (I)</Species>
- <Species Scientific_Name="Columba cayennensis">Pale-vented Pigeon.</Species>
- <Species Scientific_Name="Columba speciosa">Scaled Pigeon.</Species>
- <Species Scientific_Name="Columba squamosa">Scaly-naped Pigeon.</Species>
- <Species Scientific_Name="Columba leucocephala">White-crowned Pigeon.</Species>
- <Species Scientific_Name="Columba flavirostris">Red-billed Pigeon.</Species>
- <Species Scientific_Name="Columba inornata">Plain Pigeon.</Species>
- <Species Scientific_Name="Columba fasciata">Band-tailed Pigeon.</Species>
- <Species Scientific_Name="Columba caribaea">Ring-tailed Pigeon.</Species>
- <Species Scientific_Name="Columba subvinacea">Ruddy Pigeon.</Species>
- <Species Scientific_Name="Columba nigrirostris">Short-billed Pigeon.</Species>
- <Species Scientific_Name="Streptopelia orientalis">Oriental Turtle-Dove. (A)</Species>
- <Species Scientific_Name="Streptopelia risoria">Ringed Turtle-Dove. (I)</Species>
- <Species Scientific_Name="Streptopelia turtur">European Turtle-Dove. (A)</Species>
- <Species Scientific_Name="Streptopelia decaocto">Eurasian Collared-Dove. (I)</Species>
- <Species Scientific_Name="Streptopelia chinensis">Spotted Dove. (I)</Species>
- <Species Scientific_Name="Geopelia striata">Zebra Dove. (H, I)</Species>
- <Species Scientific_Name="Zenaida asiatica">White-winged Dove.</Species>
- <Species Scientific_Name="Zenaida aurita">Zenaida Dove.</Species>
- <Species Scientific_Name="Zenaida auriculata">Eared Dove.</Species>
- <Species Scientific_Name="Zenaida macroura">Mourning Dove.</Species>
- <Species Scientific_Name="Zenaida graysoni">Socorro Dove.</Species>
- <Species Scientific_Name="">Passenger Pigeon.</Species>
- <Species Scientific_Name="">Inca Dove.</Species>
- <Species Scientific_Name="">Common Ground-Dove.</Species>
- <Species Scientific_Name="">Plain-breasted Ground-Dove.</Species>
- <Species Scientific_Name="">Ruddy Ground-Dove.</Species>
- <Species Scientific_Name="">Blue Ground-Dove.</Species>
- <Species Scientific_Name="">Maroon-chested Ground-Dove.</Species>
- <Species Scientific_Name="">White-tipped Dove.</Species>
- <Species Scientific_Name="">Gray-fronted Dove.</Species>
- <Species Scientific_Name="">Grenada Dove.</Species>
- <Species Scientific_Name="">Caribbean Dove.</Species>
- <Species Scientific_Name="">Gray-chested Dove.</Species>
- <Species Scientific_Name="">Olive-backed Quail-Dove.</Species>
- <Species Scientific_Name="">Key West Quail-Dove.</Species>
- <Species Scientific_Name="">Bridled Quail-Dove.</Species>
- <Species Scientific_Name="">White-faced Quail-Dove.</Species>
- <Species Scientific_Name="">Chiriqui Quail-Dove.</Species>
- <Species Scientific_Name="">Tuxtla Quail-Dove.</Species>
- <Species Scientific_Name="">Purplish-backed Quail-Dove.</Species>
- <Species Scientific_Name="">Buff-fronted Quail-Dove.</Species>
- <Species Scientific_Name="">Russet-crowned Quail-Dove.</Species>
- <Species Scientific_Name="">Gray-headed Quail-Dove.</Species>
- <Species Scientific_Name="">Crested Quail-Dove.</Species>
- <Species Scientific_Name="">Violaceous Quail-Dove.</Species>
- <Species Scientific_Name="">Ruddy Quail-Dove.</Species>
- <Species Scientific_Name="">Blue-headed Quail-Dove.</Species>
- <Species Scientific_Name=""/>
- </Family>
- </Order>
-
-
-<Order Name="PSITTACIFORMES">
- <Family Name="PSITTACIDAE">
- <SubFamily Name="Platycercinae">
- <Species Scientific_Name="Melopsittacus undulatus">Budgerigar. (I)</Species>
- </SubFamily>
- <SubFamily Name="Psittacinae">
- <Species Scientific_Name="Psittacula krameri">Rose-ringed Parakeet. (I)</Species>
- </SubFamily>
- <SubFamily Name="Arinae">
- <Species Scientific_Name="Pyrrhura picta">Painted Parakeet.</Species>
- <Species Scientific_Name="Pyrrhura hoffmanni">Sulphur-winged Parakeet.</Species>
- <Species Scientific_Name="Myiopsitta monachus">Monk Parakeet. (I)</Species>
- <Species Scientific_Name="Conuropsis carolinensis">Carolina Parakeet.</Species>
- <Species Scientific_Name="Aratinga holochlora">Green Parakeet.</Species>
- <Species Scientific_Name="Aratinga strenua">Pacific Parakeet.</Species>
- <Species Scientific_Name="Aratinga finschi">Crimson-fronted Parakeet.</Species>
- <Species Scientific_Name="Aratinga chloroptera">Hispaniolan Parakeet.</Species>
- <Species Scientific_Name="Aratinga euops">Cuban Parakeet.</Species>
- <Species Scientific_Name="Aratinga nana">Olive-throated Parakeet.</Species>
- <Species Scientific_Name="Aratinga canicularis">Orange-fronted Parakeet.</Species>
- <Species Scientific_Name="Aratinga pertinax">Brown-throated Parakeet.</Species>
- <Species Scientific_Name="Ara severa">Chestnut-fronted Macaw.</Species>
- <Species Scientific_Name="Ara militaris">Military Macaw.</Species>
- <Species Scientific_Name="Ara ambigua">Great Green Macaw.</Species>
- <Species Scientific_Name="Ara chloropterus">Red-and-green Macaw.</Species>
- <Species Scientific_Name="Ara macao">Scarlet Macaw.</Species>
- <Species Scientific_Name="Ara tricolor">Cuban Macaw.</Species>
- <Species Scientific_Name="Ara ararauna">Blue-and-yellow Macaw.</Species>
- <Species Scientific_Name="Rhynchopsitta pachyrhyncha">Thick-billed Parrot.</Species>
- <Species Scientific_Name="Rhynchopsitta terrisi">Maroon-fronted Parrot.</Species>
- <Species Scientific_Name="Bolborhynchus lineola">Barred Parakeet.</Species>
- <Species Scientific_Name="Forpus passerinus">Green-rumped Parrotlet.</Species>
- <Species Scientific_Name="Forpus cyanopygius">Mexican Parrotlet.</Species>
- <Species Scientific_Name="Forpus conspicillatus">Spectacled Parrotlet.</Species>
- <Species Scientific_Name="Brotogeris jugularis">Orange-chinned Parakeet.</Species>
- <Species Scientific_Name="Brotogeris versicolurus">White-winged Parakeet. (I)</Species>
- <Species Scientific_Name="Touit costaricensis">Red-fronted Parrotlet.</Species>
- <Species Scientific_Name="Touit dilectissima">Blue-fronted Parrotlet.</Species>
- <Species Scientific_Name="Pionopsitta pyrilia">Saffron-headed Parrot.</Species>
- <Species Scientific_Name="Pionopsitta haematotis">Brown-hooded Parrot.</Species>
- <Species Scientific_Name="Pionus menstruus">Blue-headed Parrot.</Species>
- <Species Scientific_Name="Pionus senilis">White-crowned Parrot.</Species>
- <Species Scientific_Name="Amazona albifrons">White-fronted Parrot.</Species>
- <Species Scientific_Name="Amazona xantholora">Yellow-lored Parrot.</Species>
- <Species Scientific_Name="Amazona leucocephala">Cuban Parrot.</Species>
- <Species Scientific_Name="Amazona collaria">Yellow-billed Parrot.</Species>
- <Species Scientific_Name="Amazona ventralis">Hispaniolan Parrot.</Species>
- <Species Scientific_Name="Amazona vittata">Puerto Rican Parrot.</Species>
- <Species Scientific_Name="Amazona agilis">Black-billed Parrot.</Species>
- <Species Scientific_Name="Amazona viridigenalis">Red-crowned Parrot.</Species>
- <Species Scientific_Name="Amazona finschi">Lilac-crowned Parrot.</Species>
- <Species Scientific_Name="Amazona autumnalis">Red-lored Parrot.</Species>
- <Species Scientific_Name="Amazona farinosa">Mealy Parrot.</Species>
- <Species Scientific_Name="Amazona oratrix">Yellow-headed Parrot.</Species>
- <Species Scientific_Name="Amazona auropalliata">Yellow-naped Parrot.</Species>
- <Species Scientific_Name="Amazona ochrocephala">Yellow-crowned Parrot.</Species>
- <Species Scientific_Name="Amazona arausiaca">Red-necked Parrot.</Species>
- <Species Scientific_Name="Amazona versicolor">St. Lucia Parrot.</Species>
- <Species Scientific_Name="Amazona guildingii">St. Vincent Parrot.</Species>
- <Species Scientific_Name="Amazona imperialis">Imperial Parrot.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-<Order Name="CUCULIFORMES">
- <Family Name="CUCULIDAE">
- <SubFamily Name="Cuculinae">
- <Species Scientific_Name="Cuculus canorus">Common Cuckoo. (A)</Species>
- <Species Scientific_Name="Cuculus saturatus">Oriental Cuckoo. (A)</Species>
- </SubFamily>
- <SubFamily Name="Coccyzinae">
- <Species Scientific_Name="Coccyzus erythropthalmus">Black-billed Cuckoo.</Species>
- <Species Scientific_Name="Coccyzus americanus">Yellow-billed Cuckoo.</Species>
- <Species Scientific_Name="Coccyzus euleri ">Pearly-breasted Cuckoo. (A)</Species>
- <Species Scientific_Name="Coccyzus minor">Mangrove Cuckoo.</Species>
- <Species Scientific_Name="Coccyzus ferrugineus">Cocos Cuckoo.</Species>
- <Species Scientific_Name="Coccyzus melacoryphus">Dark-billed Cuckoo. (A)</Species>
- <Species Scientific_Name="Saurothera merlini">Great Lizard-Cuckoo.</Species>
- <Species Scientific_Name="Saurothera vetula">Jamaican Lizard-Cuckoo.</Species>
- <Species Scientific_Name="Saurothera longirostris">Hispaniolan Lizard-Cuckoo.</Species>
- <Species Scientific_Name="Saurothera vieilloti">Puerto Rican Lizard-Cuckoo.</Species>
- <Species Scientific_Name="Hyetornis rufigularis">Bay-breasted Cuckoo.</Species>
- <Species Scientific_Name="Hyetornis pluvialis">Chestnut-bellied Cuckoo.</Species>
- <Species Scientific_Name="Piaya cayana">Squirrel Cuckoo.</Species>
- <Species Scientific_Name="Piaya minuta">Little Cuckoo.</Species>
- </SubFamily>
- <SubFamily Name="Neomorphinae">
- <Species Scientific_Name="Tapera naevia">Striped Cuckoo.</Species>
- <Species Scientific_Name="Dromococcyx phasianellus">Pheasant Cuckoo.</Species>
- <Species Scientific_Name="Morococcyx erythropygus">Lesser Ground-Cuckoo.</Species>
- <Species Scientific_Name="Geococcyx velox">Lesser Roadrunner.</Species>
- <Species Scientific_Name="Geococcyx californianus">Greater Roadrunner.</Species>
- <Species Scientific_Name="Neomorphus geoffroyi">Rufous-vented Ground-Cuckoo.</Species>
- </SubFamily>
- <SubFamily Name="Crotophaginae">
- <Species Scientific_Name="Crotophaga major">Greater Ani.</Species>
- <Species Scientific_Name="Crotophaga ani">Smooth-billed Ani.</Species>
- <Species Scientific_Name="Crotophaga sulcirostris">Groove-billed Ani.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-<Order Name="STRIGIFORMES">
- <Family Name="TYTONIDAE">
- <Species Scientific_Name="Tyto alba">Barn Owl.</Species>
- <Species Scientific_Name="Tyto glaucops">Ashy-faced Owl.</Species>
- </Family>
- <Family Name="STRIGIDAE">
- <Species Scientific_Name="Otus flammeolus">Flammulated Owl.</Species>
- <Species Scientific_Name="Otus sunia">Oriental Scops-Owl. (A)</Species>
- <Species Scientific_Name="Otus kennicottii">Western Screech-Owl.</Species>
- <Species Scientific_Name="Otus asio">Eastern Screech-Owl.</Species>
- <Species Scientific_Name="Otus seductus">Balsas Screech-Owl.</Species>
- <Species Scientific_Name="Otus cooperi">Pacific Screech-Owl.</Species>
- <Species Scientific_Name="Otus trichopsis">Whiskered Screech-Owl.</Species>
- <Species Scientific_Name="Otus choliba">Tropical Screech-Owl.</Species>
- <Species Scientific_Name="Otus barbarus">Bearded Screech-Owl.</Species>
- <Species Scientific_Name="Otus guatemalae">Vermiculated Screech-Owl.</Species>
- <Species Scientific_Name="Otus clarkii">Bare-shanked Screech-Owl.</Species>
- <Species Scientific_Name="Otus nudipes">Puerto Rican Screech-Owl.</Species>
- <Species Scientific_Name="Otus lawrencii">Cuban Screech-Owl.</Species>
- <Species Scientific_Name="Lophostrix cristata">Crested Owl.</Species>
- <Species Scientific_Name="Pulsatrix perspicillata">Spectacled Owl.</Species>
- <Species Scientific_Name="Bubo virginianus">Great Horned Owl.</Species>
- <Species Scientific_Name="Nyctea scandiaca">Snowy Owl.</Species>
- <Species Scientific_Name="Surnia ulula">Northern Hawk Owl.</Species>
- <Species Scientific_Name="Glaucidium gnoma">Northern Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium jardinii">Andean Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium griseiceps">Central American Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium sanchezi">Tamaulipas Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium palmarum">Colima Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium brasilianum">Ferruginous Pygmy-Owl.</Species>
- <Species Scientific_Name="Glaucidium siju">Cuban Pygmy-Owl.</Species>
- <Species Scientific_Name="Micrathene whitneyi">Elf Owl.</Species>
- <Species Scientific_Name="Athene cunicularia">Burrowing Owl.</Species>
- <Species Scientific_Name="Ciccaba virgata">Mottled Owl.</Species>
- <Species Scientific_Name="Ciccaba nigrolineata">Black-and-white Owl.</Species>
- <Species Scientific_Name="Strix occidentalis">Spotted Owl.</Species>
- <Species Scientific_Name="Strix varia">Barred Owl.</Species>
- <Species Scientific_Name="Strix fulvescens">Fulvous Owl.</Species>
- <Species Scientific_Name="Strix nebulosa">Great Gray Owl.</Species>
- <Species Scientific_Name="Asio otus">Long-eared Owl.</Species>
- <Species Scientific_Name="Asio stygius">Stygian Owl.</Species>
- <Species Scientific_Name="Asio flammeus">Short-eared Owl.</Species>
- <Species Scientific_Name="Pseudoscops clamator">Striped Owl.</Species>
- <Species Scientific_Name="Pseudoscops grammicus">Jamaican Owl.</Species>
- <Species Scientific_Name="Aegolius funereus">Boreal Owl.</Species>
- <Species Scientific_Name="Aegolius acadicus">Northern Saw-whet Owl.</Species>
- <Species Scientific_Name="Aegolius ridgwayi">Unspotted Saw-whet Owl.</Species>
- </Family>
- </Order>
-
-
-<Order Name="CAPRIMULGIFORMES">
- <Family Name="CAPRIMULGIDAE">
- <SubFamily Name="Chordeilinae">
- <Species Scientific_Name="Lurocalis semitorquatus">Short-tailed Nighthawk.</Species>
- <Species Scientific_Name="Chordeiles acutipennis">Lesser Nighthawk.</Species>
- <Species Scientific_Name="Chordeiles minor">Common Nighthawk.</Species>
- <Species Scientific_Name="Chordeiles gundlachii">Antillean Nighthawk.</Species>
- </SubFamily>
- <SubFamily Name="Caprimulginae">
- <Species Scientific_Name="Nyctidromus albicollis">Common Pauraque.</Species>
- <Species Scientific_Name="Phalaenoptilus nuttallii">Common Poorwill.</Species>
- <Species Scientific_Name="Siphonorhis americanus">Jamaican Pauraque.</Species>
- <Species Scientific_Name="Siphonorhis brewsteri">Least Pauraque.</Species>
- <Species Scientific_Name="Nyctiphrynus mcleodii">Eared Poorwill.</Species>
- <Species Scientific_Name="Nyctiphrynus yucatanicus">Yucatan Poorwill.</Species>
- <Species Scientific_Name="Nyctiphrynus ocellatus">Ocellated Poorwill.</Species>
- <Species Scientific_Name="Caprimulgus carolinensis">Chuck-will's-widow.</Species>
- <Species Scientific_Name="Caprimulgus rufus">Rufous Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus cubanensis">Greater Antillean Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus salvini">Tawny-collared Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus badius">Yucatan Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus ridgwayi">Buff-collared Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus vociferus">Whip-poor-will.</Species>
- <Species Scientific_Name="Caprimulgus noctitherus">Puerto Rican Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus saturatus">Dusky Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus cayennensis">White-tailed Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus maculicaudus">Spot-tailed Nightjar.</Species>
- <Species Scientific_Name="Caprimulgus indicus">Jungle Nightjar. (A)</Species>
- </SubFamily>
- </Family>
- <Family Name="NYCTIBIIDAE">
- <Species Scientific_Name="Nyctibius grandis">Great Potoo.</Species>
- <Species Scientific_Name="Nyctibius griseus">Common Potoo.</Species>
- <Species Scientific_Name="Nyctibius jamaicensis">Northern Potoo.</Species>
- </Family>
- <Family Name="STEATORNITHIDAE">
- <Species Scientific_Name="Steatornis caripensis">Oilbird. (A)</Species>
- </Family>
- </Order>
-
-
-<Order Name="APODIFORMES">
- <Family Name="APODIDAE">
- <SubFamily Name="Cypseloidinae">
- <Species Scientific_Name="Cypseloides niger">Black Swift.</Species>
- <Species Scientific_Name="Cypseloides storeri">White-fronted Swift.</Species>
- <Species Scientific_Name="Cypseloides cryptus">White-chinned Swift.</Species>
- <Species Scientific_Name="Cypseloides cherriei">Spot-fronted Swift.</Species>
- <Species Scientific_Name="Streptoprocne rutila">Chestnut-collared Swift.</Species>
- <Species Scientific_Name="Streptoprocne zonaris">White-collared Swift.</Species>
- <Species Scientific_Name="Streptoprocne semicollaris">White-naped Swift.</Species>
- </SubFamily>
- <SubFamily Name="Chaeturinae">
- <Species Scientific_Name="Chaetura pelagica">Chimney Swift.</Species>
- <Species Scientific_Name="Chaetura vauxi">Vaux's Swift.</Species>
- <Species Scientific_Name="Chaetura chapmani">Chapman's Swift. (A)</Species>
- <Species Scientific_Name="Chaetura brachyura">Short-tailed Swift.</Species>
- <Species Scientific_Name="Chaetura andrei">Ashy-tailed Swift. (A)</Species>
- <Species Scientific_Name="Chaetura spinicauda">Band-rumped Swift.</Species>
- <Species Scientific_Name="Chaetura cinereiventris">Gray-rumped Swift.</Species>
- <Species Scientific_Name="Chaetura martinica">Lesser Antillean Swift.</Species>
- <Species Scientific_Name="Hirundapus caudacutus">White-throated Needletail. (A)</Species>
- <Species Scientific_Name="Aerodramus bartschi">Guam Swiftlet. (H, I)</Species>
- </SubFamily>
- <SubFamily Name="Apodinae">
- <Species Scientific_Name="Apus apus">Common Swift. (A)</Species>
- <Species Scientific_Name="Apus pacificus">Fork-tailed Swift. (A)</Species>
- <Species Scientific_Name="Apus melba">Alpine Swift. (A)</Species>
- <Species Scientific_Name="Aeronautes saxatalis">White-throated Swift.</Species>
- <Species Scientific_Name="Panyptila cayennensis">Lesser Swallow-tailed Swift.</Species>
- <Species Scientific_Name="Panyptila sanctihieronymi">Great Swallow-tailed Swift.</Species>
- <Species Scientific_Name="Tachornis phoenicobia">Antillean Palm-Swift.</Species>
- </SubFamily>
- </Family>
- <Family Name="TROCHILIDAE">
- <SubFamily Name="Phaethornithinae">
- <Species Scientific_Name="Glaucis aenea">Bronzy Hermit.</Species>
- <Species Scientific_Name="Glaucis hirsuta">Rufous-breasted Hermit.</Species>
- <Species Scientific_Name="Threnetes ruckeri">Band-tailed Barbthroat.</Species>
- <Species Scientific_Name="Phaethornis guy">Green Hermit.</Species>
- <Species Scientific_Name="Phaethornis superciliosus">Long-tailed Hermit.</Species>
- <Species Scientific_Name="Phaethornis anthophilus">Pale-bellied Hermit.</Species>
- <Species Scientific_Name="Phaethornis longuemareus">Little Hermit.</Species>
- <Species Scientific_Name="Eutoxeres aquila">White-tipped Sicklebill.</Species>
- </SubFamily>
- <SubFamily Name="Trochilinae">
- <Species Scientific_Name="Androdon aequatorialis">Tooth-billed Hummingbird.</Species>
- <Species Scientific_Name="Doryfera ludovicae">Green-fronted Lancebill.</Species>
- <Species Scientific_Name="Phaeochroa cuvierii">Scaly-breasted Hummingbird.</Species>
- <Species Scientific_Name="Campylopterus curvipennis">Wedge-tailed Sabrewing.</Species>
- <Species Scientific_Name="Campylopterus excellens">Long-tailed Sabrewing.</Species>
- <Species Scientific_Name="Campylopterus rufus">Rufous Sabrewing.</Species>
- <Species Scientific_Name="Campylopterus hemileucurus">Violet Sabrewing.</Species>
- <Species Scientific_Name="Florisuga mellivora">White-necked Jacobin.</Species>
- <Species Scientific_Name="Colibri delphinae">Brown Violet-ear.</Species>
- <Species Scientific_Name="Colibri thalassinus">Green Violet-ear.</Species>
- <Species Scientific_Name="Anthracothorax prevostii">Green-breasted Mango.</Species>
- <Species Scientific_Name="Anthracothorax nigricollis">Black-throated Mango.</Species>
- <Species Scientific_Name="Anthracothorax veraguensis">Veraguan Mango.</Species>
- <Species Scientific_Name="Anthracothorax dominicus">Antillean Mango.</Species>
- <Species Scientific_Name="Anthracothorax viridis">Green Mango.</Species>
- <Species Scientific_Name="Anthracothorax mango">Jamaican Mango.</Species>
- <Species Scientific_Name="Eulampis jugularis">Purple-throated Carib.</Species>
- <Species Scientific_Name="Eulampis holosericeus">Green-throated Carib.</Species>
- <Species Scientific_Name="Chrysolampis mosquitus">Ruby-topaz Hummingbird.</Species>
- <Species Scientific_Name="Orthorhyncus cristatus">Antillean Crested Hummingbird.</Species>
- <Species Scientific_Name="Klais guimeti">Violet-headed Hummingbird.</Species>
- <Species Scientific_Name="Abeillia abeillei">Emerald-chinned Hummingbird.</Species>
- <Species Scientific_Name="Lophornis brachylopha">Short-crested Coquette.</Species>
- <Species Scientific_Name="Lophornis delattrei">Rufous-crested Coquette.</Species>
- <Species Scientific_Name="Lophornis helenae">Black-crested Coquette.</Species>
- <Species Scientific_Name="Lophornis adorabilis">White-crested Coquette.</Species>
- <Species Scientific_Name="Discosura conversii">Green Thorntail.</Species>
- <Species Scientific_Name="Chlorostilbon auriceps">Golden-crowned Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon forficatus">Cozumel Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon canivetii">Canivet's Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon assimilis">Garden Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon ricordii">Cuban Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon bracei">Brace's Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon swainsonii">Hispaniolan Emerald.</Species>
- <Species Scientific_Name="Chlorostilbon maugaeus">Puerto Rican Emerald.</Species>
- <Species Scientific_Name="Cynanthus sordidus">Dusky Hummingbird.</Species>
- <Species Scientific_Name="Cynanthus latirostris">Broad-billed Hummingbird.</Species>
- <Species Scientific_Name="Cyanophaia bicolor">Blue-headed Hummingbird.</Species>
- <Species Scientific_Name="Thalurania ridgwayi">Mexican Woodnymph.</Species>
- <Species Scientific_Name="Thalurania colombica">Violet-crowned Woodnymph.</Species>
- <Species Scientific_Name="Thalurania fannyi">Green-crowned Woodnymph.</Species>
- <Species Scientific_Name="Panterpe insignis">Fiery-throated Hummingbird.</Species>
- <Species Scientific_Name="Damophila julie">Violet-bellied Hummingbird.</Species>
- <Species Scientific_Name="Lepidopyga coeruleogularis">Sapphire-throated Hummingbird.</Species>
- <Species Scientific_Name="Hylocharis grayi">Blue-headed Sapphire.</Species>
- <Species Scientific_Name="Hylocharis eliciae">Blue-throated Goldentail.</Species>
- <Species Scientific_Name="Hylocharis leucotis">White-eared Hummingbird.</Species>
- <Species Scientific_Name="Hylocharis xantusii">Xantus's Hummingbird.</Species>
- <Species Scientific_Name="Goldmania violiceps">Violet-capped Hummingbird.</Species>
- <Species Scientific_Name="Goethalsia bella">Rufous-cheeked Hummingbird.</Species>
- <Species Scientific_Name="Trochilus polytmus">Streamertail.</Species>
- <Species Scientific_Name="Amazilia candida">White-bellied Emerald.</Species>
- <Species Scientific_Name="Amazilia luciae">Honduran Emerald.</Species>
- <Species Scientific_Name="Amazilia amabilis">Blue-chested Hummingbird.</Species>
- <Species Scientific_Name="Amazilia decora">Charming Hummingbird.</Species>
- <Species Scientific_Name="Amazilia boucardi">Mangrove Hummingbird.</Species>
- <Species Scientific_Name="Amazilia cyanocephala">Azure-crowned Hummingbird.</Species>
- <Species Scientific_Name="Amazilia cyanifrons">Indigo-capped Hummingbird.</Species>
- <Species Scientific_Name="Amazilia beryllina">Berylline Hummingbird.</Species>
- <Species Scientific_Name="Amazilia cyanura">Blue-tailed Hummingbird.</Species>
- <Species Scientific_Name="Amazilia saucerrottei">Steely-vented Hummingbird.</Species>
- <Species Scientific_Name="Amazilia edward">Snowy-bellied Hummingbird.</Species>
- <Species Scientific_Name="Amazilia tzacatl">Rufous-tailed Hummingbird.</Species>
- <Species Scientific_Name="Amazilia yucatanensis">Buff-bellied Hummingbird.</Species>
- <Species Scientific_Name="Amazilia rutila">Cinnamon Hummingbird.</Species>
- <Species Scientific_Name="Amazilia violiceps">Violet-crowned Hummingbird.</Species>
- <Species Scientific_Name="Amazilia viridifrons">Green-fronted Hummingbird.</Species>
- <Species Scientific_Name="Eupherusa eximia">Stripe-tailed Hummingbird.</Species>
- <Species Scientific_Name="Eupherusa cyanophrys">Blue-capped Hummingbird.</Species>
- <Species Scientific_Name="Eupherusa poliocerca">White-tailed Hummingbird.</Species>
- <Species Scientific_Name="Eupherusa nigriventris">Black-bellied Hummingbird.</Species>
- <Species Scientific_Name="Elvira chionura">White-tailed Emerald.</Species>
- <Species Scientific_Name="Elvira cupreiceps">Coppery-headed Emerald.</Species>
- <Species Scientific_Name="Microchera albocoronata">Snowcap.</Species>
- <Species Scientific_Name="Chalybura buffonii">White-vented Plumeleteer.</Species>
- <Species Scientific_Name="Chalybura urochrysia">Bronze-tailed Plumeleteer.</Species>
- <Species Scientific_Name="Lampornis viridipallens">Green-throated Mountain-gem.</Species>
- <Species Scientific_Name="Lampornis sybillae">Green-breasted Mountain-gem.</Species>
- <Species Scientific_Name="Lampornis amethystinus">Amethyst-throated Hummingbird.</Species>
- <Species Scientific_Name="Lampornis clemenciae">Blue-throated Hummingbird.</Species>
- <Species Scientific_Name="Lampornis hemileucus">White-bellied Mountain-gem.</Species>
- <Species Scientific_Name="Lampornis calolaema">Purple-throated Mountain-gem.</Species>
- <Species Scientific_Name="Lampornis castaneoventris">White-throated Mountain-gem.</Species>
- <Species Scientific_Name="Lamprolaima rhami">Garnet-throated Hummingbird.</Species>
- <Species Scientific_Name="Heliodoxa jacula">Green-crowned Brilliant.</Species>
- <Species Scientific_Name="Eugenes fulgens">Magnificent Hummingbird.</Species>
- <Species Scientific_Name="Haplophaedia aureliae">Greenish Puffleg.</Species>
- <Species Scientific_Name="Heliothryx barroti">Purple-crowned Fairy.</Species>
- <Species Scientific_Name="Heliomaster longirostris">Long-billed Starthroat.</Species>
- <Species Scientific_Name="Heliomaster constantii">Plain-capped Starthroat.</Species>
- <Species Scientific_Name="Calliphlox evelynae">Bahama Woodstar.</Species>
- <Species Scientific_Name="Calliphlox bryantae">Magenta-throated Woodstar.</Species>
- <Species Scientific_Name="Calliphlox mitchellii">Purple-throated Woodstar.</Species>
- <Species Scientific_Name="Doricha enicura">Slender Sheartail.</Species>
- <Species Scientific_Name="Doricha eliza">Mexican Sheartail.</Species>
- <Species Scientific_Name="Tilmatura dupontii">Sparkling-tailed Hummingbird.</Species>
- <Species Scientific_Name="Calothorax lucifer">Lucifer Hummingbird.</Species>
- <Species Scientific_Name="Calothorax pulcher">Beautiful Hummingbird.</Species>
- <Species Scientific_Name="Archilochus colubris">Ruby-throated Hummingbird.</Species>
- <Species Scientific_Name="Archilochus alexandri">Black-chinned Hummingbird.</Species>
- <Species Scientific_Name="Mellisuga minima">Vervain Hummingbird.</Species>
- <Species Scientific_Name="Mellisuga helenae">Bee Hummingbird.</Species>
- <Species Scientific_Name="Calypte anna">Anna's Hummingbird.</Species>
- <Species Scientific_Name="Calypte costae">Costa's Hummingbird.</Species>
- <Species Scientific_Name="Stellula calliope">Calliope Hummingbird.</Species>
- <Species Scientific_Name="Atthis heloisa">Bumblebee Hummingbird.</Species>
- <Species Scientific_Name="Atthis ellioti">Wine-throated Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus platycercus">Broad-tailed Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus rufus">Rufous Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus sasin">Allen's Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus flammula">Volcano Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus ardens">Glow-throated Hummingbird.</Species>
- <Species Scientific_Name="Selasphorus scintilla">Scintillant Hummingbird.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-<Order Name="TROGONIFORMES">
- <Family Name="TROGONIDAE">
- <Species Scientific_Name="">Cuban Trogon.</Species>
- <Species Scientific_Name="">Hispaniolan Trogon.</Species>
- <Species Scientific_Name="">Black-headed Trogon.</Species>
- <Species Scientific_Name="">Citreoline Trogon.</Species>
- <Species Scientific_Name="">White-tailed Trogon.</Species>
- <Species Scientific_Name="">Baird's Trogon.</Species>
- <Species Scientific_Name="">Violaceous Trogon.</Species>
- <Species Scientific_Name="">Mountain Trogon.</Species>
- <Species Scientific_Name="">Elegant Trogon.</Species>
- <Species Scientific_Name="">Collared Trogon.</Species>
- <Species Scientific_Name="">Orange-bellied Trogon.</Species>
- <Species Scientific_Name="">Black-throated Trogon.</Species>
- <Species Scientific_Name="">Black-tailed Trogon.</Species>
- <Species Scientific_Name="">Slaty-tailed Trogon.</Species>
- <Species Scientific_Name="">Lattice-tailed Trogon.</Species>
- <Species Scientific_Name="">Eared Trogon.</Species>
- <Species Scientific_Name="">Golden-headed Quetzal.</Species>
- <Species Scientific_Name="">Resplendent Quetzal.</Species>
- <Species Scientific_Name=""/>
- </Family>
- </Order>
-
-
-<Order Name="UPUPIFORMES">
- <Family Name="UPUPIDAE">
- <Species Scientific_Name="Upupa epops">Eurasian Hoopoe. (A)</Species>
- </Family>
- </Order>
-
-
-<Order Name="CORACIIFORMES">
- <Family Name="TODIDAE">
- <Species Scientific_Name="Todus multicolor">Cuban Tody.</Species>
- <Species Scientific_Name="Todus subulatus">Broad-billed Tody.</Species>
- <Species Scientific_Name="Todus angustirostris">Narrow-billed Tody.</Species>
- <Species Scientific_Name="Todus todus">Jamaican Tody.</Species>
- <Species Scientific_Name="Todus mexicanus">Puerto Rican Tody.</Species>
- </Family>
- <Family Name="MOMOTIDAE">
- <Species Scientific_Name="Hylomanes momotula">Tody Motmot.</Species>
- <Species Scientific_Name="Aspatha gularis">Blue-throated Motmot.</Species>
- <Species Scientific_Name="Momotus mexicanus">Russet-crowned Motmot.</Species>
- <Species Scientific_Name="Momotus momota">Blue-crowned Motmot.</Species>
- <Species Scientific_Name="Baryphthengus martii">Rufous Motmot.</Species>
- <Species Scientific_Name="Electron carinatum">Keel-billed Motmot.</Species>
- <Species Scientific_Name="Electron platyrhynchum">Broad-billed Motmot.</Species>
- <Species Scientific_Name="Eumomota superciliosa">Turquoise-browed Motmot.</Species>
- </Family>
- <Family Name="ALCEDINIDAE">
- <Species Scientific_Name="">Ringed Kingfisher.</Species>
- <Species Scientific_Name="">Belted Kingfisher.</Species>
- <Species Scientific_Name="">Amazon Kingfisher.</Species>
- <Species Scientific_Name="">Green Kingfisher.</Species>
- <Species Scientific_Name="">Green-and-rufous Kingfisher.</Species>
- <Species Scientific_Name="">American Pygmy Kingfisher.</Species>
- <Species Scientific_Name=""/>
- </Family>
- </Order>
-
-
-<Order Name="PICIFORMES">
- <Family Name="BUCCONIDAE">
- <Species Scientific_Name="Nystalus radiatus">Barred Puffbird.</Species>
- <Species Scientific_Name="Notharchus macrorhynchos">White-necked Puffbird.</Species>
- <Species Scientific_Name="Notharchus pectoralis">Black-breasted Puffbird.</Species>
- <Species Scientific_Name="Notharchus tectus">Pied Puffbird.</Species>
- <Species Scientific_Name="Malacoptila panamensis">White-whiskered Puffbird.</Species>
- <Species Scientific_Name="Micromonacha lanceolata">Lanceolated Monklet.</Species>
- <Species Scientific_Name="Nonnula ruficapilla">Gray-cheeked Nunlet.</Species>
- <Species Scientific_Name="Monasa morphoeus">White-fronted Nunbird.</Species>
- </Family>
- <Family Name="GALBULIDAE">
- <Species Scientific_Name="Brachygalba salmoni">Dusky-backed Jacamar.</Species>
- <Species Scientific_Name="Galbula ruficauda">Rufous-tailed Jacamar.</Species>
- <Species Scientific_Name="Jacamerops aurea">Great Jacamar.</Species>
- </Family>
- <Family Name="RAMPHASTIDAE">
- <SubFamily Name="Capitoninae">
- <Species Scientific_Name="Capito maculicoronatus">Spot-crowned Barbet.</Species>
- <Species Scientific_Name="Eubucco bourcierii">Red-headed Barbet.</Species>
- </SubFamily>
- <SubFamily Name="Semnornithinae">
- <Species Scientific_Name="Semnornis frantzii">Prong-billed Barbet.</Species>
- </SubFamily>
- <SubFamily Name="Ramphastinae">
- <Species Scientific_Name="Aulacorhynchus prasinus">Emerald Toucanet.</Species>
- <Species Scientific_Name="Pteroglossus torquatus">Collared Aracari.</Species>
- <Species Scientific_Name="Pteroglossus frantzii">Fiery-billed Aracari.</Species>
- <Species Scientific_Name="Selenidera spectabilis">Yellow-eared Toucanet.</Species>
- <Species Scientific_Name="Ramphastos sulfuratus">Keel-billed Toucan.</Species>
- <Species Scientific_Name="Ramphastos swainsonii">Chestnut-mandibled Toucan.</Species>
- </SubFamily>
- </Family>
- <Family Name="PICIDAE">
- <SubFamily Name="Jynginae">
- <Species Scientific_Name="Jynx torquilla">Eurasian Wryneck. (A)</Species>
- </SubFamily>
- <SubFamily Name="Picumninae">
- <Species Scientific_Name="Picumnus olivaceus">Olivaceous Piculet.</Species>
- <Species Scientific_Name="Nesoctites micromegas">Antillean Piculet.</Species>
- </SubFamily>
- <SubFamily Name="Picinae">
- <Species Scientific_Name="Melanerpes lewis">Lewis's Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes herminieri">Guadeloupe Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes portoricensis">Puerto Rican Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes erythrocephalus">Red-headed Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes formicivorus">Acorn Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes chrysauchen">Golden-naped Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes pucherani">Black-cheeked Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes striatus">Hispaniolan Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes radiolatus">Jamaican Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes chrysogenys">Golden-cheeked Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes hypopolius">Gray-breasted Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes pygmaeus">Red-vented Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes rubricapillus">Red-crowned Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes uropygialis">Gila Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes hoffmannii">Hoffmann's Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes aurifrons">Golden-fronted Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes carolinus">Red-bellied Woodpecker.</Species>
- <Species Scientific_Name="Melanerpes superciliaris">West Indian Woodpecker.</Species>
- <Species Scientific_Name="Sphyrapicus thyroideus">Williamson's Sapsucker.</Species>
- <Species Scientific_Name="Sphyrapicus varius">Yellow-bellied Sapsucker.</Species>
- <Species Scientific_Name="Sphyrapicus nuchalis">Red-naped Sapsucker.</Species>
- <Species Scientific_Name="Sphyrapicus ruber">Red-breasted Sapsucker.</Species>
- <Species Scientific_Name="Xiphidiopicus percussus">Cuban Green Woodpecker.</Species>
- <Species Scientific_Name="Dendrocopos major">Great Spotted Woodpecker. (A)</Species>
- <Species Scientific_Name="Picoides scalaris">Ladder-backed Woodpecker.</Species>
- <Species Scientific_Name="Picoides nuttallii">Nuttall's Woodpecker.</Species>
- <Species Scientific_Name="Picoides pubescens">Downy Woodpecker.</Species>
- <Species Scientific_Name="Picoides villosus">Hairy Woodpecker.</Species>
- <Species Scientific_Name="Picoides stricklandi">Strickland's Woodpecker.</Species>
- <Species Scientific_Name="Picoides borealis">Red-cockaded Woodpecker.</Species>
- <Species Scientific_Name="Picoides albolarvatus">White-headed Woodpecker.</Species>
- <Species Scientific_Name="Picoides tridactylus">Three-toed Woodpecker.</Species>
- <Species Scientific_Name="Picoides arcticus">Black-backed Woodpecker.</Species>
- <Species Scientific_Name="Veniliornis fumigatus">Smoky-brown Woodpecker.</Species>
- <Species Scientific_Name="Veniliornis kirkii">Red-rumped Woodpecker.</Species>
- <Species Scientific_Name="Piculus simplex">Rufous-winged Woodpecker.</Species>
- <Species Scientific_Name="Piculus callopterus">Stripe-cheeked Woodpecker.</Species>
- <Species Scientific_Name="Piculus chrysochloros">Golden-green Woodpecker.</Species>
- <Species Scientific_Name="Piculus rubiginosus">Golden-olive Woodpecker.</Species>
- <Species Scientific_Name="Piculus auricularis">Gray-crowned Woodpecker.</Species>
- <Species Scientific_Name="Colaptes punctigula">Spot-breasted Woodpecker.</Species>
- <Species Scientific_Name="Colaptes auratus">Northern Flicker.</Species>
- <Species Scientific_Name="Colaptes chrysoides">Gilded Flicker.</Species>
- <Species Scientific_Name="Colaptes fernandinae">Fernandina's Flicker.</Species>
- <Species Scientific_Name="Celeus loricatus">Cinnamon Woodpecker.</Species>
- <Species Scientific_Name="Celeus castaneus">Chestnut-colored Woodpecker.</Species>
- <Species Scientific_Name="Dryocopus lineatus">Lineated Woodpecker.</Species>
- <Species Scientific_Name="Dryocopus pileatus">Pileated Woodpecker.</Species>
- <Species Scientific_Name="Campephilus haematogaster">Crimson-bellied Woodpecker.</Species>
- <Species Scientific_Name="Campephilus melanoleucos">Crimson-crested Woodpecker.</Species>
- <Species Scientific_Name="Campephilus guatemalensis">Pale-billed Woodpecker.</Species>
- <Species Scientific_Name="Campephilus principalis">Ivory-billed Woodpecker.</Species>
- <Species Scientific_Name="Campephilus imperialis">Imperial Woodpecker.</Species>
- </SubFamily>
- </Family>
- </Order>
-
-
-</Class>
diff --git a/Tests/Threads/birds.xsl b/Tests/Threads/birds.xsl
deleted file mode 100644
index 1a354da..0000000
--- a/Tests/Threads/birds.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml"
- doctype-system="html.dtd"
- doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"
- encoding="UTF-8"
- omit-xml-declaration="yes"
- standalone="no"
- indent="yes"/>
-
-<xsl:template match="Class">
-<BirdInfo>
- <xsl:apply-templates select="Order"/>
-</BirdInfo>
-</xsl:template>
-
-<xsl:template match="Order">
-Order is: <xsl:value-of select="@Name"/>
- <xsl:apply-templates select="Family"/><xsl:text>
-</xsl:text>
-</xsl:template>
-
-<xsl:template match="Family">
- Family is: <xsl:value-of select="@Name"/>
- <xsl:apply-templates select="Species | SubFamily | text()"/>
-</xsl:template>
-
-<xsl:template match="SubFamily">
- SubFamily is <xsl:value-of select="@Name"/>
- <xsl:apply-templates select="Species | text()"/>
-</xsl:template>
-
-<xsl:template match="Species">
- <xsl:choose>
- <xsl:when test="name(..)='SubFamily'">
- <xsl:text> </xsl:text><xsl:value-of select="."/><xsl:text> </xsl:text><xsl:value-of select="@Scientific_Name"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/><xsl:text> </xsl:text><xsl:value-of select="@Scientific_Name"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 52451de..0000000
--- a/build.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<project name="XalanC" default="docs" basedir=".">
-
- <property name="name" value="xalan"/>
- <property name="Name" value="Xalan-C++"/>
- <property name="year" value="2001"/>
-
- <property name="xdocs.dir" value="./xdocs"/>
- <property name="xdocs.book" value="${xdocs.dir}/sources/xalanLocal.xml"/>
- <property name="xdocs.site" value="${xdocs.dir}/sources/xalan.xml"/>
- <property name="xdocs.style" value="${xdocs.dir}/style"/>
- <property name="xdocs.apidocs" value="${xdocs.dir}/html/apiDocs"/>
-
- <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
- <property name="doc.generator.styletargz" value="${xdocs.dir}/xml-site-style.tar.gz"/>
- <property name="doc.generator.styletar" value="${xdocs.dir}/xml-site-style.tar"/>
-
- <property name="build.dir" value="./build"/>
-
- <property name="build.docs" value="${build.dir}/docs"/>
- <property name="build.apidocs" value="${build.docs}/apidocs"/>
- <property name="site.dir" value="./xml-site"/>
-
- <target name="prepare">
- <gunzip src="${doc.generator.styletargz}"/>
- <untar src="${doc.generator.styletar}" dest="${xdocs.dir}"/>
- <delete file="${doc.generator.styletar}"/>
- <mkdir dir="${build.apidocs}"/>
- <mkdir dir="${site.dir}/apidocs"/>
-
- </target>
-
- <target name="docs" depends="prepare">
- <java fork="yes" classname="${doc.generator}" classpath="${java.class.path}">
- <arg line="targetDirectory=${build.docs} ${xdocs.book} ${xdocs.style}"/>
- </java>
- </target>
-
- <target name="apidocs" depends="prepare">
- <copy todir="${build.apidocs}">
- <fileset dir="${xdocs.apidocs}"/>
- </copy>
- <exec executable="doxygen.exe" dir="${xdocs.dir}">
- <arg value="DoxyFileXalan"/>
- </exec>
- </target>
-
- <target name="site" depends="prepare">
- <java fork="yes" classname="${doc.generator}" classpath="${java.class.path}">
- <arg line="targetDirectory=${site.dir} ${xdocs.site} ${xdocs.style}"/>
- </java>
- <copy todir="${site.dir}/apidocs">
- <fileset dir="${build.apidocs}"/>
- </copy>
-
- </target>
-
- <target name="clean">
- <delete dir="${build.dir}"/>
- <delete dir="${site.dir}"/>
- </target>
-
- <!-- =================================================================== -->
- <!-- Use FOP to create preliminary print (pdf) doc -->
- <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath -->
-
- <!-- This is VERY preliminary, not yet for inclusion in distribution -->
- <!-- =================================================================== -->
-
- <!--Collate the xml sources into a single xml source with a litle extra structure -->
- <target name="print.docs" depends="prepare">
- <echo message="fop.jar and xml.jar must be on the classpath"/>
- <java fork="yes" classname="org.apache.xalan.xslt.Process"
- classpath="${java.class.path}:${build.dir}/xalan.jar">
- <arg line="-xsl ${xdocs.dir}/sources/xalan-c-collate.xsl
- -out ${xdocs.dir}/sources/xalan/xalan-c-collate.xml"/>
- </java>
-
- <!-- Transform collation into Formatting Objects
- (with a little work on links along the way) -->
- <java fork="yes" classname="org.apache.xalan.xslt.Process"
- classpath="${java.class.path}:${build.dir}/xalan.jar">
- <arg line="-in ${xdocs.dir}/sources/xalan/xalan-c-collate.xml
- -param resourceFile '../../sources/xalan/resources.xml'
- -param project ${Name}
- -xsl ${xdocs.style}/stylesheets/xml2fo.xsl
- -out ${build.docs}/xalan-c-collate.fo"/>
- </java>
-
- <!-- Use FOP to generate a pdf file -->
- <java fork="yes" classname="org.apache.fop.apps.CommandLine"
- classpath="${java.class.path}:${build.dir}/xalan.jar:${bin.dir}/fop.jar:${bin.dir}/w3c.jar">
- <arg line="${build.docs}/xalan-c-collate.fo build/docs/xalan-c.pdf"/>
- </java>
- </target>
-
- <!-- pack apidocs for transfer to website -->
- <target name="pack.apidocs">
- <!--tar tarfile="./build/xalan-c-apidocs.tar" basedir="./build/docs/apidocs" includes="*"/>
- <gzip src="./build/xalan-c-apidocs.tar" zipfile="./build/xalan-c-apidocs.tar.gz"/-->
- <zip zipfile="./build/xalan-c-apidocs.zip" basedir="./build/docs/apidocs" includes="*"/>
- </target>
-
-</project>
\ No newline at end of file
diff --git a/readme.html b/readme.html
deleted file mode 100644
index 0513413..0000000
--- a/readme.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-<title>
-</title>
-</head>
-<body>
-<meta content="0; URL=c/docs/overview.html" http-equiv="Refresh">
- Redirecting to <a href="overview.html">Xalan-C++ Overview</a>
-</body>
-</html>
diff --git a/src/XPath/FunctionDoc.hpp b/src/XPath/FunctionDoc.hpp
deleted file mode 100644
index 6e72d3d..0000000
--- a/src/XPath/FunctionDoc.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * 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 "Xalan" 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/>.
- */
-#if !defined(FUNCTIONDOC_HEADER_GUARD_1357924680)
-#define FUNCTIONDOC_HEADER_GUARD_1357924680
-
-
-
-// Base header file. Must be first.
-#include <XSLT/XSLTDefinitions.hpp>
-
-
-
-#include <vector>
-
-
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-
-
-
-// Base class header file...
-#include <XPath/Function.hpp>
-
-
-/**
- * XPath implementation of "document" function.
- */
-//
-// These are all inline, even though
-// there are virtual functions, because we expect that they will only be
-// needed by the XSLT class.
-class XALAN_XSLT_EXPORT FunctionDoc : public Function
-{
-public:
-
- // These methods are inherited from Function ...
-
- virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- const DOM_Node& context,
- int /* opPos */,
- const XObjectArgVectorType& args)
- {
- executionContext.error("Document() function implementation has been replaced by xslt/FunctionDocument!",
- context);
-
- return executionContext.getXObjectFactory().createNull();
- }
-
-#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
- virtual Function*
-#else
- virtual FunctionDoc*
-#endif
- clone() const
- {
- return new FunctionDoc(*this);
- }
-
-private:
-
- // Not implemented...
- FunctionDoc&
- operator=(const FunctionDoc&);
-
- bool
- operator==(const FunctionDoc&) const;
-};
-
-
-
-#endif // FUNCTIONDOC_HEADER_GUARD_1357924680