dbertoni    00/08/31 12:43:24

  Modified:    c/src/DOMSupport DOMServices.cpp DOMServices.hpp
               c/src/PlatformSupport AttributeListImpl.cpp
                        AttributeListImpl.hpp STLHelper.hpp
               c/src/TestXSLT process.cpp
               c/src/XMLSupport FormatterToHTML.cpp FormatterToHTML.hpp
                        FormatterToXML.cpp FormatterToXML.hpp
                        XMLParserLiaison.hpp XMLParserLiaisonDefault.cpp
                        XMLParserLiaisonDefault.hpp
               c/src/XPath XPath.cpp XPath.hpp XPathEnvSupportDefault.cpp
                        XPathEnvSupportDefault.hpp XPathFunctionTable.cpp
                        XPathFunctionTable.hpp XPathProcessorImpl.cpp
                        XPathProcessorImpl.hpp
               c/src/XSLT Constants.cpp Constants.hpp ElemNumber.cpp
                        ElemNumber.hpp FunctionSystemProperty.cpp
                        StylesheetExecutionContextDefault.cpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
               c/src/XercesParserLiaison XercesParserLiaison.cpp
                        XercesParserLiaison.hpp
               c/src/XercesPlatformSupport TextFileOutputStream.cpp
                        XercesStdTextOutputStream.cpp
  Added:       c/src/DOMSupport DOMSupportInit.cpp DOMSupportInit.hpp
               c/src/PlatformSupport PlatformSupportInit.cpp
                        PlatformSupportInit.hpp
               c/src/XMLSupport XMLSupportInit.cpp XMLSupportInit.hpp
               c/src/XPath XPathInit.cpp XPathInit.hpp
               c/src/XSLT XSLTInit.cpp XSLTInit.hpp
               c/src/XalanDOM XalanDOMInit.cpp XalanDOMInit.hpp
  Log:
  Changes for static initialize/terminate and memory leak detection.
  
  Revision  Changes    Path
  1.15      +59 -19    xml-xalan/c/src/DOMSupport/DOMServices.cpp
  
  Index: DOMServices.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/DOMServices.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- DOMServices.cpp   2000/08/10 17:52:01     1.14
  +++ DOMServices.cpp   2000/08/31 19:42:47     1.15
  @@ -78,29 +78,37 @@
   
   
   
  -#if defined(XALAN_INLINE_INITIALIZATION)
  +// These four XalanDOMString instances will hold the actual
  +// data.  This way, the DOMSupport references can be const,
  +// but we can initialize the data when we want to.
  +static XalanDOMString        s_XMLString;
  +static XalanDOMString        s_XMLNamespaceURI;
  +static XalanDOMString        s_XMLNamespace;
  +static XalanDOMString        s_XMLNamespaceWithSeparator;
  +
  +
  +const XalanDOMString&        DOMServices::s_XMLString = ::s_XMLString;
  +const XalanDOMString&        DOMServices::s_XMLNamespaceURI = 
::s_XMLNamespaceURI;
  +const XalanDOMString&        DOMServices::s_XMLNamespace = ::s_XMLNamespace;
  +const XalanDOMString&        DOMServices::s_XMLNamespaceWithSeparator = 
::s_XMLNamespaceWithSeparator;
   
  -const XalanDOMString DOMServices::s_XMLString;
  -const XalanDOMString DOMServices::s_XMLNamespaceURI;
  -const XalanDOMString DOMServices::s_XMLNamespace;
  -const XalanDOMString DOMServices::s_XMLNamespaceWithSeparator;
  -
  -#else
  -
  -const XalanDOMString 
DOMServices::s_XMLString(XALAN_STATIC_UCODE_STRING("xml"));
  -const XalanDOMString 
DOMServices::s_XMLNamespaceURI(XALAN_STATIC_UCODE_STRING("http://www.w3.org/XML/1998/namespace";));
  -const XalanDOMString 
DOMServices::s_XMLNamespace(XALAN_STATIC_UCODE_STRING("xmlns"));
  -const XalanDOMString 
DOMServices::s_XMLNamespaceWithSeparator(XALAN_STATIC_UCODE_STRING("xmlns:"));
  -
  -#endif
  -
  -const unsigned int           DOMServices::s_XMLStringLength = 
length(s_XMLString);
  -const unsigned int           DOMServices::s_XMLNamespaceURILength = 
length(s_XMLNamespaceURI);
  -const unsigned int           DOMServices::s_XMLNamespaceLength = 
length(s_XMLNamespace);
  -const unsigned int           DOMServices::s_XMLNamespaceWithSeparatorLength 
= length(s_XMLNamespaceWithSeparator);
   
   
  +// These four unsigned ints will hold the actual
  +// data.  This way, the DOMSupport references can be const,
  +// but we can initialize the data when we want to.
  +static unsigned int          s_XMLStringLength = 0;
  +static unsigned int          s_XMLNamespaceURILength = 0;
  +static unsigned int          s_XMLNamespaceLength = 0;
  +static unsigned int          s_XMLNamespaceWithSeparatorLength = 0;
  +
  +const unsigned int&          DOMServices::s_XMLStringLength = 
::s_XMLStringLength;
  +const unsigned int&          DOMServices::s_XMLNamespaceURILength = 
::s_XMLNamespaceURILength;
  +const unsigned int&          DOMServices::s_XMLNamespaceLength = 
::s_XMLNamespaceLength;
  +const unsigned int&          DOMServices::s_XMLNamespaceWithSeparatorLength 
= ::s_XMLNamespaceWithSeparatorLength;
   
  +
  +
   DOMServices::WhitespaceSupport::WhitespaceSupport()
   {
   }
  @@ -145,6 +153,38 @@
        }
   
        return i == theLength ? true : false;
  +}
  +
  +
  +
  +void
  +DOMServices::initialize()
  +{
  +     ::s_XMLString = XALAN_STATIC_UCODE_STRING("xml");
  +     ::s_XMLNamespaceURI = 
XALAN_STATIC_UCODE_STRING("http://www.w3.org/XML/1998/namespace";);
  +     ::s_XMLNamespace = XALAN_STATIC_UCODE_STRING("xmlns");
  +     ::s_XMLNamespaceWithSeparator = XALAN_STATIC_UCODE_STRING("xmlns:");
  +
  +     ::s_XMLStringLength = length(DOMServices::s_XMLString);
  +     ::s_XMLNamespaceURILength = length(DOMServices::s_XMLNamespaceURI);
  +     ::s_XMLNamespaceLength = length(DOMServices::s_XMLNamespace);
  +     ::s_XMLNamespaceWithSeparatorLength = 
length(DOMServices::s_XMLNamespaceWithSeparator);
  +}
  +
  +
  +
  +void
  +DOMServices::terminate()
  +{
  +     clear(::s_XMLString);
  +     clear(::s_XMLNamespaceURI);
  +     clear(::s_XMLNamespace);
  +     clear(::s_XMLNamespaceWithSeparator);
  +
  +     ::s_XMLStringLength = 0;
  +     ::s_XMLNamespaceURILength = 0;
  +     ::s_XMLNamespaceLength = 0;
  +     ::s_XMLNamespaceWithSeparatorLength = 0;
   }
   
   
  
  
  
  1.12      +23 -20    xml-xalan/c/src/DOMSupport/DOMServices.hpp
  
  Index: DOMServices.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/DOMServices.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DOMServices.hpp   2000/08/10 17:52:01     1.11
  +++ DOMServices.hpp   2000/08/31 19:42:48     1.12
  @@ -87,27 +87,16 @@
   {
   public:
   
  -#if defined(XALAN_INLINE_INITIALIZATION)
  +     static const XalanDOMString&    s_XMLString;
  +     static const XalanDOMString&    s_XMLNamespaceURI;
  +     static const XalanDOMString&    s_XMLNamespace;
  +     static const XalanDOMString&    s_XMLNamespaceWithSeparator;
  +
  +     static const unsigned int&              s_XMLStringLength;
  +     static const unsigned int&              s_XMLNamespaceURILength;
  +     static const unsigned int&              s_XMLNamespaceLength;
  +     static const unsigned int&              
s_XMLNamespaceWithSeparatorLength;
   
  -     static const XalanDOMString             
s_XMLString(XALAN_STATIC_UCODE_STRING("xml"));
  -     static const XalanDOMString             
s_XMLNamespaceURI(XALAN_STATIC_UCODE_STRING("http://www.w3.org/XML/1998/namespace";));
  -     static const XalanDOMString             
s_XMLNamespace(XALAN_STATIC_UCODE_STRING("xmlns"));
  -     static const XalanDOMString             
s_XMLNamespaceWithSeparator(XALAN_STATIC_UCODE_STRING("xmlns:"));
  -
  -#else
  -
  -     static const XalanDOMString             s_XMLString;
  -     static const XalanDOMString             s_XMLNamespaceURI;
  -     static const XalanDOMString             s_XMLNamespace;
  -     static const XalanDOMString             s_XMLNamespaceWithSeparator;
  -
  -#endif
  -
  -     static const unsigned int               s_XMLStringLength;
  -     static const unsigned int               s_XMLNamespaceURILength;
  -     static const unsigned int               s_XMLNamespaceLength;
  -     static const unsigned int               
s_XMLNamespaceWithSeparatorLength;
  -
        class XALAN_DOMSUPPORT_EXPORT WhitespaceSupport
        {
        public:
  @@ -148,6 +137,20 @@
                virtual bool
                isIgnorableWhitespace(const XalanText&  node) const;
        };
  +
  +     /**
  +      * Initialize static data.  Must be called before any
  +      * other functions are called.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Destroy static data.  After thus function is called,
  +      * no other functions can be called.
  +      */
  +     static void
  +     terminate();
   
        /**
         * Retrieves data for node
  
  
  
  1.1                  xml-xalan/c/src/DOMSupport/DOMSupportInit.cpp
  
  Index: DOMSupportInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "DOMSupportInit.hpp"
  
  
  
  #include "DOMServices.hpp"
  
  
  
  unsigned long DOMSupportInit::s_initCounter = 0;
  
  
  
  DOMSupportInit::DOMSupportInit() :
        m_platformSupportInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  DOMSupportInit::~DOMSupportInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  DOMSupportInit::initialize()
  {
        DOMServices::initialize();
  }
  
  
  
  void
  DOMSupportInit::terminate()
  {
        DOMServices::terminate();
  }
  
  
  
  1.1                  xml-xalan/c/src/DOMSupport/DOMSupportInit.hpp
  
  Index: DOMSupportInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(DOMSUPPORTINIT_INCLUDE_GUARD_1357924680)
  #define DOMSUPPORTINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <DOMSupport/DOMSupportDefinitions.hpp>
  
  
  
  #include <PlatformSupport/PlatformSupportInit.hpp>
  
  
  
  class XALAN_DOMSUPPORT_EXPORT DOMSupportInit
  {
  public:
  
        explicit
        DOMSupportInit();
  
        ~DOMSupportInit();
  
  private:
  
        // Not implemented...
        DOMSupportInit(const DOMSupportInit&);
  
        DOMSupportInit&
        operator=(const DOMSupportInit&);
  
        
        static void
        initialize();
  
        static void
        terminate();
  
        const PlatformSupportInit       m_platformSupportInit;
  
        static unsigned long            s_initCounter;
  };
  
  
  
  #endif        // !defined(DOMSUPPORTINIT_INCLUDE_GUARD_1357924680)
  
  
  
  1.12      +25 -50    xml-xalan/c/src/PlatformSupport/AttributeListImpl.cpp
  
  Index: AttributeListImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/AttributeListImpl.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- AttributeListImpl.cpp     2000/08/22 20:18:49     1.11
  +++ AttributeListImpl.cpp     2000/08/31 19:42:50     1.12
  @@ -148,15 +148,18 @@
                // Reserve the appropriate capacity right now...
                tempVector.reserve(theLength);
   
  -             try
                {
  +                     // This will delete everything in tempVector when we're 
done...
  +                     CollectionDeleteGuard<AttributeVectorType,
  +                                                               
DeleteFunctor<AttributeVectorEntry> >         theGuard(tempVector);
  +
                        // Copy the vector entries, and build the index map...
                        for(unsigned int i = 0; i < theLength; i++)
                        {
                                assert(theRHS.m_AttributeVector[i] != 0);
   
                                XalanAutoPtr<AttributeVectorEntry>      
theEntry(
  -                                     new 
AttributeVectorEntry(*theRHS.m_AttributeVector[i]));
  +                                             new 
AttributeVectorEntry(*theRHS.m_AttributeVector[i]));
   
                                // Add the item...
                                tempVector.push_back(theEntry.get());
  @@ -167,24 +170,15 @@
   
                                // Create an entry in the index map...
                                
tempMap.insert(AttributeKeyMapType::value_type(entry->m_Name.begin(),
  -                                                                             
                                           entry));
  +                                                                             
                                                   entry));
                        }
  -             }
  -             catch(...)
  -             {
  -                     deleteEntries(tempVector);
   
  -                     throw;
  +                     // OK, we're safe, so swap the contents of the
  +                     // containers.  This is guaranteed not to throw.
  +                     m_AttributeKeyMap.swap(tempMap);
  +                     m_AttributeVector.swap(tempVector);
                }
   
  -             // OK, we're safe, so swap the contents of the
  -             // containers.  This is guaranteed not to throw.
  -             m_AttributeKeyMap.swap(tempMap);
  -             m_AttributeVector.swap(tempVector);
  -
  -             // This will delete all of the old entries.
  -             deleteEntries(tempVector);
  -
                assert(getLength() == theLength);
                assert(m_AttributeKeyMap.size() == m_AttributeVector.size());
        }
  @@ -202,46 +196,27 @@
                // Note that we can't chain up to our base class operator=()
                // because it's private.
   
  +             // Add all of the attributes to this temp list,
  +             // then swap at the end.  This means we're exception
  +             // safe and don't need any try blocks.
  +             AttributeListImpl       theTempList;
  +
                const unsigned int      theLength = theRHS.getLength();
   
  -             // Some temporary structures to hold everything
  -             // until we're done.
  -             AttributeKeyMapType             tempMap;
  -             AttributeVectorType             tempVector;
  -
  -             // Keep our old entries, in case something
  -             // bad happens.
  -             tempMap.swap(m_AttributeKeyMap);
  -             tempVector.swap(m_AttributeVector);
  +             theTempList.reserve(theLength);
   
  -             try
  +             // Add each attribute.
  +             for(unsigned int i = 0; i < theLength; i++)
                {
  -                     // Reserve the appropriate capacity right now...
  -                     m_AttributeVector.reserve(theLength);
  -
  -                     // Add each attribute.
  -                     for(unsigned int i = 0; i < theLength; i++)
  -                     {
  -                             addAttribute(theRHS.getName(i),
  -                                                      theRHS.getType(i),
  -                                                      theRHS.getValue(i));
  -                     }
  +                     theTempList.addAttribute(
  +                                     theRHS.getName(i),
  +                                     theRHS.getType(i),
  +                                     theRHS.getValue(i));
                }
  -             catch(...)
  -             {
  -                     // Swap everything back...
  -                     tempMap.swap(m_AttributeKeyMap);
  -                     tempVector.swap(m_AttributeVector);
  -
  -                     // This will delete anything new we've
  -                     // created.
  -                     deleteEntries(tempVector);
   
  -                     throw;
  -             }
  -
  -             assert(getLength() == theLength);
  -             assert(m_AttributeKeyMap.size() == m_AttributeVector.size());
  +             // Now that the temp list is built, swap everything. This is
  +             // guaranteed not to throw.
  +             swap(theTempList);
        }
   
        return *this;
  
  
  
  1.10      +26 -0     xml-xalan/c/src/PlatformSupport/AttributeListImpl.hpp
  
  Index: AttributeListImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/AttributeListImpl.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AttributeListImpl.hpp     2000/08/22 20:18:49     1.9
  +++ AttributeListImpl.hpp     2000/08/31 19:42:50     1.10
  @@ -148,6 +148,32 @@
        virtual bool
        removeAttribute(const XMLCh*    name);
   
  +     /**
  +      * Swap the contents of two instances.  This must _never_
  +      * throw an exception.
  +      *
  +      * @param thOther The instance with which to swap.
  +      */
  +     void
  +     swap(AttributeListImpl&         theOther)
  +     {
  +             m_AttributeKeyMap.swap(theOther.m_AttributeKeyMap);
  +
  +             m_AttributeVector.swap(theOther.m_AttributeVector);
  +     }
  +
  +     /**
  +      * Reserve room for the given number of
  +      * attributes.
  +      *
  +      * @param theCount The number to reserve
  +      */
  +     void
  +     reserve(unsigned int    theCount)
  +     {
  +             m_AttributeVector.reserve(theCount);
  +     }
  +
   protected:
   
        // This is not implemented.
  
  
  
  1.12      +47 -0     xml-xalan/c/src/PlatformSupport/STLHelper.hpp
  
  Index: STLHelper.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/STLHelper.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- STLHelper.hpp     2000/08/22 20:18:52     1.11
  +++ STLHelper.hpp     2000/08/31 19:42:51     1.12
  @@ -64,9 +64,11 @@
   
   
   
  +#include <algorithm>
   #include <functional>
   
   
  +
   /**
    * Functor to delete objects, used in STL iteration algorithms.
    */
  @@ -264,6 +266,51 @@
   
                return *theLHS < *theRHS ? true : false;
        }
  +};
  +
  +
  +
  +template<class CollectionType, class DeleteFunctorType>
  +class CollectionDeleteGuard
  +{
  +public:
  +
  +     CollectionDeleteGuard(CollectionType&   theCollection) :
  +             m_collection(&theCollection)
  +     {
  +     }
  +
  +     ~CollectionDeleteGuard()
  +     {
  +             if (m_collection != 0)
  +             {
  +#if !defined(XALAN_NO_NAMESPACES)
  +                     using std::for_each;
  +#endif
  +
  +                     // Delete all of the objects in the temp vector.
  +                     for_each(m_collection->begin(),
  +                                      m_collection->end(),
  +                                      DeleteFunctorType());
  +             }
  +     }
  +
  +     void
  +     release()
  +     {
  +             m_collection = 0;
  +     }
  +
  +private:
  +
  +     // Not implemented...
  +     CollectionDeleteGuard(const CollectionDeleteGuard<CollectionType, 
DeleteFunctorType>&);
  +
  +     CollectionDeleteGuard<CollectionType, DeleteFunctorType>&
  +     operator=(const CollectionDeleteGuard<CollectionType, 
DeleteFunctorType>&);
  +
  +     // Data members...
  +     CollectionType*         m_collection;
   };
   
   
  
  
  
  1.1                  xml-xalan/c/src/PlatformSupport/PlatformSupportInit.cpp
  
  Index: PlatformSupportInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "PlatformSupportInit.hpp"
  
  
  
  unsigned long PlatformSupportInit::s_initCounter = 0;
  
  
  
  PlatformSupportInit::PlatformSupportInit() :
        m_xalanDOMInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  PlatformSupportInit::~PlatformSupportInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  PlatformSupportInit::initialize()
  {
  }
  
  
  
  void
  PlatformSupportInit::terminate()
  {
  }
  
  
  
  1.1                  xml-xalan/c/src/PlatformSupport/PlatformSupportInit.hpp
  
  Index: PlatformSupportInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(PLATFORMSUPPORTINIT_INCLUDE_GUARD_1357924680)
  #define PLATFORMSUPPORTINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <PlatformSupport/PlatformSupportDefinitions.hpp>
  
  
  
  #include <XalanDOM/XalanDOMInit.hpp>
  
  
  class XALAN_PLATFORMSUPPORT_EXPORT PlatformSupportInit
  {
  public:
  
        explicit
        PlatformSupportInit();
  
        ~PlatformSupportInit();
  
  private:
  
        // Not implemented...
        PlatformSupportInit(const PlatformSupportInit&);
  
        PlatformSupportInit&
        operator=(const PlatformSupportInit&);
  
        
        static void
        initialize();
  
        static void
        terminate();
  
        const XalanDOMInit              m_xalanDOMInit;
  
        static unsigned long    s_initCounter;
  };
  
  
  
  #endif        // !defined(ARENAALLOCATOR_INCLUDE_GUARD_1357924680)
  
  
  
  1.35      +30 -3     xml-xalan/c/src/TestXSLT/process.cpp
  
  Index: process.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/TestXSLT/process.cpp,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- process.cpp       2000/08/22 20:57:33     1.34
  +++ process.cpp       2000/08/31 19:42:53     1.35
  @@ -63,7 +63,12 @@
   #include <cstring>
   #include <iostream>
   #include <string>
  +#include <strstream>
   
  +#if !defined(NDEBUG) && defined(_MSC_VER)
  +#include <crtdbg.h>
  +#endif
  +
   
   
   #include <util/PlatformUtils.hpp>
  @@ -74,14 +79,17 @@
   #include <XalanDOM/XalanDOMException.hpp>
   
   
  +
   #include <PlatformSupport/DOMStringHelper.hpp>
   #include <PlatformSupport/DOMStringPrintWriter.hpp>
   #include <PlatformSupport/XalanAutoPtr.hpp>
   
   
  +
   #include <DOMSupport/DOMSupportDefault.hpp>
   
   
  +
   #include <XPath/XObjectFactoryDefault.hpp>
   #include <XPath/XPathEnvSupportDefault.hpp>
   #include <XPath/XPathSupportDefault.hpp>
  @@ -91,15 +99,18 @@
   #include <XPath/XPathProcessorImpl.hpp>
   
   
  +
   #include <XercesPlatformSupport/XercesDOMPrintWriter.hpp>
   #include <XercesPlatformSupport/TextFileOutputStream.hpp>
   #include <XercesPlatformSupport/XercesStdTextOutputStream.hpp>
   
   
  +
   #include <XercesParserLiaison/XercesParserLiaison.hpp>
   #include <XercesParserLiaison/XercesDOMSupport.hpp>
   
   
  +
   #include <XMLSupport/FormatterToDOM.hpp>
   #include <XMLSupport/FormatterToHTML.hpp>
   #include <XMLSupport/FormatterToText.hpp>
  @@ -107,7 +118,9 @@
   #include <XMLSupport/FormatterTreeWalker.hpp>
   
   
  +
   #include <XSLT/XSLTEngineImpl.hpp>
  +#include <XSLT/XSLTInit.hpp>
   #include <XSLT/XSLTInputSource.hpp>
   #include <XSLT/XSLTResultTarget.hpp>
   #include <XSLT/StylesheetRoot.hpp>
  @@ -117,6 +130,7 @@
   #include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
   
   
  +
   //#define XALAN_USE_ICU
   #if defined(XALAN_USE_ICU)
   #include <ICUBridge/ICUBridge.hpp>
  @@ -126,6 +140,8 @@
   #endif
   
   
  +
  +
   //#define XALAN_USE_BLOCK_XOBJECT_FACTORY
   #if defined(XALAN_USE_BLOCK_XOBJECT_FACTORY)
   #include <XalanHiPerf/XObjectFactoryArena.hpp>
  @@ -1006,7 +1022,14 @@
                        int                             argc,
                        const char*             argv[])
   {
  -     /**
  +#if !defined(XALAN_USE_ICU) && 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
  +
  +   /**
         * Command line interface to transform the XML according to 
         * the instructions found in the XSL document.
         *              -in inputXMLURL
  @@ -1014,9 +1037,8 @@
         *              -out outputFileName
         *              -F (Format output pretty-printed)
         */
  -     
  +
        XMLPlatformUtils::Initialize();
  -     XSLTEngineImpl::Initialize();
   
        int                             theResult = 0;
   
  @@ -1050,7 +1072,10 @@
                {
                        try
                        {
  +                             XSLTInit        theInit;
  +
                                theResult = xsltMain(theParams);
  +
                        }
                        catch (XSLException& e)
                        {
  @@ -1164,6 +1189,8 @@
   
                }
        }
  +
  +     XMLPlatformUtils::Terminate();
   
        return theResult;
   }
  
  
  
  1.23      +112 -42   xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp
  
  Index: FormatterToHTML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- FormatterToHTML.cpp       2000/08/22 20:20:30     1.22
  +++ FormatterToHTML.cpp       2000/08/31 19:42:55     1.23
  @@ -55,7 +55,7 @@
    * <http://www.apache.org/>.
    */
   /**
  - * $Id: FormatterToHTML.cpp,v 1.22 2000/08/22 20:20:30 dbertoni Exp $
  + * $Id: FormatterToHTML.cpp,v 1.23 2000/08/31 19:42:55 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -198,42 +198,6 @@
   #endif
   
   
  -const FormatterToHTML::ElementFlagsMapType           
FormatterToHTML::s_elementFlags =
  -     FormatterToHTML::createElementFlagsMap();
  -
  -
  -const FormatterToHTML::ElemDesc                                      
FormatterToHTML::s_dummyDesc(FormatterToHTML::ElemDesc::BLOCK);
  -
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_doctypeHeaderStartString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<!DOCTYPE HTML")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_doctypeHeaderPublicString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
PUBLIC \"")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_doctypeHeaderSystemString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
SYSTEM")));
  -
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_scriptString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("SCRIPT")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_styleString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("STYLE")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_ltString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("lt")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_gtString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("gt")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_ampString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("amp")));
  -
  -const XalanDOMCharVectorType FormatterToHTML::s_fnofString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("fnof")));
  -
  -
   FormatterToHTML::FormatterToHTML(
          Writer&                               writer,
          const XalanDOMString& encoding, 
  @@ -963,8 +927,8 @@
   
   
   
  -FormatterToHTML::ElementFlagsMapType
  -FormatterToHTML::createElementFlagsMap()
  +void
  +FormatterToHTML::initializeElementFlagsMap(ElementFlagsMapType&              
theElementFlags)
   {
   #if defined(XALAN_NO_NAMESPACES)
        typedef pair<ElementFlagsMapType::iterator, bool>       PairType;
  @@ -972,8 +936,6 @@
        typedef std::pair<ElementFlagsMapType::iterator, bool>  PairType;
   #endif
   
  -     ElementFlagsMapType     theElementFlags;
  -
        // HTML 4.0 loose DTD
        theElementFlags.insert(
                ElementFlagsMapType::value_type(
  @@ -1475,6 +1437,114 @@
                ElementFlagsMapType::value_type(
                        XALAN_STATIC_UCODE_STRING("HTML"),
                        ElemDesc(0|ElemDesc::BLOCK)));
  +}
  +
  +
  +
  +static FormatterToHTML::ElementFlagsMapType          s_elementFlags;
  +
  +
  +const FormatterToHTML::ElementFlagsMapType&          
FormatterToHTML::s_elementFlags = ::s_elementFlags;
  +
  +
  +const FormatterToHTML::ElemDesc                                      
FormatterToHTML::s_dummyDesc(FormatterToHTML::ElemDesc::BLOCK);
  +
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderStartString;
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderPublicString;
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderSystemString;
  +
  +static XalanDOMCharVectorType        s_scriptString;
  +
  +static XalanDOMCharVectorType        s_styleString;
  +
  +static XalanDOMCharVectorType        s_ltString;
  +
  +static XalanDOMCharVectorType        s_gtString;
  +
  +static XalanDOMCharVectorType        s_ampString;
  +
  +static XalanDOMCharVectorType        s_fnofString;
  +
  +
  +
  +const XalanDOMCharVectorType&        
FormatterToHTML::s_doctypeHeaderStartString =
  +                     ::s_doctypeHeaderStartString;
  +
  +const XalanDOMCharVectorType&        
FormatterToHTML::s_doctypeHeaderPublicString =
  +                     ::s_doctypeHeaderPublicString;
  +
  +const XalanDOMCharVectorType&        
FormatterToHTML::s_doctypeHeaderSystemString =
  +                     ::s_doctypeHeaderSystemString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_scriptString =
  +                     ::s_scriptString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_styleString =
  +                     ::s_styleString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_ltString =
  +                     ::s_ltString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_gtString =
  +                     ::s_gtString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_ampString =
  +                     ::s_ampString;
  +
  +const XalanDOMCharVectorType&        FormatterToHTML::s_fnofString =
  +                     ::s_fnofString;
  +
  +
  +
  +void
  +FormatterToHTML::initialize()
  +{
  +     initializeElementFlagsMap(::s_elementFlags);
  +
  +     ::s_doctypeHeaderStartString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<!DOCTYPE HTML")));
  +
  +     ::s_doctypeHeaderPublicString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" PUBLIC \"")));
  +
  +     ::s_doctypeHeaderSystemString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" SYSTEM")));
  +
  +     ::s_scriptString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("SCRIPT")));
  +
  +     ::s_styleString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("STYLE")));
  +
  +     ::s_ltString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("lt")));
  +
  +     ::s_gtString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("gt")));
  +
  +     ::s_ampString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("amp")));
  +
  +     ::s_fnofString = 
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("fnof")));
  +}
  +
  +
  +
  +void
  +FormatterToHTML::terminate()
  +{
  +     ElementFlagsMapType().swap(::s_elementFlags);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderStartString);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderPublicString);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderSystemString);
  +
  +     XalanDOMCharVectorType().swap(::s_scriptString);
  +
  +     XalanDOMCharVectorType().swap(::s_styleString);
  +
  +     XalanDOMCharVectorType().swap(::s_ltString);
  +
  +     XalanDOMCharVectorType().swap(::s_gtString);
  +
  +     XalanDOMCharVectorType().swap(::s_ampString);
   
  -     return theElementFlags;
  +     XalanDOMCharVectorType().swap(::s_fnofString);
   }
  
  
  
  1.11      +44 -30    xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp
  
  Index: FormatterToHTML.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- FormatterToHTML.hpp       2000/08/07 19:51:31     1.10
  +++ FormatterToHTML.hpp       2000/08/31 19:42:55     1.11
  @@ -58,7 +58,7 @@
   #define FORMATTERTOHTML_HEADER_GUARD_1357924680
   
   /**
  - * $Id: FormatterToHTML.hpp,v 1.10 2000/08/07 19:51:31 dbertoni Exp $
  + * $Id: FormatterToHTML.hpp,v 1.11 2000/08/31 19:42:55 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -99,6 +99,18 @@
   
   public:
   
  +     /**
  +      * Perform static initialization.  See class XMLSupportInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform static shut down.  See class XMLSupportInit.
  +      */
  +     static void
  +     terminate();
  +
        enum eDummy
        {
                eDefaultIndentAmount = 4
  @@ -162,21 +174,6 @@
                        const XMLCh* const      data);
   
   
  -protected:
  -
  -     // These methods are new ...
  -     /**
  -      * Write an attribute string.
  -      * @param string The string to write.
  -      * @param encoding The current encoding.
  -      */
  -     virtual void
  -     writeAttrString(
  -                     const XalanDOMChar*             string,
  -                     const XalanDOMString&   encoding);
  -
  -private:
  -
        class ElemDesc
        {
        public:
  @@ -265,12 +262,29 @@
   
   
   #if defined(XALAN_NO_NAMESPACES)
  -     typedef map<XalanDOMString, ElemDesc, less<XalanDOMString> >    
ElementFlagsMapType;
  +     typedef map<XalanDOMString,
  +                             ElemDesc,
  +                             less<XalanDOMString> >                  
ElementFlagsMapType;
   #else
        typedef std::map<XalanDOMString, ElemDesc>      ElementFlagsMapType;
   #endif
  +
  +protected:
  +
  +     // These methods are new ...
  +     /**
  +      * Write an attribute string.
  +      * @param string The string to write.
  +      * @param encoding The current encoding.
  +      */
  +     virtual void
  +     writeAttrString(
  +                     const XalanDOMChar*             string,
  +                     const XalanDOMString&   encoding);
  +
  +private:
   
  -     static const ElementFlagsMapType        s_elementFlags;
  +     static const ElementFlagsMapType&       s_elementFlags;
   
        /**
         * Dummy description for elements not found.
  @@ -280,47 +294,47 @@
        /**
         * The string "<!DOCTYPE  HTML".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderStartString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderStartString;
   
        /**
         * The string " PUBLIC \"".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderPublicString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderPublicString;
   
        /**
         * The string " SYSTEM".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderSystemString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderSystemString;
   
        /**
         * The string "SCRIPT".
         */
  -     static const XalanDOMCharVectorType             s_scriptString;
  +     static const XalanDOMCharVectorType&    s_scriptString;
   
        /**
         * The string "STYLE".
         */
  -     static const XalanDOMCharVectorType             s_styleString;
  +     static const XalanDOMCharVectorType&    s_styleString;
   
        /**
         * The string "lt".
         */
  -     static const XalanDOMCharVectorType             s_ltString;
  +     static const XalanDOMCharVectorType&    s_ltString;
   
        /**
         * The string "gt".
         */
  -     static const XalanDOMCharVectorType             s_gtString;
  +     static const XalanDOMCharVectorType&    s_gtString;
   
        /**
         * The string "amp.
         */
  -     static const XalanDOMCharVectorType             s_ampString;
  +     static const XalanDOMCharVectorType&    s_ampString;
   
        /**
         * The string "fnof".
         */
  -     static const XalanDOMCharVectorType             s_fnofString;
  +     static const XalanDOMCharVectorType&    s_fnofString;
   
        /**
         * Set the attribute characters what will require special mapping.
  @@ -369,8 +383,8 @@
         *
         * @return map of element flags.
         */
  -     static ElementFlagsMapType
  -     createElementFlagsMap();
  +     static void
  +     initializeElementFlagsMap(ElementFlagsMapType&  );
   
        /**
         * Process an attribute.
  @@ -396,7 +410,7 @@
                        const XalanDOMChar*             string,
                        const XalanDOMString    encoding);
   
  -      XalanDOMString m_currentElementName;
  +     XalanDOMString  m_currentElementName;
   
        bool                    m_inBlockElem;
   
  
  
  
  1.24      +159 -55   xml-xalan/c/src/XMLSupport/FormatterToXML.cpp
  
  Index: FormatterToXML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.cpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- FormatterToXML.cpp        2000/08/22 20:20:30     1.23
  +++ FormatterToXML.cpp        2000/08/31 19:42:57     1.24
  @@ -74,60 +74,6 @@
   static const XalanDOMChar    theDefaultAttrSpecialChars[] = {'<', '>', '&', 
'"', '\r', '\n', 0 };
   
   
  -const XalanDOMCharVectorType FormatterToXML::s_xsltNextIsRawString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("xslt-next-is-raw")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_formatterToDOMString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("formatter-to-dom")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_defaultMIMEEncoding = 
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("UTF-8")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_doctypeHeaderStartString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<!DOCTYPE ")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_doctypeHeaderPublicString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
PUBLIC \"")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_doctypeHeaderSystemString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
SYSTEM \"")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_defaultVersionString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("1.0")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_xmlHeaderStartString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<?xml 
version=\"")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_xmlHeaderEncodingString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\" 
encoding=\"")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_xmlHeaderStandaloneString =
  -             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\" 
standalone=\"")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_xmlHeaderEndString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\"?>")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_windows1250EncodingString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("WINDOWS-1250")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_usASCIIEncodingString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("US-ASCII")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_asciiEncodingString =
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("ASCII")));
  -
  -const XalanDOMCharVectorType FormatterToXML::s_utf8EncodingString=
  -             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("UTF-8")));
  -
  -XalanDOMChar                         FormatterToXML::s_lineSep = '\n';
  -
  -
  -bool                                         
FormatterToXML::s_javaEncodingIsISO = false; 
  -
  -
  -const FormatterToXML::DOMCharBufferType::size_type   
FormatterToXML::s_maxBufferSize = 512;
  -
  -
   FormatterToXML::FormatterToXML(
                        Writer&                                 writer,
                        const XalanDOMString&   version,
  @@ -1548,5 +1494,163 @@
        
s_revhash.insert(make_pair(XalanDOMString(XALAN_STATIC_UCODE_STRING("CP870")), 
XalanDOMString(XALAN_STATIC_UCODE_STRING("EBCDIC-CP-YU"))));
        
s_revhash.insert(make_pair(XalanDOMString(XALAN_STATIC_UCODE_STRING("CP871")), 
XalanDOMString(XALAN_STATIC_UCODE_STRING("EBCDIC-CP-IS"))));
        
s_revhash.insert(make_pair(XalanDOMString(XALAN_STATIC_UCODE_STRING("CP918")), 
XalanDOMString(XALAN_STATIC_UCODE_STRING("EBCDIC-CP-AR2"))));
  +}
  +#endif
  +
  +
  +static XalanDOMCharVectorType        s_xsltNextIsRawString;
  +
  +static XalanDOMCharVectorType        s_formatterToDOMString;
  +
  +static XalanDOMCharVectorType        s_defaultMIMEEncoding;
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderStartString;
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderPublicString;
  +
  +static XalanDOMCharVectorType        s_doctypeHeaderSystemString;
  +
  +static XalanDOMCharVectorType        s_defaultVersionString;
  +
  +static XalanDOMCharVectorType        s_xmlHeaderStartString;
  +
  +static XalanDOMCharVectorType        s_xmlHeaderEncodingString;
  +
  +static XalanDOMCharVectorType        s_xmlHeaderStandaloneString;
  +
  +static XalanDOMCharVectorType        s_xmlHeaderEndString;
  +
  +static XalanDOMCharVectorType        s_windows1250EncodingString;
  +
  +static XalanDOMCharVectorType        s_usASCIIEncodingString;
  +
  +static XalanDOMCharVectorType        s_asciiEncodingString;
  +
  +static XalanDOMCharVectorType        s_utf8EncodingString ;
  +
  +
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_xsltNextIsRawString = 
::s_xsltNextIsRawString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_formatterToDOMString 
= ::s_formatterToDOMString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_defaultMIMEEncoding = 
::s_defaultMIMEEncoding;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_doctypeHeaderStartString = ::s_doctypeHeaderStartString;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_doctypeHeaderPublicString = ::s_doctypeHeaderPublicString;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_doctypeHeaderSystemString = ::s_doctypeHeaderSystemString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_defaultVersionString 
= ::s_defaultVersionString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_xmlHeaderStartString 
= ::s_xmlHeaderStartString;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_xmlHeaderEncodingString = ::s_xmlHeaderEncodingString;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_xmlHeaderStandaloneString = ::s_xmlHeaderStandaloneString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_xmlHeaderEndString = 
::s_xmlHeaderEndString;
  +
  +const XalanDOMCharVectorType&        
FormatterToXML::s_windows1250EncodingString = ::s_windows1250EncodingString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_usASCIIEncodingString 
= ::s_usASCIIEncodingString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_asciiEncodingString = 
::s_asciiEncodingString;
  +
  +const XalanDOMCharVectorType&        FormatterToXML::s_utf8EncodingString = 
::s_utf8EncodingString;
  +
  +XalanDOMChar                                 FormatterToXML::s_lineSep = 
'\n';
  +
  +
  +bool                                                 
FormatterToXML::s_javaEncodingIsISO = false; 
  +
  +
  +const FormatterToXML::DOMCharBufferType::size_type   
FormatterToXML::s_maxBufferSize = 512;
  +
  +
  +
  +void
  +FormatterToXML::initialize()
  +{
  +     ::s_xsltNextIsRawString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("xslt-next-is-raw")));
  +
  +     ::s_formatterToDOMString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("formatter-to-dom")));
  +
  +     ::s_defaultMIMEEncoding = 
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("UTF-8")));
  +
  +     ::s_doctypeHeaderStartString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<!DOCTYPE ")));
  +
  +     ::s_doctypeHeaderPublicString =
  +             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
PUBLIC \"")));
  +
  +     ::s_doctypeHeaderSystemString =
  +             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING(" 
SYSTEM \"")));
  +
  +     ::s_defaultVersionString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("1.0")));
  +
  +     ::s_xmlHeaderStartString =
  +             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("<?xml 
version=\"")));
  +
  +     ::s_xmlHeaderEncodingString =
  +             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\" 
encoding=\"")));
  +
  +     ::s_xmlHeaderStandaloneString =
  +             MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\" 
standalone=\"")));
  +
  +     ::s_xmlHeaderEndString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("\"?>")));
  +
  +     ::s_windows1250EncodingString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("WINDOWS-1250")));
  +
  +     ::s_usASCIIEncodingString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("US-ASCII")));
  +
  +     ::s_asciiEncodingString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("ASCII")));
  +
  +     ::s_utf8EncodingString =
  +             
MakeXalanDOMCharVector(c_wstr(XALAN_STATIC_UCODE_STRING("UTF-8")));
  +}
  +
  +
  +
  +void
  +FormatterToXML::terminate()
  +{
  +     XalanDOMCharVectorType().swap(::s_xsltNextIsRawString);
  +
  +     XalanDOMCharVectorType().swap(::s_formatterToDOMString);
  +
  +     XalanDOMCharVectorType().swap(::s_defaultMIMEEncoding);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderStartString);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderPublicString);
  +
  +     XalanDOMCharVectorType().swap(::s_doctypeHeaderSystemString);
  +
  +     XalanDOMCharVectorType().swap(::s_defaultVersionString);
  +
  +     XalanDOMCharVectorType().swap(::s_xmlHeaderStartString);
  +
  +     XalanDOMCharVectorType().swap(::s_xmlHeaderEncodingString);
  +
  +     XalanDOMCharVectorType().swap(::s_xmlHeaderStandaloneString);
  +
  +     XalanDOMCharVectorType().swap(::s_xmlHeaderEndString);
  +
  +     XalanDOMCharVectorType().swap(::s_windows1250EncodingString);
  +
  +     XalanDOMCharVectorType().swap(::s_usASCIIEncodingString);
  +
  +     XalanDOMCharVectorType().swap(::s_asciiEncodingString);
  +
  +     XalanDOMCharVectorType().swap(::s_utf8EncodingString);
   }
  -#endif
  \ No newline at end of file
  
  
  
  1.15      +28 -15    xml-xalan/c/src/XMLSupport/FormatterToXML.hpp
  
  Index: FormatterToXML.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.hpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- FormatterToXML.hpp        2000/08/22 20:20:31     1.14
  +++ FormatterToXML.hpp        2000/08/31 19:42:57     1.15
  @@ -101,6 +101,18 @@
        };
   
        /**
  +      * Perform static initialization.  See class XMLSupportInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform static shut down.  See class XMLSupportInit.
  +      */
  +     static void
  +     terminate();
  +
  +     /**
         * Constructor for customized encoding and doctype.
         *
         * @param writer            character output stream to use
  @@ -598,12 +610,12 @@
        /**
         * The text "xslt-next-is-raw".
         */
  -     static const XalanDOMCharVectorType             s_xsltNextIsRawString;
  +     static const XalanDOMCharVectorType&    s_xsltNextIsRawString;
   
        /**
         * The string "formatter-to-dom".
         */
  -     static const XalanDOMCharVectorType             s_formatterToDOMString;
  +     static const XalanDOMCharVectorType&    s_formatterToDOMString;
   
   #if defined(XALAN_NO_NAMESPACES)
        typedef vector<bool>                            BoolStackType;
  @@ -682,6 +694,7 @@
   
        // Data members...
        bool            m_shouldFlush;
  +
        bool            m_bytesEqualChars;
   
        /**
  @@ -729,67 +742,67 @@
        /**
         * The default MIME encoding.
         */
  -     static const XalanDOMCharVectorType             s_defaultMIMEEncoding;
  +     static const XalanDOMCharVectorType&    s_defaultMIMEEncoding;
   
        /**
         * The string "<!DOCTYPE ".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderStartString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderStartString;
   
        /**
         * The string " PUBLIC \"".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderPublicString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderPublicString;
   
        /**
         * The string " SYSTEM \"".
         */
  -     static const XalanDOMCharVectorType             
s_doctypeHeaderSystemString;
  +     static const XalanDOMCharVectorType&    s_doctypeHeaderSystemString;
   
        /**
         * The string "<?xml version=\"".
         */
  -     static const XalanDOMCharVectorType             s_xmlHeaderStartString;
  +     static const XalanDOMCharVectorType&    s_xmlHeaderStartString;
   
        /**
         * The string "<?xml version=\"".
         */
  -     static const XalanDOMCharVectorType             
s_xmlHeaderEncodingString;
  +     static const XalanDOMCharVectorType&    s_xmlHeaderEncodingString;
   
        /**
         * The string "\" standalone=\"".
         */
  -     static const XalanDOMCharVectorType             
s_xmlHeaderStandaloneString;
  +     static const XalanDOMCharVectorType&    s_xmlHeaderStandaloneString;
   
        /**
         * The string "\"?>".
         */
  -     static const XalanDOMCharVectorType             s_xmlHeaderEndString;
  +     static const XalanDOMCharVectorType&    s_xmlHeaderEndString;
   
        /**
         * The string "1.0".
         */
  -     static const XalanDOMCharVectorType             s_defaultVersionString;
  +     static const XalanDOMCharVectorType&    s_defaultVersionString;
   
        /**
         * The string "WINDOWS-1250".
         */
  -     static const XalanDOMCharVectorType             
s_windows1250EncodingString;
  +     static const XalanDOMCharVectorType&    s_windows1250EncodingString;
   
        /**
         * The string "US-ASCII".
         */
  -     static const XalanDOMCharVectorType             s_usASCIIEncodingString;
  +     static const XalanDOMCharVectorType&    s_usASCIIEncodingString;
   
        /**
         * The string "ASCII".
         */
  -     static const XalanDOMCharVectorType             s_asciiEncodingString;
  +     static const XalanDOMCharVectorType&    s_asciiEncodingString;
   
        /**
         * The string "UTF-8".
         */
  -     static const XalanDOMCharVectorType             s_utf8EncodingString;
  +     static const XalanDOMCharVectorType&    s_utf8EncodingString;
   
   
        DOMCharBufferType               m_charBuf;
  
  
  
  1.6       +1 -1      xml-xalan/c/src/XMLSupport/XMLParserLiaison.hpp
  
  Index: XMLParserLiaison.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/XMLParserLiaison.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLParserLiaison.hpp      2000/07/13 17:53:55     1.5
  +++ XMLParserLiaison.hpp      2000/08/31 19:42:58     1.6
  @@ -248,7 +248,7 @@
         *
         * @return string describing parser
         */
  -     virtual const XalanDOMString&
  +     virtual const XalanDOMString
        getParserDescription() const = 0;
   
   private:
  
  
  
  1.8       +11 -5     xml-xalan/c/src/XMLSupport/XMLParserLiaisonDefault.cpp
  
  Index: XMLParserLiaisonDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/XMLParserLiaisonDefault.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XMLParserLiaisonDefault.cpp       2000/07/13 17:53:55     1.7
  +++ XMLParserLiaisonDefault.cpp       2000/08/31 19:42:58     1.8
  @@ -67,16 +67,13 @@
   
   
   
  -XMLParserLiaisonDefault::XMLParserLiaisonDefault(
  -                     DOMSupport&                             theDOMSupport,
  -                     const XalanDOMString&   theParserDescription) :
  +XMLParserLiaisonDefault::XMLParserLiaisonDefault(DOMSupport& theDOMSupport) :
        XMLParserLiaison(),
        m_DOMSupport(theDOMSupport),
        m_SpecialCharacters(),
        m_Indent(-1),
        m_fShouldExpandEntityRefs(false),
  -     m_fUseValidation(false),
  -     m_ParserDescription(theParserDescription)
  +     m_fUseValidation(false)
   {
   }
   
  @@ -164,3 +161,12 @@
   {
        return m_DOMSupport.getExpandedAttributeName(attr);
   }
  +
  +
  +
  +const XalanDOMString
  +XMLParserLiaisonDefault::getParserDescription() const
  +{
  +     return XALAN_STATIC_UCODE_STRING("(No parser - generic DOM)");
  +}
  +
  
  
  
  1.5       +3 -9      xml-xalan/c/src/XMLSupport/XMLParserLiaisonDefault.hpp
  
  Index: XMLParserLiaisonDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/XMLParserLiaisonDefault.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLParserLiaisonDefault.hpp       2000/07/13 17:53:55     1.4
  +++ XMLParserLiaisonDefault.hpp       2000/08/31 19:42:58     1.5
  @@ -85,12 +85,8 @@
         *                          (toXMLString, digest, ...)
         *
         * @param theDOMSupport        instance of DOMSupport object
  -      * @param theParserDescription string description of parser
         */
  -     XMLParserLiaisonDefault(
  -                     DOMSupport&                             theDOMSupport,
  -                     const XalanDOMString&   theParserDescription =
  -                                     
XalanDOMString(XALAN_STATIC_UCODE_STRING("(No parser - generic DOM)")));
  +     XMLParserLiaisonDefault(DOMSupport&             theDOMSupport);
   
        virtual
        ~XMLParserLiaisonDefault();
  @@ -152,8 +148,8 @@
        virtual void
        setUseValidation(bool b) { m_fUseValidation = b; }
   
  -     virtual const XalanDOMString&
  -     getParserDescription() const { return m_ParserDescription; }
  +     virtual const XalanDOMString
  +     getParserDescription() const;
   
   protected:
   
  @@ -175,8 +171,6 @@
   
        bool                                    m_fShouldExpandEntityRefs;
        bool                                    m_fUseValidation;
  -
  -     const XalanDOMString    m_ParserDescription;
   };
   
   
  
  
  
  1.1                  xml-xalan/c/src/XMLSupport/XMLSupportInit.cpp
  
  Index: XMLSupportInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "XMLSupportInit.hpp"
  
  
  
  #include "FormatterToHTML.hpp"
  
  
  
  unsigned long XMLSupportInit::s_initCounter = 0;
  
  
  
  XMLSupportInit::XMLSupportInit() :
        m_platformSupportInit(),
        m_domSupportInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  XMLSupportInit::~XMLSupportInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  XMLSupportInit::initialize()
  {
        FormatterToXML::initialize();
  
        FormatterToHTML::initialize();
  }
  
  
  
  void
  XMLSupportInit::terminate()
  {
        FormatterToHTML::terminate();
  
        FormatterToXML::terminate();
  }
  
  
  
  1.1                  xml-xalan/c/src/XMLSupport/XMLSupportInit.hpp
  
  Index: XMLSupportInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(XMLSUPPORTINIT_INCLUDE_GUARD_1357924680)
  #define XMLSUPPORTINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <XMLSupport/XMLSupportDefinitions.hpp>
  
  
  
  #include <PlatformSupport/PlatformSupportInit.hpp>
  
  
  
  #include <DOMSupport/DOMSupportInit.hpp>
  
  
  
  class XALAN_XMLSUPPORT_EXPORT XMLSupportInit
  {
  public:
  
        explicit
        XMLSupportInit();
  
        ~XMLSupportInit();
  
  private:
  
        // Not implemented...
        XMLSupportInit(const XMLSupportInit&);
  
        XMLSupportInit&
        operator=(const XMLSupportInit&);
  
        
        static void
        initialize();
  
        static void
        terminate();
  
        const PlatformSupportInit       m_platformSupportInit;
  
        const DOMSupportInit            m_domSupportInit;
  
        static unsigned long            s_initCounter;
  };
  
  
  
  #endif        // !defined(XMLSUPPORTINIT_INCLUDE_GUARD_1357924680)
  
  
  
  1.28      +61 -20    xml-xalan/c/src/XPath/XPath.cpp
  
  Index: XPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPath.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- XPath.cpp 2000/08/15 19:43:19     1.27
  +++ XPath.cpp 2000/08/31 19:43:03     1.28
  @@ -86,26 +86,6 @@
   
   
   
  -#if !defined(XALAN_INLINE_INITIALIZATION)
  -const XalanDOMString                 
