You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@locus.apache.org on 2000/08/31 21:43:25 UTC
cvs commit: xml-xalan/c/src/XercesPlatformSupport TextFileOutputStream.cpp XercesStdTextOutputStream.cpp
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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "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 apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#if !defined(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"))
{
}