Initial check-in
authorScott Cantor <cantor.2@osu.edu>
Wed, 15 Feb 2006 00:00:29 +0000 (00:00 +0000)
committerScott Cantor <cantor.2@osu.edu>
Wed, 15 Feb 2006 00:00:29 +0000 (00:00 +0000)
17 files changed:
.cdtproject [new file with mode: 0644]
.gitignore
.project [new file with mode: 0644]
config_win32.h [new file with mode: 0644]
cpp-xmltooling.sln [new file with mode: 0644]
doxyfile [new file with mode: 0644]
xmltooling/.gitignore [new file with mode: 0644]
xmltooling/Namespace.cpp [new file with mode: 0644]
xmltooling/Namespace.h [new file with mode: 0644]
xmltooling/base.h [new file with mode: 0644]
xmltooling/config_pub_win32.h [new file with mode: 0644]
xmltooling/internal.h [new file with mode: 0644]
xmltooling/unicode.h [new file with mode: 0644]
xmltooling/util/NDC.cpp [new file with mode: 0644]
xmltooling/util/NDC.h [new file with mode: 0644]
xmltooling/version.h [new file with mode: 0644]
xmltooling/xmltooling.vcproj [new file with mode: 0644]

diff --git a/.cdtproject b/.cdtproject
new file mode 100644 (file)
index 0000000..74757f5
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<?eclipse-cdt version="2.0"?>\r
+\r
+<cdtproject id="org.eclipse.cdt.make.core.make">\r
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>\r
+<extension id="org.eclipse.cdt.core.domsourceindexer" point="org.eclipse.cdt.core.CIndexer"/>\r
+<data>\r
+<item id="scannerConfiguration">\r
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="true" filePath=""/>\r
+<parser enabled="true"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="true"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="makefileGenerator">\r
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">\r
+<buildOutputProvider>\r
+<openAction enabled="false" filePath=""/>\r
+<parser enabled="false"/>\r
+</buildOutputProvider>\r
+<scannerInfoProvider id="specsFile">\r
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>\r
+<parser enabled="false"/>\r
+</scannerInfoProvider>\r
+</profile>\r
+</item>\r
+<item id="org.eclipse.cdt.core.pathentry">\r
+<pathentry include="C:/log4cpp-0.3.5rc1/include" kind="inc" path="" system="true"/>\r
+<pathentry include="C:/xerces-c2_7_0-win32/include" kind="inc" path="" system="true"/>\r
+<pathentry base-path="XMLTooling-C" include="" kind="inc" path="" system="true"/>\r
+<pathentry base-path="XMLTooling-C" include="xmltooling" kind="inc" path="" system="true"/>\r
+<pathentry kind="mac" name="_MSC_VER" path="" value=""/>\r
+<pathentry kind="src" path=""/>\r
+<pathentry kind="out" path=""/>\r
+<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>\r
+</item>\r
+</data>\r
+</cdtproject>\r
index f786faa..7dc697f 100644 (file)
@@ -15,3 +15,5 @@
 /.*.swp
 /.DS_store
 # Simulated Subversion default ignores end here
 /.*.swp
 /.DS_store
 # Simulated Subversion default ignores end here