XPath::PSEUDONAME_ANY(XALAN_STATIC_UCODE_STRING("*"));
  -const XalanDOMString                 
XPath::PSEUDONAME_ROOT(XALAN_STATIC_UCODE_STRING("/"));
  -const XalanDOMString                 
XPath::PSEUDONAME_TEXT(XALAN_STATIC_UCODE_STRING("#text"));
  -const XalanDOMString                 
XPath::PSEUDONAME_COMMENT(XALAN_STATIC_UCODE_STRING("#comment"));
  -const XalanDOMString                 
XPath::PSEUDONAME_PI(XALAN_STATIC_UCODE_STRING("#pi"));
  -const XalanDOMString                 
XPath::PSEUDONAME_OTHER(XALAN_STATIC_UCODE_STRING("*"));
  -
  -const double                                 XPath::s_MatchScoreNone = 
-9999999999999.0;
  -const double                                 XPath::s_MatchScoreQName = 0.0;
  -const double                                 XPath::s_MatchScoreNSWild = 
-0.25;
  -const double                                 XPath::s_MatchScoreNodeTest = 
-0.5;
  -const double                                 XPath::s_MatchScoreOther = 0.5;
  -
  -#endif
  -
  -XPath::FunctionTableType             XPath::s_functions;
  -
  -
  -
   XPath::XPath(bool    createDefaultLocator) :
        m_defaultXLocator(createDefaultLocator == false ? 0 : 
createXLocatorHandler()),
        m_expression()
  @@ -1468,4 +1448,65 @@
    
   {
        return s_functions[funcID].execute(executionContext, context, opPos, 
argVec);
  +}
  +
  +
  +
  +static XalanDOMString        PSEUDONAME_ANY;
  +static XalanDOMString        PSEUDONAME_ROOT;
  +static XalanDOMString        PSEUDONAME_TEXT;
  +static XalanDOMString        PSEUDONAME_COMMENT;
  +static XalanDOMString        PSEUDONAME_PI;
  +static XalanDOMString        PSEUDONAME_OTHER;
  +
  +
  +
  +const XalanDOMString&        XPath::PSEUDONAME_ANY = ::PSEUDONAME_ANY;
  +const XalanDOMString&        XPath::PSEUDONAME_ROOT = ::PSEUDONAME_ROOT;
  +const XalanDOMString&        XPath::PSEUDONAME_TEXT = ::PSEUDONAME_TEXT;
  +const XalanDOMString&        XPath::PSEUDONAME_COMMENT = 
::PSEUDONAME_COMMENT;
  +const XalanDOMString&        XPath::PSEUDONAME_PI = ::PSEUDONAME_PI;
  +const XalanDOMString&        XPath::PSEUDONAME_OTHER = ::PSEUDONAME_OTHER;
  +
  +
  +
  +const double                 XPath::s_MatchScoreNone = -9999999999999.0;
  +const double                 XPath::s_MatchScoreQName = 0.0;
  +const double                 XPath::s_MatchScoreNSWild = -0.25;
  +const double                 XPath::s_MatchScoreNodeTest = -0.5;
  +const double                 XPath::s_MatchScoreOther = 0.5;
  +
  +
  +
  +// Don't auto-create the table...
  +XPath::FunctionTableType             XPath::s_functions(false);
  +
  +
  +
  +void
  +XPath::initialize()
  +{
  +     s_functions.CreateTable();
  +
  +     ::PSEUDONAME_ANY = XALAN_STATIC_UCODE_STRING("*");
  +     ::PSEUDONAME_ROOT = XALAN_STATIC_UCODE_STRING("/");
  +     ::PSEUDONAME_TEXT = XALAN_STATIC_UCODE_STRING("#text");
  +     ::PSEUDONAME_COMMENT = XALAN_STATIC_UCODE_STRING("#comment");
  +     ::PSEUDONAME_PI = XALAN_STATIC_UCODE_STRING("#pi");
  +     ::PSEUDONAME_OTHER = XALAN_STATIC_UCODE_STRING("*");
  +}
  +
  +
  +
  +void
  +XPath::terminate()
  +{
  +     clear(::PSEUDONAME_ANY);
  +     clear(::PSEUDONAME_ROOT);
  +     clear(::PSEUDONAME_TEXT);
  +     clear(::PSEUDONAME_COMMENT);
  +     clear(::PSEUDONAME_PI);
  +     clear(::PSEUDONAME_OTHER);
  +
  +     s_functions.DestroyTable();
   }
  
  
  
  1.16      +18 -15    xml-xalan/c/src/XPath/XPath.hpp
  
  Index: XPath.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPath.hpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XPath.hpp 2000/08/14 16:33:57     1.15
  +++ XPath.hpp 2000/08/31 19:43:03     1.16
  @@ -99,21 +99,12 @@
   {
   public:
   
  -#if defined(XALAN_INLINE_INITIALIZATION)
  -     const XalanDOMString                    
PSEUDONAME_ANY(XALAN_STATIC_UCODE_STRING("*"));
  -     const XalanDOMString                    
PSEUDONAME_ROOT(XALAN_STATIC_UCODE_STRING("/"));
  -     const XalanDOMString                    
PSEUDONAME_TEXT(XALAN_STATIC_UCODE_STRING("#text"));
  -     const XalanDOMString                    
PSEUDONAME_COMMENT(XALAN_STATIC_UCODE_STRING("#comment"));
  -     const XalanDOMString                    
PSEUDONAME_PI(XALAN_STATIC_UCODE_STRING("#pi"));
  -     const XalanDOMString                    
PSEUDONAME_OTHER(XALAN_STATIC_UCODE_STRING("*"));
  -#else
  -     static const XalanDOMString             PSEUDONAME_ANY;
  -     static const XalanDOMString             PSEUDONAME_ROOT;
  -     static const XalanDOMString             PSEUDONAME_TEXT;
  -     static const XalanDOMString             PSEUDONAME_COMMENT;
  -     static const XalanDOMString             PSEUDONAME_PI;
  -     static const XalanDOMString             PSEUDONAME_OTHER;
  -#endif
  +     static const XalanDOMString&    PSEUDONAME_ANY;
  +     static const XalanDOMString&    PSEUDONAME_ROOT;
  +     static const XalanDOMString&    PSEUDONAME_TEXT;
  +     static const XalanDOMString&    PSEUDONAME_COMMENT;
  +     static const XalanDOMString&    PSEUDONAME_PI;
  +     static const XalanDOMString&    PSEUDONAME_OTHER;
   
   #if defined(XALAN_NO_NAMESPACES)
        typedef vector<XalanDOMString>                  
TargetElementStringsVectorType;
  @@ -121,6 +112,18 @@
        typedef std::vector<XalanDOMString>             
TargetElementStringsVectorType;
   #endif
   
  +
  +     /**
  +      * Perform static initialization.  See class XPathInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform static shut down.  See class XPathInit.
  +      */
  +     static void
  +     terminate();
   
        /**
         * Construct an XPath and optionally a default locator 
  
  
  
  1.17      +49 -0     xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp
  
  Index: XPathEnvSupportDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XPathEnvSupportDefault.cpp        2000/08/15 19:43:19     1.16
  +++ XPathEnvSupportDefault.cpp        2000/08/31 19:43:03     1.17
  @@ -82,6 +82,7 @@
   #if !defined(XALAN_NO_NAMESPACES)
        using std::cerr;
        using std::endl;
  +     using std::for_each;
   #endif
                
   
  @@ -90,6 +91,48 @@
   
   
   
  +struct NamespaceFunctionTableDeleteFunctor
  +{
  +     typedef XPathEnvSupportDefault::FunctionTableType                       
        FunctionTableType;
  +     typedef XPathEnvSupportDefault::NamespaceFunctionTablesType             
NamespaceFunctionTablesType;
  +     /**
  +      * Delete the value object in a map value pair.  The value of the pair 
must
  +      * be of pointer type.
  +      *
  +      * @param thePair key-value pair
  +      */
  +     void
  +     operator()(const NamespaceFunctionTablesType::value_type&       
thePair) const
  +     {
  +             // Clean up the extension namespaces vector
  +             for_each(thePair.second.begin(),
  +                              thePair.second.end(),
  +                              MapValueDeleteFunctor<FunctionTableType>());
  +     }
  +};
  +
  +
  +
  +void
  +XPathEnvSupportDefault::initialize()
  +{
  +}
  +
  +
  +
  +void
  +XPathEnvSupportDefault::terminate()
  +{
  +     // Clean up the extension namespaces vector
  +     for_each(s_externalFunctions.begin(),
  +                      s_externalFunctions.end(),
  +                      NamespaceFunctionTableDeleteFunctor());
  +
  +     NamespaceFunctionTablesType().swap(s_externalFunctions);
  +}
  +
  +
  +
   XPathEnvSupportDefault::XPathEnvSupportDefault() :
        XPathEnvSupport(),
        m_sourceDocs(),
  @@ -101,6 +144,12 @@
   
   XPathEnvSupportDefault::~XPathEnvSupportDefault()
   {
  +     // Clean up the extension namespaces vector
  +     for_each(m_externalFunctions.begin(),
  +                      m_externalFunctions.end(),
  +                      NamespaceFunctionTableDeleteFunctor());
  +
  +     NamespaceFunctionTablesType().swap(m_externalFunctions);
   }
   
   
  
  
  
  1.14      +24 -10    xml-xalan/c/src/XPath/XPathEnvSupportDefault.hpp
  
  Index: XPathEnvSupportDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathEnvSupportDefault.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XPathEnvSupportDefault.hpp        2000/08/14 22:07:24     1.13
  +++ XPathEnvSupportDefault.hpp        2000/08/31 19:43:04     1.14
  @@ -82,6 +82,30 @@
   {
   public:
   
  +#if defined(XALAN_NO_NAMESPACES)
  +     typedef map<XalanDOMString, XalanDocument*, less<XalanDOMString> >      
        SourceDocsTableType;
  +     typedef map<XalanDOMString, Function*, less<XalanDOMString> >           
        FunctionTableType;
  +     typedef map<XalanDOMString, FunctionTableType, less<XalanDOMString> >   
NamespaceFunctionTablesType;
  +#else
  +     typedef std::map<XalanDOMString, XalanDocument*>        
SourceDocsTableType;
  +     typedef std::map<XalanDOMString, Function*>                     
FunctionTableType;
  +     typedef std::map<XalanDOMString, FunctionTableType>     
NamespaceFunctionTablesType;
  +#endif
  +
  +     /**
  +      * Perform initialization of statics -- must be called before any
  +      * processing occurs.  See class XPathInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform termination of statics.  See class XPathInit.
  +      */
  +     static void
  +     terminate();
  +
  +
        XPathEnvSupportDefault();
   
        virtual
  @@ -244,16 +268,6 @@
   
        bool
        operator==(const XPathEnvSupportDefault&) const;
  -
  -#if defined(XALAN_NO_NAMESPACES)
  -     typedef map<XalanDOMString, XalanDocument*, less<XalanDOMString> >      
        SourceDocsTableType;
  -     typedef map<XalanDOMString, Function*, less<XalanDOMString> >           
        FunctionTableType;
  -     typedef map<XalanDOMString, FunctionTableType, less<XalanDOMString> >   
NamespaceFunctionTablesType;
  -#else
  -     typedef std::map<XalanDOMString, XalanDocument*>        
SourceDocsTableType;
  -     typedef std::map<XalanDOMString, Function*>                     
FunctionTableType;
  -     typedef std::map<XalanDOMString, FunctionTableType>     
NamespaceFunctionTablesType;
  -#endif
   
        /**
         * Update the supplied function table.  If the parameter
  
  
  
  1.10      +10 -6     xml-xalan/c/src/XPath/XPathFunctionTable.cpp
  
  Index: XPathFunctionTable.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFunctionTable.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XPathFunctionTable.cpp    2000/08/07 19:51:48     1.9
  +++ XPathFunctionTable.cpp    2000/08/31 19:43:04     1.10
  @@ -93,11 +93,14 @@
   
   
   
  -XPathFunctionTable::XPathFunctionTable() :
  +XPathFunctionTable::XPathFunctionTable(bool          fCreateTable) :
        m_FunctionCollection(),
        m_FunctionNameIndex()
   {
  -     CreateTable();
  +     if (fCreateTable == true)
  +     {
  +             CreateTable();
  +     }
   }
   
   
  @@ -164,8 +167,8 @@
                // Delete the function...
                delete m_FunctionCollection[(*i).second];
   
  -             // Erase it from the table...
  -             m_FunctionCollection.erase(&m_FunctionCollection[(*i).second]);
  +             // Set the entry in the table to 0...
  +             m_FunctionCollection[(*i).second] = 0;
   
                return true;
        }
  @@ -282,9 +285,10 @@
                for_each(m_FunctionCollection.begin(),
                                 m_FunctionCollection.end(),
                                 DeleteFunctorType());
  +
  +             CollectionType().swap(m_FunctionCollection);
   
  -             m_FunctionCollection.clear();
  -             m_FunctionNameIndex.clear();
  +             FunctionNameIndexMapType().swap(m_FunctionNameIndex);
        }
        catch(...)
        {
  
  
  
  1.10      +18 -9     xml-xalan/c/src/XPath/XPathFunctionTable.hpp
  
  Index: XPathFunctionTable.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFunctionTable.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XPathFunctionTable.hpp    2000/08/14 16:33:58     1.9
  +++ XPathFunctionTable.hpp    2000/08/31 19:43:04     1.10
  @@ -121,11 +121,28 @@
   
        typedef DeleteFunctor<Function>         DeleteFunctorType;
   
  -     XPathFunctionTable();
  +     /**
  +      * Constructor.
  +      *
  +      * @param fCreateTable If true, the internal table will be created.  
Otherwise, CreateTable() must be called.
  +      */
  +     XPathFunctionTable(bool         fCreateTable = true);
   
        ~XPathFunctionTable();
   
        /**
  +      * Set up the internal table.
  +      */
  +     void
  +     CreateTable();
  +
  +     /**
  +      * Destroy the internal table.
  +      */
  +     void
  +     DestroyTable();
  +
  +     /**
         * Retrieve the function object for a specified function name.
         * 
         * @param theFunctionName name of function
  @@ -304,14 +321,6 @@
                }
        }
   #endif
  -
  -     void
  -     DestroyTable();
  -
  -protected:
  -
  -     void
  -     CreateTable();
   
   private:
   
  
  
  
  1.20      +92 -91    xml-xalan/c/src/XPath/XPathProcessorImpl.cpp
  
  Index: XPathProcessorImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- XPathProcessorImpl.cpp    2000/08/10 18:37:39     1.19
  +++ XPathProcessorImpl.cpp    2000/08/31 19:43:05     1.20
  @@ -76,48 +76,6 @@
   
   
   
  -static XalanDOMString        
FROM_ANCESTORS_STRING(XALAN_STATIC_UCODE_STRING("ancestor"));
  -static XalanDOMString        
FROM_ANCESTORS_OR_SELF_STRING(XALAN_STATIC_UCODE_STRING("ancestor-or-self"));
  -static XalanDOMString        
FROM_ATTRIBUTES_STRING(XALAN_STATIC_UCODE_STRING("attribute"));
  -static XalanDOMString        
FROM_CHILDREN_STRING(XALAN_STATIC_UCODE_STRING("child"));
  -static XalanDOMString        
FROM_DESCENDANTS_STRING(XALAN_STATIC_UCODE_STRING("descendant"));
  -static XalanDOMString        
FROM_DESCENDANTS_OR_SELF_STRING(XALAN_STATIC_UCODE_STRING("descendant-or-self"));
  -static XalanDOMString        
FROM_FOLLOWING_STRING(XALAN_STATIC_UCODE_STRING("following"));
  -static XalanDOMString        
FROM_FOLLOWING_SIBLINGS_STRING(XALAN_STATIC_UCODE_STRING("following-sibling"));
  -static XalanDOMString        
FROM_PARENT_STRING(XALAN_STATIC_UCODE_STRING("parent"));
  -static XalanDOMString        
FROM_PRECEDING_STRING(XALAN_STATIC_UCODE_STRING("preceding"));
  -static XalanDOMString        
FROM_PRECEDING_SIBLINGS_STRING(XALAN_STATIC_UCODE_STRING("preceding-sibling"));
  -static XalanDOMString        
FROM_SELF_STRING(XALAN_STATIC_UCODE_STRING("self"));
  -static XalanDOMString        
FROM_SELF_ABBREVIATED_STRING(XALAN_STATIC_UCODE_STRING("."));
  -static XalanDOMString        
FROM_NAMESPACE_STRING(XALAN_STATIC_UCODE_STRING("namespace"));
  -
  -// This shouldn't really be here, since it duplicates a string that is part
  -// of the information that is maintained by the class XPathFunctionTable,
  -// but this is a reasonable optimization.
  -static XalanDOMString        FUNC_ID_STRING(XALAN_STATIC_UCODE_STRING("id"));
  -
  -
  -// These shouldn't really be here, since they are not part of the XPath 
standard,
  -// but rather a part ofthe XSLT standard.
  -static XalanDOMString        
FUNC_KEY_STRING(XALAN_STATIC_UCODE_STRING("key"));
  -static XalanDOMString        
FUNC_DOC_STRING(XALAN_STATIC_UCODE_STRING("doc"));
  -static XalanDOMString        
FUNC_DOCUMENT_STRING(XALAN_STATIC_UCODE_STRING("document"));
  -
  -static XalanDOMString        
NODETYPE_COMMENT_STRING(XALAN_STATIC_UCODE_STRING("comment"));
  -static XalanDOMString        
NODETYPE_TEXT_STRING(XALAN_STATIC_UCODE_STRING("text"));
  -static XalanDOMString        
NODETYPE_PI_STRING(XALAN_STATIC_UCODE_STRING("processing-instruction"));
  -static XalanDOMString        
NODETYPE_NODE_STRING(XALAN_STATIC_UCODE_STRING("node"));
  -static XalanDOMString        
NODETYPE_ANYELEMENT_STRING(XALAN_STATIC_UCODE_STRING("*"));
  -
  -
  -
  -XPathProcessorImpl::KeywordsMapType                  
XPathProcessorImpl::s_keywords;
  -XPathProcessorImpl::FunctionNameMapType              
XPathProcessorImpl::s_functions;
  -XPathProcessorImpl::AxisNamesMapType                 
XPathProcessorImpl::s_axisNames;
  -XPathProcessorImpl::NodeTypesMapType                 
XPathProcessorImpl::s_nodeTypes;
  -
  -
  -
   XPathProcessorImpl::XPathProcessorImpl() :
        m_token(),
        m_tokenChar(0),
  @@ -126,8 +84,6 @@
        m_prefixResolver(0),
        m_envSupport(0)
   {
  -     // $$$ ToDo: This is not thread-safe!!!
  -     static StaticInitializer        theInitializer;
   }
   
   
  @@ -528,31 +484,31 @@
                switch(tok)
                {
                case XPathExpression::eNODETYPE_COMMENT:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_COMMENT);
  +                     targetStrings.push_back(XPath::PSEUDONAME_COMMENT);
                        break;
   
                case XPathExpression::eNODETYPE_TEXT:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_TEXT);
  +                     targetStrings.push_back(XPath::PSEUDONAME_TEXT);
                        break;
   
                case XPathExpression::eNODETYPE_NODE:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_ANY);
  +                     targetStrings.push_back(XPath::PSEUDONAME_ANY);
                        break;
   
                case XPathExpression::eNODETYPE_ROOT:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_ROOT);
  +                     targetStrings.push_back(XPath::PSEUDONAME_ROOT);
                        break;
   
                case XPathExpression::eNODETYPE_ANYELEMENT:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_ANY);
  +                     targetStrings.push_back(XPath::PSEUDONAME_ANY);
                        break;
   
                case XPathExpression::eNODETYPE_PI:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_ANY);
  +                     targetStrings.push_back(XPath::PSEUDONAME_ANY);
                        break;
   
                default:
  -                     targetStrings.push_back(m_xpath->PSEUDONAME_ANY);
  +                     targetStrings.push_back(XPath::PSEUDONAME_ANY);
                        break;
                }
        }
  @@ -2371,73 +2327,118 @@
   
   
   void
  -XPathProcessorImpl::initializeKeywordsTable()
  +XPathProcessorImpl::initializeKeywordsTable(KeywordsMapType& /* theKeywords 
*/)
   {
        // $$$ ToDo: This is very confusing.  This table is only used
        // by getKeywordToken().  But if you look at the switch
        // statement there, none of these values are considered in the
        // case statement.  So what's the point?
  +
  +     // theKeywords[FROM_SELF_ABBREVIATED_STRING] = 
XPathExpression::eFROM_SELF;
  +     // theKeywords[FROM_ATTRIBUTE_STRING] = 
XPathExpression::eFROM_ATTRIBUTE;
  +     // theKeywords[FROM_DOC_STRING] = XPathExpression::eFROM_DOC;
  +     // theKeywords[FROM_DOCREF_STRING] = XPathExpression::eFROM_DOCREF;
  +     // theKeywords[FROM_ID_STRING] = XPathExpression::eFROM_ID;
  +     // theKeywords[FROM_IDREF_STRING] = XPathExpression::eFROM_IDREF;
  +     // theKeywords[FUNC_ID_STRING] = XPathExpression::eFUNC_ID;
  +     // theKeywords[FUNC_KEY_STRING] = XPathExpression::eFUNC_KEY;
  +     // theKeywords[FUNC_DOCUMENT_STRING] = XPathExpression::eFUNC_DOC;
  +}
  +
   
  -     // s_keywords[FROM_SELF_ABBREVIATED_STRING] = 
XPathExpression::eFROM_SELF;
  -     // s_keywords[FROM_ATTRIBUTE_STRING] = XPathExpression::eFROM_ATTRIBUTE;
  -     // s_keywords[FROM_DOC_STRING] = XPathExpression::eFROM_DOC;
  -     // s_keywords[FROM_DOCREF_STRING] = XPathExpression::eFROM_DOCREF;
  -     // s_keywords[FROM_ID_STRING] = XPathExpression::eFROM_ID;
  -     // s_keywords[FROM_IDREF_STRING] = XPathExpression::eFROM_IDREF;
  -     // s_keywords[FUNC_ID_STRING] = XPathExpression::eFUNC_ID;
  -     // s_keywords[FUNC_KEY_STRING] = XPathExpression::eFUNC_KEY;
  -     // s_keywords[FUNC_DOCUMENT_STRING] = XPathExpression::eFUNC_DOC;
  +
  +void
  +XPathProcessorImpl::initializeFunctionTable(FunctionNameMapType&     
theFunctions)
  +{
  +     theFunctions[XALAN_STATIC_UCODE_STRING("processing-instruction")] = 
XPathExpression::eNODETYPE_PI;
  +     theFunctions[XALAN_STATIC_UCODE_STRING("comment")] = 
XPathExpression::eNODETYPE_COMMENT;
  +     theFunctions[XALAN_STATIC_UCODE_STRING("text")] = 
XPathExpression::eNODETYPE_TEXT;
  +     theFunctions[XALAN_STATIC_UCODE_STRING("node")] = 
XPathExpression::eNODETYPE_NODE;
   }
   
   
   
   void
  -XPathProcessorImpl::initializeFunctionTable()
  +XPathProcessorImpl::initializeAxisNamesTable(AxisNamesMapType&               
theAxisNames)
   {
  -     s_functions[NODETYPE_PI_STRING] = XPathExpression::eNODETYPE_PI;
  -     s_functions[NODETYPE_COMMENT_STRING] = 
XPathExpression::eNODETYPE_COMMENT;
  -     s_functions[NODETYPE_TEXT_STRING] = XPathExpression::eNODETYPE_TEXT;
  -     s_functions[NODETYPE_NODE_STRING] = XPathExpression::eNODETYPE_NODE;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("ancestor")] = 
XPathExpression::eFROM_ANCESTORS;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("ancestor-or-self")] = 
XPathExpression::eFROM_ANCESTORS_OR_SELF;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("attribute")] = 
XPathExpression::eFROM_ATTRIBUTES;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("child")] = 
XPathExpression::eFROM_CHILDREN;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("descendant")] = 
XPathExpression::eFROM_DESCENDANTS;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("descendant-or-self")] = 
XPathExpression::eFROM_DESCENDANTS_OR_SELF;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("following")] = 
XPathExpression::eFROM_FOLLOWING;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("following-sibling")] = 
XPathExpression::eFROM_FOLLOWING_SIBLINGS;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("parent")] = 
XPathExpression::eFROM_PARENT;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("preceding")] = 
XPathExpression::eFROM_PRECEDING;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("preceding-sibling")] = 
XPathExpression::eFROM_PRECEDING_SIBLINGS;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("self")] = 
XPathExpression::eFROM_SELF;
  +     theAxisNames[XALAN_STATIC_UCODE_STRING("namespace")] = 
XPathExpression::eFROM_NAMESPACE;
   }
   
   
   
   void
  -XPathProcessorImpl::initializeAxisNamesTable()
  +XPathProcessorImpl::initializeNodeTypesTable(NodeTypesMapType&               
theNodeTypes)
   {
  -     s_axisNames[FROM_ANCESTORS_STRING] = XPathExpression::eFROM_ANCESTORS;
  -     s_axisNames[FROM_ANCESTORS_OR_SELF_STRING] = 
XPathExpression::eFROM_ANCESTORS_OR_SELF;
  -     s_axisNames[FROM_ATTRIBUTES_STRING] = XPathExpression::eFROM_ATTRIBUTES;
  -     s_axisNames[FROM_CHILDREN_STRING] = XPathExpression::eFROM_CHILDREN;
  -     s_axisNames[FROM_DESCENDANTS_STRING] = 
XPathExpression::eFROM_DESCENDANTS;
  -     s_axisNames[FROM_DESCENDANTS_OR_SELF_STRING] = 
XPathExpression::eFROM_DESCENDANTS_OR_SELF;
  -     s_axisNames[FROM_FOLLOWING_STRING] = XPathExpression::eFROM_FOLLOWING;
  -     s_axisNames[FROM_FOLLOWING_SIBLINGS_STRING] = 
XPathExpression::eFROM_FOLLOWING_SIBLINGS;
  -     s_axisNames[FROM_PARENT_STRING] = XPathExpression::eFROM_PARENT;
  -     s_axisNames[FROM_PRECEDING_STRING] = XPathExpression::eFROM_PRECEDING;
  -     s_axisNames[FROM_PRECEDING_SIBLINGS_STRING] = 
XPathExpression::eFROM_PRECEDING_SIBLINGS;
  -     s_axisNames[FROM_SELF_STRING] = XPathExpression::eFROM_SELF;
  -     s_axisNames[FROM_NAMESPACE_STRING] = XPathExpression::eFROM_NAMESPACE;
  +     theNodeTypes[XALAN_STATIC_UCODE_STRING("comment")] = 
XPathExpression::eNODETYPE_COMMENT;
  +     theNodeTypes[XALAN_STATIC_UCODE_STRING("text")] = 
XPathExpression::eNODETYPE_TEXT;
  +     theNodeTypes[XALAN_STATIC_UCODE_STRING("processing-instruction")] = 
XPathExpression::eNODETYPE_PI;
  +     theNodeTypes[XALAN_STATIC_UCODE_STRING("node")] = 
XPathExpression::eNODETYPE_NODE;
  +     theNodeTypes[XALAN_STATIC_UCODE_STRING("*")] = 
XPathExpression::eNODETYPE_ANYELEMENT;
   }
   
   
   
  +static XalanDOMString                FUNC_ID_STRING;
  +
  +static XalanDOMString                FUNC_KEY_STRING;
  +
  +
  +const XalanDOMString&        XPathProcessorImpl::FUNC_ID_STRING = 
::FUNC_ID_STRING;
  +
  +
  +     // This shouldn't really be here, since it's not part of the XPath 
standard,
  +     // but rather a part ofthe XSLT standard.
  +const XalanDOMString&        XPathProcessorImpl::FUNC_KEY_STRING = 
::FUNC_KEY_STRING;
  +
  +
  +static XPathProcessorImpl::KeywordsMapType           s_keywords;
  +static XPathProcessorImpl::FunctionNameMapType       s_functions;
  +static XPathProcessorImpl::AxisNamesMapType          s_axisNames;
  +static XPathProcessorImpl::NodeTypesMapType          s_nodeTypes;
  +
  +
  +
  +const XPathProcessorImpl::KeywordsMapType&           
XPathProcessorImpl::s_keywords = ::s_keywords;
  +const XPathProcessorImpl::FunctionNameMapType&       
XPathProcessorImpl::s_functions = ::s_functions;
  +const XPathProcessorImpl::AxisNamesMapType&          
XPathProcessorImpl::s_axisNames = ::s_axisNames;
  +const XPathProcessorImpl::NodeTypesMapType&          
XPathProcessorImpl::s_nodeTypes = ::s_nodeTypes;
  +
  +
  +
   void
  -XPathProcessorImpl::initializeNodeTypesTable()
  +XPathProcessorImpl::initialize()
   {
  -     s_nodeTypes[NODETYPE_COMMENT_STRING] = 
XPathExpression::eNODETYPE_COMMENT;
  -     s_nodeTypes[NODETYPE_TEXT_STRING] = XPathExpression::eNODETYPE_TEXT;
  -     s_nodeTypes[NODETYPE_PI_STRING] = XPathExpression::eNODETYPE_PI;
  -     s_nodeTypes[NODETYPE_NODE_STRING] = XPathExpression::eNODETYPE_NODE;
  -     s_nodeTypes[NODETYPE_ANYELEMENT_STRING] = 
XPathExpression::eNODETYPE_ANYELEMENT;
  +     XPathProcessorImpl::initializeKeywordsTable(::s_keywords);
  +     XPathProcessorImpl::initializeFunctionTable(::s_functions);
  +     XPathProcessorImpl::initializeAxisNamesTable(::s_axisNames);
  +     XPathProcessorImpl::initializeNodeTypesTable(::s_nodeTypes);
  +
  +     ::FUNC_ID_STRING = XALAN_STATIC_UCODE_STRING("id");
  +     ::FUNC_KEY_STRING = XALAN_STATIC_UCODE_STRING("key");
   }
   
   
   
  -XPathProcessorImpl::StaticInitializer::StaticInitializer()
  +void
  +XPathProcessorImpl::terminate()
   {
  -     XPathProcessorImpl::initializeKeywordsTable();
  -     XPathProcessorImpl::initializeFunctionTable();
  -     XPathProcessorImpl::initializeAxisNamesTable();
  -     XPathProcessorImpl::initializeNodeTypesTable();
  +     KeywordsMapType().swap(::s_keywords);
  +     FunctionNameMapType().swap(::s_functions);
  +     AxisNamesMapType().swap(::s_axisNames);
  +     NodeTypesMapType().swap(::s_nodeTypes);
  +
  +     clear(::FUNC_ID_STRING);
  +     clear(::FUNC_KEY_STRING);
   }
  
  
  
  1.9       +30 -22    xml-xalan/c/src/XPath/XPathProcessorImpl.hpp
  
  Index: XPathProcessorImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XPathProcessorImpl.hpp    2000/08/22 20:20:49     1.8
  +++ XPathProcessorImpl.hpp    2000/08/31 19:43:05     1.9
  @@ -122,8 +122,19 @@
   
        typedef std::vector<XalanDOMString>                             
DOMStringVectorType;
   #endif
  -     
   
  +     /**
  +      * Perform static initialization.  See class XPathInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform static shut down.  See class XPathInit.
  +      */
  +     static void
  +     terminate();
  +
        explicit
        XPathProcessorImpl();
   
  @@ -756,16 +767,16 @@
        FunctionCallArguments();
   
        static void
  -     initializeKeywordsTable();
  +     initializeKeywordsTable(KeywordsMapType&        theKeywords);
   
        static void
  -     initializeFunctionTable();
  +     initializeFunctionTable(FunctionNameMapType&    theFunctions);
   
        static void
  -     initializeAxisNamesTable();
  +     initializeAxisNamesTable(AxisNamesMapType&              theAxisNames);
   
        static void
  -     initializeNodeTypesTable();
  +     initializeNodeTypesTable(NodeTypesMapType&              theNodeTypes);
   
        /**
         * The current input token.
  @@ -801,29 +812,26 @@
                TARGETEXTRA = 10000
        };
   
  -     /**
  -      * Map of keyword names to token values.
  -      */
  -     static KeywordsMapType                  s_keywords;
  +     // This shouldn't really be here, since it duplicates a string that is 
part
  +     // of the information that is maintained by the class 
XPathFunctionTable,
  +     // but this is a reasonable optimization.
  +     static const XalanDOMString&    FUNC_ID_STRING;
   
  -     static FunctionNameMapType              s_functions;
   
  -     static AxisNamesMapType                 s_axisNames;
  +     // This shouldn't really be here, since it's not part of the XPath 
standard,
  +     // but rather a part ofthe XSLT standard.
  +     static const XalanDOMString&    FUNC_KEY_STRING;
   
  -     static NodeTypesMapType                 s_nodeTypes;
  -
  -     class StaticInitializer
  -     {
  -     public:
  +     /**
  +      * Map of keyword names to token values.
  +      */
  +     static const KeywordsMapType&           s_keywords;
   
  -             StaticInitializer();
  +     static const FunctionNameMapType&       s_functions;
   
  -             ~StaticInitializer()
  -             {
  -             }
  -     };
  +     static const AxisNamesMapType&          s_axisNames;
   
  -     friend class StaticInitializer;
  +     static const NodeTypesMapType&          s_nodeTypes;
   };
   
   
  
  
  
  1.1                  xml-xalan/c/src/XPath/XPathInit.cpp
  
  Index: XPathInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "XPathInit.hpp"
  
  
  
  #include "XPath.hpp"
  #include "XPathEnvSupportDefault.hpp"
  #include "XPathProcessorImpl.hpp"
  
  
  
  unsigned long XPathInit::s_initCounter = 0;
  
  
  
  XPathInit::XPathInit() :
        m_platformSupportInit(),
        m_domSupportInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  XPathInit::~XPathInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  XPathInit::initialize()
  {
        XPath::initialize();
  
        XPathProcessorImpl::initialize();
  
        XPathEnvSupportDefault::initialize();
  }
  
  
  
  void
  XPathInit::terminate()
  {
        XPath::terminate();
  
        XPathProcessorImpl::terminate();
  
        XPathEnvSupportDefault::terminate();
  }
  
  
  
  1.1                  xml-xalan/c/src/XPath/XPathInit.hpp
  
  Index: XPathInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(XPATHINIT_INCLUDE_GUARD_1357924680)
  #define XPATHINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <XPath/XPathDefinitions.hpp>
  
  
  
  #include <PlatformSupport/PlatformSupportInit.hpp>
  
  
  
  #include <DOMSupport/DOMSupportInit.hpp>
  
  
  
  class XALAN_XPATH_EXPORT XPathInit
  {
  public:
  
        explicit
        XPathInit();
  
        ~XPathInit();
  
  private:
  
        // Not implemented...
        XPathInit(const XPathInit&);
  
        XPathInit&
        operator=(const XPathInit&);
  
        
        static void
        initialize();
  
        static void
        terminate();
  
        const PlatformSupportInit       m_platformSupportInit;
  
        const DOMSupportInit            m_domSupportInit;
  
        static unsigned long            s_initCounter;
  };
  
  
  
  #endif        // !defined(XPATHINIT_INCLUDE_GUARD_1357924680)
  
  
  
  1.9       +746 -182  xml-xalan/c/src/XSLT/Constants.cpp
  
  Index: Constants.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Constants.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Constants.cpp     2000/05/24 19:36:34     1.8
  +++ Constants.cpp     2000/08/31 19:43:08     1.9
  @@ -64,185 +64,749 @@
   #include <PlatformSupport/DOMStringHelper.hpp>
   
   
  -const XalanDOMString         
Constants::ATTRNAME_AMOUNT(XALAN_STATIC_UCODE_STRING("amount"));
  -const XalanDOMString         
Constants::ATTRNAME_ANCESTOR(XALAN_STATIC_UCODE_STRING("ancestor"));
  -const XalanDOMString         
Constants::ATTRNAME_ARCHIVE(XALAN_STATIC_UCODE_STRING("archive"));
  -const XalanDOMString         
Constants::ATTRNAME_ATTRIBUTE(XALAN_STATIC_UCODE_STRING("attribute"));
  -const XalanDOMString         
Constants::ATTRNAME_ATTRIBUTE_SET(XALAN_STATIC_UCODE_STRING("attribute-set"));
  -const XalanDOMString         
Constants::ATTRNAME_CASEORDER(XALAN_STATIC_UCODE_STRING("case-order"));
  -const XalanDOMString         
Constants::ATTRNAME_CLASS(XALAN_STATIC_UCODE_STRING("class"));
  -const XalanDOMString         
Constants::ATTRNAME_CLASSID(XALAN_STATIC_UCODE_STRING("classid"));
  -const XalanDOMString         
Constants::ATTRNAME_CODEBASE(XALAN_STATIC_UCODE_STRING("codebase"));
  -const XalanDOMString         
Constants::ATTRNAME_CODETYPE(XALAN_STATIC_UCODE_STRING("type"));
  -const XalanDOMString         
Constants::ATTRNAME_CONDITION(XALAN_STATIC_UCODE_STRING("condition"));
  -const XalanDOMString         
Constants::ATTRNAME_COPYTYPE(XALAN_STATIC_UCODE_STRING("copy-type"));
  -const XalanDOMString         
Constants::ATTRNAME_COUNT(XALAN_STATIC_UCODE_STRING("count"));
  -const XalanDOMString         
Constants::ATTRNAME_DATATYPE(XALAN_STATIC_UCODE_STRING("data-type"));
  -const XalanDOMString         
Constants::ATTRNAME_DECIMALSEPARATOR(XALAN_STATIC_UCODE_STRING("decimal-separator"));
  -const XalanDOMString         
Constants::ATTRNAME_DEFAULT(XALAN_STATIC_UCODE_STRING("default"));
  -const XalanDOMString         
Constants::ATTRNAME_DEFAULTSPACE(XALAN_STATIC_UCODE_STRING("default-space"));
  -const XalanDOMString         
Constants::ATTRNAME_DEPTH(XALAN_STATIC_UCODE_STRING("with-children"));
  -const XalanDOMString         
Constants::ATTRNAME_DIGIT(XALAN_STATIC_UCODE_STRING("digit"));
  -const XalanDOMString         
Constants::ATTRNAME_DIGITGROUPSEP(XALAN_STATIC_UCODE_STRING("digit-group-sep"));
  -const XalanDOMString         Constants::ATTRNAME_DISABLE_OUTPUT_ESCAPING 
(XALAN_STATIC_UCODE_STRING("disable-output-escaping"));
  -const XalanDOMString         
Constants::ATTRNAME_ELEMENT(XALAN_STATIC_UCODE_STRING("element"));
  -const XalanDOMString         
Constants::ATTRNAME_ELEMENTS(XALAN_STATIC_UCODE_STRING("elements"));
  -const XalanDOMString         
Constants::ATTRNAME_EXCLUDE_RESULT_PREFIXES(XALAN_STATIC_UCODE_STRING("exclude-result-prefixes"));
  -const XalanDOMString         
Constants::ATTRNAME_EXPR(XALAN_STATIC_UCODE_STRING("expr"));
  -const XalanDOMString         
Constants::ATTRNAME_EXTENSIONELEMENTPREFIXES(XALAN_STATIC_UCODE_STRING("extension-element-prefixes"));
  -const XalanDOMString         
Constants::ATTRNAME_FORMAT(XALAN_STATIC_UCODE_STRING("format"));
  -const XalanDOMString         
Constants::ATTRNAME_FROM(XALAN_STATIC_UCODE_STRING("from"));
  -const XalanDOMString         
Constants::ATTRNAME_GROUPINGSEPARATOR(XALAN_STATIC_UCODE_STRING("grouping-separator"));
  -const XalanDOMString         
Constants::ATTRNAME_GROUPINGSIZE(XALAN_STATIC_UCODE_STRING("grouping-size"));
  -const XalanDOMString         
Constants::ATTRNAME_HREF(XALAN_STATIC_UCODE_STRING("href"));
  -const XalanDOMString         
Constants::ATTRNAME_ID(XALAN_STATIC_UCODE_STRING("id"));
  -const XalanDOMString         
Constants::ATTRNAME_IMPORTANCE(XALAN_STATIC_UCODE_STRING("importance"));
  -const XalanDOMString         
Constants::ATTRNAME_INDENTRESULT(XALAN_STATIC_UCODE_STRING("indent-result"));
  -const XalanDOMString         
Constants::ATTRNAME_INFINITY(XALAN_STATIC_UCODE_STRING("infinity"));
  -const XalanDOMString         
Constants::ATTRNAME_LANG(XALAN_STATIC_UCODE_STRING("lang"));
  -const XalanDOMString         
Constants::ATTRNAME_LETTERVALUE(XALAN_STATIC_UCODE_STRING("letter-value"));
  -const XalanDOMString         
Constants::ATTRNAME_LEVEL(XALAN_STATIC_UCODE_STRING("level"));
  -const XalanDOMString         
Constants::ATTRNAME_MATCH(XALAN_STATIC_UCODE_STRING("match"));
  -const XalanDOMString         
Constants::ATTRNAME_METHOD(XALAN_STATIC_UCODE_STRING("calls"));
  -const XalanDOMString         
Constants::ATTRNAME_MINUSSIGN(XALAN_STATIC_UCODE_STRING("minus-sign"));
  -const XalanDOMString         
Constants::ATTRNAME_MODE(XALAN_STATIC_UCODE_STRING("mode"));
  -const XalanDOMString         
Constants::ATTRNAME_NAME(XALAN_STATIC_UCODE_STRING("name"));
  -const XalanDOMString         
Constants::ATTRNAME_NAMESPACE(XALAN_STATIC_UCODE_STRING("namespace"));
  -const XalanDOMString         
Constants::ATTRNAME_NAN(XALAN_STATIC_UCODE_STRING("NaN"));
  -const XalanDOMString         
Constants::ATTRNAME_NDIGITSPERGROUP(XALAN_STATIC_UCODE_STRING("n-digits-per-group"));
  -const XalanDOMString         
Constants::ATTRNAME_NS(XALAN_STATIC_UCODE_STRING("ns"));
  -const XalanDOMString         
Constants::ATTRNAME_ONLY(XALAN_STATIC_UCODE_STRING("only"));
  -const XalanDOMString         