+# The contents of the svn:ignore property on the branch root.
+/debug
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..9f5002e
--- /dev/null
+++ b/.project
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>XMLTooling-C</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.make.core.makeBuilder</name>\r
+                       <triggers>clean,full,incremental,</triggers>\r
+                       <arguments>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.arguments</key>\r
+                                       <value></value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.core.errorOutputParser</key>\r
+                                       <value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>\r
+                                       <value>false</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.environment</key>\r
+                                       <value></value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.target.inc</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.target.clean</key>\r
+                                       <value>clean</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.command</key>\r
+                                       <value>make</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.append_environment</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.target.full</key>\r
+                                       <value>clean all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.build.target.auto</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.stopOnError</key>\r
+                                       <value>false</value>\r
+                               </dictionary>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.make.core.ScannerConfigBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.cdt.core.cnature</nature>\r
+               <nature>org.eclipse.cdt.make.core.makeNature</nature>\r
+               <nature>org.eclipse.cdt.make.core.ScannerConfigNature</nature>\r
+               <nature>org.eclipse.cdt.core.ccnature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/config_win32.h b/config_win32.h
new file mode 100644 (file)
index 0000000..89d112b
--- /dev/null
@@ -0,0 +1,113 @@
+/* config_win32.h.  Copied from a ./configure on Unix */\r
+\r
+/* Define to 1 if you have the <dlfcn.h> header file.\r
+#define HAVE_DLFCN_H 1\r
+*/\r
+\r
+/* Define to 1 if you have the `gmtime_r' function. */\r
+/* #undef HAVE_GMTIME_R */\r
+\r
+/* Define if you have an STL implementation that supports useful string\r
+   specialization. */\r
+#define HAVE_GOOD_STL 1\r
+\r
+/* Define to 1 if you have the <inttypes.h> header file.\r
+#define HAVE_INTTYPES_H 1\r
+*/\r
+\r
+/* Define to 1 if you have the `crypto' library (-lcrypto). */\r
+#define HAVE_LIBCRYPTO 1\r
+\r
+/* Define to 1 if you have the `curl' library (-lcurl). */\r
+#define HAVE_LIBCURL 1\r
+\r
+/* Define if log4cpp library was found */\r
+#define HAVE_LIBLOG4CPP 1\r
+\r
+/* Define to 1 if you have the `ssl' library (-lssl). */\r
+#define HAVE_LIBSSL 1\r
+\r
+/* Define if Xerces-C library was found */\r
+#define HAVE_LIBXERCESC 1\r
+\r
+/* Define to 1 if you have the <memory.h> header file. */\r
+#define HAVE_MEMORY_H 1\r
+\r
+/* define if the compiler implements namespaces */\r
+#define HAVE_NAMESPACES 1\r
+\r
+/* Define if you have POSIX threads libraries and header files.\r
+#define HAVE_PTHREAD 1\r
+*/\r
+\r
+/* Define to 1 if you have the <stdint.h> header file. */\r
+/* #undef HAVE_STDINT_H */\r
+\r
+/* Define to 1 if you have the <stdlib.h> header file. */\r
+#define HAVE_STDLIB_H 1\r
+\r
+/* Define to 1 if you have the `strchr' function. */\r
+#define HAVE_STRCHR 1\r
+\r
+/* Define to 1 if you have the `strdup' function. */\r
+#define HAVE_STRDUP 1\r
+\r
+/* Define to 1 if you have the `strftime' function. */\r
+/* #undef HAVE_STRFTIME */\r
+\r
+/* Define to 1 if you have the <strings.h> header file.\r
+#define HAVE_STRINGS_H 1\r
+*/\r
+\r
+/* Define to 1 if you have the <string.h> header file. */\r
+#define HAVE_STRING_H 1\r
+\r
+/* Define to 1 if you have the `strstr' function. */\r
+#define HAVE_STRSTR 1\r
+\r
+/* Define to 1 if you have the <sys/stat.h> header file. */\r
+#define HAVE_SYS_STAT_H 1\r
+\r
+/* Define to 1 if you have the <sys/types.h> header file. */\r
+#define HAVE_SYS_TYPES_H 1\r
+\r
+/* Define to 1 if you have the <unistd.h> header file.\r
+#define HAVE_UNISTD_H 1\r
+*/\r
+\r
+/* Name of package */\r
+#define PACKAGE "xmltooling"\r
+\r
+/* Define to the address where bug reports for this package should be sent. */\r
+#define PACKAGE_BUGREPORT "mace-opensaml-users@internet2.edu"\r
+\r
+/* Define to the full name of this package. */\r
+#define PACKAGE_NAME "xmltooling"\r
+\r
+/* Define to the full name and version of this package. */\r
+#define PACKAGE_STRING "xmltooling 1.0"\r
+\r
+/* Define to the one symbol short name of this package. */\r
+#define PACKAGE_TARNAME "xmltooling"\r
+\r
+/* Define to the version of this package. */\r
+#define PACKAGE_VERSION "1.0"\r
+\r
+/* Define to the necessary symbol if this constant uses a non-standard name on\r
+   your system. */\r
+/* #undef PTHREAD_CREATE_JOINABLE */\r
+\r
+/* Define to 1 if you have the ANSI C header files. */\r
+#define STDC_HEADERS 1\r
+\r
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */\r
+/* #undef TM_IN_SYS_TIME */\r
+\r
+/* Version number of package */\r
+#define VERSION "1.0"\r
+\r
+/* Define to empty if `const' does not conform to ANSI C. */\r
+/* #undef const */\r
+\r
+/* Define to `unsigned' if <sys/types.h> does not define. */\r
+/* #undef size_t */\r
diff --git a/cpp-xmltooling.sln b/cpp-xmltooling.sln
new file mode 100644 (file)
index 0000000..9ff2d25
--- /dev/null
@@ -0,0 +1,20 @@
+\r
+Microsoft Visual Studio Solution File, Format Version 9.00\r
+# Visual Studio 2005\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmltooling", "xmltooling\xmltooling.vcproj", "{06B55A46-D3B3-41AE-B5A5-B57830BA010D}"\r
+EndProject\r
+Global\r
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+               Debug|Win32 = Debug|Win32\r
+               Release|Win32 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+               {06B55A46-D3B3-41AE-B5A5-B57830BA010D}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {06B55A46-D3B3-41AE-B5A5-B57830BA010D}.Debug|Win32.Build.0 = Debug|Win32\r
+               {06B55A46-D3B3-41AE-B5A5-B57830BA010D}.Release|Win32.ActiveCfg = Release|Win32\r
+               {06B55A46-D3B3-41AE-B5A5-B57830BA010D}.Release|Win32.Build.0 = Release|Win32\r
+       EndGlobalSection\r
+       GlobalSection(SolutionProperties) = preSolution\r
+               HideSolutionNode = FALSE\r
+       EndGlobalSection\r
+EndGlobal\r
diff --git a/doxyfile b/doxyfile
new file mode 100644 (file)
index 0000000..035cf62
--- /dev/null
+++ b/doxyfile
@@ -0,0 +1,259 @@
+# Doxyfile 1.4.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = XMLTooling-C
+PROJECT_NUMBER         = 1.0
+OUTPUT_DIRECTORY       = C:/cvs/cpp-xmltooling/doc
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = C:/cvs/cpp-xmltooling
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 4
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+BUILTIN_STL_SUPPORT    = YES
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = NO
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = C:/cvs/cpp-xmltooling/xmltooling
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.py
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = NO
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = NO
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = C:\cvs\cpp-xmltooling
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = _MSC_VER
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 1000
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/xmltooling/.gitignore b/xmltooling/.gitignore
new file mode 100644 (file)
index 0000000..98bbc31
--- /dev/null
@@ -0,0 +1 @@
+/Debug
diff --git a/xmltooling/Namespace.cpp b/xmltooling/Namespace.cpp
new file mode 100644 (file)
index 0000000..0d7a3f2
--- /dev/null
@@ -0,0 +1,110 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/* Namespace.cpp\r
+ * \r
+ * Data structure for representing XML namespace attributes \r
+ * \r
+ * $Id:$\r
+ */\r
+\r
+#include "internal.h"\r
+#include "unicode.h"\r
+#include "Namespace.h"\r
+\r
+using namespace std;\r
+using namespace xmltooling;\r
+\r
+Namespace::Namespace()\r
+{\r
+#ifndef HAVE_GOOD_STL\r
+    m_uri=m_prefix=NULL;\r
+#endif\r
+}\r
+\r
+Namespace::Namespace(const XMLCh* uri, const XMLCh* prefix)\r
+{\r
+    setNamespaceURI(uri);\r
+    setNamespacePrefix(prefix);\r
+}\r
+\r
+Namespace::~Namespace()\r
+{\r
+#ifndef HAVE_GOOD_STL\r
+    XMLString::release(&m_uri);\r
+    XMLString::release(&m_prefix);\r
+#endif\r
+}\r
+\r
+void Namespace::setNamespacePrefix(const XMLCh* prefix)\r
+{\r
+#ifdef HAVE_GOOD_STL\r
+    if (prefix)\r
+        m_prefix=prefix;\r
+    else\r
+        m_prefix.erase();\r
+#else\r
+    if (m_prefix)\r
+        XMLString::release(&m_prefix);\r
+    m_prefix=XMLString::replicate(prefix);\r
+#endif\r
+}\r
+\r
+void Namespace::setNamespaceURI(const XMLCh* uri)\r
+{\r
+#ifdef HAVE_GOOD_STL\r
+    if (uri)\r
+        m_uri=uri;\r
+    else\r
+        m_uri.erase();\r
+#else\r
+    if (m_uri)\r
+        XMLString::release(&m_uri);\r
+    m_uri=XMLString::replicate(uri);\r
+#endif\r
+}\r
+\r
+#ifndef HAVE_GOOD_STL\r
+Namespace::Namespace(const Namespace& src)\r
+{\r
+    m_uri=XMLString::replicate(src.getNamespaceURI());\r
+    m_prefix=XMLString::replicate(src.getNamespacePrefix());\r
+}\r
+\r
+Namespace& Namespace::operator=(const Namespace& src)\r
+{\r
+    m_uri=XMLString::replicate(src.getNamespaceURI());\r
+    m_prefix=XMLString::replicate(src.getNamespacePrefix());\r
+    return *this;\r
+}\r
+\r
+bool xmltooling::operator==(const Namespace& op1, const Namespace& op2)\r
+{\r
+    return (!XMLString::compareString(op1.getNamespaceURI(),op2.getNamespaceURI()) &&\r
+            !XMLString::compareString(op1.getNamespacePrefix(),op2.getNamespacePrefix()));\r
+}\r
+#endif\r
+\r
+bool xmltooling::operator<(const Namespace& op1, const Namespace& op2)\r
+{\r
+    int i=XMLString::compareString(op1.getNamespaceURI(),op2.getNamespaceURI());\r
+    if (i<0)\r
+        return true;\r
+    else if (i==0)\r
+        return (XMLString::compareString(op1.getNamespacePrefix(),op2.getNamespacePrefix())<0);\r
+    else\r
+        return false;\r
+}\r
diff --git a/xmltooling/Namespace.h b/xmltooling/Namespace.h
new file mode 100644 (file)
index 0000000..d94c845
--- /dev/null
@@ -0,0 +1,132 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * @file Namespace.h\r
+ * \r
+ * Representing XML namespace attributes \r
+ */\r
+\r
+#if !defined(__xmltooling_namespace_h__)\r
+#define __xmltooling_namespace_h__\r
+\r
+#include <string>\r
+#include <xmltooling/Namespace.h>\r
+\r
+namespace xmltooling {\r
+    \r
+    /**\r
+     * A data structure for encapsulating XML Namespace attributes\r
+     */\r
+    class XMLTOOL_API Namespace\r
+    {\r
+    public:\r
+        /**\r
+         * Default constructor\r
+         */\r
+        Namespace();\r
+        \r
+        /**\r
+         * Constructor that takes an existing declaration\r
+         * @param uri       namespace URI\r
+         * @param prefix    namespace prefix (without the colon)\r
+         */\r
+        Namespace(const XMLCh* uri, const XMLCh* prefix);\r
+        \r
+        ~Namespace();\r
+#ifndef HAVE_GOOD_STL\r
+        /**\r
+         * Deep copy constructor\r
+         */\r
+        Namespace(const Namespace&);\r
+\r
+        /**\r
+         * Deep assignment operator\r
+         */\r
+        Namespace& operator=(const Namespace&);\r
+#endif\r
+        \r
+#ifdef HAVE_GOOD_STL\r
+        /**\r
+         * Returns the namespace prefix\r
+         * @return  Null-terminated Unicode string containing the prefix, without the colon\r
+         */\r
+        const XMLCh* getNamespacePrefix() const { return m_prefix.c_str(); }\r
+\r
+        /**\r
+         * Returns the namespace URI\r
+         * @return  Null-terminated Unicode string containing the URI\r
+         */\r
+        const XMLCh* getNamespaceURI() const { return m_uri.c_str(); }\r
+#else\r
+        /**\r
+         * Returns the namespace prefix\r
+         * @return  Null-terminated Unicode string containing the prefix, without the colon\r
+         */\r
+        const XMLCh* getNamespacePrefix() const { return m_prefix; }\r
+\r
+        /**\r
+         * Returns the namespace URI\r
+         * @return  Null-terminated Unicode string containing the URI\r
+         */\r
+        const XMLCh* getNamespaceURI() const { return m_uri; }\r
+#endif\r
+\r
+        /**\r
+         * Sets the namespace prefix\r
+         * @param prefix    Null-terminated Unicode string containing the prefix, without the colon\r
+         */\r
+        void setNamespacePrefix(const XMLCh* prefix);\r
+\r
+        /**\r
+         * Sets the namespace URI\r
+         * @param uri  Null-terminated Unicode string containing the URI\r
+         */\r
+        void setNamespaceURI(const XMLCh* uri);\r
+        \r
+    private:\r
+#ifdef HAVE_GOOD_STL\r
+        xstring m_uri;\r
+        xstring m_prefix;\r
+#else\r
+        XMLCh* m_uri;\r
+        XMLCh* m_prefix;\r
+#endif\r
+    };\r
+\r
+    /**\r
+     * Returns true iff op1's namespace lexically compares less than op2's namespace,\r
+     * or if equal, iff op1's prefix lexically compares less than op2's prefix.\r
+     * \r
+     * Needed for use with sorted STL containers.\r
+     * \r
+     * @param op1   First namspace to compare\r
+     * @param op2   Second namespace to compare\r
+     */\r
+    extern XMLTOOL_API bool operator<(const Namespace& op1, const Namespace& op2);\r
+\r
+#ifndef HAVE_GOOD_STL\r
+    /**\r
+     * Returns true iff op1's namespace and prefix are equal to op2's namespace and prefix.\r
+     * @param op1   First namspace to compare\r
+     * @param op2   Second namespace to compare\r
+     */\r
+    extern XMLTOOL_API bool operator==(const Namespace& op1, const Namespace& op2);\r
+#endif\r
+\r
+};\r
+\r
+#endif /* __xmltooling_namespace_h__ */\r
diff --git a/xmltooling/base.h b/xmltooling/base.h
new file mode 100644 (file)
index 0000000..3fe0221
--- /dev/null
@@ -0,0 +1,74 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * @file base.h\r
+ * \r
+ * Base header file definitions\r
+ * Must be included prior to including any other header\r
+ */\r
+\r
+#if !defined(__xmltooling_base_h__)\r
+#define __xmltooling_base_h__\r
+\r
+#if defined (_MSC_VER) || defined(__BORLANDC__)\r
+  #include <xmltooling/config_pub_win32.h>\r
+#else\r
+  #include <xmltooling/config_pub.h>\r
+#endif\r
+\r
+/**\r
+ * @namespace xmltooling\r
+ * Public namespace of XML Tooling library\r
+ */\r
+\r
+// Windows and GCC4 Symbol Visibility Macros\r
+\r
+#ifdef WIN32\r
+  #define XMLTOOL_IMPORT __declspec(dllimport)\r
+  #define XMLTOOL_EXPORT __declspec(dllexport)\r
+  #define XMLTOOL_DLLLOCAL\r
+  #define XMLTOOL_DLLPUBLIC\r
+#else\r
+  #define XMLTOOL_IMPORT\r
+  #ifdef GCC_HASCLASSVISIBILITY\r
+    #define XMLTOOL_EXPORT __attribute__ ((visibility("default")))\r
+    #define XMLTOOL_DLLLOCAL __attribute__ ((visibility("hidden")))\r
+    #define XMLTOOL_DLLPUBLIC __attribute__ ((visibility("default")))\r
+  #else\r
+    #define XMLTOOL_EXPORT\r
+    #define XMLTOOL_DLLLOCAL\r
+    #define XMLTOOL_DLLPUBLIC\r
+  #endif\r
+#endif\r
+\r
+// Define XMLTOOL_API for DLL builds\r
+#ifdef XMLTOOLING_EXPORTS\r
+  #define XMLTOOL_API XMLTOOL_EXPORT\r
+#else\r
+  #define XMLTOOL_API XMLTOOL_IMPORT\r
+#endif\r
+\r
+// Throwable classes must always be visible on GCC in all binaries\r
+#ifdef WIN32\r
+  #define XMLTOOL_EXCEPTIONAPI(api) api\r
+#elif defined(GCC_HASCLASSVISIBILITY)\r
+  #define XMLTOOL_EXCEPTIONAPI(api) XMLTOOL_EXPORT\r
+#else\r
+  #define XMLTOOL_EXCEPTIONAPI(api)\r
+#endif\r
+\r
+#endif /* __xmltooling_base_h__ */\r
diff --git a/xmltooling/config_pub_win32.h b/xmltooling/config_pub_win32.h
new file mode 100644 (file)
index 0000000..9ba556a
--- /dev/null
@@ -0,0 +1,3 @@
+/* Define to 1 if you have an STL implementation that supports useful string\r
+   specialization. */\r
+#define HAVE_GOOD_STL 1\r
diff --git a/xmltooling/internal.h b/xmltooling/internal.h
new file mode 100644 (file)
index 0000000..03f6d3d
--- /dev/null
@@ -0,0 +1,40 @@
+/*\r
+ *  Copyright 2001-2005 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/*\r
+ *  internal.h - internally visible classes\r
+ */\r
+\r
+#ifndef __xmltooling_internal_h__\r
+#define __xmltooling_internal_h__\r
+\r
+#ifdef WIN32\r
+# define _CRT_SECURE_NO_DEPRECATE 1\r
+# define _CRT_NONSTDC_NO_DEPRECATE 1\r
+#endif\r
+\r
+// eventually we might be able to support autoconf via cygwin...\r
+#if defined (_MSC_VER) || defined(__BORLANDC__)\r
+# include "config_win32.h"\r
+#else\r
+# include "config.h"\r
+#endif\r
+\r
+#include "base.h"\r
+\r
+#define XMLTOOLING_LOGCAT "XMLTooling"\r
+\r
+#endif /* __xmltooling_internal_h__ */\r
diff --git a/xmltooling/unicode.h b/xmltooling/unicode.h
new file mode 100644 (file)
index 0000000..311ffb7
--- /dev/null
@@ -0,0 +1,154 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * @file unicode.h\r
+ * \r
+ * Helper classes and types for manipulating Unicode\r
+ */\r
\r
+#if !defined(__xmltooling_unicode_h__)\r
+#define __xmltooling_unicode_h__\r
+\r
+#include <string>\r
+#include <xercesc/util/XMLString.hpp>\r
+#include <xmltooling/base.h>\r
+\r
+using namespace xercesc;\r
+\r
+namespace xmltooling {\r
+    \r
+    #ifdef HAVE_GOOD_STL\r
+        /**\r
+         * An STL string type that supports 16-bit Unicode.\r
+         * Most compilers support this, but various versions of gcc3 do not.\r
+         */\r
+        typedef std::basic_string<XMLCh> xstring;\r
+    #endif\r
+\r
+    /**\r
+     * Transcodes a 16-bit Unicode string into UTF-8.\r
+     * @param src   the 16-bit string to transcode\r
+     * @return      a UTF-8 string allocated by the Xerces memory manager \r
+     */\r
+    extern XMLTOOL_API char* toUTF8(const XMLCh* src);\r
+\r
+    /**\r
+     * Transcodes a UTF-8 string into 16-bit Unicode.\r
+     * @param src   the UTF-8 string to transcode\r
+     * @return      a 16-bit Unicode string allocated by the Xerces memory manager \r
+     */\r
+    extern XMLTOOL_API XMLCh* fromUTF8(const char* src);\r
+\r
+    /**\r
+     * A minimal auto_ptr-like class that can copy or transcode a buffer into\r
+     * the local code page and free the result automatically.\r
+     * \r
+     * Needed because a standard auto_ptr would use delete on the resulting\r
+     * pointer. \r
+     */\r
+    class XMLTOOL_API auto_ptr_char\r
+    {\r
+    public:\r
+        /**\r
+         * Constructor transcodes a 16-bit Unicode string into the local code page (NOT UTF-8) and wraps the result.\r
+         * @param src   the 16-bit string to transcode and wrap\r
+         * @param trim  trims leading/trailing whitespace from the result (defaults to true) \r
+         */\r
+        auto_ptr_char(const XMLCh* src, bool trim=true) : m_buf(XMLString::transcode(src)) {if (trim && m_buf) XMLString::trim(m_buf);}\r
+\r
+        /**\r
+         * Constructor copies a local code page (NOT UTF-8) string and wraps the result.\r
+         * @param src   the local string to copy and wrap\r
+         * @param trim  trims leading/trailing whitespace from the result (defaults to true) \r
+         */\r
+        auto_ptr_char(const char* src, bool trim=true) : m_buf(XMLString::replicate(src)) {if (trim && m_buf) XMLString::trim(m_buf);}\r
+\r
+        /**\r
+         * Destructor frees the wrapped buffer using the Xerces memory manager.\r
+         */\r
+        ~auto_ptr_char() { XMLString::release(&m_buf); }\r
+\r
+        /**\r
+         * Returns the wrapped buffer.\r
+         * @return a null-terminated local code page string\r
+         */\r
+        const char* get() const { return m_buf; }\r
+\r
+        /**\r
+         * Returns the wrapped buffer and transfers ownership of it to the caller.\r
+         * @return a null-terminated local code page string\r
+         */\r
+        char* release() { char* temp=m_buf; m_buf=NULL; return temp; }\r
+\r
+    private:\r
+        auto_ptr_char(const auto_ptr_char&);\r
+        auto_ptr_char& operator=(const auto_ptr_char&);\r
+        \r
+        char* m_buf;\r
+    };\r
+\r
+    /**\r
+     * A minimal auto_ptr-like class that can copy or transcode a buffer into\r
+     * 16-bit Unicode and free the result automatically.\r
+     * \r
+     * Needed because a standard auto_ptr would use delete on the resulting\r
+     * pointer. \r
+     */\r
+    class XMLTOOL_API auto_ptr_XMLCh\r
+    {\r
+    public:\r
+        /**\r
+         * Constructor transcodes a local code page (NOT UTF-8) string into 16-bit Unicode and wraps the result.\r
+         * @param src   the local string to transcode and wrap\r
+         * @param trim  trims leading/trailing whitespace from the result (defaults to true) \r
+         */\r
+        auto_ptr_XMLCh(const char* src, bool trim=true) : m_buf(XMLString::transcode(src)) {if (trim && m_buf) XMLString::trim(m_buf);}\r
+\r
+        /**\r
+         * Constructor copies a 16-bit Unicode string and wraps the result.\r
+         * @param src   the Unicode string to copy and wrap\r
+         * @param trim  trims leading/trailing whitespace from the result (defaults to true) \r
+         */\r
+        auto_ptr_XMLCh(const XMLCh* src, bool trim=true) : m_buf(XMLString::replicate(src)) {if (trim && m_buf) XMLString::trim(m_buf);}\r
+\r
+        /**\r
+         * Destructor frees the wrapped buffer using the Xerces memory manager.\r
+         */\r
+        ~auto_ptr_XMLCh() { XMLString::release(&m_buf); }\r
+\r
+        /**\r
+         * Returns the wrapped buffer.\r
+         * @return a null-terminated Unicode string\r
+         */\r
+        const XMLCh* get() const { return m_buf; }\r
+        \r
+        /**\r
+         * Returns the wrapped buffer and transfers ownership of it to the caller.\r
+         * @return a null-terminated Unicode string\r
+         */\r
+        XMLCh* release() { XMLCh* temp=m_buf; m_buf=NULL; return temp; }\r
+\r
+    private:\r
+        auto_ptr_XMLCh(const auto_ptr_XMLCh&);\r
+        auto_ptr_XMLCh& operator=(const auto_ptr_XMLCh&);\r
+\r
+        XMLCh* m_buf;\r
+    };\r
+\r
+};\r
+\r
+#endif /* __xmltooling_unicode_h__ */\r
diff --git a/xmltooling/util/NDC.cpp b/xmltooling/util/NDC.cpp
new file mode 100644 (file)
index 0000000..1886721
--- /dev/null
@@ -0,0 +1,45 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/* NDC.cpp\r
+ * \r
+ * Diagnostic context for logging \r
+ * \r
+ * $Id:$\r
+ */\r
+\r
+#include "internal.h"\r
+#include "util/NDC.h"\r
+\r
+#include <log4cpp/NDC.hh>\r
+\r
+using namespace std;\r
+using namespace xmltooling;\r
+\r
+NDC::NDC(const char* context)\r
+{\r
+    log4cpp::NDC::push(context);\r
+}\r
+\r
+NDC::NDC(const string& context)\r
+{\r
+    log4cpp::NDC::push(context);\r
+}\r
+\r
+NDC::~NDC()\r
+{\r
+    log4cpp::NDC::pop();\r
+}\r
diff --git a/xmltooling/util/NDC.h b/xmltooling/util/NDC.h
new file mode 100644 (file)
index 0000000..57ef9d4
--- /dev/null
@@ -0,0 +1,61 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * @file NDC.h\r
+ * \r
+ * Diagnostic context for logging \r
+ */\r
+\r
+#if !defined(__xmltooling_ndc_h__)\r
+#define __xmltooling_ndc_h__\r
+\r
+#include <string>\r
+#include <xmltooling/base.h>\r
+\r
+namespace xmltooling {\r
+    \r
+    /**\r
+     * A portable stack-based context for diagnostic logging \r
+     */\r
+    class XMLTOOL_API NDC\r
+    {\r
+    public:\r
+        /**\r
+         * Constructor pushes logging context onto diagnostic stack\r
+         * @param context   null-terminated label for context\r
+         */\r
+        NDC(const char* context);\r
+\r
+        /**\r
+         * Constructor pushes logging context onto diagnostic stack\r
+         * @param context   string label for context\r
+         */\r
+        NDC(const std::string& context);\r
+        \r
+        /**\r
+         * Destructor pops context off of diagnostic stack\r
+         */\r
+        ~NDC();\r
+        \r
+    private:\r
+        NDC(const NDC&);\r
+        NDC& operator=(const NDC&);\r
+    };\r
+\r
+};\r
+\r
+#endif /* __xmltooling_ndc_h__ */\r
diff --git a/xmltooling/version.h b/xmltooling/version.h
new file mode 100644 (file)
index 0000000..adf0181
--- /dev/null
@@ -0,0 +1,74 @@
+/*\r
+ *  Copyright 2001-2006 Internet2\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * @file version.h\r
+ * \r
+ * Library version macros and constants \r
+ */\r
+\r
+#if !defined(__xmltooling_version_h__)\r
+#define __xmltooling_version_h__\r
+\r
+// This is all based on Xerces, on the theory it might be useful to\r
+// support this kind of stuff in the future. If they ever yank some\r
+// of this stuff, it can be copied into here.\r
+\r
+#include <xercesc/util/XercesVersion.hpp>\r
+\r
+// ---------------------------------------------------------------------------\r
+// V E R S I O N   S P E C I F I C A T I O N\r
+\r
+/**\r
+ * MODIFY THESE NUMERIC VALUES TO COINCIDE WITH XMLTOOLING VERSION\r
+ * AND DO NOT MODIFY ANYTHING ELSE IN THIS VERSION HEADER FILE\r
+ */\r
+\r
+#define XMLTOOLING_VERSION_MAJOR 1\r
+#define XMLTOOLING_VERSION_MINOR 0\r
+#define XMLTOOLING_VERSION_REVISION 0\r
+\r
+/** DO NOT MODIFY BELOW THIS LINE */\r
+\r
+/**\r
+ * MAGIC THAT AUTOMATICALLY GENERATES THE FOLLOWING:\r
+ *\r
+ *     gXMLToolingVersionStr, gXMLToolingFullVersionStr, gXMLToolingMajVersion, gXMLToolingMinVersion, gXMLToolingRevision\r
+ */\r
+\r
+// ---------------------------------------------------------------------------\r
+// V E R S I O N   I N F O R M A T I O N\r
+\r
+// XMLTooling version strings; these particular macros cannot be used for\r
+// conditional compilation as they are not numeric constants\r
+\r
+#define XMLTOOLING_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XMLTOOLING_VERSION_MAJOR,XMLTOOLING_VERSION_MINOR,XMLTOOLING_VERSION_REVISION)\r
+#define XMLTOOLING_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XMLTOOLING_VERSION_MAJOR,XMLTOOLING_VERSION_MINOR,XMLTOOLING_VERSION_REVISION)\r
+#define XMLTOOLING_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XMLTOOLING_VERSION_MAJOR,XMLTOOLING_VERSION_MINOR,XMLTOOLING_VERSION_REVISION)\r
+#define XMLTOOLING_VERSIONSTR     INVK_CAT2_SEP_UNDERSCORE(XMLTOOLING_VERSION_MAJOR,XMLTOOLING_VERSION_MINOR)\r
+\r
+const char* const    gXMLToolingVersionStr = XMLTOOLING_VERSIONSTR;\r
+const char* const    gXMLToolingFullVersionStr = XMLTOOLING_FULLVERSIONSTR;\r
+const unsigned int   gXMLToolingMajVersion = XMLTOOLING_VERSION_MAJOR;\r
+const unsigned int   gXMLToolingMinVersion = XMLTOOLING_VERSION_MINOR;\r
+const unsigned int   gXMLToolingRevision   = XMLTOOLING_VERSION_REVISION;\r
+\r
+// XMLTooling version numeric constants that can be used for conditional\r
+// compilation purposes.\r
+\r
+#define _XMLTOOLING_VERSION CALC_EXPANDED_FORM (XMLTOOLING_VERSION_MAJOR,XMLTOOLING_VERSION_MINOR,XMLTOOLING_VERSION_REVISION)\r
+\r
+#endif // __xmltooling_version_h__\r
diff --git a/xmltooling/xmltooling.vcproj b/xmltooling/xmltooling.vcproj
new file mode 100644 (file)
index 0000000..e65b61e
--- /dev/null
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="xmltooling"\r
+       ProjectGUID="{06B55A46-D3B3-41AE-B5A5-B57830BA010D}"\r
+       RootNamespace="xmltooling"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(ProjectDir)&quot;"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;XMLTOOLING_EXPORTS"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               DisableLanguageExtensions="true"\r
+                               UsePrecompiledHeader="0"\r
+                               BrowseInformation="1"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="log4cppD.lib xerces-c_2D.lib"\r
+                               OutputFile="$(OutDir)\$(ProjectName)_1D.dll"\r
+                               LinkIncremental="2"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+                       IntermediateDirectory="$(ConfigurationName)"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="2"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalIncludeDirectories="&quot;$(SolutionDir)&quot;;&quot;$(ProjectDir)&quot;"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;XMLTOOLING_EXPORTS"\r
+                               RuntimeLibrary="2"\r
+                               DisableLanguageExtensions="true"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="log4cpp.lib xerces-c_2.lib"\r
+                               OutputFile="$(OutDir)\$(ProjectName)_1.dll"\r
+                               LinkIncremental="2"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\Namespace.cpp"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="util"\r
+                               >\r
+                               <File\r
+                                       RelativePath=".\util\NDC.cpp"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\base.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\config_pub_win32.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\internal.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\Namespace.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\unicode.h"\r
+                               >\r
+                       </File>\r
+                       <File\r
+                               RelativePath=".\version.h"\r
+                               >\r
+                       </File>\r
+                       <Filter\r
+                               Name="util"\r
+                               >\r
+                               <File\r
+                                       RelativePath=".\util\NDC.h"\r
+                                       >\r
+                               </File>\r
+                       </Filter>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r