Constants::ATTRNAME_ORDER(XALAN_STATIC_UCODE_STRING("order"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS 
(XALAN_STATIC_UCODE_STRING("cdata-section-elements"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC(XALAN_STATIC_UCODE_STRING("doctype-public"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM(XALAN_STATIC_UCODE_STRING("doctype-system"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_ENCODING(XALAN_STATIC_UCODE_STRING("encoding"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_INDENT(XALAN_STATIC_UCODE_STRING("indent"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_MEDIATYPE(XALAN_STATIC_UCODE_STRING("media-type"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_METHOD(XALAN_STATIC_UCODE_STRING("method"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_OMITXMLDECL(XALAN_STATIC_UCODE_STRING("omit-xml-declaration"));
  -const XalanDOMString         Constants::ATTRNAME_OUTPUT_STANDALONE 
(XALAN_STATIC_UCODE_STRING("standalone"));
  -const XalanDOMString         
Constants::ATTRNAME_OUTPUT_VERSION(XALAN_STATIC_UCODE_STRING("version"));
  -const XalanDOMString         
Constants::ATTRNAME_PATTERNSEPARATOR(XALAN_STATIC_UCODE_STRING("pattern-separator"));
  -const XalanDOMString         
Constants::ATTRNAME_PERCENT(XALAN_STATIC_UCODE_STRING("percent"));
  -const XalanDOMString         
Constants::ATTRNAME_PERMILLE(XALAN_STATIC_UCODE_STRING("per-mille"));
  -const XalanDOMString         
Constants::ATTRNAME_PRIORITY(XALAN_STATIC_UCODE_STRING("priority"));
  -const XalanDOMString         
Constants::ATTRNAME_REFID(XALAN_STATIC_UCODE_STRING("refID"));
  -const XalanDOMString         
Constants::ATTRNAME_RESULTNS(XALAN_STATIC_UCODE_STRING("result-ns"));
  -const XalanDOMString         
Constants::ATTRNAME_RESULT_PREFIX(XALAN_STATIC_UCODE_STRING("result-prefix"));
  -const XalanDOMString         
Constants::ATTRNAME_SELECT(XALAN_STATIC_UCODE_STRING("select"));
  -const XalanDOMString         
Constants::ATTRNAME_SEQUENCESRC(XALAN_STATIC_UCODE_STRING("sequence-src"));
  -const XalanDOMString         
Constants::ATTRNAME_STYLE(XALAN_STATIC_UCODE_STRING("style"));
  -const XalanDOMString         
Constants::ATTRNAME_STYLESHEET_PREFIX(XALAN_STATIC_UCODE_STRING("stylesheet-prefix"));
  -const XalanDOMString         
Constants::ATTRNAME_TERMINATE(XALAN_STATIC_UCODE_STRING("terminate"));
  -const XalanDOMString         
Constants::ATTRNAME_TEST(XALAN_STATIC_UCODE_STRING("test"));
  -const XalanDOMString         
Constants::ATTRNAME_TOSTRING(XALAN_STATIC_UCODE_STRING("to-string"));
  -const XalanDOMString         
Constants::ATTRNAME_TYPE(XALAN_STATIC_UCODE_STRING("type"));
  -const XalanDOMString         
Constants::ATTRNAME_USE(XALAN_STATIC_UCODE_STRING("use"));
  -const XalanDOMString         
Constants::ATTRNAME_USEATTRIBUTESETS(XALAN_STATIC_UCODE_STRING("use-attribute-sets"));
  -const XalanDOMString         
Constants::ATTRNAME_VALUE(XALAN_STATIC_UCODE_STRING("value"));
  -const XalanDOMString         
Constants::ATTRNAME_VERSION(XALAN_STATIC_UCODE_STRING("version"));
  -const XalanDOMString         
Constants::ATTRNAME_XMLNS(XALAN_STATIC_UCODE_STRING("xmlns:"));
  -const XalanDOMString         
Constants::ATTRNAME_XMLNSDEF(XALAN_STATIC_UCODE_STRING("xmlns"));
  -const XalanDOMString         
Constants::ATTRNAME_XMLSPACE(XALAN_STATIC_UCODE_STRING("xml:space"));
  -const XalanDOMString         
Constants::ATTRNAME_ZERODIGIT(XALAN_STATIC_UCODE_STRING("zero-digit"));
  -
  -const XalanDOMString         
Constants::ATTRVAL_ALPHABETIC(XALAN_STATIC_UCODE_STRING("alphabetic"));
  -const XalanDOMString         
Constants::ATTRVAL_ANCESTOR(XALAN_STATIC_UCODE_STRING("ancestor"));
  -const XalanDOMString         
Constants::ATTRVAL_ANY(XALAN_STATIC_UCODE_STRING("any"));
  -const XalanDOMString         
Constants::ATTRVAL_CASEORDER_LOWER(XALAN_STATIC_UCODE_STRING("lower-first"));
  -const XalanDOMString         
Constants::ATTRVAL_CASEORDER_UPPER(XALAN_STATIC_UCODE_STRING("upper-first"));
  -const XalanDOMString         
Constants::ATTRVAL_DATATYPE_NUMBER(XALAN_STATIC_UCODE_STRING("number"));
  -const XalanDOMString         
Constants::ATTRVAL_DATATYPE_TEXT(XALAN_STATIC_UCODE_STRING("text"));
  -const XalanDOMString         
Constants::ATTRVAL_DEFAULT_PREFIX(XALAN_STATIC_UCODE_STRING("#default"));
  -const XalanDOMString         
Constants::ATTRVAL_ID(XALAN_STATIC_UCODE_STRING("id"));
  -const XalanDOMString         
Constants::ATTRVAL_INFINITY(XALAN_STATIC_UCODE_STRING("Infinity"));
  -const XalanDOMString         
Constants::ATTRVAL_MULTI(XALAN_STATIC_UCODE_STRING("multiple"));
  -const XalanDOMString         
Constants::ATTRVAL_NAN(XALAN_STATIC_UCODE_STRING("NaN"));
  -const XalanDOMString         
Constants::ATTRVAL_NO(XALAN_STATIC_UCODE_STRING("no"));
  -const XalanDOMString         
Constants::ATTRVAL_ORDER_ASCENDING(XALAN_STATIC_UCODE_STRING("ascending"));
  -const XalanDOMString         
Constants::ATTRVAL_ORDER_DESCENDING(XALAN_STATIC_UCODE_STRING("descending"));
  -const XalanDOMString         
Constants::ATTRVAL_OTHER(XALAN_STATIC_UCODE_STRING("other"));
  -const XalanDOMString         
Constants::ATTRVAL_OUTPUT_METHOD_HTML(XALAN_STATIC_UCODE_STRING("html"));
  -const XalanDOMString         
Constants::ATTRVAL_OUTPUT_METHOD_TEXT(XALAN_STATIC_UCODE_STRING("text"));
  -const XalanDOMString         
Constants::ATTRVAL_OUTPUT_METHOD_XML(XALAN_STATIC_UCODE_STRING("xml"));
  -const XalanDOMString         
Constants::ATTRVAL_PARENT(XALAN_STATIC_UCODE_STRING(".."));
  -const XalanDOMString         
Constants::ATTRVAL_PRESERVE(XALAN_STATIC_UCODE_STRING("preserve"));
  -const XalanDOMString         
Constants::ATTRVAL_SINGLE(XALAN_STATIC_UCODE_STRING("single"));
  -const XalanDOMString         
Constants::ATTRVAL_STRIP(XALAN_STATIC_UCODE_STRING("strip"));
  -const XalanDOMString         
Constants::ATTRVAL_THIS(XALAN_STATIC_UCODE_STRING("."));
  -const XalanDOMString         
Constants::ATTRVAL_YES(XALAN_STATIC_UCODE_STRING("yes"));
  -const XalanDOMString         
Constants::DEFAULT_DECIMAL_FORMAT(XALAN_STATIC_UCODE_STRING("#default"));
  -const XalanDOMString         
Constants::ELEMNAME_ANCHOR_STRING(XALAN_STATIC_UCODE_STRING("anchor"));
  -const XalanDOMString         
Constants::ELEMNAME_ANY_STRING(XALAN_STATIC_UCODE_STRING("any"));
  -const XalanDOMString         
Constants::ELEMNAME_APPLY_IMPORTS_STRING(XALAN_STATIC_UCODE_STRING("apply-imports"));
  -const XalanDOMString         
Constants::ELEMNAME_APPLY_TEMPLATES_STRING(XALAN_STATIC_UCODE_STRING("apply-templates"));
  -const XalanDOMString         
Constants::ELEMNAME_ARG_STRING(XALAN_STATIC_UCODE_STRING("arg"));
  -const XalanDOMString         
Constants::ELEMNAME_ATTRIBUTESET_STRING(XALAN_STATIC_UCODE_STRING("attribute-set"));
  -const XalanDOMString         
Constants::ELEMNAME_ATTRIBUTE_STRING(XALAN_STATIC_UCODE_STRING("attribute"));
  -const XalanDOMString         
Constants::ELEMNAME_CALLTEMPLATEARG_STRING(XALAN_STATIC_UCODE_STRING("invoke-arg"));
  -const XalanDOMString         
Constants::ELEMNAME_CALLTEMPLATE_STRING(XALAN_STATIC_UCODE_STRING("call-template"));
  -const XalanDOMString         
Constants::ELEMNAME_CALL_STRING(XALAN_STATIC_UCODE_STRING("call"));
  -const XalanDOMString         
Constants::ELEMNAME_CHILDREN_STRING(XALAN_STATIC_UCODE_STRING("children"));
  -const XalanDOMString         
Constants::ELEMNAME_CHOOSE_STRING(XALAN_STATIC_UCODE_STRING("choose"));
  -const XalanDOMString         
Constants::ELEMNAME_COMMENT_STRING(XALAN_STATIC_UCODE_STRING("comment"));
  -const XalanDOMString         
Constants::ELEMNAME_COMPONENT_STRING(XALAN_STATIC_UCODE_STRING("component"));
  -const XalanDOMString         
Constants::ELEMNAME_CONSTRUCT_STRING(XALAN_STATIC_UCODE_STRING("construct"));
  -const XalanDOMString         
Constants::ELEMNAME_CONTENTS_STRING(XALAN_STATIC_UCODE_STRING("contents"));
  -const XalanDOMString         
Constants::ELEMNAME_COPY_OF_STRING(XALAN_STATIC_UCODE_STRING("copy-of"));
  -const XalanDOMString         
Constants::ELEMNAME_COPY_STRING(XALAN_STATIC_UCODE_STRING("copy"));
  -const XalanDOMString         
Constants::ELEMNAME_COUNTERINCREMENT_STRING(XALAN_STATIC_UCODE_STRING("counter-increment"));
  -const XalanDOMString         
Constants::ELEMNAME_COUNTERRESET_STRING(XALAN_STATIC_UCODE_STRING("counter-reset"));
  -const XalanDOMString         
Constants::ELEMNAME_COUNTERSCOPE_STRING(XALAN_STATIC_UCODE_STRING("counter-scope"));
  -const XalanDOMString         
Constants::ELEMNAME_COUNTERS_STRING(XALAN_STATIC_UCODE_STRING("counters"));
  -const XalanDOMString         
Constants::ELEMNAME_COUNTER_STRING(XALAN_STATIC_UCODE_STRING("counter"));
  -const XalanDOMString         
Constants::ELEMNAME_DECIMALFORMAT_STRING(XALAN_STATIC_UCODE_STRING("decimal-format"));
  -const XalanDOMString         
Constants::ELEMNAME_DISPLAYIF_STRING(XALAN_STATIC_UCODE_STRING("display-if"));
  -const XalanDOMString         
Constants::ELEMNAME_ELEMENT_STRING(XALAN_STATIC_UCODE_STRING("element"));
  -const XalanDOMString         
Constants::ELEMNAME_EMPTY_STRING(XALAN_STATIC_UCODE_STRING("empty"));
  -const XalanDOMString         
Constants::ELEMNAME_EVAL_STRING(XALAN_STATIC_UCODE_STRING("eval"));
  -const XalanDOMString         
Constants::ELEMNAME_EXPECTEDCHILDREN_STRING(XALAN_STATIC_UCODE_STRING("expectedchildren"));
  -const XalanDOMString         
Constants::ELEMNAME_EXTENSIONHANDLER_STRING(XALAN_STATIC_UCODE_STRING("code-dispatcher"));
  -const XalanDOMString         
Constants::ELEMNAME_EXTENSION_STRING(XALAN_STATIC_UCODE_STRING("functions"));
  -const XalanDOMString         
Constants::ELEMNAME_FALLBACK_STRING(XALAN_STATIC_UCODE_STRING("fallback"));
  -const XalanDOMString         
Constants::ELEMNAME_FOREACH_STRING(XALAN_STATIC_UCODE_STRING("for-each"));
  -const XalanDOMString         
Constants::ELEMNAME_HTML_STRING(XALAN_STATIC_UCODE_STRING("HTML"));
  -const XalanDOMString         
Constants::ELEMNAME_IF_STRING(XALAN_STATIC_UCODE_STRING("if"));
  -const XalanDOMString         
Constants::ELEMNAME_IMPORT_STRING(XALAN_STATIC_UCODE_STRING("import"));
  -const XalanDOMString         
Constants::ELEMNAME_INCLUDE_STRING(XALAN_STATIC_UCODE_STRING("include"));
  -const XalanDOMString         
Constants::ELEMNAME_KEY_STRING(XALAN_STATIC_UCODE_STRING("key"));
  -const XalanDOMString         
Constants::ELEMNAME_LOCALE_STRING(XALAN_STATIC_UCODE_STRING("locale"));
  -const XalanDOMString         
Constants::ELEMNAME_MESSAGE_STRING(XALAN_STATIC_UCODE_STRING("message"));
  -const XalanDOMString         
Constants::ELEMNAME_NSALIAS_STRING(XALAN_STATIC_UCODE_STRING("namespace-alias"));
  -const XalanDOMString         
Constants::ELEMNAME_NUMBER_STRING(XALAN_STATIC_UCODE_STRING("number"));
  -const XalanDOMString         
Constants::ELEMNAME_OTHERWISE_STRING(XALAN_STATIC_UCODE_STRING("otherwise"));
  -const XalanDOMString         
Constants::ELEMNAME_OUTPUT_STRING(XALAN_STATIC_UCODE_STRING("output"));
  -const XalanDOMString         
Constants::ELEMNAME_PARAMVARIABLE_STRING(XALAN_STATIC_UCODE_STRING("param"));
  -const XalanDOMString         
Constants::ELEMNAME_PI_OLD_STRING(XALAN_STATIC_UCODE_STRING("pi"));
  -const XalanDOMString         
Constants::ELEMNAME_PI_STRING(XALAN_STATIC_UCODE_STRING("processing-instruction"));
  -const XalanDOMString         
Constants::ELEMNAME_PRESERVESPACE_STRING(XALAN_STATIC_UCODE_STRING("preserve-space"));
  -const XalanDOMString         
Constants::ELEMNAME_ROOT_STRING(XALAN_STATIC_UCODE_STRING("root"));
  -const XalanDOMString         
Constants::ELEMNAME_SCRIPT_STRING(XALAN_STATIC_UCODE_STRING("script"));
  -const XalanDOMString         
Constants::ELEMNAME_SORT_STRING(XALAN_STATIC_UCODE_STRING("sort"));
  -const XalanDOMString         
Constants::ELEMNAME_STRIPSPACE_STRING(XALAN_STATIC_UCODE_STRING("strip-space"));
  -const XalanDOMString         
Constants::ELEMNAME_STYLESHEET_STRING(XALAN_STATIC_UCODE_STRING("stylesheet"));
  -const XalanDOMString         
Constants::ELEMNAME_TARGETATTRIBUTE_STRING(XALAN_STATIC_UCODE_STRING("target-attribute"));
  -const XalanDOMString         
Constants::ELEMNAME_TARGETCOMMENT_STRING(XALAN_STATIC_UCODE_STRING("target-comment"));
  -const XalanDOMString         
Constants::ELEMNAME_TARGETELEMENT_STRING(XALAN_STATIC_UCODE_STRING("target-element"));
  -const XalanDOMString         
Constants::ELEMNAME_TARGETPI_STRING(XALAN_STATIC_UCODE_STRING("target-pi"));
  -const XalanDOMString         
Constants::ELEMNAME_TARGETTEXT_STRING(XALAN_STATIC_UCODE_STRING("target-text"));
  -const XalanDOMString         
Constants::ELEMNAME_TEMPLATE_STRING(XALAN_STATIC_UCODE_STRING("template"));
  -const XalanDOMString         
Constants::ELEMNAME_TEXT_STRING(XALAN_STATIC_UCODE_STRING("text"));
  -const XalanDOMString         
Constants::ELEMNAME_TRANSFORM_STRING(XALAN_STATIC_UCODE_STRING("transform"));
  -const XalanDOMString         
Constants::ELEMNAME_URL_STRING(XALAN_STATIC_UCODE_STRING("uri"));
  -const XalanDOMString         
Constants::ELEMNAME_USE_STRING(XALAN_STATIC_UCODE_STRING("use"));
  -const XalanDOMString         
Constants::ELEMNAME_VALUEOF_STRING(XALAN_STATIC_UCODE_STRING("value-of"));
  -const XalanDOMString         
Constants::ELEMNAME_VARIABLE_STRING(XALAN_STATIC_UCODE_STRING("variable"));
  -const XalanDOMString         
Constants::ELEMNAME_WHEN_STRING(XALAN_STATIC_UCODE_STRING("when"));
  -const XalanDOMString         
Constants::ELEMNAME_WITHPARAM_STRING(XALAN_STATIC_UCODE_STRING("with-param"));
  -const XalanDOMString         
Constants::PSEUDONAME_ANY(XALAN_STATIC_UCODE_STRING("*"));
  -const XalanDOMString         
Constants::PSEUDONAME_COMMENT(XALAN_STATIC_UCODE_STRING("#comment"));
  -const XalanDOMString         
Constants::PSEUDONAME_OTHER(XALAN_STATIC_UCODE_STRING("*"));
  -const XalanDOMString         
Constants::PSEUDONAME_PI(XALAN_STATIC_UCODE_STRING("#pi"));
  -const XalanDOMString         
Constants::PSEUDONAME_ROOT(XALAN_STATIC_UCODE_STRING("/"));
  -const XalanDOMString         
Constants::PSEUDONAME_TEXT(XALAN_STATIC_UCODE_STRING("#text"));
  +
  +static XalanDOMString                ATTRNAME_AMOUNT;
  +static XalanDOMString                ATTRNAME_ANCESTOR;
  +static XalanDOMString                ATTRNAME_ARCHIVE;
  +static XalanDOMString                ATTRNAME_ATTRIBUTE;
  +static XalanDOMString                ATTRNAME_ATTRIBUTE_SET;
  +static XalanDOMString                ATTRNAME_CASEORDER;
  +static XalanDOMString                ATTRNAME_CLASS;
  +static XalanDOMString                ATTRNAME_CLASSID;
  +static XalanDOMString                ATTRNAME_CODEBASE;
  +static XalanDOMString                ATTRNAME_CODETYPE;
  +static XalanDOMString                ATTRNAME_CONDITION;
  +static XalanDOMString                ATTRNAME_COPYTYPE;
  +static XalanDOMString                ATTRNAME_COUNT;
  +static XalanDOMString                ATTRNAME_DATATYPE;
  +static XalanDOMString                ATTRNAME_DECIMALSEPARATOR;
  +static XalanDOMString                ATTRNAME_DEFAULT;
  +static XalanDOMString                ATTRNAME_DEFAULTSPACE;
  +static XalanDOMString                ATTRNAME_DEPTH;
  +static XalanDOMString                ATTRNAME_DIGIT;
  +static XalanDOMString                ATTRNAME_DIGITGROUPSEP;
  +static XalanDOMString                ATTRNAME_DISABLE_OUTPUT_ESCAPING;
  +static XalanDOMString                ATTRNAME_ELEMENT;
  +static XalanDOMString                ATTRNAME_ELEMENTS;
  +static XalanDOMString                ATTRNAME_EXCLUDE_RESULT_PREFIXES;
  +static XalanDOMString                ATTRNAME_EXPR;
  +static XalanDOMString                ATTRNAME_EXTENSIONELEMENTPREFIXES;
  +static XalanDOMString                ATTRNAME_FORMAT;
  +static XalanDOMString                ATTRNAME_FROM;
  +static XalanDOMString                ATTRNAME_GROUPINGSEPARATOR;
  +static XalanDOMString                ATTRNAME_GROUPINGSIZE;
  +static XalanDOMString                ATTRNAME_HREF;
  +static XalanDOMString                ATTRNAME_ID;
  +static XalanDOMString                ATTRNAME_IMPORTANCE;
  +static XalanDOMString                ATTRNAME_INDENTRESULT;
  +static XalanDOMString                ATTRNAME_INFINITY;
  +static XalanDOMString                ATTRNAME_LANG;
  +static XalanDOMString                ATTRNAME_LETTERVALUE;
  +static XalanDOMString                ATTRNAME_LEVEL;
  +static XalanDOMString                ATTRNAME_MATCH;
  +static XalanDOMString                ATTRNAME_METHOD;
  +static XalanDOMString                ATTRNAME_MINUSSIGN;
  +static XalanDOMString                ATTRNAME_MODE;
  +static XalanDOMString                ATTRNAME_NAME;
  +static XalanDOMString                ATTRNAME_NAMESPACE;
  +static XalanDOMString                ATTRNAME_NAN;
  +static XalanDOMString                ATTRNAME_NDIGITSPERGROUP;
  +static XalanDOMString                ATTRNAME_NS;
  +static XalanDOMString                ATTRNAME_ONLY;
  +static XalanDOMString                ATTRNAME_ORDER;
  +static XalanDOMString                ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  +static XalanDOMString                ATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  +static XalanDOMString                ATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  +static XalanDOMString                ATTRNAME_OUTPUT_ENCODING;
  +static XalanDOMString                ATTRNAME_OUTPUT_INDENT;
  +static XalanDOMString                ATTRNAME_OUTPUT_MEDIATYPE;
  +static XalanDOMString                ATTRNAME_OUTPUT_METHOD;
  +static XalanDOMString                ATTRNAME_OUTPUT_OMITXMLDECL;
  +static XalanDOMString                ATTRNAME_OUTPUT_STANDALONE;
  +static XalanDOMString                ATTRNAME_OUTPUT_VERSION;
  +static XalanDOMString                ATTRNAME_PATTERNSEPARATOR;
  +static XalanDOMString                ATTRNAME_PERCENT;
  +static XalanDOMString                ATTRNAME_PERMILLE;
  +static XalanDOMString                ATTRNAME_PRIORITY;
  +static XalanDOMString                ATTRNAME_REFID;
  +static XalanDOMString                ATTRNAME_RESULTNS;
  +static XalanDOMString                ATTRNAME_RESULT_PREFIX;
  +static XalanDOMString                ATTRNAME_SELECT;
  +static XalanDOMString                ATTRNAME_SEQUENCESRC;
  +static XalanDOMString                ATTRNAME_STYLE;
  +static XalanDOMString                ATTRNAME_STYLESHEET_PREFIX;
  +static XalanDOMString                ATTRNAME_TERMINATE;
  +static XalanDOMString                ATTRNAME_TEST;
  +static XalanDOMString                ATTRNAME_TOSTRING;
  +static XalanDOMString                ATTRNAME_TYPE;
  +static XalanDOMString                ATTRNAME_USE;
  +static XalanDOMString                ATTRNAME_USEATTRIBUTESETS;
  +static XalanDOMString                ATTRNAME_VALUE;
  +static XalanDOMString                ATTRNAME_VERSION;
  +static XalanDOMString                ATTRNAME_XMLNS;
  +static XalanDOMString                ATTRNAME_XMLNSDEF;
  +static XalanDOMString                ATTRNAME_XMLSPACE;
  +static XalanDOMString                ATTRNAME_ZERODIGIT;
  +
  +static XalanDOMString                ATTRVAL_ALPHABETIC;
  +static XalanDOMString                ATTRVAL_ANCESTOR;
  +static XalanDOMString                ATTRVAL_ANY;
  +static XalanDOMString                ATTRVAL_CASEORDER_LOWER;
  +static XalanDOMString                ATTRVAL_CASEORDER_UPPER;
  +static XalanDOMString                ATTRVAL_DATATYPE_NUMBER;
  +static XalanDOMString                ATTRVAL_DATATYPE_TEXT;
  +static XalanDOMString                ATTRVAL_DEFAULT_PREFIX;
  +static XalanDOMString                ATTRVAL_ID;
  +static XalanDOMString                ATTRVAL_INFINITY;
  +static XalanDOMString                ATTRVAL_MULTI;
  +static XalanDOMString                ATTRVAL_NAN;
  +static XalanDOMString                ATTRVAL_NO;
  +static XalanDOMString                ATTRVAL_ORDER_ASCENDING;
  +static XalanDOMString                ATTRVAL_ORDER_DESCENDING;
  +static XalanDOMString                ATTRVAL_OTHER;
  +static XalanDOMString                ATTRVAL_OUTPUT_METHOD_HTML;
  +static XalanDOMString                ATTRVAL_OUTPUT_METHOD_TEXT;
  +static XalanDOMString                ATTRVAL_OUTPUT_METHOD_XML;
  +static XalanDOMString                ATTRVAL_PARENT;
  +static XalanDOMString                ATTRVAL_PRESERVE;
  +static XalanDOMString                ATTRVAL_SINGLE;
  +static XalanDOMString                ATTRVAL_STRIP;
  +static XalanDOMString                ATTRVAL_THIS;
  +static XalanDOMString                ATTRVAL_YES;
  +static XalanDOMString                DEFAULT_DECIMAL_FORMAT;
  +static XalanDOMString                ELEMNAME_ANCHOR_STRING;
  +static XalanDOMString                ELEMNAME_ANY_STRING;
  +static XalanDOMString                ELEMNAME_APPLY_IMPORTS_STRING;
  +static XalanDOMString                ELEMNAME_APPLY_TEMPLATES_STRING;
  +static XalanDOMString                ELEMNAME_ARG_STRING;
  +static XalanDOMString                ELEMNAME_ATTRIBUTESET_STRING;
  +static XalanDOMString                ELEMNAME_ATTRIBUTE_STRING;
  +static XalanDOMString                ELEMNAME_CALLTEMPLATEARG_STRING;
  +static XalanDOMString                ELEMNAME_CALLTEMPLATE_STRING;
  +static XalanDOMString                ELEMNAME_CALL_STRING;
  +static XalanDOMString                ELEMNAME_CHILDREN_STRING;
  +static XalanDOMString                ELEMNAME_CHOOSE_STRING;
  +static XalanDOMString                ELEMNAME_COMMENT_STRING;
  +static XalanDOMString                ELEMNAME_COMPONENT_STRING;
  +static XalanDOMString                ELEMNAME_CONSTRUCT_STRING;
  +static XalanDOMString                ELEMNAME_CONTENTS_STRING;
  +static XalanDOMString                ELEMNAME_COPY_OF_STRING;
  +static XalanDOMString                ELEMNAME_COPY_STRING;
  +static XalanDOMString                ELEMNAME_COUNTERINCREMENT_STRING;
  +static XalanDOMString                ELEMNAME_COUNTERRESET_STRING;
  +static XalanDOMString                ELEMNAME_COUNTERSCOPE_STRING;
  +static XalanDOMString                ELEMNAME_COUNTERS_STRING;
  +static XalanDOMString                ELEMNAME_COUNTER_STRING;
  +static XalanDOMString                ELEMNAME_DECIMALFORMAT_STRING;
  +static XalanDOMString                ELEMNAME_DISPLAYIF_STRING;
  +static XalanDOMString                ELEMNAME_ELEMENT_STRING;
  +static XalanDOMString                ELEMNAME_EMPTY_STRING;
  +static XalanDOMString                ELEMNAME_EVAL_STRING;
  +static XalanDOMString                ELEMNAME_EXPECTEDCHILDREN_STRING;
  +static XalanDOMString                ELEMNAME_EXTENSIONHANDLER_STRING;
  +static XalanDOMString                ELEMNAME_EXTENSION_STRING;
  +static XalanDOMString                ELEMNAME_FALLBACK_STRING;
  +static XalanDOMString                ELEMNAME_FOREACH_STRING;
  +static XalanDOMString                ELEMNAME_HTML_STRING;
  +static XalanDOMString                ELEMNAME_IF_STRING;
  +static XalanDOMString                ELEMNAME_IMPORT_STRING;
  +static XalanDOMString                ELEMNAME_INCLUDE_STRING;
  +static XalanDOMString                ELEMNAME_KEY_STRING;
  +static XalanDOMString                ELEMNAME_LOCALE_STRING;
  +static XalanDOMString                ELEMNAME_MESSAGE_STRING;
  +static XalanDOMString                ELEMNAME_NSALIAS_STRING;
  +static XalanDOMString                ELEMNAME_NUMBER_STRING;
  +static XalanDOMString                ELEMNAME_OTHERWISE_STRING;
  +static XalanDOMString                ELEMNAME_OUTPUT_STRING;
  +static XalanDOMString                ELEMNAME_PARAMVARIABLE_STRING;
  +static XalanDOMString                ELEMNAME_PI_OLD_STRING;
  +static XalanDOMString                ELEMNAME_PI_STRING;
  +static XalanDOMString                ELEMNAME_PRESERVESPACE_STRING;
  +static XalanDOMString                ELEMNAME_ROOT_STRING;
  +static XalanDOMString                ELEMNAME_SCRIPT_STRING;
  +static XalanDOMString                ELEMNAME_SORT_STRING;
  +static XalanDOMString                ELEMNAME_STRIPSPACE_STRING;
  +static XalanDOMString                ELEMNAME_STYLESHEET_STRING;
  +static XalanDOMString                ELEMNAME_TARGETATTRIBUTE_STRING;
  +static XalanDOMString                ELEMNAME_TARGETCOMMENT_STRING;
  +static XalanDOMString                ELEMNAME_TARGETELEMENT_STRING;
  +static XalanDOMString                ELEMNAME_TARGETPI_STRING;
  +static XalanDOMString                ELEMNAME_TARGETTEXT_STRING;
  +static XalanDOMString                ELEMNAME_TEMPLATE_STRING;
  +static XalanDOMString                ELEMNAME_TEXT_STRING;
  +static XalanDOMString                ELEMNAME_TRANSFORM_STRING;
  +static XalanDOMString                ELEMNAME_URL_STRING;
  +static XalanDOMString                ELEMNAME_USE_STRING;
  +static XalanDOMString                ELEMNAME_VALUEOF_STRING;
  +static XalanDOMString                ELEMNAME_VARIABLE_STRING;
  +static XalanDOMString                ELEMNAME_WHEN_STRING;
  +static XalanDOMString                ELEMNAME_WITHPARAM_STRING;
  +static XalanDOMString                PSEUDONAME_ANY;
  +static XalanDOMString                PSEUDONAME_COMMENT;
  +static XalanDOMString                PSEUDONAME_OTHER;
  +static XalanDOMString                PSEUDONAME_PI;
  +static XalanDOMString                PSEUDONAME_ROOT;
  +static XalanDOMString                PSEUDONAME_TEXT;
  +
  +
  +
  +const XalanDOMString&                Constants::ATTRNAME_AMOUNT = 
::ATTRNAME_AMOUNT;
  +const XalanDOMString&                Constants::ATTRNAME_ANCESTOR = 
::ATTRNAME_ANCESTOR;
  +const XalanDOMString&                Constants::ATTRNAME_ARCHIVE = 
::ATTRNAME_ARCHIVE;
  +const XalanDOMString&                Constants::ATTRNAME_ATTRIBUTE = 
::ATTRNAME_ATTRIBUTE;
  +const XalanDOMString&                Constants::ATTRNAME_ATTRIBUTE_SET = 
::ATTRNAME_ATTRIBUTE_SET;
  +const XalanDOMString&                Constants::ATTRNAME_CASEORDER = 
::ATTRNAME_CASEORDER;
  +const XalanDOMString&                Constants::ATTRNAME_CLASS = 
::ATTRNAME_CLASS;
  +const XalanDOMString&                Constants::ATTRNAME_CLASSID = 
::ATTRNAME_CLASSID;
  +const XalanDOMString&                Constants::ATTRNAME_CODEBASE = 
::ATTRNAME_CODEBASE;
  +const XalanDOMString&                Constants::ATTRNAME_CODETYPE = 
::ATTRNAME_CODETYPE;
  +const XalanDOMString&                Constants::ATTRNAME_CONDITION = 
::ATTRNAME_CONDITION;
  +const XalanDOMString&                Constants::ATTRNAME_COPYTYPE = 
::ATTRNAME_COPYTYPE;
  +const XalanDOMString&                Constants::ATTRNAME_COUNT = 
::ATTRNAME_COUNT;
  +const XalanDOMString&                Constants::ATTRNAME_DATATYPE = 
::ATTRNAME_DATATYPE;
  +const XalanDOMString&                Constants::ATTRNAME_DECIMALSEPARATOR = 
::ATTRNAME_DECIMALSEPARATOR;
  +const XalanDOMString&                Constants::ATTRNAME_DEFAULT = 
::ATTRNAME_DEFAULT;
  +const XalanDOMString&                Constants::ATTRNAME_DEFAULTSPACE = 
::ATTRNAME_DEFAULTSPACE;
  +const XalanDOMString&                Constants::ATTRNAME_DEPTH = 
::ATTRNAME_DEPTH;
  +const XalanDOMString&                Constants::ATTRNAME_DIGIT = 
::ATTRNAME_DIGIT;
  +const XalanDOMString&                Constants::ATTRNAME_DIGITGROUPSEP = 
::ATTRNAME_DIGITGROUPSEP;
  +const XalanDOMString&                
Constants::ATTRNAME_DISABLE_OUTPUT_ESCAPING  = 
::ATTRNAME_DISABLE_OUTPUT_ESCAPING;
  +const XalanDOMString&                Constants::ATTRNAME_ELEMENT = 
::ATTRNAME_ELEMENT;
  +const XalanDOMString&                Constants::ATTRNAME_ELEMENTS = 
::ATTRNAME_ELEMENTS;
  +const XalanDOMString&                
Constants::ATTRNAME_EXCLUDE_RESULT_PREFIXES = 
::ATTRNAME_EXCLUDE_RESULT_PREFIXES;
  +const XalanDOMString&                Constants::ATTRNAME_EXPR = 
::ATTRNAME_EXPR;
  +const XalanDOMString&                
Constants::ATTRNAME_EXTENSIONELEMENTPREFIXES = 
::ATTRNAME_EXTENSIONELEMENTPREFIXES;
  +const XalanDOMString&                Constants::ATTRNAME_FORMAT = 
::ATTRNAME_FORMAT;
  +const XalanDOMString&                Constants::ATTRNAME_FROM = 
::ATTRNAME_FROM;
  +const XalanDOMString&                Constants::ATTRNAME_GROUPINGSEPARATOR = 
::ATTRNAME_GROUPINGSEPARATOR;
  +const XalanDOMString&                Constants::ATTRNAME_GROUPINGSIZE = 
::ATTRNAME_GROUPINGSIZE;
  +const XalanDOMString&                Constants::ATTRNAME_HREF = 
::ATTRNAME_HREF;
  +const XalanDOMString&                Constants::ATTRNAME_ID = ::ATTRNAME_ID;
  +const XalanDOMString&                Constants::ATTRNAME_IMPORTANCE = 
::ATTRNAME_IMPORTANCE;
  +const XalanDOMString&                Constants::ATTRNAME_INDENTRESULT = 
::ATTRNAME_INDENTRESULT;
  +const XalanDOMString&                Constants::ATTRNAME_INFINITY = 
::ATTRNAME_INFINITY;
  +const XalanDOMString&                Constants::ATTRNAME_LANG = 
::ATTRNAME_LANG;
  +const XalanDOMString&                Constants::ATTRNAME_LETTERVALUE = 
::ATTRNAME_LETTERVALUE;
  +const XalanDOMString&                Constants::ATTRNAME_LEVEL = 
::ATTRNAME_LEVEL;
  +const XalanDOMString&                Constants::ATTRNAME_MATCH = 
::ATTRNAME_MATCH;
  +const XalanDOMString&                Constants::ATTRNAME_METHOD = 
::ATTRNAME_METHOD;
  +const XalanDOMString&                Constants::ATTRNAME_MINUSSIGN = 
::ATTRNAME_MINUSSIGN;
  +const XalanDOMString&                Constants::ATTRNAME_MODE = 
::ATTRNAME_MODE;
  +const XalanDOMString&                Constants::ATTRNAME_NAME = 
::ATTRNAME_NAME;
  +const XalanDOMString&                Constants::ATTRNAME_NAMESPACE = 
::ATTRNAME_NAMESPACE;
  +const XalanDOMString&                Constants::ATTRNAME_NAN = 
::ATTRNAME_NAN;
  +const XalanDOMString&                Constants::ATTRNAME_NDIGITSPERGROUP = 
::ATTRNAME_NDIGITSPERGROUP;
  +const XalanDOMString&                Constants::ATTRNAME_NS = ::ATTRNAME_NS;
  +const XalanDOMString&                Constants::ATTRNAME_ONLY = 
::ATTRNAME_ONLY;
  +const XalanDOMString&                Constants::ATTRNAME_ORDER = 
::ATTRNAME_ORDER;
  +const XalanDOMString&                
Constants::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS  = 
::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  +const XalanDOMString&                
Constants::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC = ::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  +const XalanDOMString&                
Constants::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM = ::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_ENCODING = 
::ATTRNAME_OUTPUT_ENCODING;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_INDENT = 
::ATTRNAME_OUTPUT_INDENT;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_MEDIATYPE = 
::ATTRNAME_OUTPUT_MEDIATYPE;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_METHOD = 
::ATTRNAME_OUTPUT_METHOD;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_OMITXMLDECL 
= ::ATTRNAME_OUTPUT_OMITXMLDECL;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_STANDALONE  
= ::ATTRNAME_OUTPUT_STANDALONE;
  +const XalanDOMString&                Constants::ATTRNAME_OUTPUT_VERSION = 
::ATTRNAME_OUTPUT_VERSION;
  +const XalanDOMString&                Constants::ATTRNAME_PATTERNSEPARATOR = 
::ATTRNAME_PATTERNSEPARATOR;
  +const XalanDOMString&                Constants::ATTRNAME_PERCENT = 
::ATTRNAME_PERCENT;
  +const XalanDOMString&                Constants::ATTRNAME_PERMILLE = 
::ATTRNAME_PERMILLE;
  +const XalanDOMString&                Constants::ATTRNAME_PRIORITY = 
::ATTRNAME_PRIORITY;
  +const XalanDOMString&                Constants::ATTRNAME_REFID = 
::ATTRNAME_REFID;
  +const XalanDOMString&                Constants::ATTRNAME_RESULTNS = 
::ATTRNAME_RESULTNS;
  +const XalanDOMString&                Constants::ATTRNAME_RESULT_PREFIX = 
::ATTRNAME_RESULT_PREFIX;
  +const XalanDOMString&                Constants::ATTRNAME_SELECT = 
::ATTRNAME_SELECT;
  +const XalanDOMString&                Constants::ATTRNAME_SEQUENCESRC = 
::ATTRNAME_SEQUENCESRC;
  +const XalanDOMString&                Constants::ATTRNAME_STYLE = 
::ATTRNAME_STYLE;
  +const XalanDOMString&                Constants::ATTRNAME_STYLESHEET_PREFIX = 
::ATTRNAME_STYLESHEET_PREFIX;
  +const XalanDOMString&                Constants::ATTRNAME_TERMINATE = 
::ATTRNAME_TERMINATE;
  +const XalanDOMString&                Constants::ATTRNAME_TEST = 
::ATTRNAME_TEST;
  +const XalanDOMString&                Constants::ATTRNAME_TOSTRING = 
::ATTRNAME_TOSTRING;
  +const XalanDOMString&                Constants::ATTRNAME_TYPE = 
::ATTRNAME_TYPE;
  +const XalanDOMString&                Constants::ATTRNAME_USE = 
::ATTRNAME_USE;
  +const XalanDOMString&                Constants::ATTRNAME_USEATTRIBUTESETS = 
::ATTRNAME_USEATTRIBUTESETS;
  +const XalanDOMString&                Constants::ATTRNAME_VALUE = 
::ATTRNAME_VALUE;
  +const XalanDOMString&                Constants::ATTRNAME_VERSION = 
::ATTRNAME_VERSION;
  +const XalanDOMString&                Constants::ATTRNAME_XMLNS = 
::ATTRNAME_XMLNS;
  +const XalanDOMString&                Constants::ATTRNAME_XMLNSDEF = 
::ATTRNAME_XMLNSDEF;
  +const XalanDOMString&                Constants::ATTRNAME_XMLSPACE = 
::ATTRNAME_XMLSPACE;
  +const XalanDOMString&                Constants::ATTRNAME_ZERODIGIT = 
::ATTRNAME_ZERODIGIT;
  +const XalanDOMString&                Constants::ATTRVAL_ALPHABETIC = 
::ATTRVAL_ALPHABETIC;
  +const XalanDOMString&                Constants::ATTRVAL_ANCESTOR = 
::ATTRVAL_ANCESTOR;
  +const XalanDOMString&                Constants::ATTRVAL_ANY = ::ATTRVAL_ANY;
  +const XalanDOMString&                Constants::ATTRVAL_CASEORDER_LOWER = 
::ATTRVAL_CASEORDER_LOWER;
  +const XalanDOMString&                Constants::ATTRVAL_CASEORDER_UPPER = 
::ATTRVAL_CASEORDER_UPPER;
  +const XalanDOMString&                Constants::ATTRVAL_DATATYPE_NUMBER = 
::ATTRVAL_DATATYPE_NUMBER;
  +const XalanDOMString&                Constants::ATTRVAL_DATATYPE_TEXT = 
::ATTRVAL_DATATYPE_TEXT;
  +const XalanDOMString&                Constants::ATTRVAL_DEFAULT_PREFIX = 
::ATTRVAL_DEFAULT_PREFIX;
  +const XalanDOMString&                Constants::ATTRVAL_ID = ::ATTRVAL_ID;
  +const XalanDOMString&                Constants::ATTRVAL_INFINITY = 
::ATTRVAL_INFINITY;
  +const XalanDOMString&                Constants::ATTRVAL_MULTI = 
::ATTRVAL_MULTI;
  +const XalanDOMString&                Constants::ATTRVAL_NAN = ::ATTRVAL_NAN;
  +const XalanDOMString&                Constants::ATTRVAL_NO = ::ATTRVAL_NO;
  +const XalanDOMString&                Constants::ATTRVAL_ORDER_ASCENDING = 
::ATTRVAL_ORDER_ASCENDING;
  +const XalanDOMString&                Constants::ATTRVAL_ORDER_DESCENDING = 
::ATTRVAL_ORDER_DESCENDING;
  +const XalanDOMString&                Constants::ATTRVAL_OTHER = 
::ATTRVAL_OTHER;
  +const XalanDOMString&                Constants::ATTRVAL_OUTPUT_METHOD_HTML = 
::ATTRVAL_OUTPUT_METHOD_HTML;
  +const XalanDOMString&                Constants::ATTRVAL_OUTPUT_METHOD_TEXT = 
::ATTRVAL_OUTPUT_METHOD_TEXT;
  +const XalanDOMString&                Constants::ATTRVAL_OUTPUT_METHOD_XML = 
::ATTRVAL_OUTPUT_METHOD_XML;
  +const XalanDOMString&                Constants::ATTRVAL_PARENT = 
::ATTRVAL_PARENT;
  +const XalanDOMString&                Constants::ATTRVAL_PRESERVE = 
::ATTRVAL_PRESERVE;
  +const XalanDOMString&                Constants::ATTRVAL_SINGLE = 
::ATTRVAL_SINGLE;
  +const XalanDOMString&                Constants::ATTRVAL_STRIP = 
::ATTRVAL_STRIP;
  +const XalanDOMString&                Constants::ATTRVAL_THIS = 
::ATTRVAL_THIS;
  +const XalanDOMString&                Constants::ATTRVAL_YES = ::ATTRVAL_YES;
  +const XalanDOMString&                Constants::DEFAULT_DECIMAL_FORMAT = 
::DEFAULT_DECIMAL_FORMAT;
  +const XalanDOMString&                Constants::ELEMNAME_ANCHOR_STRING = 
::ELEMNAME_ANCHOR_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ANY_STRING = 
::ELEMNAME_ANY_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_APPLY_IMPORTS_STRING = ::ELEMNAME_APPLY_IMPORTS_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_APPLY_TEMPLATES_STRING = ::ELEMNAME_APPLY_TEMPLATES_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ARG_STRING = 
::ELEMNAME_ARG_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ATTRIBUTESET_STRING 
= ::ELEMNAME_ATTRIBUTESET_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ATTRIBUTE_STRING = 
::ELEMNAME_ATTRIBUTE_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_CALLTEMPLATEARG_STRING = ::ELEMNAME_CALLTEMPLATEARG_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CALLTEMPLATE_STRING 
= ::ELEMNAME_CALLTEMPLATE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CALL_STRING = 
::ELEMNAME_CALL_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CHILDREN_STRING = 
::ELEMNAME_CHILDREN_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CHOOSE_STRING = 
::ELEMNAME_CHOOSE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COMMENT_STRING = 
::ELEMNAME_COMMENT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COMPONENT_STRING = 
::ELEMNAME_COMPONENT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CONSTRUCT_STRING = 
::ELEMNAME_CONSTRUCT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_CONTENTS_STRING = 
::ELEMNAME_CONTENTS_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COPY_OF_STRING = 
::ELEMNAME_COPY_OF_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COPY_STRING = 
::ELEMNAME_COPY_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_COUNTERINCREMENT_STRING = 
::ELEMNAME_COUNTERINCREMENT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COUNTERRESET_STRING 
= ::ELEMNAME_COUNTERRESET_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COUNTERSCOPE_STRING 
= ::ELEMNAME_COUNTERSCOPE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COUNTERS_STRING = 
::ELEMNAME_COUNTERS_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_COUNTER_STRING = 
::ELEMNAME_COUNTER_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_DECIMALFORMAT_STRING = ::ELEMNAME_DECIMALFORMAT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_DISPLAYIF_STRING = 
::ELEMNAME_DISPLAYIF_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ELEMENT_STRING = 
::ELEMNAME_ELEMENT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_EMPTY_STRING = 
::ELEMNAME_EMPTY_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_EVAL_STRING = 
::ELEMNAME_EVAL_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_EXPECTEDCHILDREN_STRING = 
::ELEMNAME_EXPECTEDCHILDREN_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_EXTENSIONHANDLER_STRING = 
::ELEMNAME_EXTENSIONHANDLER_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_EXTENSION_STRING = 
::ELEMNAME_EXTENSION_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_FALLBACK_STRING = 
::ELEMNAME_FALLBACK_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_FOREACH_STRING = 
::ELEMNAME_FOREACH_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_HTML_STRING = 
::ELEMNAME_HTML_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_IF_STRING = 
::ELEMNAME_IF_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_IMPORT_STRING = 
::ELEMNAME_IMPORT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_INCLUDE_STRING = 
::ELEMNAME_INCLUDE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_KEY_STRING = 
::ELEMNAME_KEY_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_LOCALE_STRING = 
::ELEMNAME_LOCALE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_MESSAGE_STRING = 
::ELEMNAME_MESSAGE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_NSALIAS_STRING = 
::ELEMNAME_NSALIAS_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_NUMBER_STRING = 
::ELEMNAME_NUMBER_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_OTHERWISE_STRING = 
::ELEMNAME_OTHERWISE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_OUTPUT_STRING = 
::ELEMNAME_OUTPUT_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_PARAMVARIABLE_STRING = ::ELEMNAME_PARAMVARIABLE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_PI_OLD_STRING = 
::ELEMNAME_PI_OLD_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_PI_STRING = 
::ELEMNAME_PI_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_PRESERVESPACE_STRING = ::ELEMNAME_PRESERVESPACE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_ROOT_STRING = 
::ELEMNAME_ROOT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_SCRIPT_STRING = 
::ELEMNAME_SCRIPT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_SORT_STRING = 
::ELEMNAME_SORT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_STRIPSPACE_STRING = 
::ELEMNAME_STRIPSPACE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_STYLESHEET_STRING = 
::ELEMNAME_STYLESHEET_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_TARGETATTRIBUTE_STRING = ::ELEMNAME_TARGETATTRIBUTE_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_TARGETCOMMENT_STRING = ::ELEMNAME_TARGETCOMMENT_STRING;
  +const XalanDOMString&                
Constants::ELEMNAME_TARGETELEMENT_STRING = ::ELEMNAME_TARGETELEMENT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_TARGETPI_STRING = 
::ELEMNAME_TARGETPI_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_TARGETTEXT_STRING = 
::ELEMNAME_TARGETTEXT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_TEMPLATE_STRING = 
::ELEMNAME_TEMPLATE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_TEXT_STRING = 
::ELEMNAME_TEXT_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_TRANSFORM_STRING = 
::ELEMNAME_TRANSFORM_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_URL_STRING = 
::ELEMNAME_URL_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_USE_STRING = 
::ELEMNAME_USE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_VALUEOF_STRING = 
::ELEMNAME_VALUEOF_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_VARIABLE_STRING = 
::ELEMNAME_VARIABLE_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_WHEN_STRING = 
::ELEMNAME_WHEN_STRING;
  +const XalanDOMString&                Constants::ELEMNAME_WITHPARAM_STRING = 
::ELEMNAME_WITHPARAM_STRING;
  +const XalanDOMString&                Constants::PSEUDONAME_ANY = 
::PSEUDONAME_ANY;
  +const XalanDOMString&                Constants::PSEUDONAME_COMMENT = 
::PSEUDONAME_COMMENT;
  +const XalanDOMString&                Constants::PSEUDONAME_OTHER = 
::PSEUDONAME_OTHER;
  +const XalanDOMString&                Constants::PSEUDONAME_PI = 
::PSEUDONAME_PI;
  +const XalanDOMString&                Constants::PSEUDONAME_ROOT = 
::PSEUDONAME_ROOT;
  +const XalanDOMString&                Constants::PSEUDONAME_TEXT = 
::PSEUDONAME_TEXT;
  +
  +
  +
  +void
  +Constants::initialize()
  +{
  +     ::ATTRNAME_AMOUNT = XALAN_STATIC_UCODE_STRING("amount");
  +     ::ATTRNAME_ANCESTOR = XALAN_STATIC_UCODE_STRING("ancestor");
  +     ::ATTRNAME_ARCHIVE = XALAN_STATIC_UCODE_STRING("archive");
  +     ::ATTRNAME_ATTRIBUTE = XALAN_STATIC_UCODE_STRING("attribute");
  +     ::ATTRNAME_ATTRIBUTE_SET = XALAN_STATIC_UCODE_STRING("attribute-set");
  +     ::ATTRNAME_CASEORDER = XALAN_STATIC_UCODE_STRING("case-order");
  +     ::ATTRNAME_CLASS = XALAN_STATIC_UCODE_STRING("class");
  +     ::ATTRNAME_CLASSID = XALAN_STATIC_UCODE_STRING("classid");
  +     ::ATTRNAME_CODEBASE = XALAN_STATIC_UCODE_STRING("codebase");
  +     ::ATTRNAME_CODETYPE = XALAN_STATIC_UCODE_STRING("type");
  +     ::ATTRNAME_CONDITION = XALAN_STATIC_UCODE_STRING("condition");
  +     ::ATTRNAME_COPYTYPE = XALAN_STATIC_UCODE_STRING("copy-type");
  +     ::ATTRNAME_COUNT = XALAN_STATIC_UCODE_STRING("count");
  +     ::ATTRNAME_DATATYPE = XALAN_STATIC_UCODE_STRING("data-type");
  +     ::ATTRNAME_DECIMALSEPARATOR = 
XALAN_STATIC_UCODE_STRING("decimal-separator");
  +     ::ATTRNAME_DEFAULT = XALAN_STATIC_UCODE_STRING("default");
  +     ::ATTRNAME_DEFAULTSPACE = XALAN_STATIC_UCODE_STRING("default-space");
  +     ::ATTRNAME_DEPTH = XALAN_STATIC_UCODE_STRING("with-children");
  +     ::ATTRNAME_DIGIT = XALAN_STATIC_UCODE_STRING("digit");
  +     ::ATTRNAME_DIGITGROUPSEP = XALAN_STATIC_UCODE_STRING("digit-group-sep");
  +     ::ATTRNAME_DISABLE_OUTPUT_ESCAPING  = 
XALAN_STATIC_UCODE_STRING("disable-output-escaping");
  +     ::ATTRNAME_ELEMENT = XALAN_STATIC_UCODE_STRING("element");
  +     ::ATTRNAME_ELEMENTS = XALAN_STATIC_UCODE_STRING("elements");
  +     ::ATTRNAME_EXCLUDE_RESULT_PREFIXES = 
XALAN_STATIC_UCODE_STRING("exclude-result-prefixes");
  +     ::ATTRNAME_EXPR = XALAN_STATIC_UCODE_STRING("expr");
  +     ::ATTRNAME_EXTENSIONELEMENTPREFIXES = 
XALAN_STATIC_UCODE_STRING("extension-element-prefixes");
  +     ::ATTRNAME_FORMAT = XALAN_STATIC_UCODE_STRING("format");
  +     ::ATTRNAME_FROM = XALAN_STATIC_UCODE_STRING("from");
  +     ::ATTRNAME_GROUPINGSEPARATOR = 
XALAN_STATIC_UCODE_STRING("grouping-separator");
  +     ::ATTRNAME_GROUPINGSIZE = XALAN_STATIC_UCODE_STRING("grouping-size");
  +     ::ATTRNAME_HREF = XALAN_STATIC_UCODE_STRING("href");
  +     ::ATTRNAME_ID = XALAN_STATIC_UCODE_STRING("id");
  +     ::ATTRNAME_IMPORTANCE = XALAN_STATIC_UCODE_STRING("importance");
  +     ::ATTRNAME_INDENTRESULT = XALAN_STATIC_UCODE_STRING("indent-result");
  +     ::ATTRNAME_INFINITY = XALAN_STATIC_UCODE_STRING("infinity");
  +     ::ATTRNAME_LANG = XALAN_STATIC_UCODE_STRING("lang");
  +     ::ATTRNAME_LETTERVALUE = XALAN_STATIC_UCODE_STRING("letter-value");
  +     ::ATTRNAME_LEVEL = XALAN_STATIC_UCODE_STRING("level");
  +     ::ATTRNAME_MATCH = XALAN_STATIC_UCODE_STRING("match");
  +     ::ATTRNAME_METHOD = XALAN_STATIC_UCODE_STRING("calls");
  +     ::ATTRNAME_MINUSSIGN = XALAN_STATIC_UCODE_STRING("minus-sign");
  +     ::ATTRNAME_MODE = XALAN_STATIC_UCODE_STRING("mode");
  +     ::ATTRNAME_NAME = XALAN_STATIC_UCODE_STRING("name");
  +     ::ATTRNAME_NAMESPACE = XALAN_STATIC_UCODE_STRING("namespace");
  +     ::ATTRNAME_NAN = XALAN_STATIC_UCODE_STRING("NaN");
  +     ::ATTRNAME_NDIGITSPERGROUP = 
XALAN_STATIC_UCODE_STRING("n-digits-per-group");
  +     ::ATTRNAME_NS = XALAN_STATIC_UCODE_STRING("ns");
  +     ::ATTRNAME_ONLY = XALAN_STATIC_UCODE_STRING("only");
  +     ::ATTRNAME_ORDER = XALAN_STATIC_UCODE_STRING("order");
  +     ::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS  = 
XALAN_STATIC_UCODE_STRING("cdata-section-elements");
  +     ::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC = 
XALAN_STATIC_UCODE_STRING("doctype-public");
  +     ::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM = 
XALAN_STATIC_UCODE_STRING("doctype-system");
  +     ::ATTRNAME_OUTPUT_ENCODING = XALAN_STATIC_UCODE_STRING("encoding");
  +     ::ATTRNAME_OUTPUT_INDENT = XALAN_STATIC_UCODE_STRING("indent");
  +     ::ATTRNAME_OUTPUT_MEDIATYPE = XALAN_STATIC_UCODE_STRING("media-type");
  +     ::ATTRNAME_OUTPUT_METHOD = XALAN_STATIC_UCODE_STRING("method");
  +     ::ATTRNAME_OUTPUT_OMITXMLDECL = 
XALAN_STATIC_UCODE_STRING("omit-xml-declaration");
  +     ::ATTRNAME_OUTPUT_STANDALONE  = XALAN_STATIC_UCODE_STRING("standalone");
  +     ::ATTRNAME_OUTPUT_VERSION = XALAN_STATIC_UCODE_STRING("version");
  +     ::ATTRNAME_PATTERNSEPARATOR = 
XALAN_STATIC_UCODE_STRING("pattern-separator");
  +     ::ATTRNAME_PERCENT = XALAN_STATIC_UCODE_STRING("percent");
  +     ::ATTRNAME_PERMILLE = XALAN_STATIC_UCODE_STRING("per-mille");
  +     ::ATTRNAME_PRIORITY = XALAN_STATIC_UCODE_STRING("priority");
  +     ::ATTRNAME_REFID = XALAN_STATIC_UCODE_STRING("refID");
  +     ::ATTRNAME_RESULTNS = XALAN_STATIC_UCODE_STRING("result-ns");
  +     ::ATTRNAME_RESULT_PREFIX = XALAN_STATIC_UCODE_STRING("result-prefix");
  +     ::ATTRNAME_SELECT = XALAN_STATIC_UCODE_STRING("select");
  +     ::ATTRNAME_SEQUENCESRC = XALAN_STATIC_UCODE_STRING("sequence-src");
  +     ::ATTRNAME_STYLE = XALAN_STATIC_UCODE_STRING("style");
  +     ::ATTRNAME_STYLESHEET_PREFIX = 
XALAN_STATIC_UCODE_STRING("stylesheet-prefix");
  +     ::ATTRNAME_TERMINATE = XALAN_STATIC_UCODE_STRING("terminate");
  +     ::ATTRNAME_TEST = XALAN_STATIC_UCODE_STRING("test");
  +     ::ATTRNAME_TOSTRING = XALAN_STATIC_UCODE_STRING("to-string");
  +     ::ATTRNAME_TYPE = XALAN_STATIC_UCODE_STRING("type");
  +     ::ATTRNAME_USE = XALAN_STATIC_UCODE_STRING("use");
  +     ::ATTRNAME_USEATTRIBUTESETS = 
XALAN_STATIC_UCODE_STRING("use-attribute-sets");
  +     ::ATTRNAME_VALUE = XALAN_STATIC_UCODE_STRING("value");
  +     ::ATTRNAME_VERSION = XALAN_STATIC_UCODE_STRING("version");
  +     ::ATTRNAME_XMLNS = XALAN_STATIC_UCODE_STRING("xmlns:");
  +     ::ATTRNAME_XMLNSDEF = XALAN_STATIC_UCODE_STRING("xmlns");
  +     ::ATTRNAME_XMLSPACE = XALAN_STATIC_UCODE_STRING("xml:space");
  +     ::ATTRNAME_ZERODIGIT = XALAN_STATIC_UCODE_STRING("zero-digit");
  +
  +     ::ATTRVAL_ALPHABETIC = XALAN_STATIC_UCODE_STRING("alphabetic");
  +     ::ATTRVAL_ANCESTOR = XALAN_STATIC_UCODE_STRING("ancestor");
  +     ::ATTRVAL_ANY = XALAN_STATIC_UCODE_STRING("any");
  +     ::ATTRVAL_CASEORDER_LOWER = XALAN_STATIC_UCODE_STRING("lower-first");
  +     ::ATTRVAL_CASEORDER_UPPER = XALAN_STATIC_UCODE_STRING("upper-first");
  +     ::ATTRVAL_DATATYPE_NUMBER = XALAN_STATIC_UCODE_STRING("number");
  +     ::ATTRVAL_DATATYPE_TEXT = XALAN_STATIC_UCODE_STRING("text");
  +     ::ATTRVAL_DEFAULT_PREFIX = XALAN_STATIC_UCODE_STRING("#default");
  +     ::ATTRVAL_ID = XALAN_STATIC_UCODE_STRING("id");
  +     ::ATTRVAL_INFINITY = XALAN_STATIC_UCODE_STRING("Infinity");
  +     ::ATTRVAL_MULTI = XALAN_STATIC_UCODE_STRING("multiple");
  +     ::ATTRVAL_NAN = XALAN_STATIC_UCODE_STRING("NaN");
  +     ::ATTRVAL_NO = XALAN_STATIC_UCODE_STRING("no");
  +     ::ATTRVAL_ORDER_ASCENDING = XALAN_STATIC_UCODE_STRING("ascending");
  +     ::ATTRVAL_ORDER_DESCENDING = XALAN_STATIC_UCODE_STRING("descending");
  +     ::ATTRVAL_OTHER = XALAN_STATIC_UCODE_STRING("other");
  +     ::ATTRVAL_OUTPUT_METHOD_HTML = XALAN_STATIC_UCODE_STRING("html");
  +     ::ATTRVAL_OUTPUT_METHOD_TEXT = XALAN_STATIC_UCODE_STRING("text");
  +     ::ATTRVAL_OUTPUT_METHOD_XML = XALAN_STATIC_UCODE_STRING("xml");
  +     ::ATTRVAL_PARENT = XALAN_STATIC_UCODE_STRING("..");
  +     ::ATTRVAL_PRESERVE = XALAN_STATIC_UCODE_STRING("preserve");
  +     ::ATTRVAL_SINGLE = XALAN_STATIC_UCODE_STRING("single");
  +     ::ATTRVAL_STRIP = XALAN_STATIC_UCODE_STRING("strip");
  +     ::ATTRVAL_THIS = XALAN_STATIC_UCODE_STRING(".");
  +     ::ATTRVAL_YES = XALAN_STATIC_UCODE_STRING("yes");
  +     ::DEFAULT_DECIMAL_FORMAT = XALAN_STATIC_UCODE_STRING("#default");
  +     ::ELEMNAME_ANCHOR_STRING = XALAN_STATIC_UCODE_STRING("anchor");
  +     ::ELEMNAME_ANY_STRING = XALAN_STATIC_UCODE_STRING("any");
  +     ::ELEMNAME_APPLY_IMPORTS_STRING = 
XALAN_STATIC_UCODE_STRING("apply-imports");
  +     ::ELEMNAME_APPLY_TEMPLATES_STRING = 
XALAN_STATIC_UCODE_STRING("apply-templates");
  +     ::ELEMNAME_ARG_STRING = XALAN_STATIC_UCODE_STRING("arg");
  +     ::ELEMNAME_ATTRIBUTESET_STRING = 
XALAN_STATIC_UCODE_STRING("attribute-set");
  +     ::ELEMNAME_ATTRIBUTE_STRING = XALAN_STATIC_UCODE_STRING("attribute");
  +     ::ELEMNAME_CALLTEMPLATEARG_STRING = 
XALAN_STATIC_UCODE_STRING("invoke-arg");
  +     ::ELEMNAME_CALLTEMPLATE_STRING = 
XALAN_STATIC_UCODE_STRING("call-template");
  +     ::ELEMNAME_CALL_STRING = XALAN_STATIC_UCODE_STRING("call");
  +     ::ELEMNAME_CHILDREN_STRING = XALAN_STATIC_UCODE_STRING("children");
  +     ::ELEMNAME_CHOOSE_STRING = XALAN_STATIC_UCODE_STRING("choose");
  +     ::ELEMNAME_COMMENT_STRING = XALAN_STATIC_UCODE_STRING("comment");
  +     ::ELEMNAME_COMPONENT_STRING = XALAN_STATIC_UCODE_STRING("component");
  +     ::ELEMNAME_CONSTRUCT_STRING = XALAN_STATIC_UCODE_STRING("construct");
  +     ::ELEMNAME_CONTENTS_STRING = XALAN_STATIC_UCODE_STRING("contents");
  +     ::ELEMNAME_COPY_OF_STRING = XALAN_STATIC_UCODE_STRING("copy-of");
  +     ::ELEMNAME_COPY_STRING = XALAN_STATIC_UCODE_STRING("copy");
  +     ::ELEMNAME_COUNTERINCREMENT_STRING = 
XALAN_STATIC_UCODE_STRING("counter-increment");
  +     ::ELEMNAME_COUNTERRESET_STRING = 
XALAN_STATIC_UCODE_STRING("counter-reset");
  +     ::ELEMNAME_COUNTERSCOPE_STRING = 
XALAN_STATIC_UCODE_STRING("counter-scope");
  +     ::ELEMNAME_COUNTERS_STRING = XALAN_STATIC_UCODE_STRING("counters");
  +     ::ELEMNAME_COUNTER_STRING = XALAN_STATIC_UCODE_STRING("counter");
  +     ::ELEMNAME_DECIMALFORMAT_STRING = 
XALAN_STATIC_UCODE_STRING("decimal-format");
  +     ::ELEMNAME_DISPLAYIF_STRING = XALAN_STATIC_UCODE_STRING("display-if");
  +     ::ELEMNAME_ELEMENT_STRING = XALAN_STATIC_UCODE_STRING("element");
  +     ::ELEMNAME_EMPTY_STRING = XALAN_STATIC_UCODE_STRING("empty");
  +     ::ELEMNAME_EVAL_STRING = XALAN_STATIC_UCODE_STRING("eval");
  +     ::ELEMNAME_EXPECTEDCHILDREN_STRING = 
XALAN_STATIC_UCODE_STRING("expectedchildren");
  +     ::ELEMNAME_EXTENSIONHANDLER_STRING = 
XALAN_STATIC_UCODE_STRING("code-dispatcher");
  +     ::ELEMNAME_EXTENSION_STRING = XALAN_STATIC_UCODE_STRING("functions");
  +     ::ELEMNAME_FALLBACK_STRING = XALAN_STATIC_UCODE_STRING("fallback");
  +     ::ELEMNAME_FOREACH_STRING = XALAN_STATIC_UCODE_STRING("for-each");
  +     ::ELEMNAME_HTML_STRING = XALAN_STATIC_UCODE_STRING("HTML");
  +     ::ELEMNAME_IF_STRING = XALAN_STATIC_UCODE_STRING("if");
  +     ::ELEMNAME_IMPORT_STRING = XALAN_STATIC_UCODE_STRING("import");
  +     ::ELEMNAME_INCLUDE_STRING = XALAN_STATIC_UCODE_STRING("include");
  +     ::ELEMNAME_KEY_STRING = XALAN_STATIC_UCODE_STRING("key");
  +     ::ELEMNAME_LOCALE_STRING = XALAN_STATIC_UCODE_STRING("locale");
  +     ::ELEMNAME_MESSAGE_STRING = XALAN_STATIC_UCODE_STRING("message");
  +     ::ELEMNAME_NSALIAS_STRING = 
XALAN_STATIC_UCODE_STRING("namespace-alias");
  +     ::ELEMNAME_NUMBER_STRING = XALAN_STATIC_UCODE_STRING("number");
  +     ::ELEMNAME_OTHERWISE_STRING = XALAN_STATIC_UCODE_STRING("otherwise");
  +     ::ELEMNAME_OUTPUT_STRING = XALAN_STATIC_UCODE_STRING("output");
  +     ::ELEMNAME_PARAMVARIABLE_STRING = XALAN_STATIC_UCODE_STRING("param");
  +     ::ELEMNAME_PI_OLD_STRING = XALAN_STATIC_UCODE_STRING("pi");
  +     ::ELEMNAME_PI_STRING = 
XALAN_STATIC_UCODE_STRING("processing-instruction");
  +     ::ELEMNAME_PRESERVESPACE_STRING = 
XALAN_STATIC_UCODE_STRING("preserve-space");
  +     ::ELEMNAME_ROOT_STRING = XALAN_STATIC_UCODE_STRING("root");
  +     ::ELEMNAME_SCRIPT_STRING = XALAN_STATIC_UCODE_STRING("script");
  +     ::ELEMNAME_SORT_STRING = XALAN_STATIC_UCODE_STRING("sort");
  +     ::ELEMNAME_STRIPSPACE_STRING = XALAN_STATIC_UCODE_STRING("strip-space");
  +     ::ELEMNAME_STYLESHEET_STRING = XALAN_STATIC_UCODE_STRING("stylesheet");
  +     ::ELEMNAME_TARGETATTRIBUTE_STRING = 
XALAN_STATIC_UCODE_STRING("target-attribute");
  +     ::ELEMNAME_TARGETCOMMENT_STRING = 
XALAN_STATIC_UCODE_STRING("target-comment");
  +     ::ELEMNAME_TARGETELEMENT_STRING = 
XALAN_STATIC_UCODE_STRING("target-element");
  +     ::ELEMNAME_TARGETPI_STRING = XALAN_STATIC_UCODE_STRING("target-pi");
  +     ::ELEMNAME_TARGETTEXT_STRING = XALAN_STATIC_UCODE_STRING("target-text");
  +     ::ELEMNAME_TEMPLATE_STRING = XALAN_STATIC_UCODE_STRING("template");
  +     ::ELEMNAME_TEXT_STRING = XALAN_STATIC_UCODE_STRING("text");
  +     ::ELEMNAME_TRANSFORM_STRING = XALAN_STATIC_UCODE_STRING("transform");
  +     ::ELEMNAME_URL_STRING = XALAN_STATIC_UCODE_STRING("uri");
  +     ::ELEMNAME_USE_STRING = XALAN_STATIC_UCODE_STRING("use");
  +     ::ELEMNAME_VALUEOF_STRING = XALAN_STATIC_UCODE_STRING("value-of");
  +     ::ELEMNAME_VARIABLE_STRING = XALAN_STATIC_UCODE_STRING("variable");
  +     ::ELEMNAME_WHEN_STRING = XALAN_STATIC_UCODE_STRING("when");
  +     ::ELEMNAME_WITHPARAM_STRING = XALAN_STATIC_UCODE_STRING("with-param");
  +     ::PSEUDONAME_ANY = XALAN_STATIC_UCODE_STRING("*");
  +     ::PSEUDONAME_COMMENT = XALAN_STATIC_UCODE_STRING("#comment");
  +     ::PSEUDONAME_OTHER = XALAN_STATIC_UCODE_STRING("*");
  +     ::PSEUDONAME_PI = XALAN_STATIC_UCODE_STRING("#pi");
  +     ::PSEUDONAME_ROOT = XALAN_STATIC_UCODE_STRING("/");
  +     ::PSEUDONAME_TEXT = XALAN_STATIC_UCODE_STRING("#text");
  +}
  +
  +
  +
  +
  +void
  +Constants::terminate()
  +{
  +     clear(::ATTRNAME_AMOUNT);
  +     clear(::ATTRNAME_ANCESTOR);
  +     clear(::ATTRNAME_ARCHIVE);
  +     clear(::ATTRNAME_ATTRIBUTE);
  +     clear(::ATTRNAME_ATTRIBUTE_SET);
  +     clear(::ATTRNAME_CASEORDER);
  +     clear(::ATTRNAME_CLASS);
  +     clear(::ATTRNAME_CLASSID);
  +     clear(::ATTRNAME_CODEBASE);
  +     clear(::ATTRNAME_CODETYPE);
  +     clear(::ATTRNAME_CONDITION);
  +     clear(::ATTRNAME_COPYTYPE);
  +     clear(::ATTRNAME_COUNT);
  +     clear(::ATTRNAME_DATATYPE);
  +     clear(::ATTRNAME_DECIMALSEPARATOR);
  +     clear(::ATTRNAME_DEFAULT);
  +     clear(::ATTRNAME_DEFAULTSPACE);
  +     clear(::ATTRNAME_DEPTH);
  +     clear(::ATTRNAME_DIGIT);
  +     clear(::ATTRNAME_DIGITGROUPSEP);
  +     clear(::ATTRNAME_DISABLE_OUTPUT_ESCAPING);
  +     clear(::ATTRNAME_ELEMENT);
  +     clear(::ATTRNAME_ELEMENTS);
  +     clear(::ATTRNAME_EXCLUDE_RESULT_PREFIXES);
  +     clear(::ATTRNAME_EXPR);
  +     clear(::ATTRNAME_EXTENSIONELEMENTPREFIXES);
  +     clear(::ATTRNAME_FORMAT);
  +     clear(::ATTRNAME_FROM);
  +     clear(::ATTRNAME_GROUPINGSEPARATOR);
  +     clear(::ATTRNAME_GROUPINGSIZE);
  +     clear(::ATTRNAME_HREF);
  +     clear(::ATTRNAME_ID);
  +     clear(::ATTRNAME_IMPORTANCE);
  +     clear(::ATTRNAME_INDENTRESULT);
  +     clear(::ATTRNAME_INFINITY);
  +     clear(::ATTRNAME_LANG);
  +     clear(::ATTRNAME_LETTERVALUE);
  +     clear(::ATTRNAME_LEVEL);
  +     clear(::ATTRNAME_MATCH);
  +     clear(::ATTRNAME_METHOD);
  +     clear(::ATTRNAME_MINUSSIGN);
  +     clear(::ATTRNAME_MODE);
  +     clear(::ATTRNAME_NAME);
  +     clear(::ATTRNAME_NAMESPACE);
  +     clear(::ATTRNAME_NAN);
  +     clear(::ATTRNAME_NDIGITSPERGROUP);
  +     clear(::ATTRNAME_NS);
  +     clear(::ATTRNAME_ONLY);
  +     clear(::ATTRNAME_ORDER);
  +     clear(::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS);
  +     clear(::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC);
  +     clear(::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM);
  +     clear(::ATTRNAME_OUTPUT_ENCODING);
  +     clear(::ATTRNAME_OUTPUT_INDENT);
  +     clear(::ATTRNAME_OUTPUT_MEDIATYPE);
  +     clear(::ATTRNAME_OUTPUT_METHOD);
  +     clear(::ATTRNAME_OUTPUT_OMITXMLDECL);
  +     clear(::ATTRNAME_OUTPUT_STANDALONE);
  +     clear(::ATTRNAME_OUTPUT_VERSION);
  +     clear(::ATTRNAME_PATTERNSEPARATOR);
  +     clear(::ATTRNAME_PERCENT);
  +     clear(::ATTRNAME_PERMILLE);
  +     clear(::ATTRNAME_PRIORITY);
  +     clear(::ATTRNAME_REFID);
  +     clear(::ATTRNAME_RESULTNS);
  +     clear(::ATTRNAME_RESULT_PREFIX);
  +     clear(::ATTRNAME_SELECT);
  +     clear(::ATTRNAME_SEQUENCESRC);
  +     clear(::ATTRNAME_STYLE);
  +     clear(::ATTRNAME_STYLESHEET_PREFIX);
  +     clear(::ATTRNAME_TERMINATE);
  +     clear(::ATTRNAME_TEST);
  +     clear(::ATTRNAME_TOSTRING);
  +     clear(::ATTRNAME_TYPE);
  +     clear(::ATTRNAME_USE);
  +     clear(::ATTRNAME_USEATTRIBUTESETS);
  +     clear(::ATTRNAME_VALUE);
  +     clear(::ATTRNAME_VERSION);
  +     clear(::ATTRNAME_XMLNS);
  +     clear(::ATTRNAME_XMLNSDEF);
  +     clear(::ATTRNAME_XMLSPACE);
  +     clear(::ATTRNAME_ZERODIGIT);
  +
  +     clear(::ATTRVAL_ALPHABETIC);
  +     clear(::ATTRVAL_ANCESTOR);
  +     clear(::ATTRVAL_ANY);
  +     clear(::ATTRVAL_CASEORDER_LOWER);
  +     clear(::ATTRVAL_CASEORDER_UPPER);
  +     clear(::ATTRVAL_DATATYPE_NUMBER);
  +     clear(::ATTRVAL_DATATYPE_TEXT);
  +     clear(::ATTRVAL_DEFAULT_PREFIX);
  +     clear(::ATTRVAL_ID);
  +     clear(::ATTRVAL_INFINITY);
  +     clear(::ATTRVAL_MULTI);
  +     clear(::ATTRVAL_NAN);
  +     clear(::ATTRVAL_NO);
  +     clear(::ATTRVAL_ORDER_ASCENDING);
  +     clear(::ATTRVAL_ORDER_DESCENDING);
  +     clear(::ATTRVAL_OTHER);
  +     clear(::ATTRVAL_OUTPUT_METHOD_HTML);
  +     clear(::ATTRVAL_OUTPUT_METHOD_TEXT);
  +     clear(::ATTRVAL_OUTPUT_METHOD_XML);
  +     clear(::ATTRVAL_PARENT);
  +     clear(::ATTRVAL_PRESERVE);
  +     clear(::ATTRVAL_SINGLE);
  +     clear(::ATTRVAL_STRIP);
  +     clear(::ATTRVAL_THIS);
  +     clear(::ATTRVAL_YES);
  +     clear(::DEFAULT_DECIMAL_FORMAT);
  +     clear(::ELEMNAME_ANCHOR_STRING);
  +     clear(::ELEMNAME_ANY_STRING);
  +     clear(::ELEMNAME_APPLY_IMPORTS_STRING);
  +     clear(::ELEMNAME_APPLY_TEMPLATES_STRING);
  +     clear(::ELEMNAME_ARG_STRING);
  +     clear(::ELEMNAME_ATTRIBUTESET_STRING);
  +     clear(::ELEMNAME_ATTRIBUTE_STRING);
  +     clear(::ELEMNAME_CALLTEMPLATEARG_STRING);
  +     clear(::ELEMNAME_CALLTEMPLATE_STRING);
  +     clear(::ELEMNAME_CALL_STRING);
  +     clear(::ELEMNAME_CHILDREN_STRING);
  +     clear(::ELEMNAME_CHOOSE_STRING);
  +     clear(::ELEMNAME_COMMENT_STRING);
  +     clear(::ELEMNAME_COMPONENT_STRING);
  +     clear(::ELEMNAME_CONSTRUCT_STRING);
  +     clear(::ELEMNAME_CONTENTS_STRING);
  +     clear(::ELEMNAME_COPY_OF_STRING);
  +     clear(::ELEMNAME_COPY_STRING);
  +     clear(::ELEMNAME_COUNTERINCREMENT_STRING);
  +     clear(::ELEMNAME_COUNTERRESET_STRING);
  +     clear(::ELEMNAME_COUNTERSCOPE_STRING);
  +     clear(::ELEMNAME_COUNTERS_STRING);
  +     clear(::ELEMNAME_COUNTER_STRING);
  +     clear(::ELEMNAME_DECIMALFORMAT_STRING);
  +     clear(::ELEMNAME_DISPLAYIF_STRING);
  +     clear(::ELEMNAME_ELEMENT_STRING);
  +     clear(::ELEMNAME_EMPTY_STRING);
  +     clear(::ELEMNAME_EVAL_STRING);
  +     clear(::ELEMNAME_EXPECTEDCHILDREN_STRING);
  +     clear(::ELEMNAME_EXTENSIONHANDLER_STRING);
  +     clear(::ELEMNAME_EXTENSION_STRING);
  +     clear(::ELEMNAME_FALLBACK_STRING);
  +     clear(::ELEMNAME_FOREACH_STRING);
  +     clear(::ELEMNAME_HTML_STRING);
  +     clear(::ELEMNAME_IF_STRING);
  +     clear(::ELEMNAME_IMPORT_STRING);
  +     clear(::ELEMNAME_INCLUDE_STRING);
  +     clear(::ELEMNAME_KEY_STRING);
  +     clear(::ELEMNAME_LOCALE_STRING);
  +     clear(::ELEMNAME_MESSAGE_STRING);
  +     clear(::ELEMNAME_NSALIAS_STRING);
  +     clear(::ELEMNAME_NUMBER_STRING);
  +     clear(::ELEMNAME_OTHERWISE_STRING);
  +     clear(::ELEMNAME_OUTPUT_STRING);
  +     clear(::ELEMNAME_PARAMVARIABLE_STRING);
  +     clear(::ELEMNAME_PI_OLD_STRING);
  +     clear(::ELEMNAME_PI_STRING);
  +     clear(::ELEMNAME_PRESERVESPACE_STRING);
  +     clear(::ELEMNAME_ROOT_STRING);
  +     clear(::ELEMNAME_SCRIPT_STRING);
  +     clear(::ELEMNAME_SORT_STRING);
  +     clear(::ELEMNAME_STRIPSPACE_STRING);
  +     clear(::ELEMNAME_STYLESHEET_STRING);
  +     clear(::ELEMNAME_TARGETATTRIBUTE_STRING);
  +     clear(::ELEMNAME_TARGETCOMMENT_STRING);
  +     clear(::ELEMNAME_TARGETELEMENT_STRING);
  +     clear(::ELEMNAME_TARGETPI_STRING);
  +     clear(::ELEMNAME_TARGETTEXT_STRING);
  +     clear(::ELEMNAME_TEMPLATE_STRING);
  +     clear(::ELEMNAME_TEXT_STRING);
  +     clear(::ELEMNAME_TRANSFORM_STRING);
  +     clear(::ELEMNAME_URL_STRING);
  +     clear(::ELEMNAME_USE_STRING);
  +     clear(::ELEMNAME_VALUEOF_STRING);
  +     clear(::ELEMNAME_VARIABLE_STRING);
  +     clear(::ELEMNAME_WHEN_STRING);
  +     clear(::ELEMNAME_WITHPARAM_STRING);
  +     clear(::PSEUDONAME_ANY);
  +     clear(::PSEUDONAME_COMMENT);
  +     clear(::PSEUDONAME_OTHER);
  +     clear(::PSEUDONAME_PI);
  +     clear(::PSEUDONAME_ROOT);
  +     clear(::PSEUDONAME_TEXT);
  +}
  
  
  
  1.11      +196 -183  xml-xalan/c/src/XSLT/Constants.hpp
  
  Index: Constants.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Constants.hpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Constants.hpp     2000/05/24 19:36:34     1.10
  +++ Constants.hpp     2000/08/31 19:43:09     1.11
  @@ -78,6 +78,19 @@
   public:
   
        /**
  +      * Perform initialization of statics -- must be called before any
  +      * processing occurs.  See class XSLTInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform termination of statics.  See class XSLTInit.
  +      */
  +     static void
  +     terminate();
  +
  +     /**
         * IDs for XSL element types. These are associated 
         * with the string literals in the XSLTProcessor class.
         * Don't change the numbers.
  @@ -178,206 +191,206 @@
         */
   
        // Result tree counting
  -     static const XalanDOMString     ELEMNAME_ANCHOR_STRING;
  -     static const XalanDOMString     ELEMNAME_ANY_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_APPLY_IMPORTS_STRING;
  -     static const XalanDOMString     ELEMNAME_APPLY_TEMPLATES_STRING;
  -     static const XalanDOMString     ELEMNAME_ARG_STRING;
  -     static const XalanDOMString     ELEMNAME_ATTRIBUTESET_STRING;
  -     static const XalanDOMString     ELEMNAME_ATTRIBUTE_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_CALLTEMPLATEARG_STRING;
  -     static const XalanDOMString     ELEMNAME_CALLTEMPLATE_STRING;
  -     static const XalanDOMString     ELEMNAME_CALL_STRING;
  -     static const XalanDOMString     ELEMNAME_CHILDREN_STRING;
  -     static const XalanDOMString     ELEMNAME_CHOOSE_STRING;
  -     static const XalanDOMString     ELEMNAME_COMMENT_STRING;
  -     static const XalanDOMString     ELEMNAME_CONSTRUCT_STRING; // my own
  -     static const XalanDOMString     ELEMNAME_CONTENTS_STRING;
  -     static const XalanDOMString     ELEMNAME_COPY_OF_STRING;
  -     static const XalanDOMString     ELEMNAME_COPY_STRING;
  -     static const XalanDOMString     ELEMNAME_COUNTERINCREMENT_STRING;
  -     static const XalanDOMString     ELEMNAME_COUNTERRESET_STRING;
  -     static const XalanDOMString     ELEMNAME_COUNTERSCOPE_STRING;
  -     static const XalanDOMString     ELEMNAME_COUNTERS_STRING;
  -     static const XalanDOMString     ELEMNAME_COUNTER_STRING;
  -     static const XalanDOMString     ELEMNAME_DECIMALFORMAT_STRING;
  -     static const XalanDOMString     ELEMNAME_DISPLAYIF_STRING; // my own
  -     static const XalanDOMString     ELEMNAME_ELEMENT_STRING;  // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_EMPTY_STRING;
  -     static const XalanDOMString     ELEMNAME_EVAL_STRING;
  -     static const XalanDOMString     ELEMNAME_EXPECTEDCHILDREN_STRING;
  -     static const XalanDOMString     ELEMNAME_EXTENSIONHANDLER_STRING;
  -     static const XalanDOMString     ELEMNAME_EXTENSION_STRING;
  -     static const XalanDOMString     ELEMNAME_FALLBACK_STRING;
  -     static const XalanDOMString     ELEMNAME_FOREACH_STRING;
  -     static const XalanDOMString     ELEMNAME_HTML_STRING;
  -     static const XalanDOMString     ELEMNAME_IF_STRING;
  -     static const XalanDOMString     ELEMNAME_IMPORT_STRING;
  -     static const XalanDOMString     ELEMNAME_INCLUDE_STRING;
  -     static const XalanDOMString     ELEMNAME_KEY_STRING;
  -     static const XalanDOMString     ELEMNAME_LOCALE_STRING;
  -     static const XalanDOMString     ELEMNAME_MESSAGE_STRING;
  -     static const XalanDOMString     ELEMNAME_NSALIAS_STRING;
  -     static const XalanDOMString     ELEMNAME_NUMBER_STRING;
  -     static const XalanDOMString     ELEMNAME_OTHERWISE_STRING;
  -     static const XalanDOMString     ELEMNAME_PRESERVESPACE_STRING;
  -     static const XalanDOMString     ELEMNAME_ROOT_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_SORT_STRING;
  -     static const XalanDOMString     ELEMNAME_STRIPSPACE_STRING;
  -     static const XalanDOMString     ELEMNAME_STYLESHEET_STRING;
  -     static const XalanDOMString     ELEMNAME_TARGETATTRIBUTE_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_TARGETCOMMENT_STRING;
  -     static const XalanDOMString     ELEMNAME_TARGETELEMENT_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_TARGETPI_STRING;
  -     static const XalanDOMString     ELEMNAME_TARGETTEXT_STRING;
  -     static const XalanDOMString     ELEMNAME_TEMPLATE_STRING;
  -     static const XalanDOMString     ELEMNAME_TEXT_STRING;
  -     static const XalanDOMString     ELEMNAME_TRANSFORM_STRING;
  -     static const XalanDOMString     ELEMNAME_URL_STRING; // 
pattern-by-example support
  -     static const XalanDOMString     ELEMNAME_USE_STRING;
  -     static const XalanDOMString     ELEMNAME_VALUEOF_STRING;
  -     static const XalanDOMString     ELEMNAME_VARIABLE_STRING;
  -     static const XalanDOMString     ELEMNAME_WHEN_STRING;
  -     static const XalanDOMString     ELEMNAME_COMPONENT_STRING;
  -     static const XalanDOMString     ELEMNAME_OUTPUT_STRING;
  -     static const XalanDOMString     ELEMNAME_PARAMVARIABLE_STRING;
  -     static const XalanDOMString     ELEMNAME_PI_OLD_STRING;
  -     static const XalanDOMString     ELEMNAME_PI_STRING;
  -     static const XalanDOMString     ELEMNAME_SCRIPT_STRING;
  -     static const XalanDOMString     ELEMNAME_WITHPARAM_STRING;
  +     static const XalanDOMString&    ELEMNAME_ANCHOR_STRING;
  +     static const XalanDOMString&    ELEMNAME_ANY_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_APPLY_IMPORTS_STRING;
  +     static const XalanDOMString&    ELEMNAME_APPLY_TEMPLATES_STRING;
  +     static const XalanDOMString&    ELEMNAME_ARG_STRING;
  +     static const XalanDOMString&    ELEMNAME_ATTRIBUTESET_STRING;
  +     static const XalanDOMString&    ELEMNAME_ATTRIBUTE_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_CALLTEMPLATEARG_STRING;
  +     static const XalanDOMString&    ELEMNAME_CALLTEMPLATE_STRING;
  +     static const XalanDOMString&    ELEMNAME_CALL_STRING;
  +     static const XalanDOMString&    ELEMNAME_CHILDREN_STRING;
  +     static const XalanDOMString&    ELEMNAME_CHOOSE_STRING;
  +     static const XalanDOMString&    ELEMNAME_COMMENT_STRING;
  +     static const XalanDOMString&    ELEMNAME_CONSTRUCT_STRING; // my own
  +     static const XalanDOMString&    ELEMNAME_CONTENTS_STRING;
  +     static const XalanDOMString&    ELEMNAME_COPY_OF_STRING;
  +     static const XalanDOMString&    ELEMNAME_COPY_STRING;
  +     static const XalanDOMString&    ELEMNAME_COUNTERINCREMENT_STRING;
  +     static const XalanDOMString&    ELEMNAME_COUNTERRESET_STRING;
  +     static const XalanDOMString&    ELEMNAME_COUNTERSCOPE_STRING;
  +     static const XalanDOMString&    ELEMNAME_COUNTERS_STRING;
  +     static const XalanDOMString&    ELEMNAME_COUNTER_STRING;
  +     static const XalanDOMString&    ELEMNAME_DECIMALFORMAT_STRING;
  +     static const XalanDOMString&    ELEMNAME_DISPLAYIF_STRING; // my own
  +     static const XalanDOMString&    ELEMNAME_ELEMENT_STRING;  // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_EMPTY_STRING;
  +     static const XalanDOMString&    ELEMNAME_EVAL_STRING;
  +     static const XalanDOMString&    ELEMNAME_EXPECTEDCHILDREN_STRING;
  +     static const XalanDOMString&    ELEMNAME_EXTENSIONHANDLER_STRING;
  +     static const XalanDOMString&    ELEMNAME_EXTENSION_STRING;
  +     static const XalanDOMString&    ELEMNAME_FALLBACK_STRING;
  +     static const XalanDOMString&    ELEMNAME_FOREACH_STRING;
  +     static const XalanDOMString&    ELEMNAME_HTML_STRING;
  +     static const XalanDOMString&    ELEMNAME_IF_STRING;
  +     static const XalanDOMString&    ELEMNAME_IMPORT_STRING;
  +     static const XalanDOMString&    ELEMNAME_INCLUDE_STRING;
  +     static const XalanDOMString&    ELEMNAME_KEY_STRING;
  +     static const XalanDOMString&    ELEMNAME_LOCALE_STRING;
  +     static const XalanDOMString&    ELEMNAME_MESSAGE_STRING;
  +     static const XalanDOMString&    ELEMNAME_NSALIAS_STRING;
  +     static const XalanDOMString&    ELEMNAME_NUMBER_STRING;
  +     static const XalanDOMString&    ELEMNAME_OTHERWISE_STRING;
  +     static const XalanDOMString&    ELEMNAME_PRESERVESPACE_STRING;
  +     static const XalanDOMString&    ELEMNAME_ROOT_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_SORT_STRING;
  +     static const XalanDOMString&    ELEMNAME_STRIPSPACE_STRING;
  +     static const XalanDOMString&    ELEMNAME_STYLESHEET_STRING;
  +     static const XalanDOMString&    ELEMNAME_TARGETATTRIBUTE_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_TARGETCOMMENT_STRING;
  +     static const XalanDOMString&    ELEMNAME_TARGETELEMENT_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_TARGETPI_STRING;
  +     static const XalanDOMString&    ELEMNAME_TARGETTEXT_STRING;
  +     static const XalanDOMString&    ELEMNAME_TEMPLATE_STRING;
  +     static const XalanDOMString&    ELEMNAME_TEXT_STRING;
  +     static const XalanDOMString&    ELEMNAME_TRANSFORM_STRING;
  +     static const XalanDOMString&    ELEMNAME_URL_STRING; // 
pattern-by-example support
  +     static const XalanDOMString&    ELEMNAME_USE_STRING;
  +     static const XalanDOMString&    ELEMNAME_VALUEOF_STRING;
  +     static const XalanDOMString&    ELEMNAME_VARIABLE_STRING;
  +     static const XalanDOMString&    ELEMNAME_WHEN_STRING;
  +     static const XalanDOMString&    ELEMNAME_COMPONENT_STRING;
  +     static const XalanDOMString&    ELEMNAME_OUTPUT_STRING;
  +     static const XalanDOMString&    ELEMNAME_PARAMVARIABLE_STRING;
  +     static const XalanDOMString&    ELEMNAME_PI_OLD_STRING;
  +     static const XalanDOMString&    ELEMNAME_PI_STRING;
  +     static const XalanDOMString&    ELEMNAME_SCRIPT_STRING;
  +     static const XalanDOMString&    ELEMNAME_WITHPARAM_STRING;
     
        /*---------------------------------------------
         * Literals for XSL attribute names.
         */
  -     static const XalanDOMString     ATTRNAME_AMOUNT;
  -     static const XalanDOMString     ATTRNAME_ANCESTOR;
  -     static const XalanDOMString     ATTRNAME_ATTRIBUTE;
  -     static const XalanDOMString     ATTRNAME_ATTRIBUTE_SET;
  -     static const XalanDOMString     ATTRNAME_CASEORDER;
  -     static const XalanDOMString     ATTRNAME_CLASS;
  -     static const XalanDOMString     ATTRNAME_CONDITION;
  -     static const XalanDOMString     ATTRNAME_COPYTYPE;
  -     static const XalanDOMString     ATTRNAME_COUNT;
  -     static const XalanDOMString     ATTRNAME_DATATYPE;
  -     static const XalanDOMString     ATTRNAME_DECIMALSEPARATOR;
  -     static const XalanDOMString     ATTRNAME_DEFAULT;
  -     static const XalanDOMString     ATTRNAME_DEFAULTSPACE;
  -     static const XalanDOMString     ATTRNAME_DEPTH;
  -     static const XalanDOMString     ATTRNAME_DIGIT;
  -     static const XalanDOMString     ATTRNAME_DIGITGROUPSEP;
  -     static const XalanDOMString     ATTRNAME_ELEMENT;
  -     static const XalanDOMString     ATTRNAME_ELEMENTS;
  -     static const XalanDOMString     ATTRNAME_EXCLUDE_RESULT_PREFIXES;
  -     static const XalanDOMString     ATTRNAME_EXPR;
  -     static const XalanDOMString     ATTRNAME_EXTENSIONELEMENTPREFIXES;
  -     static const XalanDOMString     ATTRNAME_FORMAT;
  -     static const XalanDOMString     ATTRNAME_FROM;
  -     static const XalanDOMString     ATTRNAME_GROUPINGSEPARATOR;
  -     static const XalanDOMString     ATTRNAME_GROUPINGSIZE;
  -     static const XalanDOMString     ATTRNAME_HREF;
  -     static const XalanDOMString     ATTRNAME_ID;
  -     static const XalanDOMString     ATTRNAME_IMPORTANCE;
  -     static const XalanDOMString     ATTRNAME_INDENTRESULT;
  -     static const XalanDOMString     ATTRNAME_INFINITY;
  -     static const XalanDOMString     ATTRNAME_LANG;
  -     static const XalanDOMString     ATTRNAME_LETTERVALUE;
  -     static const XalanDOMString     ATTRNAME_LEVEL;
  -     static const XalanDOMString     ATTRNAME_MATCH;
  -     static const XalanDOMString     ATTRNAME_MINUSSIGN;
  -     static const XalanDOMString     ATTRNAME_MODE;
  -     static const XalanDOMString     ATTRNAME_NAME;
  -     static const XalanDOMString     ATTRNAME_NAMESPACE;
  -     static const XalanDOMString     ATTRNAME_NAN;
  -     static const XalanDOMString     ATTRNAME_NDIGITSPERGROUP;
  -     static const XalanDOMString     ATTRNAME_ONLY;
  -     static const XalanDOMString     ATTRNAME_ORDER;
  -     static const XalanDOMString     ATTRNAME_PATTERNSEPARATOR;
  -     static const XalanDOMString     ATTRNAME_PERCENT;
  -     static const XalanDOMString     ATTRNAME_PERMILLE;
  -     static const XalanDOMString     ATTRNAME_PRIORITY;
  -     static const XalanDOMString     ATTRNAME_REFID;
  -     static const XalanDOMString     ATTRNAME_RESULTNS;
  -     static const XalanDOMString     ATTRNAME_RESULT_PREFIX;
  -     static const XalanDOMString     ATTRNAME_SELECT;
  -     static const XalanDOMString     ATTRNAME_SEQUENCESRC;
  -     static const XalanDOMString     ATTRNAME_STYLE;
  -     static const XalanDOMString     ATTRNAME_TERMINATE;
  -     static const XalanDOMString     ATTRNAME_TEST;
  -     static const XalanDOMString     ATTRNAME_TOSTRING;
  -     static const XalanDOMString     ATTRNAME_TYPE;
  -     static const XalanDOMString     ATTRNAME_USE;
  -     static const XalanDOMString     ATTRNAME_USEATTRIBUTESETS;
  -     static const XalanDOMString     ATTRNAME_VALUE;
  -     static const XalanDOMString     ATTRNAME_VERSION;
  -     static const XalanDOMString     ATTRNAME_XMLNS;
  -     static const XalanDOMString     ATTRNAME_XMLNSDEF;
  -     static const XalanDOMString     ATTRNAME_XMLSPACE;
  -     static const XalanDOMString     ATTRNAME_ZERODIGIT;
  -     static const XalanDOMString     ATTRNAME_STYLESHEET_PREFIX;
  +     static const XalanDOMString&    ATTRNAME_AMOUNT;
  +     static const XalanDOMString&    ATTRNAME_ANCESTOR;
  +     static const XalanDOMString&    ATTRNAME_ATTRIBUTE;
  +     static const XalanDOMString&    ATTRNAME_ATTRIBUTE_SET;
  +     static const XalanDOMString&    ATTRNAME_CASEORDER;
  +     static const XalanDOMString&    ATTRNAME_CLASS;
  +     static const XalanDOMString&    ATTRNAME_CONDITION;
  +     static const XalanDOMString&    ATTRNAME_COPYTYPE;
  +     static const XalanDOMString&    ATTRNAME_COUNT;
  +     static const XalanDOMString&    ATTRNAME_DATATYPE;
  +     static const XalanDOMString&    ATTRNAME_DECIMALSEPARATOR;
  +     static const XalanDOMString&    ATTRNAME_DEFAULT;
  +     static const XalanDOMString&    ATTRNAME_DEFAULTSPACE;
  +     static const XalanDOMString&    ATTRNAME_DEPTH;
  +     static const XalanDOMString&    ATTRNAME_DIGIT;
  +     static const XalanDOMString&    ATTRNAME_DIGITGROUPSEP;
  +     static const XalanDOMString&    ATTRNAME_ELEMENT;
  +     static const XalanDOMString&    ATTRNAME_ELEMENTS;
  +     static const XalanDOMString&    ATTRNAME_EXCLUDE_RESULT_PREFIXES;
  +     static const XalanDOMString&    ATTRNAME_EXPR;
  +     static const XalanDOMString&    ATTRNAME_EXTENSIONELEMENTPREFIXES;
  +     static const XalanDOMString&    ATTRNAME_FORMAT;
  +     static const XalanDOMString&    ATTRNAME_FROM;
  +     static const XalanDOMString&    ATTRNAME_GROUPINGSEPARATOR;
  +     static const XalanDOMString&    ATTRNAME_GROUPINGSIZE;
  +     static const XalanDOMString&    ATTRNAME_HREF;
  +     static const XalanDOMString&    ATTRNAME_ID;
  +     static const XalanDOMString&    ATTRNAME_IMPORTANCE;
  +     static const XalanDOMString&    ATTRNAME_INDENTRESULT;
  +     static const XalanDOMString&    ATTRNAME_INFINITY;
  +     static const XalanDOMString&    ATTRNAME_LANG;
  +     static const XalanDOMString&    ATTRNAME_LETTERVALUE;
  +     static const XalanDOMString&    ATTRNAME_LEVEL;
  +     static const XalanDOMString&    ATTRNAME_MATCH;
  +     static const XalanDOMString&    ATTRNAME_MINUSSIGN;
  +     static const XalanDOMString&    ATTRNAME_MODE;
  +     static const XalanDOMString&    ATTRNAME_NAME;
  +     static const XalanDOMString&    ATTRNAME_NAMESPACE;
  +     static const XalanDOMString&    ATTRNAME_NAN;
  +     static const XalanDOMString&    ATTRNAME_NDIGITSPERGROUP;
  +     static const XalanDOMString&    ATTRNAME_ONLY;
  +     static const XalanDOMString&    ATTRNAME_ORDER;
  +     static const XalanDOMString&    ATTRNAME_PATTERNSEPARATOR;
  +     static const XalanDOMString&    ATTRNAME_PERCENT;
  +     static const XalanDOMString&    ATTRNAME_PERMILLE;
  +     static const XalanDOMString&    ATTRNAME_PRIORITY;
  +     static const XalanDOMString&    ATTRNAME_REFID;
  +     static const XalanDOMString&    ATTRNAME_RESULTNS;
  +     static const XalanDOMString&    ATTRNAME_RESULT_PREFIX;
  +     static const XalanDOMString&    ATTRNAME_SELECT;
  +     static const XalanDOMString&    ATTRNAME_SEQUENCESRC;
  +     static const XalanDOMString&    ATTRNAME_STYLE;
  +     static const XalanDOMString&    ATTRNAME_TERMINATE;
  +     static const XalanDOMString&    ATTRNAME_TEST;
  +     static const XalanDOMString&    ATTRNAME_TOSTRING;
  +     static const XalanDOMString&    ATTRNAME_TYPE;
  +     static const XalanDOMString&    ATTRNAME_USE;
  +     static const XalanDOMString&    ATTRNAME_USEATTRIBUTESETS;
  +     static const XalanDOMString&    ATTRNAME_VALUE;
  +     static const XalanDOMString&    ATTRNAME_VERSION;
  +     static const XalanDOMString&    ATTRNAME_XMLNS;
  +     static const XalanDOMString&    ATTRNAME_XMLNSDEF;
  +     static const XalanDOMString&    ATTRNAME_XMLSPACE;
  +     static const XalanDOMString&    ATTRNAME_ZERODIGIT;
  +     static const XalanDOMString&    ATTRNAME_STYLESHEET_PREFIX;
    
          // Atributes on the functions element
  -     static const XalanDOMString     ATTRNAME_NS;
  -     static const XalanDOMString     ATTRNAME_CLASSID;
  -     static const XalanDOMString     ATTRNAME_ARCHIVE;
  -     static const XalanDOMString     ATTRNAME_CODETYPE;
  -     static const XalanDOMString     ATTRNAME_CODEBASE;
  -     static const XalanDOMString     ATTRNAME_METHOD;
  +     static const XalanDOMString&    ATTRNAME_NS;
  +     static const XalanDOMString&    ATTRNAME_CLASSID;
  +     static const XalanDOMString&    ATTRNAME_ARCHIVE;
  +     static const XalanDOMString&    ATTRNAME_CODETYPE;
  +     static const XalanDOMString&    ATTRNAME_CODEBASE;
  +     static const XalanDOMString&    ATTRNAME_METHOD;
     
          // For space-att
  -     static const XalanDOMString     ATTRVAL_PRESERVE;
  -     static const XalanDOMString     ATTRVAL_STRIP;
  +     static const XalanDOMString&    ATTRVAL_PRESERVE;
  +     static const XalanDOMString&    ATTRVAL_STRIP;
     
          // For indent-result
  -     static const XalanDOMString     ATTRVAL_YES;
  -     static const XalanDOMString     ATTRVAL_NO;
  +     static const XalanDOMString&    ATTRVAL_YES;
  +     static const XalanDOMString&    ATTRVAL_NO;
     
          // For letter-value attribute (part of conversion attributes).
  -     static const XalanDOMString     ATTRVAL_ALPHABETIC;
  -     static const XalanDOMString     ATTRVAL_OTHER;
  +     static const XalanDOMString&    ATTRVAL_ALPHABETIC;
  +     static const XalanDOMString&    ATTRVAL_OTHER;
     
          // For level attribute in xsl:number.
  -     static const XalanDOMString     ATTRVAL_SINGLE;
  -     static const XalanDOMString     ATTRVAL_MULTI;
  -     static const XalanDOMString     ATTRVAL_ANY;
  +     static const XalanDOMString&    ATTRVAL_SINGLE;
  +     static const XalanDOMString&    ATTRVAL_MULTI;
  +     static const XalanDOMString&    ATTRVAL_ANY;
   
        // Output stuff
  -     static const XalanDOMString     ATTRNAME_OUTPUT_METHOD;
  -     static const XalanDOMString     ATTRNAME_DISABLE_OUTPUT_ESCAPING;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_ENCODING;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_INDENT;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_MEDIATYPE;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_STANDALONE;
  -     static const XalanDOMString     ATTRNAME_OUTPUT_VERSION;
  -//   static const XalanDOMString     ATTRNAME_OUTPUT_XMLDECL;
  -   static const XalanDOMString       ATTRNAME_OUTPUT_OMITXMLDECL;
  -
  -     static const XalanDOMString     ATTRVAL_OUTPUT_METHOD_HTML;
  -     static const XalanDOMString     ATTRVAL_OUTPUT_METHOD_XML;
  -     static const XalanDOMString     ATTRVAL_OUTPUT_METHOD_TEXT;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_METHOD;
  +     static const XalanDOMString&    ATTRNAME_DISABLE_OUTPUT_ESCAPING;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_ENCODING;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_INDENT;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_MEDIATYPE;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_STANDALONE;
  +     static const XalanDOMString&    ATTRNAME_OUTPUT_VERSION;
  +//   static const XalanDOMString&    ATTRNAME_OUTPUT_XMLDECL;
  +   static const XalanDOMString&      ATTRNAME_OUTPUT_OMITXMLDECL;
  +
  +     static const XalanDOMString&    ATTRVAL_OUTPUT_METHOD_HTML;
  +     static const XalanDOMString&    ATTRVAL_OUTPUT_METHOD_XML;
  +     static const XalanDOMString&    ATTRVAL_OUTPUT_METHOD_TEXT;
   
        // some stuff for my patterns-by-example
  -     static const XalanDOMString     ATTRVAL_THIS;
  -     static const XalanDOMString     ATTRVAL_PARENT;
  -     static const XalanDOMString     ATTRVAL_ANCESTOR;
  -     static const XalanDOMString     ATTRVAL_ID;
  +     static const XalanDOMString&    ATTRVAL_THIS;
  +     static const XalanDOMString&    ATTRVAL_PARENT;
  +     static const XalanDOMString&    ATTRVAL_ANCESTOR;
  +     static const XalanDOMString&    ATTRVAL_ID;
   
     // Stuff for sorting
  -     static const XalanDOMString     ATTRVAL_DATATYPE_TEXT;
  -     static const XalanDOMString     ATTRVAL_DATATYPE_NUMBER;
  -     static const XalanDOMString     ATTRVAL_ORDER_ASCENDING;
  -     static const XalanDOMString     ATTRVAL_ORDER_DESCENDING;
  -     static const XalanDOMString     ATTRVAL_CASEORDER_UPPER;
  -     static const XalanDOMString     ATTRVAL_CASEORDER_LOWER;
  +     static const XalanDOMString&    ATTRVAL_DATATYPE_TEXT;
  +     static const XalanDOMString&    ATTRVAL_DATATYPE_NUMBER;
  +     static const XalanDOMString&    ATTRVAL_ORDER_ASCENDING;
  +     static const XalanDOMString&    ATTRVAL_ORDER_DESCENDING;
  +     static const XalanDOMString&    ATTRVAL_CASEORDER_UPPER;
  +     static const XalanDOMString&    ATTRVAL_CASEORDER_LOWER;
   
        // Stuff for xsl:decimal-format...
  -     static const XalanDOMString     ATTRVAL_INFINITY;
  -     static const XalanDOMString     ATTRVAL_NAN;
  +     static const XalanDOMString&    ATTRVAL_INFINITY;
  +     static const XalanDOMString&    ATTRVAL_NAN;
   
        // Name of default for xsl:decimal-format element
  -     static const XalanDOMString DEFAULT_DECIMAL_FORMAT;
  +     static const XalanDOMString& DEFAULT_DECIMAL_FORMAT;
   
   
        enum eNumberLevel
  @@ -393,7 +406,7 @@
        };
   
        // For Stylesheet-prefix and result-prefix in xsl:namespace-alias 
  -     static const XalanDOMString     ATTRVAL_DEFAULT_PREFIX;
  +     static const XalanDOMString&    ATTRVAL_DEFAULT_PREFIX;
   
        enum eAttributeName
        {
  @@ -471,12 +484,12 @@
   
        // These are used mainly for keys in the pattern lookup table,
        // for those nodes that don't have unique lookup values
  -     static const XalanDOMString     PSEUDONAME_ANY;
  -     static const XalanDOMString     PSEUDONAME_ROOT;
  -     static const XalanDOMString     PSEUDONAME_TEXT;
  -     static const XalanDOMString     PSEUDONAME_COMMENT;
  -     static const XalanDOMString     PSEUDONAME_PI;
  -     static const XalanDOMString     PSEUDONAME_OTHER;
  +     static const XalanDOMString&    PSEUDONAME_ANY;
  +     static const XalanDOMString&    PSEUDONAME_ROOT;
  +     static const XalanDOMString&    PSEUDONAME_TEXT;
  +     static const XalanDOMString&    PSEUDONAME_COMMENT;
  +     static const XalanDOMString&    PSEUDONAME_PI;
  +     static const XalanDOMString&    PSEUDONAME_OTHER;
   
   };
   
  
  
  
  1.22      +59 -32    xml-xalan/c/src/XSLT/ElemNumber.cpp
  
  Index: ElemNumber.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.cpp,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ElemNumber.cpp    2000/08/22 20:21:19     1.21
  +++ ElemNumber.cpp    2000/08/31 19:43:09     1.22
  @@ -85,38 +85,11 @@
   
   
   #if !defined(XALAN_NO_NAMESPACES)
  -     using std::vector;
  +using std::vector;
   #endif
   
   
   
  -const XalanDOMString 
ElemNumber::s_alphaCountTable(XALAN_STATIC_UCODE_STRING("ZABCDEFGHIJKLMNOPQRSTUVWXY"));
  -
  -const XalanDOMChar   elalphaCountTable[] =
  -{
  -     0x03c9, 
0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba,
  -     0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c2,0x03c3,0x03c4,
  -     0x03c5,0x03c6,0x03c7,0x03c8,0
  -};
  -
  -
  -const XalanDOMString s_elalphaCountTable = elalphaCountTable;
  -
  -
  -
  -const DecimalToRoman ElemNumber::s_romanConvertTable[] = 
  -{
  -     DecimalToRoman(1000, XALAN_STATIC_UCODE_STRING("M"), 900, 
XALAN_STATIC_UCODE_STRING("CM")),
  -     DecimalToRoman(500, XALAN_STATIC_UCODE_STRING("D"), 400, 
XALAN_STATIC_UCODE_STRING("CD")),
  -     DecimalToRoman(100L, XALAN_STATIC_UCODE_STRING("C"), 90L, 
XALAN_STATIC_UCODE_STRING("XC")),
  -     DecimalToRoman(50L, XALAN_STATIC_UCODE_STRING("L"), 40L, 
XALAN_STATIC_UCODE_STRING("XL")),
  -     DecimalToRoman(10L, XALAN_STATIC_UCODE_STRING("X"), 9L, 
XALAN_STATIC_UCODE_STRING("IX")),
  -     DecimalToRoman(5L, XALAN_STATIC_UCODE_STRING("V"), 4L, 
XALAN_STATIC_UCODE_STRING("IV")),
  -     DecimalToRoman(1L, XALAN_STATIC_UCODE_STRING("I"), 1L, 
XALAN_STATIC_UCODE_STRING("I"))
  -};
  -
  -
  -
   ElemNumber::ElemNumber(
                        StylesheetConstructionContext&  constructionContext,
                        Stylesheet&                                             
stylesheetTree,
  @@ -695,10 +668,6 @@
   
        NumberFormatStringTokenizer             formatTokenizer(formatValue);
   
  -#if ! defined(__GNUC__)
  -//   std::locale             loc = getLocale(executionContext, contextNode);
  -#endif
  -
        typedef vector<XalanDOMString>          StringVectorType;
        typedef StringVectorType::iterator      StringVectorTypeIterator;
   
  @@ -1200,4 +1169,62 @@
   {
        const int size = m_countNodes.getLength();
        return (size > 0) ? m_countNodes.item(size-1) : 0;
  +}
  +
  +
  +
  +const XalanDOMChar   elalphaCountTable[] =
  +{
  +     0x03c9, 
0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba,
  +     0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c2,0x03c3,0x03c4,
  +     0x03c5,0x03c6,0x03c7,0x03c8,0
  +};
  +
  +
  +
  +static XalanDOMString                                                        
s_elalphaCountTable;
  +
  +static XalanDOMString                                                        
s_alphaCountTable;
  +
  +static ElemNumber::DecimalToRomanVectorType          s_romanConvertTable;
  +
  +
  +
  +const XalanDOMString&        ElemNumber::s_elalphaCountTable = 
::s_elalphaCountTable;
  +
  +const XalanDOMString&        ElemNumber::s_alphaCountTable = 
::s_alphaCountTable;
  +
  +const ElemNumber::DecimalToRomanVectorType&          
ElemNumber::s_romanConvertTable =
  +                             ::s_romanConvertTable;
  +
  +
  +
  +void
  +ElemNumber::initialize()
  +{
  +     ::s_alphaCountTable = 
XALAN_STATIC_UCODE_STRING("ZABCDEFGHIJKLMNOPQRSTUVWXY");
  +
  +     ::s_elalphaCountTable = elalphaCountTable;
  +
  +     ::s_romanConvertTable.reserve(7);
  +
  +     ::s_romanConvertTable.push_back(DecimalToRoman(1000, 
XALAN_STATIC_UCODE_STRING("M"), 900, XALAN_STATIC_UCODE_STRING("CM")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(500, 
XALAN_STATIC_UCODE_STRING("D"), 400, XALAN_STATIC_UCODE_STRING("CD")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(100L, 
XALAN_STATIC_UCODE_STRING("C"), 90L, XALAN_STATIC_UCODE_STRING("XC")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(50L, 
XALAN_STATIC_UCODE_STRING("L"), 40L, XALAN_STATIC_UCODE_STRING("XL")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(10L, 
XALAN_STATIC_UCODE_STRING("X"), 9L, XALAN_STATIC_UCODE_STRING("IX")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(5L, 
XALAN_STATIC_UCODE_STRING("V"), 4L, XALAN_STATIC_UCODE_STRING("IV")));
  +     ::s_romanConvertTable.push_back(DecimalToRoman(1L, 
XALAN_STATIC_UCODE_STRING("I"), 1L, XALAN_STATIC_UCODE_STRING("I")));
  +}
  +
  +
  +
  +
  +void
  +ElemNumber::terminate()
  +{
  +     clear(::s_alphaCountTable);
  +     clear(::s_elalphaCountTable);;
  +
  +     DecimalToRomanVectorType().swap(::s_romanConvertTable);
   }
  
  
  
  1.17      +19 -3     xml-xalan/c/src/XSLT/ElemNumber.hpp
  
  Index: ElemNumber.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.hpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- ElemNumber.hpp    2000/08/22 20:21:19     1.16
  +++ ElemNumber.hpp    2000/08/31 19:43:09     1.17
  @@ -58,7 +58,7 @@
   #define XALAN_ELEMNUMBER_HEADER_GUARD 
   
   /**
  - * $Id: ElemNumber.hpp,v 1.16 2000/08/22 20:21:19 dbertoni Exp $
  + * $Id: ElemNumber.hpp,v 1.17 2000/08/31 19:43:09 dbertoni Exp $
    * 
    * $State: Exp $
    * 
  @@ -100,12 +100,14 @@
   public:
   
   #if defined(XALAN_NO_NAMESPACES)
  +     typedef vector<DecimalToRoman>                  
DecimalToRomanVectorType;
        typedef vector<int>                                             
IntArrayType;
        typedef vector<Counter>                                 
CounterVectorType;
        typedef map<const ElemNumber*,
                                CounterVectorType,
                                less<const ElemNumber*> >       
ElemToCounterVectorMapType;
   #else
  +     typedef std::vector<DecimalToRoman>             
DecimalToRomanVectorType;
        typedef std::vector<int>                                IntArrayType;
        typedef std::vector<Counter>                    CounterVectorType;
        typedef std::map<const ElemNumber*,
  @@ -113,6 +115,18 @@
   #endif
   
        /**
  +      * Perform static initialization.  See class XSLTInit.
  +      */
  +     static void
  +     initialize();
  +
  +     /**
  +      * Perform static shut down.  See class XSLTInit.
  +      */
  +     static void
  +     terminate();
  +
  +     /**
         * Construct an object corresponding to an "xsl:number" element
         * 
         * @param constructionContext context for construction of object
  @@ -338,14 +352,16 @@
        * Chars for converting integers into alpha counts.
        * @see XSLTEngineImpl#int2alphaCount
        */
  -     static const XalanDOMString             s_alphaCountTable;
  +     static const XalanDOMString&                    s_alphaCountTable;
  +
  +     static const XalanDOMString&                    s_elalphaCountTable;
   
        /**
         * Table to help in converting decimals to roman numerals.
         * @see XSLTEngineImpl#DecimalToRoman
         * @see XSLTEngineImpl#long2roman
         */
  -     static const DecimalToRoman             s_romanConvertTable[];
  +     static const DecimalToRomanVectorType&  s_romanConvertTable;
   
   
   
  
  
  
  1.6       +1 -1      xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp
  
  Index: FunctionSystemProperty.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FunctionSystemProperty.cpp        2000/05/15 15:57:09     1.5
  +++ FunctionSystemProperty.cpp        2000/08/31 19:43:10     1.6
  @@ -130,7 +130,7 @@
                        }
                        else if(equals(propName, 
XALAN_STATIC_UCODE_STRING("vendor")))
                        {
  -                             result = 
XALAN_STATIC_UCODE_STRING("xml.apache.org");
  +                             result = XALAN_STATIC_UCODE_STRING("Apache 
Software Foundation");
                        }
                        else if(equals(propName, 
XALAN_STATIC_UCODE_STRING("vendor-url")))
                        {
  
  
  
  1.33      +26 -1     
xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
  
  Index: StylesheetExecutionContextDefault.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- StylesheetExecutionContextDefault.cpp     2000/08/28 01:19:41     1.32
  +++ StylesheetExecutionContextDefault.cpp     2000/08/31 19:43:11     1.33
  @@ -1214,7 +1214,32 @@
   {
        assert(m_collationCompareFunctor != 0);
   
  -     return (*m_collationCompareFunctor)(c_wstr(theLHS), c_wstr(theRHS));
  +     if (theLHS == 0)
  +     {
  +             if (theRHS == 0)
  +             {
  +                     return 0;
  +             }
  +             else
  +             {
  +                     return -1;
  +             }
  +     }
  +     else if (theRHS == 0)
  +     {
  +             if (theLHS == 0)
  +             {
  +                     return 0;
  +             }
  +             else
  +             {
  +                     return 1;
  +             }
  +     }
  +     else
  +     {
  +             return (*m_collationCompareFunctor)(c_wstr(theLHS), 
c_wstr(theRHS));
  +     }
   }
   
   
  
  
  
  1.61      +218 -178  xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
  
  Index: XSLTEngineImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- XSLTEngineImpl.cpp        2000/08/28 21:49:26     1.60
  +++ XSLTEngineImpl.cpp        2000/08/31 19:43:11     1.61
  @@ -146,33 +146,6 @@
   
   
   
  -const double                 XSLTEngineImpl::s_XSLTVerSupported(1.0);
  -const XalanDOMString 
XSLTEngineImpl::s_XSLNameSpaceURL(XALAN_STATIC_UCODE_STRING("http://www.w3.org/1999/XSL/Transform";));
  -const XalanDOMString 
XSLTEngineImpl::s_XSLT4JNameSpaceURL(XALAN_STATIC_UCODE_STRING("http://xml.apache.org/xslt";));
  -
  -/**
  - * Control if the xsl:variable is resolved early or 
  - * late. Resolving the xsl:variable
  - * early is a drag because it means that the fragment 
  - * must be created into a DocumentFragment, and then 
  - * cloned each time to the result tree.  If we can resolve 
  - * late, that means we can evaluate directly into the 
  - * result tree.  Right now this must be kept on 'early' 
  - * because you would need to set the call stack back to 
  - * the point of xsl:invoke... which I can't quite work out 
  - * at the moment.  I don't think this is worth fixing 
  - * until NodeList variables are implemented.
  - */
  -const bool                                                           
XSLTEngineImpl::s_resolveContentsEarly = true;
  -
  -XSLTEngineImpl::AttributeKeysMapType XSLTEngineImpl::s_attributeKeys;
  -
  -XSLTEngineImpl::ElementKeysMapType           XSLTEngineImpl::s_elementKeys;
  -
  -XSLTEngineImpl::ElementKeysMapType           
XSLTEngineImpl::s_XSLT4JElementKeys;
  -
  -
  -
   //==========================================================
   // SECTION: Constructors
   //==========================================================
  @@ -223,28 +196,6 @@
   
   
   
  -void
  -XSLTEngineImpl::Initialize()
  -{
  -     InstallFunctions();
  -
  -     InitializeAttributeKeysTable();
  -     InitializeElementKeysTable();
  -     InitializeXSLT4JElementKeys();
  -}
  -
  -
  -
  -void
  -XSLTEngineImpl::Terminate()
  -{
  -     s_XSLT4JElementKeys.clear();
  -     s_elementKeys.clear();
  -     s_attributeKeys.clear();
  -}
  -
  -
  -
   /**
    * Reset the state.  This needs to be called after a process() call 
    * is invoked, if the processor is to be used again.
  @@ -3396,7 +3347,7 @@
   
   
   void
  -XSLTEngineImpl::InstallFunctions()
  +XSLTEngineImpl::installFunctions()
   {
        XPath::installFunction(XALAN_STATIC_UCODE_STRING("current"), 
FunctionCurrent());
        XPath::installFunction(XALAN_STATIC_UCODE_STRING("document"), 
FunctionDocument());
  @@ -3412,151 +3363,240 @@
   
   
   void
  -XSLTEngineImpl::InitializeAttributeKeysTable()
  +XSLTEngineImpl::uninstallFunctions()
   {
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_METHOD] = 
Constants::TATTRNAME_OUTPUT_METHOD;
  -     s_attributeKeys[Constants::ATTRNAME_AMOUNT] = 
Constants::TATTRNAME_AMOUNT;
  -     s_attributeKeys[Constants::ATTRNAME_ANCESTOR] = 
Constants::TATTRNAME_ANCESTOR;
  -     s_attributeKeys[Constants::ATTRNAME_ARCHIVE] = 
Constants::TATTRNAME_ARCHIVE;
  -     s_attributeKeys[Constants::ATTRNAME_ATTRIBUTE] = 
Constants::TATTRNAME_ATTRIBUTE;
  -     s_attributeKeys[Constants::ATTRNAME_ATTRIBUTE_SET] = 
Constants::TATTRNAME_ATTRIBUTE_SET;
  -     s_attributeKeys[Constants::ATTRNAME_CASEORDER] = 
Constants::TATTRNAME_CASEORDER;
  -     s_attributeKeys[Constants::ATTRNAME_CLASS] = Constants::TATTRNAME_CLASS;
  -     s_attributeKeys[Constants::ATTRNAME_CLASSID] = 
Constants::TATTRNAME_CLASSID;
  -     s_attributeKeys[Constants::ATTRNAME_CODEBASE] = 
Constants::TATTRNAME_CODEBASE;
  -     s_attributeKeys[Constants::ATTRNAME_CODETYPE] = 
Constants::TATTRNAME_CODETYPE;
  -     s_attributeKeys[Constants::ATTRNAME_CONDITION] = 
Constants::TATTRNAME_CONDITION;
  -     s_attributeKeys[Constants::ATTRNAME_COPYTYPE] = 
Constants::TATTRNAME_COPYTYPE;
  -     s_attributeKeys[Constants::ATTRNAME_COUNT] = Constants::TATTRNAME_COUNT;
  -     s_attributeKeys[Constants::ATTRNAME_DATATYPE] = 
Constants::TATTRNAME_DATATYPE;
  -     s_attributeKeys[Constants::ATTRNAME_DEFAULT] = 
Constants::TATTRNAME_DEFAULT;
  -     s_attributeKeys[Constants::ATTRNAME_DEFAULTSPACE] = 
Constants::TATTRNAME_DEFAULTSPACE;
  -     s_attributeKeys[Constants::ATTRNAME_DEPTH] = Constants::TATTRNAME_DEPTH;
  -     s_attributeKeys[Constants::ATTRNAME_DIGITGROUPSEP] = 
Constants::TATTRNAME_DIGITGROUPSEP;
  -     s_attributeKeys[Constants::ATTRNAME_DISABLE_OUTPUT_ESCAPING] = 
Constants::TATTRNAME_DISABLE_OUTPUT_ESCAPING;
  -     s_attributeKeys[Constants::ATTRNAME_ELEMENT] = 
Constants::TATTRNAME_ELEMENT;
  -     s_attributeKeys[Constants::ATTRNAME_ELEMENTS] = 
Constants::TATTRNAME_ELEMENTS;
  -     s_attributeKeys[Constants::ATTRNAME_EXPR] = Constants::TATTRNAME_EXPR;
  -     s_attributeKeys[Constants::ATTRNAME_EXTENSIONELEMENTPREFIXES] = 
Constants::TATTRNAME_EXTENSIONELEMENTPREFIXES;
  -     s_attributeKeys[Constants::ATTRNAME_FORMAT] = 
Constants::TATTRNAME_FORMAT;
  -     s_attributeKeys[Constants::ATTRNAME_FROM] = Constants::TATTRNAME_FROM;
  -     s_attributeKeys[Constants::ATTRNAME_GROUPINGSEPARATOR] = 
Constants::TATTRNAME_GROUPINGSEPARATOR;
  -     s_attributeKeys[Constants::ATTRNAME_GROUPINGSIZE] = 
Constants::TATTRNAME_GROUPINGSIZE;
  -     s_attributeKeys[Constants::ATTRNAME_HREF] = Constants::TATTRNAME_HREF;
  -     s_attributeKeys[Constants::ATTRNAME_ID] = Constants::TATTRNAME_ID;
  -     s_attributeKeys[Constants::ATTRNAME_IMPORTANCE] = 
Constants::TATTRNAME_IMPORTANCE;
  -     s_attributeKeys[Constants::ATTRNAME_INDENTRESULT] = 
Constants::TATTRNAME_INDENTRESULT;
  -     s_attributeKeys[Constants::ATTRNAME_LANG] = Constants::TATTRNAME_LANG;
  -     s_attributeKeys[Constants::ATTRNAME_LETTERVALUE] = 
Constants::TATTRNAME_LETTERVALUE;
  -     s_attributeKeys[Constants::ATTRNAME_LEVEL] = Constants::TATTRNAME_LEVEL;
  -     s_attributeKeys[Constants::ATTRNAME_MATCH] = Constants::TATTRNAME_MATCH;
  -     s_attributeKeys[Constants::ATTRNAME_METHOD] = 
Constants::TATTRNAME_METHOD;
  -     s_attributeKeys[Constants::ATTRNAME_MODE] = Constants::TATTRNAME_MODE;
  -     s_attributeKeys[Constants::ATTRNAME_NAME] = Constants::TATTRNAME_NAME;
  -     s_attributeKeys[Constants::ATTRNAME_NAMESPACE] = 
Constants::TATTRNAME_NAMESPACE;
  -     s_attributeKeys[Constants::ATTRNAME_NDIGITSPERGROUP] = 
Constants::TATTRNAME_NDIGITSPERGROUP;
  -     s_attributeKeys[Constants::ATTRNAME_NS] = Constants::TATTRNAME_NS;
  -     s_attributeKeys[Constants::ATTRNAME_ONLY] = Constants::TATTRNAME_ONLY;
  -     s_attributeKeys[Constants::ATTRNAME_ORDER] = Constants::TATTRNAME_ORDER;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS] = 
Constants::TATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC] = 
Constants::TATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM] = 
Constants::TATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_ENCODING] = 
Constants::TATTRNAME_OUTPUT_ENCODING;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_INDENT] = 
Constants::TATTRNAME_OUTPUT_INDENT;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_MEDIATYPE] = 
Constants::TATTRNAME_OUTPUT_MEDIATYPE;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_STANDALONE] = 
Constants::TATTRNAME_OUTPUT_STANDALONE;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_VERSION] = 
Constants::TATTRNAME_OUTPUT_VERSION;
  -     s_attributeKeys[Constants::ATTRNAME_OUTPUT_OMITXMLDECL] = 
Constants::TATTRNAME_OUTPUT_OMITXMLDECL;
  -     s_attributeKeys[Constants::ATTRNAME_PRIORITY] = 
Constants::TATTRNAME_PRIORITY;
  -     s_attributeKeys[Constants::ATTRNAME_REFID] = Constants::TATTRNAME_REFID;
  -     s_attributeKeys[Constants::ATTRNAME_RESULTNS] = 
Constants::TATTRNAME_RESULTNS;
  -     s_attributeKeys[Constants::ATTRNAME_SELECT] = 
Constants::TATTRNAME_SELECT;
  -     s_attributeKeys[Constants::ATTRNAME_SEQUENCESRC] = 
Constants::TATTRNAME_SEQUENCESRC;
  -     s_attributeKeys[Constants::ATTRNAME_STYLE] = Constants::TATTRNAME_STYLE;
  -     s_attributeKeys[Constants::ATTRNAME_TEST] = Constants::TATTRNAME_TEST;
  -     s_attributeKeys[Constants::ATTRNAME_TOSTRING] = 
Constants::TATTRNAME_TOSTRING;
  -     s_attributeKeys[Constants::ATTRNAME_TYPE] = Constants::TATTRNAME_TYPE;
  -     s_attributeKeys[Constants::ATTRNAME_USE] = Constants::TATTRNAME_USE;
  -     s_attributeKeys[Constants::ATTRNAME_USEATTRIBUTESETS] = 
Constants::TATTRNAME_USEATTRIBUTESETS;
  -     s_attributeKeys[Constants::ATTRNAME_VALUE] = Constants::TATTRNAME_VALUE;
  -
  -     s_attributeKeys[Constants::ATTRNAME_XMLNSDEF] = 
Constants::TATTRNAME_XMLNSDEF;
  -     s_attributeKeys[Constants::ATTRNAME_XMLNS] = Constants::TATTRNAME_XMLNS;
  -     s_attributeKeys[Constants::ATTRNAME_XMLSPACE] = 
Constants::TATTRNAME_XMLSPACE;
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("current"));
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("document"));
  +     
XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("element-available"));
  +     
XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("function-available"));
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("format-number"));
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("generate-id"));
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("key"));
  +     XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("system-property"));
  +     
XPath::uninstallFunction(XALAN_STATIC_UCODE_STRING("unparsed-entity-uri"));
  +}
  +
  +
  +
  +void
  +XSLTEngineImpl::initializeAttributeKeysTable(AttributeKeysMapType&   
theAttributeKeys)
  +{
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_METHOD] = 
Constants::TATTRNAME_OUTPUT_METHOD;
  +     theAttributeKeys[Constants::ATTRNAME_AMOUNT] = 
Constants::TATTRNAME_AMOUNT;
  +     theAttributeKeys[Constants::ATTRNAME_ANCESTOR] = 
Constants::TATTRNAME_ANCESTOR;
  +     theAttributeKeys[Constants::ATTRNAME_ARCHIVE] = 
Constants::TATTRNAME_ARCHIVE;
  +     theAttributeKeys[Constants::ATTRNAME_ATTRIBUTE] = 
Constants::TATTRNAME_ATTRIBUTE;
  +     theAttributeKeys[Constants::ATTRNAME_ATTRIBUTE_SET] = 
Constants::TATTRNAME_ATTRIBUTE_SET;
  +     theAttributeKeys[Constants::ATTRNAME_CASEORDER] = 
Constants::TATTRNAME_CASEORDER;
  +     theAttributeKeys[Constants::ATTRNAME_CLASS] = 
Constants::TATTRNAME_CLASS;
  +     theAttributeKeys[Constants::ATTRNAME_CLASSID] = 
Constants::TATTRNAME_CLASSID;
  +     theAttributeKeys[Constants::ATTRNAME_CODEBASE] = 
Constants::TATTRNAME_CODEBASE;
  +     theAttributeKeys[Constants::ATTRNAME_CODETYPE] = 
Constants::TATTRNAME_CODETYPE;
  +     theAttributeKeys[Constants::ATTRNAME_CONDITION] = 
Constants::TATTRNAME_CONDITION;
  +     theAttributeKeys[Constants::ATTRNAME_COPYTYPE] = 
Constants::TATTRNAME_COPYTYPE;
  +     theAttributeKeys[Constants::ATTRNAME_COUNT] = 
Constants::TATTRNAME_COUNT;
  +     theAttributeKeys[Constants::ATTRNAME_DATATYPE] = 
Constants::TATTRNAME_DATATYPE;
  +     theAttributeKeys[Constants::ATTRNAME_DEFAULT] = 
Constants::TATTRNAME_DEFAULT;
  +     theAttributeKeys[Constants::ATTRNAME_DEFAULTSPACE] = 
Constants::TATTRNAME_DEFAULTSPACE;
  +     theAttributeKeys[Constants::ATTRNAME_DEPTH] = 
Constants::TATTRNAME_DEPTH;
  +     theAttributeKeys[Constants::ATTRNAME_DIGITGROUPSEP] = 
Constants::TATTRNAME_DIGITGROUPSEP;
  +     theAttributeKeys[Constants::ATTRNAME_DISABLE_OUTPUT_ESCAPING] = 
Constants::TATTRNAME_DISABLE_OUTPUT_ESCAPING;
  +     theAttributeKeys[Constants::ATTRNAME_ELEMENT] = 
Constants::TATTRNAME_ELEMENT;
  +     theAttributeKeys[Constants::ATTRNAME_ELEMENTS] = 
Constants::TATTRNAME_ELEMENTS;
  +     theAttributeKeys[Constants::ATTRNAME_EXPR] = Constants::TATTRNAME_EXPR;
  +     theAttributeKeys[Constants::ATTRNAME_EXTENSIONELEMENTPREFIXES] = 
Constants::TATTRNAME_EXTENSIONELEMENTPREFIXES;
  +     theAttributeKeys[Constants::ATTRNAME_FORMAT] = 
Constants::TATTRNAME_FORMAT;
  +     theAttributeKeys[Constants::ATTRNAME_FROM] = Constants::TATTRNAME_FROM;
  +     theAttributeKeys[Constants::ATTRNAME_GROUPINGSEPARATOR] = 
Constants::TATTRNAME_GROUPINGSEPARATOR;
  +     theAttributeKeys[Constants::ATTRNAME_GROUPINGSIZE] = 
Constants::TATTRNAME_GROUPINGSIZE;
  +     theAttributeKeys[Constants::ATTRNAME_HREF] = Constants::TATTRNAME_HREF;
  +     theAttributeKeys[Constants::ATTRNAME_ID] = Constants::TATTRNAME_ID;
  +     theAttributeKeys[Constants::ATTRNAME_IMPORTANCE] = 
Constants::TATTRNAME_IMPORTANCE;
  +     theAttributeKeys[Constants::ATTRNAME_INDENTRESULT] = 
Constants::TATTRNAME_INDENTRESULT;
  +     theAttributeKeys[Constants::ATTRNAME_LANG] = Constants::TATTRNAME_LANG;
  +     theAttributeKeys[Constants::ATTRNAME_LETTERVALUE] = 
Constants::TATTRNAME_LETTERVALUE;
  +     theAttributeKeys[Constants::ATTRNAME_LEVEL] = 
Constants::TATTRNAME_LEVEL;
  +     theAttributeKeys[Constants::ATTRNAME_MATCH] = 
Constants::TATTRNAME_MATCH;
  +     theAttributeKeys[Constants::ATTRNAME_METHOD] = 
Constants::TATTRNAME_METHOD;
  +     theAttributeKeys[Constants::ATTRNAME_MODE] = Constants::TATTRNAME_MODE;
  +     theAttributeKeys[Constants::ATTRNAME_NAME] = Constants::TATTRNAME_NAME;
  +     theAttributeKeys[Constants::ATTRNAME_NAMESPACE] = 
Constants::TATTRNAME_NAMESPACE;
  +     theAttributeKeys[Constants::ATTRNAME_NDIGITSPERGROUP] = 
Constants::TATTRNAME_NDIGITSPERGROUP;
  +     theAttributeKeys[Constants::ATTRNAME_NS] = Constants::TATTRNAME_NS;
  +     theAttributeKeys[Constants::ATTRNAME_ONLY] = Constants::TATTRNAME_ONLY;
  +     theAttributeKeys[Constants::ATTRNAME_ORDER] = 
Constants::TATTRNAME_ORDER;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS] = 
Constants::TATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_DOCTYPE_PUBLIC] = 
Constants::TATTRNAME_OUTPUT_DOCTYPE_PUBLIC;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_DOCTYPE_SYSTEM] = 
Constants::TATTRNAME_OUTPUT_DOCTYPE_SYSTEM;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_ENCODING] = 
Constants::TATTRNAME_OUTPUT_ENCODING;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_INDENT] = 
Constants::TATTRNAME_OUTPUT_INDENT;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_MEDIATYPE] = 
Constants::TATTRNAME_OUTPUT_MEDIATYPE;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_STANDALONE] = 
Constants::TATTRNAME_OUTPUT_STANDALONE;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_VERSION] = 
Constants::TATTRNAME_OUTPUT_VERSION;
  +     theAttributeKeys[Constants::ATTRNAME_OUTPUT_OMITXMLDECL] = 
Constants::TATTRNAME_OUTPUT_OMITXMLDECL;
  +     theAttributeKeys[Constants::ATTRNAME_PRIORITY] = 
Constants::TATTRNAME_PRIORITY;
  +     theAttributeKeys[Constants::ATTRNAME_REFID] = 
Constants::TATTRNAME_REFID;
  +     theAttributeKeys[Constants::ATTRNAME_RESULTNS] = 
Constants::TATTRNAME_RESULTNS;
  +     theAttributeKeys[Constants::ATTRNAME_SELECT] = 
Constants::TATTRNAME_SELECT;
  +     theAttributeKeys[Constants::ATTRNAME_SEQUENCESRC] = 
Constants::TATTRNAME_SEQUENCESRC;
  +     theAttributeKeys[Constants::ATTRNAME_STYLE] = 
Constants::TATTRNAME_STYLE;
  +     theAttributeKeys[Constants::ATTRNAME_TEST] = Constants::TATTRNAME_TEST;
  +     theAttributeKeys[Constants::ATTRNAME_TOSTRING] = 
Constants::TATTRNAME_TOSTRING;
  +     theAttributeKeys[Constants::ATTRNAME_TYPE] = Constants::TATTRNAME_TYPE;
  +     theAttributeKeys[Constants::ATTRNAME_USE] = Constants::TATTRNAME_USE;
  +     theAttributeKeys[Constants::ATTRNAME_USEATTRIBUTESETS] = 
Constants::TATTRNAME_USEATTRIBUTESETS;
  +     theAttributeKeys[Constants::ATTRNAME_VALUE] = 
Constants::TATTRNAME_VALUE;
  +
  +     theAttributeKeys[Constants::ATTRNAME_XMLNSDEF] = 
Constants::TATTRNAME_XMLNSDEF;
  +     theAttributeKeys[Constants::ATTRNAME_XMLNS] = 
Constants::TATTRNAME_XMLNS;
  +     theAttributeKeys[Constants::ATTRNAME_XMLSPACE] = 
Constants::TATTRNAME_XMLSPACE;
   }
   
   
   
   void
  -XSLTEngineImpl::InitializeElementKeysTable()
  -{
  -     s_elementKeys[Constants::ELEMNAME_APPLY_TEMPLATES_STRING] = 
Constants::ELEMNAME_APPLY_TEMPLATES;
  -     s_elementKeys[Constants::ELEMNAME_WITHPARAM_STRING] = 
Constants::ELEMNAME_WITHPARAM;
  -     s_elementKeys[Constants::ELEMNAME_CONSTRUCT_STRING] = 
Constants::ELEMNAME_CONSTRUCT;
  -     s_elementKeys[Constants::ELEMNAME_CONTENTS_STRING] = 
Constants::ELEMNAME_CONTENTS;
  -     s_elementKeys[Constants::ELEMNAME_COPY_STRING] = 
Constants::ELEMNAME_COPY;
  -     s_elementKeys[Constants::ELEMNAME_COPY_OF_STRING] = 
Constants::ELEMNAME_COPY_OF;
  -
  -     s_elementKeys[Constants::ELEMNAME_ATTRIBUTESET_STRING] = 
Constants::ELEMNAME_DEFINEATTRIBUTESET;
  -
  -     s_elementKeys[Constants::ELEMNAME_USE_STRING] = Constants::ELEMNAME_USE;
  -
  -     s_elementKeys[Constants::ELEMNAME_VARIABLE_STRING] = 
Constants::ELEMNAME_VARIABLE;
  -     s_elementKeys[Constants::ELEMNAME_PARAMVARIABLE_STRING] = 
Constants::ELEMNAME_PARAMVARIABLE;
  -
  -     s_elementKeys[Constants::ELEMNAME_DISPLAYIF_STRING] = 
Constants::ELEMNAME_DISPLAYIF;
  -     s_elementKeys[Constants::ELEMNAME_EMPTY_STRING] = 
Constants::ELEMNAME_EMPTY;
  -     s_elementKeys[Constants::ELEMNAME_EVAL_STRING] = 
Constants::ELEMNAME_EVAL;
  -     s_elementKeys[Constants::ELEMNAME_CALLTEMPLATE_STRING] = 
Constants::ELEMNAME_CALLTEMPLATE;
  -     s_elementKeys[Constants::ELEMNAME_TEMPLATE_STRING] = 
Constants::ELEMNAME_TEMPLATE;
  -     s_elementKeys[Constants::ELEMNAME_STYLESHEET_STRING] = 
Constants::ELEMNAME_STYLESHEET;
  -     s_elementKeys[Constants::ELEMNAME_TRANSFORM_STRING] = 
Constants::ELEMNAME_STYLESHEET;
  -     s_elementKeys[Constants::ELEMNAME_IMPORT_STRING] = 
Constants::ELEMNAME_IMPORT;
  -     s_elementKeys[Constants::ELEMNAME_INCLUDE_STRING] = 
Constants::ELEMNAME_INCLUDE;
  -     s_elementKeys[Constants::ELEMNAME_FOREACH_STRING] = 
Constants::ELEMNAME_FOREACH;
  -     s_elementKeys[Constants::ELEMNAME_VALUEOF_STRING] = 
Constants::ELEMNAME_VALUEOF;
  -     s_elementKeys[Constants::ELEMNAME_KEY_STRING] = Constants::ELEMNAME_KEY;
  -     s_elementKeys[Constants::ELEMNAME_STRIPSPACE_STRING] = 
Constants::ELEMNAME_STRIPSPACE;
  -     s_elementKeys[Constants::ELEMNAME_PRESERVESPACE_STRING] = 
Constants::ELEMNAME_PRESERVESPACE;
  -     s_elementKeys[Constants::ELEMNAME_NUMBER_STRING] = 
Constants::ELEMNAME_NUMBER;
  -     s_elementKeys[Constants::ELEMNAME_IF_STRING] = Constants::ELEMNAME_IF;
  -     s_elementKeys[Constants::ELEMNAME_CHOOSE_STRING] = 
Constants::ELEMNAME_CHOOSE;
  -     s_elementKeys[Constants::ELEMNAME_WHEN_STRING] = 
Constants::ELEMNAME_WHEN;
  -     s_elementKeys[Constants::ELEMNAME_OTHERWISE_STRING] = 
Constants::ELEMNAME_OTHERWISE;
  -     s_elementKeys[Constants::ELEMNAME_TEXT_STRING] = 
Constants::ELEMNAME_TEXT;
  -     s_elementKeys[Constants::ELEMNAME_ELEMENT_STRING] = 
Constants::ELEMNAME_ELEMENT;
  -     s_elementKeys[Constants::ELEMNAME_ATTRIBUTE_STRING] = 
Constants::ELEMNAME_ATTRIBUTE;
  -     s_elementKeys[Constants::ELEMNAME_SORT_STRING] = 
Constants::ELEMNAME_SORT;
  -     s_elementKeys[Constants::ELEMNAME_PI_STRING] = Constants::ELEMNAME_PI;
  -     s_elementKeys[Constants::ELEMNAME_COMMENT_STRING] = 
Constants::ELEMNAME_COMMENT;
  +XSLTEngineImpl::initializeElementKeysTable(ElementKeysMapType&       
theElementKeys)
  +{
  +     theElementKeys[Constants::ELEMNAME_APPLY_TEMPLATES_STRING] = 
Constants::ELEMNAME_APPLY_TEMPLATES;
  +     theElementKeys[Constants::ELEMNAME_WITHPARAM_STRING] = 
Constants::ELEMNAME_WITHPARAM;
  +     theElementKeys[Constants::ELEMNAME_CONSTRUCT_STRING] = 
Constants::ELEMNAME_CONSTRUCT;
  +     theElementKeys[Constants::ELEMNAME_CONTENTS_STRING] = 
Constants::ELEMNAME_CONTENTS;
  +     theElementKeys[Constants::ELEMNAME_COPY_STRING] = 
Constants::ELEMNAME_COPY;
  +     theElementKeys[Constants::ELEMNAME_COPY_OF_STRING] = 
Constants::ELEMNAME_COPY_OF;
  +
  +     theElementKeys[Constants::ELEMNAME_ATTRIBUTESET_STRING] = 
Constants::ELEMNAME_DEFINEATTRIBUTESET;
  +
  +     theElementKeys[Constants::ELEMNAME_USE_STRING] = 
Constants::ELEMNAME_USE;
  +
  +     theElementKeys[Constants::ELEMNAME_VARIABLE_STRING] = 
Constants::ELEMNAME_VARIABLE;
  +     theElementKeys[Constants::ELEMNAME_PARAMVARIABLE_STRING] = 
Constants::ELEMNAME_PARAMVARIABLE;
  +
  +     theElementKeys[Constants::ELEMNAME_DISPLAYIF_STRING] = 
Constants::ELEMNAME_DISPLAYIF;
  +     theElementKeys[Constants::ELEMNAME_EMPTY_STRING] = 
Constants::ELEMNAME_EMPTY;
  +     theElementKeys[Constants::ELEMNAME_EVAL_STRING] = 
Constants::ELEMNAME_EVAL;
  +     theElementKeys[Constants::ELEMNAME_CALLTEMPLATE_STRING] = 
Constants::ELEMNAME_CALLTEMPLATE;
  +     theElementKeys[Constants::ELEMNAME_TEMPLATE_STRING] = 
Constants::ELEMNAME_TEMPLATE;
  +     theElementKeys[Constants::ELEMNAME_STYLESHEET_STRING] = 
Constants::ELEMNAME_STYLESHEET;
  +     theElementKeys[Constants::ELEMNAME_TRANSFORM_STRING] = 
Constants::ELEMNAME_STYLESHEET;
  +     theElementKeys[Constants::ELEMNAME_IMPORT_STRING] = 
Constants::ELEMNAME_IMPORT;
  +     theElementKeys[Constants::ELEMNAME_INCLUDE_STRING] = 
Constants::ELEMNAME_INCLUDE;
  +     theElementKeys[Constants::ELEMNAME_FOREACH_STRING] = 
Constants::ELEMNAME_FOREACH;
  +     theElementKeys[Constants::ELEMNAME_VALUEOF_STRING] = 
Constants::ELEMNAME_VALUEOF;
  +     theElementKeys[Constants::ELEMNAME_KEY_STRING] = 
Constants::ELEMNAME_KEY;
  +     theElementKeys[Constants::ELEMNAME_STRIPSPACE_STRING] = 
Constants::ELEMNAME_STRIPSPACE;
  +     theElementKeys[Constants::ELEMNAME_PRESERVESPACE_STRING] = 
Constants::ELEMNAME_PRESERVESPACE;
  +     theElementKeys[Constants::ELEMNAME_NUMBER_STRING] = 
Constants::ELEMNAME_NUMBER;
  +     theElementKeys[Constants::ELEMNAME_IF_STRING] = Constants::ELEMNAME_IF;
  +     theElementKeys[Constants::ELEMNAME_CHOOSE_STRING] = 
Constants::ELEMNAME_CHOOSE;
  +     theElementKeys[Constants::ELEMNAME_WHEN_STRING] = 
Constants::ELEMNAME_WHEN;
  +     theElementKeys[Constants::ELEMNAME_OTHERWISE_STRING] = 
Constants::ELEMNAME_OTHERWISE;
  +     theElementKeys[Constants::ELEMNAME_TEXT_STRING] = 
Constants::ELEMNAME_TEXT;
  +     theElementKeys[Constants::ELEMNAME_ELEMENT_STRING] = 
Constants::ELEMNAME_ELEMENT;
  +     theElementKeys[Constants::ELEMNAME_ATTRIBUTE_STRING] = 
Constants::ELEMNAME_ATTRIBUTE;
  +     theElementKeys[Constants::ELEMNAME_SORT_STRING] = 
Constants::ELEMNAME_SORT;
  +     theElementKeys[Constants::ELEMNAME_PI_STRING] = Constants::ELEMNAME_PI;
  +     theElementKeys[Constants::ELEMNAME_COMMENT_STRING] = 
Constants::ELEMNAME_COMMENT;
      
  -     s_elementKeys[Constants::ELEMNAME_COUNTER_STRING] = 
Constants::ELEMNAME_COUNTER;
  -     s_elementKeys[Constants::ELEMNAME_COUNTERS_STRING] = 
Constants::ELEMNAME_COUNTERS;
  -     s_elementKeys[Constants::ELEMNAME_COUNTERINCREMENT_STRING] = 
Constants::ELEMNAME_COUNTERINCREMENT;
  -     s_elementKeys[Constants::ELEMNAME_COUNTERRESET_STRING] = 
Constants::ELEMNAME_COUNTERRESET;
  -     s_elementKeys[Constants::ELEMNAME_COUNTERSCOPE_STRING] = 
Constants::ELEMNAME_COUNTERSCOPE;
  +     theElementKeys[Constants::ELEMNAME_COUNTER_STRING] = 
Constants::ELEMNAME_COUNTER;
  +     theElementKeys[Constants::ELEMNAME_COUNTERS_STRING] = 
Constants::ELEMNAME_COUNTERS;
  +     theElementKeys[Constants::ELEMNAME_COUNTERINCREMENT_STRING] = 
Constants::ELEMNAME_COUNTERINCREMENT;
  +     theElementKeys[Constants::ELEMNAME_COUNTERRESET_STRING] = 
Constants::ELEMNAME_COUNTERRESET;
  +     theElementKeys[Constants::ELEMNAME_COUNTERSCOPE_STRING] = 
Constants::ELEMNAME_COUNTERSCOPE;
        
  -     s_elementKeys[Constants::ELEMNAME_APPLY_IMPORTS_STRING] = 
Constants::ELEMNAME_APPLY_IMPORTS;
  +     theElementKeys[Constants::ELEMNAME_APPLY_IMPORTS_STRING] = 
Constants::ELEMNAME_APPLY_IMPORTS;
        
  -     s_elementKeys[Constants::ELEMNAME_EXTENSION_STRING] = 
Constants::ELEMNAME_EXTENSION;
  -     s_elementKeys[Constants::ELEMNAME_MESSAGE_STRING] = 
Constants::ELEMNAME_MESSAGE;
  -     s_elementKeys[Constants::ELEMNAME_LOCALE_STRING] = 
Constants::ELEMNAME_LOCALE;
  -     s_elementKeys[Constants::ELEMNAME_FALLBACK_STRING] = 
Constants::ELEMNAME_FALLBACK;
  -     s_elementKeys[Constants::ELEMNAME_OUTPUT_STRING] = 
Constants::ELEMNAME_OUTPUT;
  +     theElementKeys[Constants::ELEMNAME_EXTENSION_STRING] = 
Constants::ELEMNAME_EXTENSION;
  +     theElementKeys[Constants::ELEMNAME_MESSAGE_STRING] = 
Constants::ELEMNAME_MESSAGE;
  +     theElementKeys[Constants::ELEMNAME_LOCALE_STRING] = 
Constants::ELEMNAME_LOCALE;
  +     theElementKeys[Constants::ELEMNAME_FALLBACK_STRING] = 
Constants::ELEMNAME_FALLBACK;
  +     theElementKeys[Constants::ELEMNAME_OUTPUT_STRING] = 
Constants::ELEMNAME_OUTPUT;
   
  -     s_elementKeys[Constants::ELEMNAME_DECIMALFORMAT_STRING] = 
Constants::ELEMNAME_DECIMALFORMAT;
  -     s_elementKeys[Constants::ELEMNAME_NSALIAS_STRING] = 
Constants::ELEMNAME_NSALIAS;
  +     theElementKeys[Constants::ELEMNAME_DECIMALFORMAT_STRING] = 
Constants::ELEMNAME_DECIMALFORMAT;
  +     theElementKeys[Constants::ELEMNAME_NSALIAS_STRING] = 
Constants::ELEMNAME_NSALIAS;
  +}
  +
  +
  +
  +void
  +XSLTEngineImpl::initializeXSLT4JElementKeys(ElementKeysMapType&              
theElementKeys)
  +{
  +     theElementKeys[Constants::ELEMNAME_COMPONENT_STRING] = 
Constants::ELEMNAME_COMPONENT;
  +     theElementKeys[Constants::ELEMNAME_SCRIPT_STRING] = 
Constants::ELEMNAME_SCRIPT;
   }
   
   
   
  +static XalanDOMString                                                        
s_XSLNameSpaceURL;
  +
  +static XalanDOMString                                                        
s_XSLT4JNameSpaceURL;
  +
  +static XSLTEngineImpl::AttributeKeysMapType          s_attributeKeys;
  +
  +static XSLTEngineImpl::ElementKeysMapType            s_elementKeys;
  +
  +static XSLTEngineImpl::ElementKeysMapType            s_XSLT4JElementKeys;
  +
  +
  +
  +const double                 XSLTEngineImpl::s_XSLTVerSupported(1.0);
  +
  +const XalanDOMString&        XSLTEngineImpl::s_XSLNameSpaceURL = 
::s_XSLNameSpaceURL;
  +
  +const XalanDOMString&        XSLTEngineImpl::s_XSLT4JNameSpaceURL = 
::s_XSLT4JNameSpaceURL;
  +
  +/**
  + * Control if the xsl:variable is resolved early or 
  + * late. Resolving the xsl:variable
  + * early is a drag because it means that the fragment 
  + * must be created into a DocumentFragment, and then 
  + * cloned each time to the result tree.  If we can resolve 
  + * late, that means we can evaluate directly into the 
  + * result tree.  Right now this must be kept on 'early' 
  + * because you would need to set the call stack back to 
  + * the point of xsl:invoke... which I can't quite work out 
  + * at the moment.  I don't think this is worth fixing 
  + * until NodeList variables are implemented.
  + */
  +const bool                                                                   
        XSLTEngineImpl::s_resolveContentsEarly = true;
  +
  +const XSLTEngineImpl::AttributeKeysMapType&          
XSLTEngineImpl::s_attributeKeys = ::s_attributeKeys;
  +
  +const XSLTEngineImpl::ElementKeysMapType&            
XSLTEngineImpl::s_elementKeys = ::s_elementKeys;
  +
  +const XSLTEngineImpl::ElementKeysMapType&            
XSLTEngineImpl::s_XSLT4JElementKeys = ::s_XSLT4JElementKeys;
  +
  +
  +
   void
  -XSLTEngineImpl::InitializeXSLT4JElementKeys()
  +XSLTEngineImpl::initialize()
   {
  -     s_XSLT4JElementKeys[Constants::ELEMNAME_COMPONENT_STRING] = 
Constants::ELEMNAME_COMPONENT;
  -     s_XSLT4JElementKeys[Constants::ELEMNAME_SCRIPT_STRING] = 
Constants::ELEMNAME_SCRIPT;
  +     ::s_XSLNameSpaceURL = 
XALAN_STATIC_UCODE_STRING("http://www.w3.org/1999/XSL/Transform";);
  +
  +     ::s_XSLT4JNameSpaceURL = 
XALAN_STATIC_UCODE_STRING("http://xml.apache.org/xslt";);
  +
  +     installFunctions();
  +
  +     initializeAttributeKeysTable(::s_attributeKeys);
  +
  +     initializeElementKeysTable(::s_elementKeys);
  +
  +     initializeXSLT4JElementKeys(::s_XSLT4JElementKeys);
   }
   
   
  +
  +void
  +XSLTEngineImpl::terminate()
  +{
  +     ElementKeysMapType().swap(::s_XSLT4JElementKeys);
   
  
-//////////////////////////////////////////////////////////////////////////////
  +     ElementKeysMapType().swap(::s_elementKeys);
  +
  +     AttributeKeysMapType().swap(::s_attributeKeys);
  +
  +     uninstallFunctions();
  +
  +     clear(::s_XSLT4JNameSpaceURL);
  +
  +     clear(::s_XSLNameSpaceURL);
  +}
  
  
  
  1.46      +21 -31    xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
  
  Index: XSLTEngineImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- XSLTEngineImpl.hpp        2000/08/28 01:19:41     1.45
  +++ XSLTEngineImpl.hpp        2000/08/31 19:43:11     1.46
  @@ -204,17 +204,16 @@
   
        /**
         * Perform initialization of statics -- must be called before any
  -      * processing occurs
  +      * processing occurs.  See class XSLTInit.
         */
        static void
  -     Initialize();
  +     initialize();
   
        /**
  -      * Perform termination of statics -- can be called to make memory
  -      * leak detection easier.
  +      * Perform termination of statics.  See class XSLTInit.
         */
        static void
  -     Terminate();
  +     terminate();
   
        // These methods are inherited from XSLTProcessor ...
        
  @@ -1441,33 +1440,33 @@
        /**
         * The namespace that we must match as a minimum for XSLT.
         */
  -     static const XalanDOMString             s_XSLNameSpaceURL;      
//"http://www.w3.org/1999/XSL/Transform";
  +     static const XalanDOMString&            s_XSLNameSpaceURL;      
//"http://www.w3.org/1999/XSL/Transform";
   
        /**
         * The minimum version of XSLT supported.
         */
  -     static const double s_XSLTVerSupported; // 1.0
  +     static const double                                     
s_XSLTVerSupported; // 1.0
   
        /**
         * Special Xalan namespace for built-in extensions.
         */
  -     static const XalanDOMString s_XSLT4JNameSpaceURL; // 
"http://xml.apache.org/xslt";
  +     static const XalanDOMString&            s_XSLT4JNameSpaceURL; // 
"http://xml.apache.org/xslt";
   
   
        /**
  -      * Hash table that can look up XSLT4J extensions element IDs via name.
  +      * Map that can look up XSLT4J extensions element IDs via name.
         */
  -     static ElementKeysMapType               s_XSLT4JElementKeys;
  +     static const ElementKeysMapType&        s_XSLT4JElementKeys;
   
        /**
  -      * Hash table of XSLT IDs for attribute names.
  +      * Map of XSLT IDs for attribute names.
         */
  -     static AttributeKeysMapType s_attributeKeys;
  +     static const AttributeKeysMapType&      s_attributeKeys;
   
        /**
  -      * Hash table of XSLT element IDs for element names.
  +      * Map of XSLT element IDs for element names.
         */
  -     static ElementKeysMapType       s_elementKeys;
  +     static const ElementKeysMapType&        s_elementKeys;
   
        /**
         * If this is set to true, selects will be traced
  @@ -1485,7 +1484,7 @@
         */
        PrintWriter*    m_diagnosticsPrintWriter;
   
  -  /* For diagnostics */
  +     /* For diagnostics */
        mutable DurationsTableMapType   m_durationsTable;
   
        /**
  @@ -1556,19 +1555,7 @@
         */
        bool    m_stripWhiteSpace; // default default-space="preserve"
   
  -//   typedef std::set<XalanDOMString>                
WhitespaceLookupTableType;
  -
        /**
  -      * A lookup table of all space preserving elements.
  -      */
  -//   WhitespaceLookupTableType       m_whitespacePreservingElements;
  -
  -     /**
  -      * A lookup table of all space stripping elements.
  -      */
  -//   WhitespaceLookupTableType       m_whitespaceStrippingElements;
  -
  -     /**
         * Control if the xsl:variable is resolved early or 
         * late. Resolving the xsl:variable
         * early is a drag because it means that the fragment 
  @@ -1648,17 +1635,20 @@
        StylesheetExecutionContext*             m_executionContext;
   
   
  +     static void
  +     installFunctions();
  +
        static void
  -     InstallFunctions();
  +     uninstallFunctions();
   
        static void
  -     InitializeAttributeKeysTable();
  +     initializeAttributeKeysTable(AttributeKeysMapType&      
theAttributeKeys);
   
        static void
  -     InitializeElementKeysTable();
  +     initializeElementKeysTable(ElementKeysMapType&  theElementKeys);
   
        static void
  -     InitializeXSLT4JElementKeys();
  +     initializeXSLT4JElementKeys(ElementKeysMapType&         theElementKeys);
   };
   
   
  
  
  
  1.1                  xml-xalan/c/src/XSLT/XSLTInit.cpp
  
  Index: XSLTInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "XSLTInit.hpp"
  
  
  
  #include "Constants.hpp"
  #include "ElemNumber.hpp"
  #include "XSLTEngineImpl.hpp"
  
  
  
  unsigned long XSLTInit::s_initCounter = 0;
  
  
  
  XSLTInit::XSLTInit() :
        m_platformSupportInit(),
        m_domSupportInit(),
        m_xmlSupportInit(),
        m_xpathInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  XSLTInit::~XSLTInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  XSLTInit::initialize()
  {
        ElemNumber::initialize();
  
        Constants::initialize();
  
        XSLTEngineImpl::initialize();
  }
  
  
  
  void
  XSLTInit::terminate()
  {
        XSLTEngineImpl::terminate();
  
        Constants::terminate();
  
        ElemNumber::terminate();
  }
  
  
  
  1.1                  xml-xalan/c/src/XSLT/XSLTInit.hpp
  
  Index: XSLTInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(XSLTINIT_INCLUDE_GUARD_1357924680)
  #define XSLTINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <XSLT/XSLTDefinitions.hpp>
  
  
  
  #include <PlatformSupport/PlatformSupportInit.hpp>
  
  
  
  #include <DOMSupport/DOMSupportInit.hpp>
  
  
  
  #include <XMLSupport/XMLSupportInit.hpp>
  
  
  
  #include <XPath/XPathInit.hpp>
  
  
  
  class XALAN_XSLT_EXPORT XSLTInit
  {
  public:
  
        explicit
        XSLTInit();
  
        ~XSLTInit();
  
  private:
  
        // Not implemented...
        XSLTInit(const XSLTInit&);
  
        XSLTInit&
        operator=(const XSLTInit&);
  
        
        static void
        initialize();
  
        static void
        terminate();
  
        const PlatformSupportInit       m_platformSupportInit;
  
        const DOMSupportInit            m_domSupportInit;
  
        const XMLSupportInit            m_xmlSupportInit;
  
        const XPathInit                         m_xpathInit;
  
        static unsigned long    s_initCounter;
  };
  
  
  
  #endif        // !defined(XSLTINIT_INCLUDE_GUARD_1357924680)
  
  
  
  1.1                  xml-xalan/c/src/XalanDOM/XalanDOMInit.cpp
  
  Index: XalanDOMInit.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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 "XalanDOMInit.hpp"
  
  
  
  unsigned long XalanDOMInit::s_initCounter = 0;
  
  
  
  XalanDOMInit::XalanDOMInit()
  {
        ++s_initCounter;
  
        if (s_initCounter == 1)
        {
                initialize();
        }
  }
  
  
  
  XalanDOMInit::~XalanDOMInit()
  {
        --s_initCounter;
  
        if (s_initCounter == 0)
        {
                terminate();
        }
  }
  
  
  
  void
  XalanDOMInit::initialize()
  {
  }
  
  
  
  void
  XalanDOMInit::terminate()
  {
  }
  
  
  
  1.1                  xml-xalan/c/src/XalanDOM/XalanDOMInit.hpp
  
  Index: XalanDOMInit.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000 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 [EMAIL PROTECTED]
   *
   * 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(XALANDOMINIT_INCLUDE_GUARD_1357924680)
  #define XALANDOMINIT_INCLUDE_GUARD_1357924680
  
  
  
  // Base include file.  Must be first.
  #include <XalanDOM/XalanDOMDefinitions.hpp>
  
  
  
  class XALAN_DOM_EXPORT XalanDOMInit
  {
  public:
  
        explicit
        XalanDOMInit();
  
        ~XalanDOMInit();
  
  private:
  
        // Not implemented...
        XalanDOMInit(const XalanDOMInit&);
  
        XalanDOMInit&
        operator=(const XalanDOMInit&);
  
  
        static void
        initialize();
  
        static void
        terminate();
  
        static unsigned long    s_initCounter;
  };
  
  
  
  #endif        // !defined(XALANDOMINIT_INCLUDE_GUARD_1357924680)
  
  
  
  1.16      +3 -8      
xml-xalan/c/src/XercesParserLiaison/XercesParserLiaison.cpp
  
  Index: XercesParserLiaison.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesParserLiaison.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XercesParserLiaison.cpp   2000/08/22 20:19:23     1.15
  +++ XercesParserLiaison.cpp   2000/08/31 19:43:19     1.16
  @@ -84,14 +84,9 @@
   
   
   
  -static const XalanDOMString          
theParserName(XALAN_STATIC_UCODE_STRING("Xerces"));
  -static const XalanDOMString          
theDefaultSpecialCharacters(XALAN_STATIC_UCODE_STRING("<>&\"\'\r\n"));
  -
  -
  -
   XercesParserLiaison::XercesParserLiaison(DOMSupport& theSupport) :
        m_DOMSupport(theSupport),
  -     m_specialCharacters(theDefaultSpecialCharacters),
  +     m_specialCharacters(XALAN_STATIC_UCODE_STRING("<>&\"\'\r\n")),
        m_indent(-1),
        m_shouldExpandEntityRefs(false),
        m_useValidation(false),
  @@ -286,10 +281,10 @@
   
   
   
  -const XalanDOMString&
  +const XalanDOMString
   XercesParserLiaison::getParserDescription() const
   {
  -     return theParserName;
  +     return XALAN_STATIC_UCODE_STRING("Xerces");
   }
   
   
  
  
  
  1.14      +1 -1      
xml-xalan/c/src/XercesParserLiaison/XercesParserLiaison.hpp
  
  Index: XercesParserLiaison.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XercesParserLiaison/XercesParserLiaison.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XercesParserLiaison.hpp   2000/08/22 20:19:23     1.13
  +++ XercesParserLiaison.hpp   2000/08/31 19:43:20     1.14
  @@ -159,7 +159,7 @@
        virtual void
        setUseValidation(bool   b);
   
  -     virtual const XalanDOMString&
  +     virtual const XalanDOMString
        getParserDescription() const;
   
   
  
  
  
  1.13      +2 -9      
xml-xalan/c/src/XercesPlatformSupport/TextFileOutputStream.cpp
  
  Index: TextFileOutputStream.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XercesPlatformSupport/TextFileOutputStream.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TextFileOutputStream.cpp  2000/08/22 20:20:15     1.12
  +++ TextFileOutputStream.cpp  2000/08/31 19:43:22     1.13
  @@ -126,11 +126,6 @@
   
   
   
  -static const DOMString       
theOpenExceptionType(XALAN_STATIC_UCODE_STRING("TextFileOutputStreamOpenException"));
  -static const DOMString       
theWriteExceptionType(XALAN_STATIC_UCODE_STRING("TextFileOutputStreamWriteException"));
  -
  -
  -
   static DOMString
   FormatMessageLocal(
                        const DOMString&        theMessage,
  @@ -164,7 +159,7 @@
        XercesTextOutputStreamException(FormatMessageLocal("Error opening file: 
",
                                                                                
                         theFileName,
                                                                                
                         theErrorCode),
  -                                                                
theOpenExceptionType)
  +                                                                
XALAN_STATIC_UCODE_STRING("TextFileOutputStreamOpenException"))
   {
   }
   
  @@ -176,15 +171,13 @@
   
   
   
  -
  -
   TextFileOutputStreamWriteException::TextFileOutputStreamWriteException(
                const DOMString&        theFileName,
                int                                     theErrorCode) :
        XercesTextOutputStreamException(FormatMessageLocal("Error writing file: 
",
                                                                                
                         theFileName,
                                                                                
                         theErrorCode),
  -                                                                 
theWriteExceptionType)
  +                                                                 
XALAN_STATIC_UCODE_STRING("TextFileOutputStreamWriteException"))
   {
   }
   
  
  
  
  1.7       +1 -5      
xml-xalan/c/src/XercesPlatformSupport/XercesStdTextOutputStream.cpp
  
  Index: XercesStdTextOutputStream.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XercesPlatformSupport/XercesStdTextOutputStream.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XercesStdTextOutputStream.cpp     2000/06/28 17:52:36     1.6
  +++ XercesStdTextOutputStream.cpp     2000/08/31 19:43:22     1.7
  @@ -119,10 +119,6 @@
   
   
   
  -static const DOMString       
theWriteExceptionType(XALAN_STATIC_UCODE_STRING("XercesStdTextOutputStreamWriteException"));
  -
  -
  -
   static DOMString
   FormatMessageLocal(
                        const DOMString&        theMessage,
  @@ -152,7 +148,7 @@
                int                                     theErrorCode) :
        XercesTextOutputStreamException(FormatMessageLocal("Error writing to 
standard stream!",
                                                                                
                           theErrorCode),
  -                                                                 
theWriteExceptionType)
  +                                                                 
XALAN_STATIC_UCODE_STRING("XercesStdTextOutputStreamWriteException"))
   {
   }
   
  
  
  

Reply via email to