You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jd...@locus.apache.org on 2000/03/01 21:43:56 UTC

cvs commit: xml-xalan/c/src/XSLT AVT.hpp Arg.cpp Arg.hpp ContextMarker.cpp ContextMarker.hpp ContextState.cpp ContextState.hpp ElemLiteralResult.cpp ElementMarker.cpp ElementMarker.hpp ExtensionFunctionHandler.cpp ExtensionFunctionHandler.hpp ExtensionNSHandler.cpp NodeSortKey.cpp NodeSortKey.hpp Stylesheet.cpp Stylesheet.hpp StylesheetExecutionContext.hpp StylesheetExecutionContextDefault.cpp StylesheetExecutionContextDefault.hpp StylesheetHandler.cpp StylesheetHandler.hpp StylesheetRoot.cpp StylesheetRoot.hpp XSLTEngineImpl.cpp XSLTEngineImpl.hpp XSLTInputSource.cpp XSLTInputSource.hpp XSLTProcessor.hpp XSLTProcessorEnvSupportDefault.hpp XSLTProcessorException.hpp XSLTResultTarget.cpp XSLTResultTarget.hpp

jdonohue    00/03/01 12:43:55

  Modified:    c/src/DOMSupport NamespaceResolver.hpp
               c/src/XSLT AVT.hpp Arg.cpp Arg.hpp ContextMarker.cpp
                        ContextMarker.hpp ContextState.cpp ContextState.hpp
                        ElemLiteralResult.cpp ElementMarker.cpp
                        ElementMarker.hpp ExtensionFunctionHandler.cpp
                        ExtensionFunctionHandler.hpp ExtensionNSHandler.cpp
                        NodeSortKey.cpp NodeSortKey.hpp Stylesheet.cpp
                        Stylesheet.hpp StylesheetExecutionContext.hpp
                        StylesheetExecutionContextDefault.cpp
                        StylesheetExecutionContextDefault.hpp
                        StylesheetHandler.cpp StylesheetHandler.hpp
                        StylesheetRoot.cpp StylesheetRoot.hpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
                        XSLTInputSource.cpp XSLTInputSource.hpp
                        XSLTProcessor.hpp
                        XSLTProcessorEnvSupportDefault.hpp
                        XSLTProcessorException.hpp XSLTResultTarget.cpp
                        XSLTResultTarget.hpp
  Log:
  Added javadoc comments
  
  Revision  Changes    Path
  1.4       +10 -2     xml-xalan/c/src/DOMSupport/NamespaceResolver.hpp
  
  Index: NamespaceResolver.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/NamespaceResolver.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NamespaceResolver.hpp	2000/02/23 20:23:09	1.3
  +++ NamespaceResolver.hpp	2000/03/01 20:43:39	1.4
  @@ -109,19 +109,27 @@
   
   protected:
   
  +#if defined(XALAN_NO_NAMESPACES)
  +#	define XALAN_STD
  +#else
  +#	define XALAN_STD std::
  +#endif
  +
   #if defined(XALAN_HASH_CONTAINERS_AVAILABLE)
   #if defined(XALAN_NO_NAMESPACES)
   	typedef hash_map<DOM_Node, NSInfo, DOM_NodeHashFunction>		NSInfoMapType;
   #else
  -	typedef std::hash_map<DOM_Node, NSInfo, DOM_NodeHashFunction>	NSInfoMapType;
  +	typedef XALAN_STD hash_map<DOM_Node, NSInfo, DOM_NodeHashFunction>	NSInfoMapType;
   #endif
   #else
   #if defined(XALAN_NO_NAMESPACES)
   	typedef map<DOM_Node, NSInfo>									NSInfoMapType;
   #else
  -	typedef std::map<DOM_Node, NSInfo>								NSInfoMapType;
  +	typedef XALAN_STD map<DOM_Node, NSInfo>								NSInfoMapType;
   #endif
   #endif
  +
  +#undef XALAN_STD
   
   	void
   	updateNamespace(
  
  
  
  1.4       +12 -2     xml-xalan/c/src/XSLT/AVT.hpp
  
  Index: AVT.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/AVT.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AVT.hpp	2000/02/29 20:54:19	1.3
  +++ AVT.hpp	2000/03/01 20:43:40	1.4
  @@ -58,7 +58,7 @@
   #define XALAN_AVT_HEADER_GUARD 
   
   /**
  - * $Id: AVT.hpp,v 1.3 2000/02/29 20:54:19 jdonohue Exp $
  + * $Id: AVT.hpp,v 1.4 2000/03/01 20:43:40 jdonohue Exp $
    * 
    * $State: Exp $
    * 
  @@ -93,6 +93,16 @@
   {
   public:
   
  +#if defined(XALAN_NO_NAMESPACES)
  +#	define XALAN_STD
  +#else
  +#	define XALAN_STD std::
  +#endif
  +
  +typedef XALAN_STD vector<AVTPart*>	AVTPartPtrVectorType;
  +
  +#undef XALAN_STD
  +
   	/**
   	 * Construct an Attribute Value Template(AVT) by parsing the string, and
   	 * either constructing a vector of AVTParts, or simply hold on to the
  @@ -159,7 +169,7 @@
   /**
    * If the AVT is complex, hold a Vector of AVTParts.
    */
  -	std::vector<AVTPart*>	m_parts;
  +	AVTPartPtrVectorType	m_parts;
   
   /**
    * The name of the attribute.
  
  
  
  1.3       +4 -2      xml-xalan/c/src/XSLT/Arg.cpp
  
  Index: Arg.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Arg.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Arg.cpp	2000/01/26 14:28:06	1.2
  +++ Arg.cpp	2000/03/01 20:43:40	1.3
  @@ -53,9 +53,11 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
  -// Class header file.
  +
   #include "Arg.hpp"
   
   
  
  
  
  1.4       +3 -1      xml-xalan/c/src/XSLT/Arg.hpp
  
  Index: Arg.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Arg.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Arg.hpp	2000/02/29 20:54:19	1.3
  +++ Arg.hpp	2000/03/01 20:43:40	1.4
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_ARG_HEADER_GUARD)
   #define XALAN_ARG_HEADER_GUARD
  
  
  
  1.2       +3 -1      xml-xalan/c/src/XSLT/ContextMarker.cpp
  
  Index: ContextMarker.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ContextMarker.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContextMarker.cpp	1999/12/18 19:48:03	1.1
  +++ ContextMarker.cpp	2000/03/01 20:43:40	1.2
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #include "ContextMarker.hpp"
   
  
  
  
  1.3       +3 -1      xml-xalan/c/src/XSLT/ContextMarker.hpp
  
  Index: ContextMarker.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ContextMarker.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ContextMarker.hpp	2000/02/29 20:54:19	1.2
  +++ ContextMarker.hpp	2000/03/01 20:43:41	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_CONTEXTMARKER_HEADER_GUARD)
   #define XALAN_CONTEXTMARKER_HEADER_GUARD
  
  
  
  1.2       +3 -1      xml-xalan/c/src/XSLT/ContextState.cpp
  
  Index: ContextState.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ContextState.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ContextState.cpp	1999/12/18 19:48:03	1.1
  +++ ContextState.cpp	2000/03/01 20:43:41	1.2
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #include "ContextState.hpp"
   
  
  
  
  1.3       +3 -1      xml-xalan/c/src/XSLT/ContextState.hpp
  
  Index: ContextState.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ContextState.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ContextState.hpp	2000/02/29 20:54:19	1.2
  +++ ContextState.hpp	2000/03/01 20:43:41	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_CONTEXTSTATE_HEADER_GUARD)
   #define XALAN_CONTEXTSTATE_HEADER_GUARD
  
  
  
  1.4       +1 -1      xml-xalan/c/src/XSLT/ElemLiteralResult.cpp
  
  Index: ElemLiteralResult.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemLiteralResult.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ElemLiteralResult.cpp	2000/02/03 20:13:21	1.3
  +++ ElemLiteralResult.cpp	2000/03/01 20:43:41	1.4
  @@ -216,7 +216,7 @@
   
   				bool isXSLNS = equals(srcURI, executionContext.getXSLNameSpaceURL())
   					|| 0 != getStylesheet().lookupExtensionNSHandler(srcURI)
  -					|| equalsIgnoreCase(srcURI,executionContext.getXSLT4JNameSpaceURL());
  +					|| equalsIgnoreCase(srcURI,executionContext.getXalanXSLNameSpaceURL());
   
   				if(!isXSLNS)
   				{
  
  
  
  1.2       +3 -1      xml-xalan/c/src/XSLT/ElementMarker.cpp
  
  Index: ElementMarker.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElementMarker.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ElementMarker.cpp	1999/12/18 19:48:04	1.1
  +++ ElementMarker.cpp	2000/03/01 20:43:41	1.2
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #include "ElementMarker.hpp"
   
  
  
  
  1.3       +3 -1      xml-xalan/c/src/XSLT/ElementMarker.hpp
  
  Index: ElementMarker.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElementMarker.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ElementMarker.hpp	2000/02/29 20:54:22	1.2
  +++ ElementMarker.hpp	2000/03/01 20:43:41	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_ELEMENTMARKER_HEADER_GUARD)
   #define XALAN_ELEMENTMARKER_HEADER_GUARD
  
  
  
  1.3       +3 -1      xml-xalan/c/src/XSLT/ExtensionFunctionHandler.cpp
  
  Index: ExtensionFunctionHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ExtensionFunctionHandler.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ExtensionFunctionHandler.cpp	2000/01/26 14:26:59	1.2
  +++ ExtensionFunctionHandler.cpp	2000/03/01 20:43:41	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #include "ExtensionFunctionHandler.hpp"
   
  
  
  
  1.4       +3 -1      xml-xalan/c/src/XSLT/ExtensionFunctionHandler.hpp
  
  Index: ExtensionFunctionHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ExtensionFunctionHandler.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ExtensionFunctionHandler.hpp	2000/02/29 20:54:22	1.3
  +++ ExtensionFunctionHandler.hpp	2000/03/01 20:43:42	1.4
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_EXTENSIONFUNCTIONHANDLER_HEADER_GUARD)
   #define XALAN_EXTENSIONFUNCTIONHANDLER_HEADER_GUARD
  
  
  
  1.4       +4 -2      xml-xalan/c/src/XSLT/ExtensionNSHandler.cpp
  
  Index: ExtensionNSHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ExtensionNSHandler.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ExtensionNSHandler.cpp	2000/02/29 20:54:22	1.3
  +++ ExtensionNSHandler.cpp	2000/03/01 20:43:42	1.4
  @@ -53,9 +53,11 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
  -// Class header file.
  +
   #include "ExtensionNSHandler.hpp"
   
   
  
  
  
  1.3       +3 -2      xml-xalan/c/src/XSLT/NodeSortKey.cpp
  
  Index: NodeSortKey.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NodeSortKey.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NodeSortKey.cpp	2000/01/26 14:27:00	1.2
  +++ NodeSortKey.cpp	2000/03/01 20:43:42	1.3
  @@ -53,10 +53,11 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
  -// Class header file.
   #include "NodeSortKey.hpp"
   
   
  
  
  
  1.4       +3 -1      xml-xalan/c/src/XSLT/NodeSortKey.hpp
  
  Index: NodeSortKey.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NodeSortKey.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NodeSortKey.hpp	2000/02/29 20:54:23	1.3
  +++ NodeSortKey.hpp	2000/03/01 20:43:42	1.4
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_NODESORTKEY_HEADER_GUARD)
   #define XALAN_NODESORTKEY_HEADER_GUARD
  
  
  
  1.5       +3 -2      xml-xalan/c/src/XSLT/Stylesheet.cpp
  
  Index: Stylesheet.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Stylesheet.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Stylesheet.cpp	2000/02/29 20:54:24	1.4
  +++ Stylesheet.cpp	2000/03/01 20:43:42	1.5
  @@ -53,10 +53,11 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
  -// Class header file.
   #include "Stylesheet.hpp"
   
   
  
  
  
  1.7       +3 -1      xml-xalan/c/src/XSLT/Stylesheet.hpp
  
  Index: Stylesheet.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Stylesheet.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Stylesheet.hpp	2000/02/29 20:54:24	1.6
  +++ Stylesheet.hpp	2000/03/01 20:43:42	1.7
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_STYLESHEET_HEADER_GUARD)
   #define XALAN_STYLESHEET_HEADER_GUARD
  
  
  
  1.3       +5 -5      xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
  
  Index: StylesheetExecutionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StylesheetExecutionContext.hpp	2000/02/29 20:54:24	1.2
  +++ StylesheetExecutionContext.hpp	2000/03/01 20:43:43	1.3
  @@ -189,7 +189,7 @@
   	setStylesheetRoot(StylesheetRoot*	theStylesheet) = 0;
   
   	/**
  -	 * Reset the state of execution to node 'xmlNode' in source tree 'sourceTree'
  +	 * Reset the state of execution to node 'xmlNode' in source tree 'sourceTree.'
   	 * 
   	 * @param sourceTree source tree for execution
   	 * @param xmlNode    node to execute
  @@ -274,9 +274,9 @@
   			const XMLCh*	theNewValue) = 0;
   
   	/**
  -	 * Replace the name of the pending element.
  +	 * Changes the currently pending element name.
   	 * 
  -	 * @param elementName name of element
  +	 * @param elementName new name of element
   	 */
   	virtual void
   	setPendingElementName(const DOMString&	elementName) = 0;
  @@ -462,7 +462,7 @@
   	 * @param sourceTree             source tree
   	 * @param sourceNode             source node
   	 * @param mode                   mode under which the template is operating
  -	 * @param targetTemplate         $$$
  +	 * @param targetTemplate         target template
   	 */
   	virtual	void
   	pushParams(
  @@ -695,7 +695,7 @@
   	 * @return Xalan namespace for extensions
   	 */
   	virtual const DOMString&
  -	getXSLT4JNameSpaceURL() const = 0;
  +	getXalanXSLNameSpaceURL() const = 0;
   
   	/**
   	 * If this is set to true, simple traces of template calls are made.
  
  
  
  1.3       +2 -2      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StylesheetExecutionContextDefault.cpp	2000/02/17 20:30:50	1.2
  +++ StylesheetExecutionContextDefault.cpp	2000/03/01 20:43:43	1.3
  @@ -639,9 +639,9 @@
   
   
   const DOMString&
  -StylesheetExecutionContextDefault::getXSLT4JNameSpaceURL() const
  +StylesheetExecutionContextDefault::getXalanXSLNameSpaceURL() const
   {
  -	return m_xsltProcessor.getXSLT4JNameSpaceURL();
  +	return m_xsltProcessor.getXalanXSLNameSpaceURL();
   }
   
   
  
  
  
  1.4       +1 -4      xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
  
  Index: StylesheetExecutionContextDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StylesheetExecutionContextDefault.hpp	2000/02/29 20:54:24	1.3
  +++ StylesheetExecutionContextDefault.hpp	2000/03/01 20:43:44	1.4
  @@ -223,9 +223,6 @@
   			const DOM_Node&		caller,
   			const DOM_Node&		sourceNode);
   
  -	/**
  -	 * Pop the current context from the current context stack.
  -	 */
   	virtual void
   	popCurrentContext();
   
  @@ -315,7 +312,7 @@
   	getXSLNameSpaceURL() const;
   
   	virtual const DOMString&
  -	getXSLT4JNameSpaceURL() const;
  +	getXalanXSLNameSpaceURL() const;
   
   	virtual bool
   	isTraceSelect() const;
  
  
  
  1.8       +12 -233   xml-xalan/c/src/XSLT/StylesheetHandler.cpp
  
  Index: StylesheetHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StylesheetHandler.cpp	2000/02/29 20:54:24	1.7
  +++ StylesheetHandler.cpp	2000/03/01 20:43:44	1.8
  @@ -110,13 +110,6 @@
   
   
   
  -/**
  - * This class processes a stylesheet via SAX events, and inits
  - * the given stylesheet.	If you need to alter the code in here, 
  - * it is not for the faint-of-heart, due to the state tracking 
  - * that has to be done due to the SAX event model.
  - */
  -
   StylesheetHandler::StylesheetHandler(
   			XSLTEngineImpl&					processor,
   			Stylesheet&						stylesheetTree,
  @@ -138,7 +131,6 @@
   	m_pLXSLTExtensionNSH(0),
   	m_elemStack()
   {
  -
   }
   
   
  @@ -148,47 +140,12 @@
   }
   
   
  -
  -/**
  - * Receive an object for locating the origin of SAX document events.
  - *
  - * <p>SAX parsers are strongly encouraged (though not absolutely
  - * required) to supply a locator: if it does so, it must supply
  - * the locator to the application by invoking this method before
  - * invoking any of the other methods in the DocumentHandler
  - * interface.</p>
  - *
  - * <p>The locator allows the application to determine the end
  - * position of any document-related event, even if the parser is
  - * not reporting an error.  Typically, the application will
  - * use this information for reporting its own errors (such as
  - * character content that does not match an application's
  - * business rules).  The information returned by the locator
  - * is probably not sufficient for use with a search engine.</p>
  - *
  - * <p>Note that the locator will return correct information only
  - * during the invocation of the events in this interface.  The
  - * application should not attempt to use it at any other time.</p>
  - *
  - * @param locator An object that can return the location of
  - *                any SAX document event.
  - * @see org.xml.sax.Locator
  - */
   void StylesheetHandler::setDocumentLocator(Locator* const locator)
   {
   	m_processor.m_stylesheetLocatorStack.push_back(locator);
   }
   
  -/**
  - * Receive notification of the beginning of a document.
  - *
  - * <p>The SAX parser will invoke this method only once, before any
  - * other methods in this interface or in DTDHandler (except for
  - * setDocumentLocator).</p>
  - *
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - */
  +
   void StylesheetHandler::startDocument()
   {
   	m_pendingException = "";
  @@ -197,18 +154,6 @@
   }
   
   
  -/**
  - * Receive notification of the end of a document.
  - *
  - * <p>The SAX parser will invoke this method only once, and it will
  - * be the last method invoked during the parse.  The parser shall
  - * not invoke this method until it has either abandoned parsing
  - * (because of an unrecoverable error) or reached the end of
  - * input.</p>
  - *
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - */
   void StylesheetHandler::endDocument()
   {
   	if(!m_processor.m_stylesheetLocatorStack.empty())
  @@ -221,29 +166,14 @@
   		throw SAXException(toCharArray(m_pendingException));
   	}
   }
  +
   
  -/** 
  - * See if this is a xmlns attribute, and, if so, process it.
  - * 
  - * @param attrName Qualified name of attribute.
  - * @param atts The attribute list where the element comes from (not used at 
  - *      this time).
  - * @param which The index into the attribute list (not used at this time).
  - * @return True if this is a namespace name.
  - */
   bool StylesheetHandler::isAttrOK(const DOMString& attrName, const AttributeList& atts, int which)
   {
   	return m_stylesheet.isAttrOK(attrName, atts, which, m_constructionContext);
   }
   
  -/** 
  - * Tell whether or not this is a xml:space attribute and, if so, process it.
  - * 
  - * @param aname The name of the attribute in question.
  - * @param atts The attribute list that owns the attribute.
  - * @param which The index of the attribute into the attribute list.
  - * @return True if this is a xml:space attribute.
  - */
  +
   bool StylesheetHandler::processSpaceAttr(const DOMString& aname, const AttributeList& atts, int which)
   {
   	const bool	isSpaceAttr = equals(aname, "xml:space");
  @@ -269,28 +199,6 @@
   }
   
   
  -/**
  - * Receive notification of the beginning of an element.
  - *
  - * <p>The Parser will invoke this method at the beginning of every
  - * element in the XML document; there will be a corresponding
  - * endElement() event for every startElement() event (even when the
  - * element is empty). All of the element's content will be
  - * reported, in order, before the corresponding endElement()
  - * event.</p>
  - *
  - * <p>If the element name has a namespace prefix, the prefix will
  - * still be attached.  Note that the attribute list provided will
  - * contain only attributes with explicit values (specified or
  - * defaulted): #IMPLIED attributes will be omitted.</p>
  - *
  - * @param name The element type name.
  - * @param atts The attributes attached to the element, if any.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - * @see #endElement
  - * @see org.xml.sax.AttributeList
  - */
   void StylesheetHandler::startElement (const XMLCh* const name, AttributeList& atts)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -375,9 +283,9 @@
   					break;
   
   				case Constants::ELEMNAME_EXTENSION:
  -					if(!equalsIgnoreCase(ns,m_processor.getXSLT4JNameSpaceURL()))
  +					if(!equalsIgnoreCase(ns,m_processor.getXalanXSLNameSpaceURL()))
   					{
  -						m_processor.warn("Old syntax: the functions instruction should use a url of "+m_processor.getXSLT4JNameSpaceURL());
  +						m_processor.warn("Old syntax: the functions instruction should use a url of "+m_processor.getXalanXSLNameSpaceURL());
   					}
   					// m_processor.handleFunctionsInstruction((Element)child);
   				break;
  @@ -849,7 +757,7 @@
   		  }
   		}
   		// BEGIN SANJIVA CODE
  -		else if (!m_inTemplate && startsWith(ns,m_processor.getXSLT4JNameSpaceURL()))
  +		else if (!m_inTemplate && startsWith(ns,m_processor.getXalanXSLNameSpaceURL()))
   		{
   			if (equals(localName, "component")) 
   			{
  @@ -1020,10 +928,6 @@
   }
   
   
  -/**
  - * Init the wrapperless template
  - */
  -
   ElemTemplateElement* StylesheetHandler::initWrapperless (const DOMString& name,
   	const AttributeList& atts, int lineNumber, int columnNumber)
   {
  @@ -1057,10 +961,6 @@
   }
   
   
  -
  -/**
  - * Test to see if the stack contains the given URL.
  - */
   static bool 
   stackContains(
   			const Stylesheet::URLStackType&		stack, 
  @@ -1082,10 +982,6 @@
   }
   
   
  -
  -/**
  - * Process xsl:import.
  - */
   void StylesheetHandler::processImport(const DOMString& name, const AttributeList& atts)
   {
   	int nAttrs = atts.getLength();
  @@ -1155,10 +1051,6 @@
   }
   
   
  -
  -/**
  - * Process xsl:include.
  - */
   void StylesheetHandler::processInclude(const DOMString& name, const AttributeList& atts)
   {
   	int nAttrs = atts.getLength();
  @@ -1230,21 +1122,6 @@
   }
   
   
  -/**
  - * Receive notification of the end of an element.
  - *
  - * <p>The SAX parser will invoke this method at the end of every
  - * element in the XML document; there will be a corresponding
  - * startElement() event for every endElement() event (even when the
  - * element is empty).</p>
  - *
  - * <p>If the element name has a namespace prefix, the prefix will
  - * still be attached to the name.</p>
  - *
  - * @param name The element type name
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - */
   void StylesheetHandler::endElement(const XMLCh* const name) 
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1303,31 +1180,7 @@
   	// END SANJIVA CODE
   }
   
  -/**
  - * Receive notification of character data.
  - *
  - * <p>The Parser will call this method to report each chunk of
  - * character data.  SAX parsers may return all contiguous character
  - * data in a single chunk, or they may split it into several
  - * chunks; however, all of the characters in any single event
  - * must come from the same external entity, so that the Locator
  - * provides useful information.</p>
  - *
  - * <p>The application must not attempt to read from the array
  - * outside of the specified range.</p>
  - *
  - * <p>Note that some parsers will report whitespace using the
  - * ignorableWhitespace() method rather than this one (validating
  - * parsers must do so).</p>
  - *
  - * @param ch The characters from the XML document.
  - * @param start The start position in the array.
  - * @param length The number of characters to read from the array.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - * @see #ignorableWhitespace 
  - * @see org.xml.sax.Locator
  - */
  +
   void StylesheetHandler::characters (const XMLCh* const chars, const unsigned int length)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1409,32 +1262,8 @@
   
   
   }
  +
   
  -/**
  - * Receive notification of cdata.
  - *
  - * <p>The Parser will call this method to report each chunk of
  - * character data.  SAX parsers may return all contiguous character
  - * data in a single chunk, or they may split it into several
  - * chunks; however, all of the characters in any single event
  - * must come from the same external entity, so that the Locator
  - * provides useful information.</p>
  - *
  - * <p>The application must not attempt to read from the array
  - * outside of the specified range.</p>
  - *
  - * <p>Note that some parsers will report whitespace using the
  - * ignorableWhitespace() method rather than this one (validating
  - * parsers must do so).</p>
  - *
  - * @param ch The characters from the XML document.
  - * @param start The start position in the array.
  - * @param length The number of characters to read from the array.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - * @see #ignorableWhitespace 
  - * @see org.xml.sax.Locator
  - */
   void StylesheetHandler::cdata(const XMLCh* const chars, const unsigned int length)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1506,31 +1335,8 @@
   	// END SANJIVA CODE
   	// TODO: Flag error if text inside of stylesheet
   }
  +
   
  -/**
  - * Receive notification of ignorable whitespace in element content.
  - *
  - * <p>Validating Parsers must use this method to report each chunk
  - * of ignorable whitespace (see the W3C XML 1.0 recommendation,
  - * section 2.10): non-validating parsers may also use this method
  - * if they are capable of parsing and using content models.</p>
  - *
  - * <p>SAX parsers may return all contiguous whitespace in a single
  - * chunk, or they may split it into several chunks; however, all of
  - * the characters in any single event must come from the same
  - * external entity, so that the Locator provides useful
  - * information.</p>
  - *
  - * <p>The application must not attempt to read from the array
  - * outside of the specified range.</p>
  - *
  - * @param ch The characters from the XML document.
  - * @param start The start position in the array.
  - * @param length The number of characters to read from the array.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - * @see #characters
  - */
   void StylesheetHandler::ignorableWhitespace (const XMLCh* const /*chars*/, const unsigned int /*length*/)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1541,23 +1347,6 @@
   }
   
   
  -/**
  - * Receive notification of a processing instruction.
  - *
  - * <p>The Parser will invoke this method once for each processing
  - * instruction found: note that processing instructions may occur
  - * before or after the main document element.</p>
  - *
  - * <p>A SAX parser should never report an XML declaration (XML 1.0,
  - * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
  - * using this method.</p>
  - *
  - * @param target The processing instruction target.
  - * @param data The processing instruction data, or null if
  - *        none was supplied.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - */
   void StylesheetHandler::processingInstruction (const XMLCh* const /*target*/, const XMLCh* const /*data*/)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1567,12 +1356,7 @@
     // No action for the moment.
   }
   
  -/**
  - * Called when a Comment is to be constructed.
  - * @param   data  The comment data.
  - * @exception org.xml.sax.SAXException Any SAX exception, possibly
  - *            wrapping another exception.
  - */
  +
   void StylesheetHandler::comment(const XMLCh* const /*data*/)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1581,10 +1365,8 @@
   
     // No action for the moment.
   }
  +
   
  -/**
  - * Receive notification of a entityReference.
  - */
   void StylesheetHandler::entityReference(const XMLCh* const /*name*/)
   {
   	// if we have apending exception, we don't want to even try to process this
  @@ -1604,7 +1386,7 @@
     // No action for the moment.
   }
   
  -	// pure virtual in FormatterListener
  +
   void
   StylesheetHandler::charactersRaw(const XMLCh* const /* chars */, const unsigned int	/* length */)
   {
  @@ -1614,6 +1396,3 @@
   
     // No action for the moment.
   }
  -
  -
  -
  
  
  
  1.5       +6 -8      xml-xalan/c/src/XSLT/StylesheetHandler.hpp
  
  Index: StylesheetHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StylesheetHandler.hpp	2000/02/29 20:54:24	1.4
  +++ StylesheetHandler.hpp	2000/03/01 20:43:44	1.5
  @@ -175,7 +175,6 @@
   	 * @param length number of characters to read from the array
   	 * @exception SAXException
   	 * @see #ignorableWhitespace 
  -	 * @see org.xml.sax.Locator
   	 */
   	virtual void cdata(const XMLCh* const ch, const unsigned int length);
   
  @@ -238,12 +237,6 @@
   	 */
   	virtual void entityReference(const XMLCh* const data);
   
  -    /**
  -		* This method allows the user installed Document Handler to 'reset'
  -		* itself, freeing all the memory resources. The scanner calls this
  -		* method before starting a new parse event.
  -      */
  -
   	// These methods are inherited DocumentHandler ...
   	
   	// $$$ Theoretically, shouldn't need javadoc for these, since they are
  @@ -339,7 +332,12 @@
   	 */
   	virtual void endElement(const XMLCh* const name);
   	
  -    virtual void resetDocument();
  +	/**
  +	 * This method allows the user installed Document Handler to 'reset'
  +	 * itself, freeing all the memory resources. The scanner calls this
  +	 * method before starting a new parse event.
  +	 */
  +	virtual void resetDocument();
   
   protected:
   
  
  
  
  1.5       +3 -1      xml-xalan/c/src/XSLT/StylesheetRoot.cpp
  
  Index: StylesheetRoot.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetRoot.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StylesheetRoot.cpp	2000/02/03 20:13:21	1.4
  +++ StylesheetRoot.cpp	2000/03/01 20:43:44	1.5
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   // Class header file
   #include "StylesheetRoot.hpp"
  
  
  
  1.5       +2 -2      xml-xalan/c/src/XSLT/StylesheetRoot.hpp
  
  Index: StylesheetRoot.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetRoot.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StylesheetRoot.hpp	2000/02/29 20:54:24	1.4
  +++ StylesheetRoot.hpp	2000/03/01 20:43:44	1.5
  @@ -58,7 +58,7 @@
   #define XALAN_STYLESHEETROOT_HEADER_GUARD 
   
   /**
  - * $Id: StylesheetRoot.hpp,v 1.4 2000/02/29 20:54:24 jdonohue Exp $
  + * $Id: StylesheetRoot.hpp,v 1.5 2000/03/01 20:43:44 jdonohue Exp $
    * 
    * $State: Exp $
    * 
  @@ -365,7 +365,7 @@
   	getTraceListeners() const;
   
   	/**
  -	 * Add a trace listener.
  +	 * Add a trace listener for the purposes of debugging and diagnosis.
   	 * 
   	 * @param tl pointer to listener to add
   	 */
  
  
  
  1.12      +5 -18     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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XSLTEngineImpl.cpp	2000/02/17 20:30:50	1.11
  +++ XSLTEngineImpl.cpp	2000/03/01 20:43:44	1.12
  @@ -55,7 +55,7 @@
    * <http://www.apache.org/>.
    */
   /**
  - * $Id: XSLTEngineImpl.cpp,v 1.11 2000/02/17 20:30:50 dbertoni Exp $
  + * $Id: XSLTEngineImpl.cpp,v 1.12 2000/03/01 20:43:44 jdonohue Exp $
    * 
    * $State: Exp $
    * 
  @@ -1241,10 +1241,7 @@
   	}
   } 
   
  -/**
  - * Remove a trace listener.
  - * @param tl Trace listener to be removed.
  - */
  +
   void XSLTEngineImpl::removeTraceListener(TraceListener* tl)
   {
   	int nListeners = m_traceListeners.size();
  @@ -1257,9 +1254,7 @@
   		m_stylesheetRoot->removeTraceListener(tl);
   }
   
  -/**
  - * Fire a generate event.
  - */
  +
   void XSLTEngineImpl::fireGenerateEvent(const GenerateEvent& te)
   {
   	const int	nListeners = m_traceListeners.size();
  @@ -1273,19 +1268,13 @@
   }
   
   
  -
  -/**
  -* Warn the user of an problem.
  -* This is public for access by extensions.
  -* @exception XSLTProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -* the error condition is severe enough to halt processing.
  -*/
   void XSLTEngineImpl::message(const DOMString& msg)
   {
   	DOM_Node node;
   	message(node, node, msg);
   }
   
  +
   void XSLTEngineImpl::message(	const DOM_Node& styleNode,
   					const DOM_Node& sourceNode,
   					const DOMString& msg)
  @@ -2277,9 +2266,7 @@
   	return is;
   }
   	
  -	/**
  -	 * Tell if a qualified name equals the current result tree name.
  -	 */
  +
   bool XSLTEngineImpl::qnameEqualsResultElemName(const QName& qname, const DOMString& elementName)
   {
   	DOMString elemNS;
  
  
  
  1.10      +745 -415  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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XSLTEngineImpl.hpp	2000/02/29 20:54:25	1.9
  +++ XSLTEngineImpl.hpp	2000/03/01 20:43:45	1.10
  @@ -59,7 +59,7 @@
   
   /**
    * 
  - * $Id: XSLTEngineImpl.hpp,v 1.9 2000/02/29 20:54:25 jdonohue Exp $
  + * $Id: XSLTEngineImpl.hpp,v 1.10 2000/03/01 20:43:45 jdonohue Exp $
    * 
    * $State: Exp $
    * 
  @@ -269,6 +269,58 @@
   
   #undef XALAN_STD
   
  +	// Public members
  +	//---------------------------------------------------------------------
  +
  +	/**
  +	 * The root document.
  +	 */
  +	DOM_Document			m_rootDoc;
  +
  +  /**
  +   * The top of this stack should contain the currently processed
  +   * stylesheet SAX locator object.
  +   */
  +	LocatorStack  m_stylesheetLocatorStack;
  +
  +  /**
  +   * If true, output carriage returns.
  +   */
  +	bool	m_outputCarriageReturns;
  +
  +  /**
  +   * If true, output linefeeds.
  +   */
  +	bool	m_outputLinefeeds;
  +
  +	/**
  +	 * The formatter interface, which has the toMarkup 
  +	 * method, and which will eventually hold other non-event 
  +	 * methods.  Not to be confused with the DocumentHandler
  +	 * interface.
  +	*/
  +	// @@ JMD: Temporarily public
  +	Formatter*			m_formatter;
  +  
  +  /**
  +   * The factory that will be used to create result tree fragments.
  +   */
  +	mutable DOM_Document	m_resultTreeFactory;
  +
  +  /**
  +   * The namespace that the result tree conforms to.  A null value 
  +   * indicates that result-ns is not used and there is no checking. 
  +   * A empty string indicates that the result tree conforms to the 
  +   * default namespace.
  +   */
  +	DOMString	m_resultNameSpacePrefix;
  +
  +  /**
  +   * The URL that belongs to the result namespace.
  +   */
  +	DOMString	m_resultNameSpaceURL;
  +
  +
   	/**
   	 * Construct an XSL processor that can call back to a XML processor, so it
   	 * can handle included files, and the like. You must create a new instance
  @@ -360,6 +412,9 @@
   	virtual XMLParserLiaison&
   	getXMLParserLiaison() const;
   
  +	virtual const DOMString
  +	getUniqueNSValue() const;
  +	
      virtual XObject*
      createXResultTreeFrag(const ResultTreeFragBase&  r) const;
   
  @@ -463,22 +518,27 @@
   			bool							isRoot,
   			StylesheetConstructionContext&	constructionContext);
   
  -
   	/**
   	 * Flush the pending element.
   	 */
   	void flushPending();
   
   	/**
  -	 * Bottleneck addition of result tree attributes, so I can keep 
  -	 * track of namespaces.
  +	 * Add a namespace declaration to the namespace stack
  +	 *
  +	 * @param prefix       namespace prefix
  +	 * @param namespaceVal value of namespace
   	 */
   	void addResultNamespaceDecl(const DOMString& prefix, 
   	                                   const DOMString& namespaceVal);
   
   	/**
  -	 * Bottleneck addition of result tree attributes, so I can keep 
  -	 * track of namespaces.
  +	 * Add attribute to attribute list, and if it is a namespace, add it to the
  +	 * namespaces stack.
  +	 *
  +	 * @param attList attribute list added to
  +	 * @param aname   name of attribute
  +	 * @param value   value of attribute
   	 */
   	void
   	addResultAttribute(
  @@ -487,8 +547,11 @@
   			const DOMString&	value);
   
   	/**
  -	 * Bottleneck addition of result tree attributes, so I can keep 
  -	 * track of namespaces.
  +	 * Add attribute to pending attributes list, and if it is a namespace, add
  +	 * it to the namespaces stack.
  +	 *
  +	 * @param aname   name of attribute
  +	 * @param value   value of attribute
   	 */
   	void
   	addResultAttribute(
  @@ -500,77 +563,120 @@
   						   value);
   	}
   
  +	/**
  +	 * Receive notification of character data.
  +	 *
  +	 * <p>The Parser will call this method to report each chunk of
  +	 * character data.  SAX parsers may return all contiguous character
  +	 * data in a single chunk, or they may split it into several
  +	 * chunks; however, all of the characters in any single event
  +	 * must come from the same external entity, so that the Locator
  +	 * provides useful information.</p>
  +	 *
  +	 * <p>The application must not attempt to read from the array
  +	 * outside of the specified range.</p>
  +	 *
  +	 * <p>Note that some parsers will report whitespace using the
  +	 * ignorableWhitespace() method rather than this one (validating
  +	 * parsers must do so).</p>
  +	 *
  +	 * NOTE: This method is only provided for compatibility with existing code
  +	 *
  +	 * @param ch     pointer to characters from the XML document
  +	 * @param start  startng offset in 'ch' array
  +	 * @param length number of characters to read from the array 
  +	 * @deprecated
  +	 */
   	virtual void
   	characters(
   			const XMLCh* const	ch,
   			const unsigned int	start,
   			const unsigned int	length);
   
  +	/**
  +	 * Receive notification of the beginning of an element with an empty
  +	 * attribute list
  +	 *
  +	 * @param name element type name
  +	 * @exception SAXException
  +	 */
   	virtual void
   	startElement(
   			const XMLCh* const	name);
   
  +	/**
  +	 * Receive notification of character data. If available, when the
  +	 * disable-output-escaping attribute is used, output raw text without
  +	 * escaping.
  +	 *
  +	 * @param ch pointer to characters from the XML document
  +	 * @param start start position in the array
  +	 * @param length number of characters to read from the array
  +	 * @exception SAXException
  +	 */
   	virtual void
   	charactersRaw(
   			const XMLCh* const	ch,
   			const unsigned int	start,
   			const unsigned int	length);
   
  +	/**
  +	 * Called when a Comment is to be constructed.
  +	 *
  +	 * @param   data	pointer to comment data
  +	 * @exception SAXException
  +	 */
   	virtual void
   	comment(
   			const XMLCh* const	data);
   
  +	/**
  +	 * Receive notification of a entityReference.
  +	 *
  +	 * @param data pointer to characters from the XML document
  +	 * @exception SAXException
  +	 */
   	virtual void
   	entityReference(
  -			const XMLCh* const	name);
  +			const XMLCh* const	data);
   
  +	/**
  +	 * Receive notification of cdata.
  +	 *
  +	 * <p>The Parser will call this method to report each chunk of
  +	 * character data.  SAX parsers may return all contiguous character
  +	 * data in a single chunk, or they may split it into several
  +	 * chunks; however, all of the characters in any single event
  +	 * must come from the same external entity, so that the Locator
  +	 * provides useful information.</p>
  +	 *
  +	 * <p>The application must not attempt to read from the array
  +	 * outside of the specified range.</p>
  +	 *
  +	 * <p>Note that some parsers will report whitespace using the
  +	 * ignorableWhitespace() method rather than this one (validating
  +	 * parsers must do so).</p>
  +	 *
  +	 * @param ch     pointer to characters from the XML document
  +	 * @param start  start position in the array
  +	 * @param length number of characters to read from the array
  +	 * @exception SAXException
  +	 * @see #ignorableWhitespace 
  +	 */
   	virtual void
   	cdata(
   			const XMLCh* const	ch,
   			const unsigned int 	start,
   			const unsigned int 	length);
  -
  -	// These methods are inherited from DocumentHandler ...
  -	
  -	virtual void setDocumentLocator( Locator* const	locator);
  -
  -	virtual void
  -	startDocument();
  -
  -	virtual void
  -	endDocument();
  -    
  -	virtual void
  -	startElement(
  -			const XMLCh* const	name,
  -			AttributeList&		atts);
  -
  -	virtual void
  -	endElement(
  -			const XMLCh* const	name);
  -
  -    virtual void characters (
  -        const   XMLCh* const    chars,
  -        const unsigned int    length);
  -
  -	virtual void
  -	ignorableWhitespace(
  -			const XMLCh* const	ch,
  -			const unsigned int	length);
  -
  -	virtual void
  -	processingInstruction(
  -			const XMLCh* const	target,
  -			const XMLCh* const	data);
  -
  -	virtual void resetDocument();
   
  -  /**
  -   * Clone an element with or without children.
  -   * TODO: Fix or figure out node clone failure!
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Clone an element with or without children.
  +	 *
  +	 * @param node                  node to clone
  +	 * @param isLiteral             true if a literal element
  +	 * @param overrideStrip         false if white space stripping should be done
  +	 * @param shouldCloneAttributes true if attributes should be cloned
  +	 */
   	void
   	cloneToResultTree(
   			const DOM_Node&		node, 
  @@ -578,20 +684,22 @@
   			bool				overrideStrip,
   			bool				shouldCloneAttributes);
   
  -  /**
  -   * Given a result tree fragment, walk the tree and
  -   * output it to the result stream.
  -   */
  +	/**
  +	 * Given a result tree fragment, walk the tree and output it to the result
  +	 * stream.
  +	 *
  +	 * @param theTree result tree fragment
  +	 */
   	void
   	outputResultTreeFragment(const XObject&		theTree);
   
  -
   	/**
   	 * Execute the function-available() function.
  -	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  -	 * @param args The function args.
  -	 * @returns whether the given function is available or not.
  +	 *
  +	 * @param context The current source tree context node
  +	 * @param opPos The current position in the m_opMap array
  +	 * @param args The function args
  +	 * @return whether the given function is available or not
   	 */
   	bool
   	functionAvailable(
  @@ -600,6 +708,12 @@
   	
   	/**
   	 * Handle an extension function.
  +	 * 
  +	 * @param executionContext  current execution context
  +	 * @param theNamespace  namespace of function    
  +	 * @param extensionName extension function name
  +	 * @param argVec        vector of arguments to function
  +	 * @return pointer to XObject result
   	 */
   	virtual XObject*
   	extFunction(
  @@ -610,21 +724,33 @@
   
   	// This is public for class Stylesheet...
   	/**
  -	 * In response to xsl:function, set up a function that can 
  -	 * be called from the expression language.
  -	 * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -	 * the error condition is severe enough to halt processing.
  +	 * In response to xsl:function, set up a function that can be called from
  +	 * the expression language.
  +	 *
  +	 * NOTE: this method is not yet supported
  +	 *
  +	 * @param extensionElem extension element
   	 */
   	void
   	handleFunctionsInstruction(
   			DOM_Element			extensionElem);
   
  +	/**
  +	 * Retrieve the root stylesheet.
  +	 * 
  +	 * @return pointer to root stylesheet
  +	 */
   	StylesheetRoot*
   	getStylesheetRoot() const
   	{
   		return m_stylesheetRoot;
   	}
   
  +	/**
  +	 * Set the root stylesheet.
  +	 * 
  +	 * @param theStylesheet pointer to new root stylesheet
  +	 */
   	void
   	setStylesheetRoot(StylesheetRoot*	theStylesheet)
   	{
  @@ -632,15 +758,16 @@
   	}
   
   	/**
  -	 * Table of stylesheet documents.
  -	 * Document objects are keyed by URL string.
  +	 * Table of stylesheet documents. Document objects are keyed by URL string.
   	 */
   	StylesheetMapType	m_stylesheets;
   
  -  /**
  -   * Get table of stylesheet documents.
  -   * Document objects are keyed by URL string.
  -   */
  +	/**
  +	 * Get table of stylesheet documents. Document objects are keyed by URL
  +	 * string.
  +	 *
  +	 * @return stylesheets table
  +	 */
   	StylesheetMapType&
   	getStylesheetsTable()
   	{
  @@ -648,47 +775,74 @@
   	}
   
   	/**
  -	 * The root document.
  +	 * Retrieve the prefix for XSL namespace URI's, for example,
  +	 * "http://www.w3.org/1999/XSL/Transform" 
  +	 * 
  +	 * @return prefix string
   	 */
  -	DOM_Document			m_rootDoc;
  -
  -
   	static const DOMString&
   	getXSLNameSpaceURLPre()
   	{
   		return s_XSLNameSpaceURLPre;
   	}
   
  +	/**
  +	 * Retrieve the URI for the current XSL namespace, for example,
  +	 * "http://www.w3.org/1999/XSL/Transform/1.0" 
  +	 * 
  +	 * @return URI string
  +	 */
   	const DOMString&
   	getXSLNameSpaceURL() const
   	{
   		return m_XSLNameSpaceURL;
   	}
   
  +	/**
  +	 * Special Xalan namespace for built-in extensions.
  +	 *
  +	 * @return Xalan namespace for extensions
  +	 */
   	static const DOMString&
  -	getXSLT4JNameSpaceURL()
  +	getXalanXSLNameSpaceURL()
   	{
   		return s_XSLT4JNameSpaceURL;
   	}
   
  +	/**
  +	 * Set the full XSLT Namespace URI.
  +	 *
  +	 * @param theXSLNameSpaceURL XSLT namespace URI
  +	 */
   	void
   	setXSLNameSpaceURL(const DOMString&		theXSLNameSpaceURL)
   	{
   		m_XSLNameSpaceURL = theXSLNameSpaceURL;
   	}
   
  +	/**
  +	 * Retieve the latest XSLT version currently supported.
  +	 *
  +	 * @return XSLT version number
  +	 */
   	static double getXSLTVerSupported();
   
  -	static const DOMString&
  -	getXalanXSLNameSpaceURL();
  -
  -
  +	/**
  +	 * Accessor method for hash table of XSLT IDs for attribute names.
  +	 * 
  +	 * @return hash table of key names and IDs
  +	 */
   	static const AttributeKeysMapType&
   	getAttributeKeys()
   	{
   		return s_attributeKeys;
   	}
   
  +	/**
  +	 * Accessor method for hash table of XSLT IDs for element names.
  +	 * 
  +	 * @return hash table of key names and IDs
  +	 */
   	static const ElementKeysMapType&
   	getElementKeys()
   	{
  @@ -699,9 +853,9 @@
   	 * Given an XSL tag name, return an integer token that corresponds to
   	 * ELEMNAME_XXX constants defined in Constants.java.
   	 *
  -	 * @param node a probable xsl:xxx element
  -	 * @return Constants.ELEMNAME_XXX token, or -1 if in xsl 
  -	 * or Xalan namespace, -2 if not in known namespace
  +	 * @param name a probable xsl:xxx element
  +	 * @return Constants.ELEMNAME_XXX token, -1 if in XSL or Xalan namespace,
  +	 *         or -2 if not in known namespace
   	 */
   	int
   	getAttrTok(const DOMString&	name) const
  @@ -712,205 +866,224 @@
   		return iter == s_attributeKeys.end() ? -2 : (*iter).second;
   	}
   
  -  /**
  -   * Given an XSL tag name, return an integer token
  -   * that corresponds to ELEMNAME_XXX constants defined 
  -   * in Constants.java.
  -   * Note: I tried to optimize this by caching the node to 
  -   * id lookups in a hash table, but it helped not a bit.
  -   * I'm not sure that it's spending too much time here anyway.
  -   * @param node a probable xsl:xxx element.
  -   * @return Constants.ELEMNAME_XXX token, or -1 if in xsl 
  -   * or Xalan namespace, -2 if not in known namespace.
  -   */
  +	/**
  +	 * Given an XSL tag name, return an integer token
  +	 * that corresponds to ELEMNAME_XXX constants defined 
  +	 * in Constants.java.
  +	 *
  +	 * @param node a probable xsl:xxx element.
  +	 * @return Constants.ELEMNAME_XXX token, -1 if in XSL or Xalan namespace,
  +	 *         or -2 if not in known namespace
  +	 */
   	int
   	getXSLToken(
   			const DOM_Node& node) const;
   
     /**
  -   * Find the type of an element using this method. This is slower 
  -   * than it ought to be... I'll find a way to optimize down the 
  -   * line if need be.
  -   * @param node a probable xsl:xxx element.
  -   * @param tagType Constants.ELEMNAME_XXX token.
  -   * @return true if node is of tagType.
  +   * Find the type of an element using this method.
  +   *
  +   * @param node    a probable xsl:xxx element
  +   * @param tagType Constants.ELEMNAME_XXX token
  +   * @return true if node is of tagType
      */
  -	//final
   	bool
   	isXSLTagOfType(
   			const DOM_Node&	node,
   			int			tagType) const;
   
     /**
  -   * The top of this stack should contain the currently processed
  -   * stylesheet SAX locator object.
  +	* Add list of trace listeners to the root sylesheet for the purposes of
  +	* debugging and diagnosis.
      */
  -	LocatorStack  m_stylesheetLocatorStack;
  -
   	void addTraceListenersToStylesheet();
   
   	/**
   	 * Fire a generate event.
  +	 *
  +	 * @param te generate event to fire
   	 */
   	void fireGenerateEvent(const GenerateEvent& te);
   	
   	/**
  -	 * Warn the user of an problem.
  -	 * This is public for access by extensions.
  +	 * Whether to warn about pattern match conflicts.
   	 *
  -	 * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -	 * the error condition is severe enough to halt processing.
  +	 * @return true to not warn about pattern match conflicts
   	 */
  +	bool
  +	getQuietConflictWarnings() const
  +	{
  +		return m_quietConflictWarnings;
  +	}
  +
  +	/**
  +	 * Warn the user of an problem. This is public for access by extensions.
  +	 *
  +	 * @exception XSLProcessorException
  +	 */
   	void message(const DOMString& msg);
   
   	/**
  -	 * Warn the user of an problem.
  -	 * This is public for access by extensions.
  +	 * Warn the user of an problem. This is public for access by extensions.
   	 *
  -	 * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -	 * the error condition is severe enough to halt processing.
  +	 * @param msg text of message
  +	 * @exception XSLProcessorException
   	 */
   	void message(	const DOM_Node& styleNode,
   						const DOM_Node& sourceNode,
   						const DOMString& msg);
   	
   	/**
  -	 * Tell the user of an error, and probably throw an 
  -	 * exception.
  -	 * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -	 * the error condition is severe enough to halt processing.
  +	 * Tell the user of an warning, and probably throw an exception.
  +	 *
  +	 * @param msg        text of message to output
  +	 * @exception XSLProcessorException
   	 */
  -
  -	bool
  -	getQuietConflictWarnings() const
  -	{
  -		return m_quietConflictWarnings;
  -	}
  -
  -  /**
  -   * Warn the user of an problem.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
   	virtual void
   	warn(const DOMString&	msg) const;
   
  -  /**
  -   * Warn the user of an problem.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Tell the user of an warning, and probably throw an exception.
  +	 * 
  +	 * @param msg        text of message to output
  +	 * @param sourceNode node in source where error occurred
  +	 * @param styleNode  node in stylesheet where error occurred
  +	 * @exception XSLProcessorException
  +	 */
   	virtual void
   	warn(
   			const DOM_Node&	styleNode,
   			const DOM_Node&	sourceNode,
   			const DOMString&	msg) const;
   
  -  /**
  -   * Tell the user of an error, and probably throw an 
  -   * exception.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  -	void
  -	error(const DOMString&	msg) const;
  -
   	/**
  -	 * Tell the user of an error, and probably throw an 
  -	 * exception.
  -	 * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -	 * the error condition is severe enough to halt processing.
  +	 * Tell the user of an error, and probably throw an exception.
  +	 * 
  +	 * @param msg        text of message to output
  +	 * @exception XSLProcessorException
   	 */
  +	void
  +	error(const DOMString&	msg) const;
   
   //@@ HOLD until we figure out exceptions
   //	void error(DOMString& msg, Exception e);
   
  -  /**
  -   * Tell the user of an error, and probably throw an 
  -   * exception.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Tell the user of an error, and probably throw an exception.
  +	 * 
  +	 * @param msg        text of message to output
  +	 * @param sourceNode node in source where error occurred
  +	 * @param styleNode  node in stylesheet where error occurred
  +	 * @exception XSLProcessorException
  +	 */
   	void
   	error(
   			const DOM_Node&	styleNode,
   			const DOM_Node&	sourceNode,
   			const DOMString&	msg) const;
   
  -
   	/**
  -	 * Mark the time, so that displayDuration can later
  -	 * display the elapsed clock ticks.
  +	 * Mark the time, so that displayDuration can later display the elapsed
  +	 * clock ticks.
  +	 * 
  +	 * @param theKey pointer to element to push
   	 */
   	void
   	pushTime(const void*	key) const;
   
   	/**
  -	 * Returns the duration since pushTime was called,
  -	 * in in clock ticks.
  +	 * Returns the duration since pushTime was called for element
  +	 * in milliseconds.
  +	 *
  +	 * @param key pointer to element involved
   	 */
   	clock_t
   	popDuration(const void*		key) const;
   
   	/**
  -	 * Display the duration since pushTime was called.
  +	 * Display the duration since pushTime was called for element in
  +	 * milliseconds, and a descriptive message
  +	 *
  +	 * @param info message to display
  +	 * @param key pointer to element involved
   	 */
   	void
   	displayDuration(
   			const DOMString&	info,
   			const void*			key) const;
   
  -	/*
  -	 * Rather than exposing the member and testing it as in java
  +
  +	/**
  +	 * Whether diagnostic output is to be generated
  +	 * 
  +	 * @return true for diagnostics output 
   	 */
   	bool doDiagnosticsOutput()
   	{	return 0 != m_diagnosticsPrintWriter; }
   
   	/**
  -	 * Bottleneck output of diagnostics.
  +	 * Print a diagnostics string to the output device
  +	 * 
  +	 * @param s string to print
   	 */
   	void
   	diag(
   			const DOMString&	s) const;
     
   	/**
  -	 * Print a trace of a selection being made.
  +	 * Compose a diagnostic trace of the current selection
  +	 *
  +	 * @param theTemplate current context node
  +	 * @param nl          list of selected nodes
   	 */
   	void traceSelect(
   			const DOM_Element&		theTemplate,
   			const NodeRefListBase&	nl) const;
   
  -	virtual const DOMString
  -	getUniqueNSValue() const;
  -	
   	/**
   	 * Tell if a given element name should output it's text 
   	 * as cdata.
  +	 *
  +	 * @param elementName name of element
  +	 * @return true if it should output as cdata
   	 */
   	bool isCDataResultElem(const DOMString& elementName);
   	
   	/**
   	 * Tell if a qualified name equals the current result tree name.
  +	 *
  +	 * @param qname       QName to compare to
  +	 * @param elementName current result tree element
  +	 * @return true if names are the same
   	 */
   	bool qnameEqualsResultElemName(const QName& qname, const DOMString& elementName);
   	
  -	  
   	/**
  -	 * Given a prefix, return the namespace, 
  +	 * Retrieve the result namespace corresponding to a prefix.
  +	 * 
  +	 * @param prefix prefix for namespace
  +	 * @return string for namespace URI
   	 */
   	DOMString
   	getResultNamespaceForPrefix(
   			const DOMString&	prefix) const;
     
   	/**
  -	 * This should probably be in the XMLParserLiaison interface.
  +	 * Retrieve the result prefix corresponding to a namespace.
  +	 * 
  +	 * @param theNamespace namespace for prefix
  +	 * @return string for namespace prefix
   	 */
   	DOMString
   	getResultPrefixForNamespace(
   			const DOMString&	theNamespace) const;
   
   	/**
  -	 * Evaluate an xpath string and return the result.
  +	 * Evaluate an xpath string and return the result as a numberic score.
  +	 *
  +	 * @param str              string to evaluate
  +	 * @param context          context node
  +	 * @param executionContext current execution context
  +	 * @return score number, higher representing better match
   	 */
   	double
   	evalMatchPatternStr(
  @@ -920,6 +1093,10 @@
   
   	/**
   	 * Create and initialize an xpath and return it.
  +	 *
  +	 * @param str      string for XPath
  +	 * @param resolver resolver for namespace resolution
  +	 * @return pointer to XPath created
   	 */
   	XPath*
   	createMatchPattern(
  @@ -927,7 +1104,10 @@
   			const PrefixResolver&	resolver);
   
   	/**
  -	 * Copy xmlns: attributes in if not already in scope.
  +	 * Copy XMLNS: attributes in if not already in scope.
  +	 *
  +	 * @param src                 source node
  +	 * @param srcIsStylesheetTree true if source node is a stylesheet tree
   	 */
   	void
   	copyNamespaceAttributes(
  @@ -936,6 +1116,10 @@
   
   	/**
   	 * Evaluate an xpath string and return the result.
  +	 *
  +	 * @param str              string to evaluate
  +	 * @param executionContext current execution context
  +	 * @return pointer to XObject result
   	 */
   	XObject*
   	evalXPathStr(
  @@ -944,6 +1128,12 @@
   
   	/**
   	 * Evaluate an xpath string and return the result.
  +	 * 
  +	 * @param str              string to evaluate
  +	 * @param contextNode      context node
  +	 * @param prefixResolver prefix resolver to use
  +	 * @param executionContext current execution context
  +	 * @return pointer to XObject result
   	 */
   	XObject*
   	evalXPathStr(
  @@ -954,6 +1144,12 @@
   
   	/**
   	 * Evaluate an xpath string and return the result.
  +	 * 
  +	 * @param str              string to evaluate
  +	 * @param contextNode      context node
  +	 * @param prefixResolver prefix resolver to use
  +	 * @param executionContext current execution context
  +	 * @return pointer to XObject result
   	 */
   	XObject*
   	evalXPathStr(
  @@ -966,6 +1162,11 @@
   	 * Create an XPath whose lifetime can end after transforming
   	 * is complete.  Do not use this to create an XPath to be
   	 * held by a stylesheet.
  +	 *
  +	 * @param str              string to evaluate
  +	 * @param executionContext current execution context
  +	 * @param resolver         resolver for namespace resolution
  +	 * @return pointer to XPath created
   	 */
   	virtual XPath*
   	createProcessingXPath(
  @@ -973,18 +1174,24 @@
   		XPathExecutionContext&	executionContext,
   		const PrefixResolver&	resolver);
   
  -  /**
  -   * Given a valid element id, return the corresponding element.
  -   */
  +	/**
  +	 * Given a valid element id, return the corresponding element.
  +	 *
  +	 * @param id  string representing ID
  +	 * @param doc document to search
  +	 * @return element for ID
  +	 */
   	DOM_Element
   	getElementByID(
   			const DOMString&		id,
   			const DOM_Document&		doc) const;
   
  -
   	/**
  -	 * Push a context marker onto the stack to let us know when 
  -	 * to stop searching for a var.
  +	 * Push a context marker onto the stack to let us know when to stop
  +	 * searching for a var.
  +	 *
  +	 * @param caller     caller node
  +	 * @param sourceNode source node
   	 */
   	void
   	pushContextMarker(
  @@ -1003,6 +1210,18 @@
   		m_variableStacks.popCurrentContext();
   	}
   
  +	/**
  +	 * Given a template, search for the arguments and push them on the stack.
  +	 * Also, push default arguments on the stack. You <em>must</em> call
  +	 * popContext() when you are done with the arguments.
  +	 *
  +	 * @param executionContext       execution context
  +	 * @param xslCallTemplateElement "call-template" element
  +	 * @param sourceTree             source tree
  +	 * @param sourceNode             source node
  +	 * @param mode                   mode under which the template is operating
  +	 * @param targetTemplate         target template
  +	 */
   	void
   	pushParams(
   			StylesheetExecutionContext&		executionContext,
  @@ -1022,6 +1241,11 @@
   
   	/**
   	 * Get an Expression object from a select node.  Does not cache!
  +	 *
  +	 * @param attrs    attribute list to search
  +	 * @param key      key value to search for
  +	 * @param resolver resolver for namespace resolution
  +	 * @return pointer to XPath for expression
   	 */
   	XPath* getExpression(
   					AttributeList& attrs,
  @@ -1029,13 +1253,12 @@
   					const PrefixResolver& resolver);
   
   	/**
  -	 * Given an element, return an attribute value in 
  -	 * the form of a string.
  -	 * @param el The element from where to get the attribute.
  -	 * @param key The name of the attribute.
  -	 * @param contextNode The context to evaluate the 
  -	 * attribute value template.
  -	 * @return Attribute value.
  +	 * Given an element, return an attribute value in the form of a string.
  +	 *
  +	 * @param el          element from where to get the attribute
  +	 * @param key         name of the attribute
  +	 * @param contextNode context to evaluate the attribute value template
  +	 * @return string for attribute value
   	 */
   	DOMString
   	getAttrVal(
  @@ -1044,23 +1267,28 @@
   			const DOM_Node&		contextNode);
     
   	/**
  -	 * Given an element, return an attribute value in 
  -	 * the form of a string.
  +	 * Given an element, return an attribute value in the form of a string.
  +	 *
  +	 * @param el          element from where to get the attribute
  +	 * @param key         name of the attribute
  +	 * @return string for attribute value
   	 */
   	static DOMString
   	getAttrVal(
   			const DOM_Element&	el,
   			const DOMString&	key);
  -
   
  -
  -  /**
  -   * Copy an attribute to the created output element, executing 
  -   * attribute templates as need be, and processing the xsl:use 
  -   * attribute.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Copy an attribute to the created output element, executing attribute
  +	 * templates as need be, and processing the 'xsl:use' attribute.
  +	 *
  +	 * @param attr             attribute to copy
  +	 * @param contextNode      current context node
  +	 * @param stylesheetTree   associated stylesheet object
  +	 * @param attrList         attribute list added to
  +	 * @param namespaceContext context for namespace
  +	 * @exception XSLProcessorException 
  +	 */
   	void
   	copyAttributeToTarget(
   			const DOM_Attr&		attr,
  @@ -1069,20 +1297,26 @@
   			AttributeListImpl&	attrList, 
               const DOM_Element&	namespaceContext);
     
  -  /**
  -  * Translate CSS attributes on the output to a "style" attribute, for 
  -  * old submission support.  You probably shouldn't rely on this, though
  -  * I personally like it a lot.
  -  * @param b If true, translate CSS attributes on the output to a 
  -  * "style" attribute.
  -  * @deprecated
  -  */
  +	/**
  +	 * Determine whether to translate CSS attributes on the output to a "style"
  +	 * attribute, for old submission support.
  +	 * 
  +	 * @return true to translate CSS attributes
  +	 * @deprecated
  +	 */
   	bool
   	getTranslateCSS() 
   	{
   		return m_translateCSS;
   	} 
   
  +	/**
  +	 * Set whether to translate CSS attributes on the output to a "style"
  +	 * attribute, for old submission support.
  +	 * 
  +	 * @param b true to translate CSS attributes
  +	 * @deprecated
  +	 */
   	void
   	setTranslateCSS(bool	b) 
   	{
  @@ -1090,9 +1324,10 @@
   	} 
   
   	/**
  -	 * This changes the default of the default-space attribute.
  -	 * @param b Sets the default of the default-space attribute 
  -	 * to "strip" if true, or "preserve" if false.
  +	 * Determine the value of the default-space attribute.
  +	 *
  +	 * @return true if the default-space attribute is "strip," false  if
  +	 *          the attribute is "preserve"
   	 */
   	bool
   	getStripWhiteSpace() const
  @@ -1100,44 +1335,39 @@
   		return m_stripWhiteSpace;
   	}
   
  +	/**
  +	 * Change the value of the default-space attribute.
  +	 *
  +	 * @param b sets the default of the default-space attribute to "strip" if
  +	 *          true, or "preserve" if false.
  +	 */
   	void
   	setStripWhiteSpace(bool	fStrip)
   	{
   		m_stripWhiteSpace = fStrip;
   	}
   
  -  /**
  +  /*
      * indent-result is by default no, which means an XSL processor must not
      * change the whitespace on output.
      */
   	//bool	m_indentResult;
     
     /**
  -   * If true, output carriage returns.
  +	* Conditionally trim all leading and trailing whitespace in the specified
  +	* String.  All strings of white space are replaced by a single space
  +	* character (#x20), except spaces after punctuation which receive double
  +	* spaces if doublePunctuationSpaces is true. This function may be useful to
  +	* a formatter, but to get first class results, the formatter should
  +	* probably do its own white space handling based on the semantics of the
  +	* formatting object.
  +	*
  +   * @param   string      string to be trimmed
  +   * @param   trimHead    whether to trim leading whitespace
  +   * @param   trimTail    whether to trim trailing whitespace
  +   * @param   doublePunctuationSpaces true to use double spaces for punctuation
  +   * @return trimmed string
      */
  -	bool	m_outputCarriageReturns;
  -
  -  /**
  -   * If true, output linefeeds.
  -   */
  -	bool	m_outputLinefeeds;
  -
  -
  -  /**
  -   * (Code stolen and modified from XML4J)
  -   * Conditionally trim all leading and trailing whitespace in the specified String.  
  -   * All strings of white space are 
  -   * replaced by a single space character (#x20), except spaces after punctuation which 
  -   * receive double spaces if doublePunctuationSpaces is true.
  -   * This function may be useful to a formatter, but to get first class
  -   * results, the formatter should probably do it's own white space handling 
  -   * based on the semantics of the formatting object.
  -   * @param   string      String to be trimmed.
  -   * @param   trimHead    Trim leading whitespace?
  -   * @param   trimTail    Trim trailing whitespace?
  -   * @param   doublePunctuationSpaces    Use double spaces for punctuation?
  -   * @return              The trimmed string.
  -   */
   	DOMString fixWhiteSpace(
   			const DOMString&	string, 
   			bool				trimHead, 
  @@ -1145,9 +1375,10 @@
   			bool				doublePunctuationSpaces);
     
     /**
  -   * Control if carriage returns are put in the result tree.
  -   * Default is to output carriage returns.
  -   * @param b If true, output carriage returns.
  +	* Control if carriage returns are put in the result tree. Default is to
  +	* output carriage returns.
  +	*
  +   * @param b true to output carriage returns
      */
   	void setOutputCarriageReturns(bool	b)
   	{
  @@ -1155,9 +1386,10 @@
   	}
   
     /**
  -   * Control if linefeeds are put in the result tree.
  -   * Default is to output linefeeds.
  -   * @param b If true, output linefeeds.
  +	* Control if linefeeds are put in the result tree. Default is to output
  +	* linefeeds.
  +	*
  +   * @param b true to output linefeeds
      */
   	void setOutputLinefeeds(bool		b)
   	{
  @@ -1165,55 +1397,70 @@
   	}
   
     /**
  -   * Normalize the linefeeds and/or carriage returns to 
  -   * be consistently 0x0D 0x0A.  This should almost 
  -   * certainly be done somewhere else... like in the 
  -   * XML parser.
  +	* Normalize the linefeeds and/or carriage returns to be consistently 0x0D
  +	* 0x0A. 
  +	*
  +   * @param   tx DOM text node to normalize
  +   * @return normalized string
      */
  +	/* This should almost certainly be done somewhere else... like in the XML
  +	 * parser.
  +	 */
   	DOMString getNormalizedText(const DOM_Text&	tx) const;
   
   
  -  /**
  -	* Set the stylesheet root.  If this is set, then the process calls that
  -	* take only the input .xml will use this instead of looking for a
  -	* stylesheet PI.
  -   */
  -   void setStylesheet(StylesheetRoot *stylesheetRoot) { m_stylesheetRoot = stylesheetRoot; }
  +	/**
  +	 * Set the stylesheet root.  If this is set, then the process calls that
  +	 * take only the input .xml will use this instead of looking for a
  +	 * stylesheet PI.
  +	 * 
  +	 * @param theStylesheet pointer to root stylesheet
  +	 */
  +   void setStylesheet(StylesheetRoot *stylesheetRoot)
  +	{
  +		m_stylesheetRoot = stylesheetRoot;
  +	}
    
  -  /**
  -	* Set the stylesheet root.  If this is set, then the process calls that
  -	* take only the input .xml will use this instead of looking for a
  -	* stylesheet PI.
  -   */
  +	/**
  +	 * Get the stylesheet root.  If this is set, then the process calls that
  +	 * take only the input .xml will use this instead of looking for a
  +	 * stylesheet PI.
  +	 * 
  +	 * @return pointer to root stylesheet
  +	 */
      StylesheetRoot *getStylesheet()
   	{
   		return m_stylesheetRoot;
   	}
   
  -  /**
  -	* Get the filename of the output document, if it was set. This is for use
  -	* by multiple output documents, to determine the base directory for the
  -	* output document.  It needs to be set by the caller.
  -   */
  +	/**
  +	 * Get the filename of the output document, if it was set. This is for use
  +	 * by multiple output documents, to determine the base directory for the
  +	 * output document.  It needs to be set by the caller.
  +	 * 
  +	 * @return name of output document
  +	 */
      DOMString &getOutputFileName()
   	{
   		return m_outputFileName;
   	}
   
  -  /**
  -	* Set the filename of the output document. This is for use by multiple
  -	* output documents, to determine the base directory for the output
  -	* document.  It needs to be set by the caller.
  -   */
  +	/**
  +	 * Set the filename of the output document. This is for use by multiple
  +	 * output documents, to determine the base directory for the output
  +	 * document.  It needs to be set by the caller.
  +	 * 
  +	 * @param filename name of output document
  +	 */
      void setOutputFileName(const DOMString&	filename)
   	{
   		m_outputFileName = filename;
   	}
  -  
  -
   
   	/**
   	 * Get the factory for making xpaths.
  +	 *
  +	 * @return XPath factory object
   	 */
   	XPathFactory& getXPathFactory()
   	{
  @@ -1222,7 +1469,8 @@
   
   	/**
   	 * Get the XPath processor object.
  -	 * @return The XPathProcessor interface being used.
  +	 *
  +	 * @return XPathProcessor interface being used
   	 */
   	 XPathProcessor& getXPathProcessor()
   	 {
  @@ -1230,105 +1478,112 @@
   	 }
   
   
  -	/**
  -	 * Given a document, get the default stylesheet URI from the 
  -	 * xsl:stylesheet PI.  However, this will only get you the 
  -	 * first URL, and there may be many.
  -	 * @deprecated
  -	 */
  +	 /**
  +	  * Given a document, get the default stylesheet URI from the xsl:stylesheet
  +	  * PI.  However, this will only get you the first URL, and there may be
  +	  * many.
  +	  *
  +	  * @param sourceTree node for source tree
  +	  * @deprecated
  +	  */
   	 DOMString getStyleSheetURIfromDoc(const DOM_Node&	sourceTree);
   	  
   
  -  /**
  -   * Given a classID and codetype, tr to register a code dispatcher.
  -   */
  +	 /**
  +	  * Given a classID and codetype, try to register a code dispatcher.
  +	  *
  +	  * @param classid  class id for extension
  +	  * @param codetype type of extension
  +	  */
   	void
   	registerExtensionHandlerByName(
   			const DOMString&	classid,
   			const DOMString&	codetype);
     
  -  /**
  -   * Register the given DispatcherFactor for a given mime type.
  -   */
  +	/**
  +	 * Register the given DispatcherFactory for a given mime type.
  +	 *
  +	 * @param mimeType MIME type string
  +	 * @param factory  factory to register
  +	 */
   	void
   	registerExtensionHandler(
   			const DOMString&	mimeType,
   			DispatcherFactory*	factory);
   
  -
  -  /**
  -   * Do everything possible to get a good URL from a string.
  -   */
  -    /**
  -   * Take a user string and try to parse XML, and also return 
  -   * the url.
  -   */
  +	/**
  +	 * Determine the fully qualified URI for a string.
  +	 *
  +	 * @param urlString string to qualify
  +	 * @return pointer to fully qualified URI
  +	 */
   	XMLURL*
   	getURLFromString(const DOMString&	urlString) const;
   
  +	/**
  +	 * Determine the fully qualified URI for a string.
  +	 *
  +	 * @param urlString string to qualify
  +	 * @param base base location for URI
  +	 * @return pointer to fully qualified URI
  +	 */
   	XMLURL*
   	getURLFromString(const DOMString&	urlString, const DOMString& base) const;
   
   	/**
  -	 * The formatter interface, which has the toMarkup 
  -	 * method, and which will eventually hold other non-event 
  -	 * methods.  Not to be confused with the DocumentHandler
  -	 * interface.
  -	*/
  -	// @@ JMD: Temporarily public
  -	Formatter*			m_formatter;
  -
  +	 * Retrieve the XPath support object
  +	 *
  +	 * @return XPath support object
  +	 */
   	XPathSupport& getXPathSupport()
   	{
   		return m_xpathSupport;
   	}
   
  +	/**
  +	 * Retrieve the XPath envronment support object
  +	 *
  +	 * @return XPath envronment support object
  +	 */
   	XPathEnvSupport& getXPathEnvSupport()
   	{
   		return m_xpathEnvSupport;
   	}
   
  -
   	/**
  -	 * Set the formatter interface, which has the toMarkup 
  -	 * method, and which will eventually hold other non-event 
  -	 * methods.  Not to be confused with the DocumentHandler
  -	 * interface.
  +	 * Set the formatter interface, which has the toMarkup method, and which
  +	 * will eventually hold other non-event methods.  Not to be confused with
  +	 * the DocumentHandler interface.
  +	 *
  +	 * @param formatter pointer to formatter
   	 */
   	void
   	setFormatter(Formatter*		formatter);
   
  -  /**
  -   * The factory that will be used to create result tree fragments.
  -   */
  -	mutable DOM_Document	m_resultTreeFactory;
  -
  -
  -  /**
  -   * The namespace that the result tree conforms to.  A null value 
  -   * indicates that result-ns is not used and there is no checking. 
  -   * A empty string indicates that the result tree conforms to the 
  -   * default namespace.
  -   */
  -	DOMString	m_resultNameSpacePrefix;
  -
  -  /**
  -   * The URL that belongs to the result namespace.
  -   */
  -	DOMString	m_resultNameSpaceURL;
  -
  -	const MutableNodeRefList& getContextNodeList() { return m_contextNodeList; }
  +	const MutableNodeRefList& getContextNodeList()
  +	{
  +		return m_contextNodeList;
  +	}
   
  +	/**
  +	 * Set node list for current context.
  +	 * 
  +	 * @param ref new node list
  +	 */
   	void setContextNodeList(const MutableNodeRefList& ref)
   	{
   		m_contextNodeList = ref;		
   	}
   
  +	/**
  +	 * Add a declaration to the table of KeyDeclaration objects.
  +	 *
  +	 * @param KeyDeclaration declaration to add
  +	 */
   	void
   	addKeyDeclaration(const KeyDeclaration&		theDeclaration)
   	{
   		m_keyDeclarations.push_back(theDeclaration);
  -
   		setNeedToBuildKeysTable(true);
   	}
   
  @@ -1336,7 +1591,8 @@
   	/**
   	 * Set the table of KeyDeclaration objects, which are set by the 
   	 * xsl:key element.
  -	 * @param table Table of IDAttributeHolder objects.
  +	 *
  +	 * @param table new table of KeyDeclaration objects
   	 */
   	void
   	setKeyDeclarationsTable(const KeyDeclarationVectorType&		table)
  @@ -1345,8 +1601,9 @@
   	}
   
   	/**
  -	 * Get the table of KeyDeclaration objects.
  -	 * @return Table of KeyDeclaration objects.
  +	 * Accessor method for the table of KeyDeclaration objects.
  +	 *
  +	 * @return table of KeyDeclaration objects
   	 */
   	const KeyDeclarationVectorType&
   	getKeyDeclarations() const
  @@ -1355,8 +1612,10 @@
   	}
   
   	/**
  -	 * Set the table of keys.  This will be used by the 
  -	 * key() and keyref() functions for lookup of a nodelist.
  +	 * Set the table of keys.  This will be used by the key() and keyref()
  +	 * functions for lookup of a nodelist.
  +	 *
  +	 * @param table new table of keys
   	 */
   	void
   	setKeyTable(const KeysMapType&	table)
  @@ -1365,10 +1624,11 @@
   	}
   
   	/**
  -	 * Get the table of element IDs.	This table is used by the 
  -	 * id() functions for lookup of an element ID.
  -	 * @return Table of element IDs, keyed by ID string, with 
  -	 * values that are Element nodes.
  +	 * Accessor method for the table of element IDs.	This table is used by
  +	 * the id() functions for lookup of an element ID.
  +	 *
  +	 * @return table of element IDs, keyed by ID string, with values that are
  +	 *         Element nodes
   	 */
   	const KeysMapType&
   	getKeysTable()
  @@ -1378,8 +1638,10 @@
   
   	/**
   	 * Set needToBuildKeysTable to true if an xsl:key directive is found.
  -	 * Mainly for use by the XMLParserLiaison classes for 
  -	 * optimized processing of keys.
  +	 * Mainly for use by the XMLParserLiaison classes for optimized processing
  +	 * of keys.
  +	 *
  +	 * @param b boolean value to set
   	 */
   	void
   	setNeedToBuildKeysTable(bool	b)
  @@ -1388,10 +1650,11 @@
   	}
   
   	/**
  -	 * Set the needToBuildKeysTable property, which, if true, 
  -	 * will trigger the building of the keys table.
  -	 * Mainly for use by the XMLParserLiaison classes for 
  -	 * optimized processing of keys.
  +	 * Set the needToBuildKeysTable property, which, if true, will trigger the
  +	 * building of the keys table. Mainly for use by the XMLParserLiaison
  +	 * classes for optimized processing of keys.
  +	 *
  +	 * @return true to build keys table
   	 */
   	bool
   	getNeedToBuildKeysTable() const
  @@ -1399,6 +1662,12 @@
   		return m_needToBuildKeysTable;
   	}
   
  +	/**
  +	 * Add a named template to the table of template name and value pairs.
  +	 *
  +	 * @param theName name of template
  +	 * @param theNode template node
  +	 */
   	void
   	addNamedTemplate(const DOMString&	theName,
   					 const DOM_Node&	theNode)
  @@ -1406,6 +1675,12 @@
   		m_namedTemplates[theName] = theNode;
   	}
   
  +	/**
  +	 * Find a named template in the table of template name and value pairs.
  +	 *
  +	 * @param theName name of template
  +	 * @return template node if found, empty node otherwise
  +	 */
   	DOM_Node
   	getNamedTemplate(const DOMString&	theName) const
   	{
  @@ -1422,16 +1697,13 @@
   		}
   	}
   
  -
  -
  -
   	/**
  -	 * Set the problem listener property.
  -	 * The XSL class can have a single listener that can be informed 
  -	 * of errors and warnings, and can normally control if an exception
  -	 * is thrown or not (or the problem listeners can throw their 
  -	 * own RuntimeExceptions).
  -	 * @param l A ProblemListener interface.
  +	 * Set the problem listener property. The XSL class can have a single
  +	 * listener that can be informed of errors and warnings, and can normally
  +	 * control if an exception is thrown or not (or the problem listeners can
  +	 * throw their own RuntimeExceptions).
  +	 *
  +	 * @param l pointer to ProblemListener interface
   	 */
   	void setProblemListener(ProblemListener*		l)
   	{
  @@ -1439,22 +1711,21 @@
   	}
   
   	/**
  -	 * Get the problem listener property.
  -	 * The XSL class can have a single listener that can be informed 
  -	 * of errors and warnings, and can normally control if an exception
  -	 * is thrown or not (or the problem listeners can throw their 
  -	 * own RuntimeExceptions).
  -	 * @return A ProblemListener interface.
  +	 * Get the problem listener property. The XSL class can have a single
  +	 * listener that can be informed of errors and warnings, and can normally
  +	 * control if an exception is thrown or not (or the problem listeners can
  +	 * throw their own RuntimeExceptions).
  +	 *
  +	 * @return pointer to ProblemListener interface
   	 */
   	ProblemListener* getProblemListener() const
   	{
   		return m_problemListener;
   	}
   
  -
   	/**
  -	 * An exception for that occurs when a given stylesheet
  -	 * goes into an infinite loop.
  +	 * An class for  exceptions that occur when a given stylesheet goes into an
  +	 * infinite loop.
   	 */
   	class XSLInfiniteLoopException : public RuntimeError
   	{
  @@ -1472,37 +1743,53 @@
   
   		/**
   		 * Constructor for a variable stack.
  +		 * 
  +		 * @param theProcessor XSL processor
   		 */
   		VariableStack(XSLTEngineImpl&		theProcessor);
   
   		~VariableStack();
   
  +	
  +		/**
  +		 * Reset the stack.
  +		 */
   		virtual void
   		reset();
   
   		/**
   		 * Push a context marker onto the stack to let us know when 
   		 * to stop searching for a var.
  +		 * 
  +		 * @param elem element for context
   		 */
   		void
   		pushElementMarker(const DOM_Node&	elem);
   
   		/**
   		 * Pop the current context from the current context stack.
  +		 * 
  +		 * @param elem element for context
   		 */
   		void
   		popElementMarker(const DOM_Node&	elem);
   
   		/**
  -		 * Check to see if an element marker for the particular
  -		 * node has already been pushed.
  +		 * Check to see if an element marker for the particular node has already
  +		 * been pushed.
  +		 * 
  +		 * @param elem node in question
  +		 * @return true if it has been pushed already
   		 */
   		bool
   		elementMarkerAlreadyPushed(const DOM_Node&	elem) const;
   
   		/**
  -		 * Push a context marker onto the stack to let us know when 
  -		 * to stop searching for a var.
  +		 * Push a context marker onto the stack to let us know when to stop
  +		 * searching for a var.
  +		 *
  +		 * @param caller     caller node
  +		 * @param sourceNode source node
   		 */
   		void
   		pushContextMarker(
  @@ -1516,11 +1803,16 @@
   		popCurrentContext();
   
   		/**
  -		 * Given a template, search for 
  -		 * the arguments and push them on the stack.  Also, 
  -		 * push default arguments on the stack.
  -		 * You <em>must</em> call popContext() when you are 
  -		 * done with the arguments.
  +		 * Given a template, search for the arguments and push them on the stack.
  +		 * Also, push default arguments on the stack. You <em>must</em> call
  +		 * popContext() when you are done with the arguments.
  +		 *
  +		 * @param executionContext       execution context
  +		 * @param xslCallTemplateElement "call-template" element
  +		 * @param sourceTree             source tree
  +		 * @param sourceNode             source node
  +		 * @param mode                   mode under which the template is operating
  +		 * @param targetTemplate         target template
   		 */
   		void
   		pushParams(
  @@ -1532,7 +1824,11 @@
   				const DOM_Node&					targetTemplate);
   
   		/**
  -		 * Same as getXObjectVariable, except don't look in the global space.
  +		 * Given a name, return a string representing the value, but don't look
  +		 * in the global space.
  +		 *
  +		 * @param theName name of variable
  +		 * @return pointer to XObject for variable
   		 */
   		XObject*
   		getXObjectParamVariable(const QName& qname) const
  @@ -1542,37 +1838,32 @@
   
   		/**
   		 * Tell if there is a param variable on the stack.
  +		 *
  +		 * @param qname name of variable
  +		 * @return true if variable is on stack
   		 */
   		bool hasParamVariable(QName& qname);
   
   		/**
  -		 * Same as getResultTreeFragVariable, except don't look
  -		 * in the global space.
  +		 * Given a name, find the corresponding XObject.
  +		 *
  +		 * @param qname name of variable
  +		 * @return pointer to the corresponding XObject
   		 */
  -/*
  -		@@ JMD: Obsolete??
  -		ResultTreeFrag*
  -		getResultTreeFragParamVariable(const QName&	name) const
  -		{
  -			return findResultTreeFrag(name, false);
  -		}
  -*/
  -
  -		/**
  -		 * Given a name, return a pointer to the corresponding
  -		 * XObject.
  -		 */
   		XObject*
   		getXObjectVariable(const QName&		name) const
  -    	// java: Object getVariable(QName name)
   		{
   			return findXObject(name, true);
   		}
   
   		/**
  -		 * Push an argument onto the stack.  Don't forget 
  -		 * to call startContext before pushing a series of 
  -		 * arguments for a given macro call.
  +		 * Push a named variable onto the processor variable stack. Don't forget
  +		 * to call startContext before pushing a series of arguments for a given
  +		 * macro call.
  +		 *
  +		 * @param name    name of variable
  +		 * @param val     pointer to XObject value
  +		 * @param e       element marker for variable
   		 */
   		void
   		pushVariable(
  @@ -1580,20 +1871,6 @@
   				XObject*			val,
   				const DOM_Node&		e);
   
  -		/**
  -		 * Push an argument onto the stack.  Don't forget 
  -		 * to call startContext before pushing a series of 
  -		 * arguments for a given macro call.
  -		 */
  -/*
  -@@ JMD: assume we don't need this, see what happens
  -		void
  -		pushVariable(
  -				const QName&			name,
  -				ResultTreeFrag*				val,
  -				const ElemTemplateElement&	e);
  -*/
  -
   	private:
   
   		XObject*
  @@ -1622,45 +1899,99 @@
   	// Give VariableStack access to stuff.
   	friend class VariableStack;
   
  +	/**
  +	 * Accessor method for variable stack.
  +	 * 
  +	 * @return variable stack
  +	 */
   	VariableStack&
   	getVariableStacks()
   	{
   		return m_variableStacks;
   	}
   
  -
   	/**
   	 * Create a document fragment.  This function may return null.
  +	 *
  +	 * @return pointer to new document fragment
   	 */
   	ResultTreeFragBase*
   	createDocFrag() const;
  -	
  -
  -
  -
  -/*
  -JMD: 
  -These were inner classes in java:
  -	class ContextState;
  -	class ContextMarker extends ContextState;
  -	class ElementMarker;
  - */
   
  +	/**
  +	 * Retrieve list of attributes yet to be processed
  +	 * 
  +	 * @return attribute list
  +	 */
   	AttributeListImpl&  getPendingAttributes();
  +	
  +	/**
  +	 * Retrieve name of the pending element currently being processed.
  +	 * 
  +	 * @return element name
  +	 */
   	DOMString getPendingElementName() const;
  -	void setPendingAttributes(const AttributeList&	pendingAttributes) ;
  -	void setPendingElementName(const DOMString& elementName) ;
  -
  +	
   	/**
  -	 * A stack to keep track of the attribute elements.
  +	 * Sets a list of attributes yet to be processed.
  +	 * 
  +	 * @param pendingAttributes attribute list
   	 */
  +	void setPendingAttributes(const AttributeList&	pendingAttributes);
  +	
  +	/**
  +	 * Changes the currently pending element name.
  +	 * 
  +	 * @param elementName new name of element
  +	 */
  +	void setPendingElementName(const DOMString& elementName);
   
  +	/**
  +	 * Accessor method for stack that keeps track of the attribute elements.
  +	 *
  +	 * @return attribute stack
  +	 */
   	AttrStackType&
   	getAttrSetStack()
   	{ 
   		return m_attrSetStack; 
   	}
   
  +	// These methods are inherited from DocumentHandler ...
  +	
  +	virtual void setDocumentLocator( Locator* const	locator);
  +
  +	virtual void
  +	startDocument();
  +
  +	virtual void
  +	endDocument();
  +    
  +	virtual void
  +	startElement(
  +			const XMLCh* const	name,
  +			AttributeList&		atts);
  +
  +	virtual void
  +	endElement(
  +			const XMLCh* const	name);
  +
  +    virtual void characters (
  +        const   XMLCh* const    chars,
  +        const unsigned int    length);
  +
  +	virtual void
  +	ignorableWhitespace(
  +			const XMLCh* const	ch,
  +			const unsigned int	length);
  +
  +	virtual void
  +	processingInstruction(
  +			const XMLCh* const	target,
  +			const XMLCh* const	data);
  +
  +	virtual void resetDocument();
  +
   protected:
   
   	/*
  @@ -1882,13 +2213,13 @@
   //	initXSLTKeys();
   
   	/**
  -	 *  Hash table that can look up xslt element IDs via attribute.
  +	 * Hash table of XSLT IDs for attribute names.
   	 */
   	static AttributeKeysMapType	s_attributeKeys;
   
  -  /**
  -   *  Hash table that can look up xslt element IDs via name.
  -   */
  +	/**
  +	 * Hash table of XSLT element IDs for element names.
  +	 */
   	static ElementKeysMapType	s_elementKeys;
   
   
  @@ -2189,9 +2520,8 @@
   
   
   	/**
  -	 * Keyed on string macro names, and holding values 
  -	 * that are macro elements in the XSL DOM tree.
  -	 * Initialized in initMacroLookupTable, and used in
  +	 * Keyed on string macro names, and holding values that are macro elements
  +	 * in the XSL DOM tree. Initialized in initMacroLookupTable, and used in
   	 * findNamedTemplate.
   	 */
   	NamedTemplatesMapType	m_namedTemplates;
  
  
  
  1.2       +3 -2      xml-xalan/c/src/XSLT/XSLTInputSource.cpp
  
  Index: XSLTInputSource.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTInputSource.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSLTInputSource.cpp	1999/12/18 19:48:05	1.1
  +++ XSLTInputSource.cpp	2000/03/01 20:43:45	1.2
  @@ -53,10 +53,11 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
  -// Class header file.
   #include "XSLTInputSource.hpp"
   
   // @@ JMD: temporary
  
  
  
  1.3       +42 -70    xml-xalan/c/src/XSLT/XSLTInputSource.hpp
  
  Index: XSLTInputSource.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTInputSource.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSLTInputSource.hpp	2000/01/17 23:55:26	1.2
  +++ XSLTInputSource.hpp	2000/03/01 20:43:45	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_XSLTINPUTSOURCE_HEADER_GUARD)
   #define XALAN_XSLTINPUTSOURCE_HEADER_GUARD
  @@ -73,89 +75,66 @@
   
   class XALAN_XSLT_EXPORT XSLTInputSource : public InputSource
   {
  -	/**
  -	  * Zero-argument default constructor.
  -	  *
  -	  * @see #setPublicId
  -	  * @see #setSystemId
  -	  * @see #setByteStream
  -	  * @see #setCharacterStream
  -	  * @see #setEncoding
  -	  */
  +
   public:
   
  -	/**
  -	  * Zero-argument default constructor.
  -	  *
  -	  * @see #setPublicId
  -	  * @see #setSystemId
  -	  * @see #setByteStream
  -	  * @see #setCharacterStream
  -	  * @see #setEncoding
  -	  */
  -	XSLTInputSource() : InputSource("") { }	// @@ ??
  +	XSLTInputSource() : InputSource("")
  +	{ }
   
   	/**
   	 * Create a new input source with a system identifier.
   	 *
  -	 * <p>Applications may use setPublicId to include a 
  -	 * public identifier as well, or setEncoding to specify
  -	 * the character encoding, if known.</p>
  +	 * <p>Applications may use setPublicId to include a public identifier as
  +	 * well, or setEncoding to specify the character encoding, if known.</p>
   	 *
   	 * <p>If the system identifier is a URL, it must be full resolved.</p>
   	 *
  -	 * @param systemId The system identifier (URI).
  -	 * @see #setPublicId
  -	 * @see #setSystemId
  -	 * @see #setByteStream
  -	 * @see #setEncoding
  -	 * @see #setCharacterStream
  +	 * @param systemId  system identifier (URI)
   	 */
   	XSLTInputSource(const XMLCh* const systemId);
   
  -	XSLTInputSource(const XMLCh* const systemId, const XMLCh* const publicId);
  -
   	/**
   	 * Create a new input source with a system identifier.
   	 *
  -	 * <p>Applications may use setPublicId to include a 
  -	 * public identifier as well</p>
  +	 * <p>Applications may use setPublicId to include a public identifier as
  +	 * well, or setEncoding to specify the character encoding, if known.</p>
   	 *
   	 * <p>If the system identifier is a URL, it must be full resolved.</p>
   	 *
  -	 * @param systemId The system identifier (URI).
  -	 * @see #setPublicId
  -	 * @see #setSystemId
  -	 * @see #setByteStream
  -	 * @see #setCharacterStream
  +	 * @param systemId  system identifier (URI)
   	 */
   	XSLTInputSource(const char* const systemId);
   
   	/**
  -	 * Create a new input source with a system identifier and a public identifier.
  +	 * Create a new input source with a system identifier and a public
  +	 * identifier.
   	 *
   	 * <p>If the system identifier is a URL, it must be full resolved.</p>
   	 *
  -	 * @param systemId The system identifier (URI).
  -	 * @see #setPublicId
  -	 * @see #setSystemId
  -	 * @see #setByteStream
  -	 * @see #setCharacterStream
  +	 * @param systemId system identifier (URI)
  +	 * @param publicId public identifier
   	 */
  -	
   	XSLTInputSource(const char* const systemId, const char* const publicId);
  -
   
  +	/**
  +	 * Create a new input source with a system identifier and a public
  +	 * identifier.
  +	 *
  +	 * <p>If the system identifier is a URL, it must be full resolved.</p>
  +	 *
  +	 * @param systemId system identifier (URI)
  +	 * @param publicId public identifier
  +	 */
  +	XSLTInputSource(const XMLCh* const systemId, const XMLCh* const publicId);
   
   	/**
   	 * Create a new input source with a byte stream.
   	 *
  -	 * <p>Application writers may use setSystemId to provide a base 
  -	 * for resolving relative URIs, setPublicId to include a 
  -	 * public identifier, and/or setEncoding to specify the object's
  -	 * character encoding.</p>
  +	 * <p>Application writers may use setSystemId to provide a base for
  +	 * resolving relative URIs, setPublicId to include a public identifier,
  +	 * and/or setEncoding to specify the object's character encoding.</p>
   	 *
  -	 * @param byteStream The raw byte stream containing the document.
  +	 * @param byteStream pointer to raw byte stream containing the document
   	 */
   	XSLTInputSource (InputStream* byteStream);
   
  @@ -165,52 +144,45 @@
   	 * <p>Application writers may use setSystemId() to provide a base 
   	 * for resolving relative URIs, and setPublicId to include a 
   	 * public identifier.</p>
  +	 *
  +	 * @param characterStream pointer to character stream containing the document
   	 */
   	XSLTInputSource (Reader* characterStream);
   	
   	/**
   	 * Create a new input source with a DOM node.
   	 *
  -	 * <p>Application writers may use setSystemId() to provide a base 
  -	 * for resolving relative URIs, and setPublicId to include a 
  -	 * public identifier.</p>
  +	 * <p>Application writers may use setSystemId() to provide a base for
  +	 * resolving relative URIs, and setPublicId to include a public
  +	 * identifier.</p>
   	 *
  -	 * <p>The character stream shall not include a byte order mark.</p>
  +	 * @param node DOM node that is root of the document
   	 */
   	XSLTInputSource (const DOM_Node& node);
   	
  -	
   	/**
   	 * Makes the byte stream for this input source.
   	 *
   	 * <p>The SAX parser will ignore this if there is also a character
   	 * stream specified, but it will use a byte stream in preference
   	 * to opening a URI connection itself.</p>
  +	 *
   	 *
  -	 * @see #getByteStream
  -	 * @see InputStream
  +	 * @return pointer to byte stream created
   	 */
   	virtual BinInputStream* makeStream() const;
   	
   	/**
  -	 * Set the character stream for this input source.
  +	 * Set the DOM node for this input source.
   	 *
  -	 * <p>If there is a character stream specified, the SAX parser
  -	 * will ignore any byte stream and will not attempt to open
  -	 * a URI connection to the system identifier.</p>
  -	 *
  -	 * @param characterStream The character stream containing the
  -	 *        XML document or other entity.
  -	 * @see #getCharacterStream
  -	 * @see java.io.Reader
  +	 * @param node DOM node that is root of the document
   	 */
   	void setNode (const DOM_Node& node);
   
   	/**
  -	 * Get the character stream for this input source.
  +	 * Retrieve the DOM node for this input source.
   	 *
  -	 * @return The character stream, or null if none was supplied.
  -	 * @see #setCharacterStream
  +	 * @return DOM node that is root of the document
   	 */
   	const DOM_Node& getNode ();
   
  
  
  
  1.4       +217 -172  xml-xalan/c/src/XSLT/XSLTProcessor.hpp
  
  Index: XSLTProcessor.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessor.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XSLTProcessor.hpp	2000/02/29 20:54:25	1.3
  +++ XSLTProcessor.hpp	2000/03/01 20:43:46	1.4
  @@ -53,25 +53,17 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   #if !defined(XALAN_XSLTPROCESSOR_HEADER_GUARD)
   #define XALAN_XSLTPROCESSOR_HEADER_GUARD
   
  -// @@ JMD: Set values as pointers for now, until classes are defined, etc may
  -// want to revisit this
  -
   // Base include file.  Must be first.
   #include "XSLTDefinitions.hpp"
   
  -
  -
  -
  -
  -//@@ JMD: This makes it all work, I don't know why?? Need to fix this
  -// These were all declared in the original class XSLProcessor.hpp, but
  -// shouldn't be needed for an abstract class I would think
   class Arg;
   class DispatcherFactory;
   class DOM_Element;
  @@ -116,9 +108,6 @@
    * specified by a stylesheet tree.  The methods process(...) are
    * the primary public entry points.
    * 
  - * Look at the Process class
  - * for an advanced example of usage by the main() function.
  - * 
    * If you reuse the processor instance, you should call reset() between calls.
    */
   class XALAN_XSLT_EXPORT XSLTProcessor
  @@ -130,70 +119,64 @@
   	virtual
   	~XSLTProcessor();
   
  -  /**
  -   * Transform the source tree to the output in the given 
  -   * result tree target.
  -   * @param inputSource  The input source.  May be null.
  -   * @param stylesheetSource  The stylesheet source.  May be null if source has a xml-stylesheet PI.
  -   * @param outputTarget The output source tree.
  -	* @exception XSLProcessorException thrown if the active ProblemListener and
  -	* XMLParserLiaison decide the error condition is severe enough to halt
  -	* processing.
  -   */
  +	/**
  +	 * Transform the source tree to the output in the given result tree target.
  +	 *
  +	 * @param inputSource         input source,  may be null
  +	 * @param stylesheetSource    stylesheet source,  may be null if source
  +	 *                            has a xml-stylesheet PI
  +	 * @param outputTarget        output source tree
  +	 * @param constructionContext context for construction of objects
  +	 * @param executionContext    current execution context
  +	 * @exception XSLProcessorException 
  +	 */
   	virtual void
   	process(
  -			XSLTInputSource*				inputSource, 
  -	        XSLTInputSource*				stylesheetSource,
  -	        XSLTResultTarget&				outputTarget,
  -			StylesheetConstructionContext&	constructionContext,
  -			StylesheetExecutionContext&		executionContext) = 0;
  +		XSLTInputSource*				inputSource, 
  +		XSLTInputSource*				stylesheetSource,
  +		XSLTResultTarget&				outputTarget,
  +		StylesheetConstructionContext&	constructionContext,
  +		StylesheetExecutionContext&		executionContext) = 0;
   
  -  /**
  -   * Given a URI to an XSL stylesheet, 
  -   * Compile the stylesheet into an internal representation.
  -   * This will delete any existing stylesheet root.  If you want to use this stylesheet multiple
  -   * times, or with multiple processor instances, you must use different XObjectFactory and
  -   * XPathFactory instances from the ones being used by the process itself.
  -   * @param stylesheetSource  The input source for the input XML.
  -   * @param xobjectFactory  The XObjectFactory to use for constructing the stylesheet.
  -   * @param xpathFactory  The XPathFactory to use for constructing the stylesheet.
  -   * @return The compiled stylesheet object.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Given a stylesheet input source, compile the stylesheet into an internal
  +	 * representation. This will delete any existing stylesheet root.
  +	 *
  +	 * @param stylesheetSource    input source for the stylesheet
  +	 * @param constructionContext context for construction of objects
  +	 * @return pointer to the compiled stylesheet object
  +	 * @exception XSLProcessorException 
  +	 */
   	virtual StylesheetRoot*
   	processStylesheet(
   			XSLTInputSource&				stylesheetSource,
   			StylesheetConstructionContext&	constructionContext) = 0;
  -    // throws XSLProcessorException
     
  -  /**
  -   * Given a URI to an XSL stylesheet, 
  -   * Compile the stylesheet into an internal representation.
  -   * This calls reset() before processing if the stylesheet root has been set 
  -   * to non-null.
  -   * @param xmldocURLString  The URL to the input XML document.
  -   * @return The compiled stylesheet object.
  -	* @exception XSLProcessorException thrown if the active ProblemListener and
  -	* XMLParserLiaison decide the error condition is severe enough to halt
  -	* processing.
  -   */
  +	/**
  +	 * Given a URI to an XSL stylesheet, compile the stylesheet into an internal
  +	 * representation. This will delete any existing stylesheet root.
  +	 *
  +	 * @param xmldocURLString URI to the input XML document
  +	 * @param constructionContext context for construction of objects
  +	 * @return pointer to compiled stylesheet object
  +	 * @exception XSLProcessorException 
  +	 */
   	virtual StylesheetRoot*
   	processStylesheet(
   			const DOMString&				xsldocURLString,
   			StylesheetConstructionContext&	constructionContext) = 0;
  -    // throws XSLProcessorException
     
  -  /**
  -   * Reset the state.  This needs to be called after a process() call 
  -   * is invoked, if the processor is to be used again.
  -   */
  +	/**
  +	 * Reset the state.  This needs to be called after a process() call 
  +	 * is invoked, if the processor is to be used again.
  +	 */
      virtual void reset() = 0;
     
   	/**
   	 * Given an input source, get the source tree.
   	 *
   	 * @param inputSource pointer to input source
  +	 * @return source tree
   	 */
      virtual const DOM_Node getSourceTreeFromInput(XSLTInputSource* inputSource) = 0;
   
  @@ -201,43 +184,62 @@
       * Output an object to the result tree by doing the right conversions.
       * This is public for access by extensions.
       *
  -    * @param obj the XObject to output.
  +    * @param obj the XObject to output
       */
   	virtual void
   	outputToResultTree(
   			const XObject&		xobj) = 0;
   
  +	/**
  +	 * Retrieve a top level variable corresponding to name.
  +	 * 
  +	 * @param theName name of variable
  +	 * @return pointer to XObject for variable
  +	 */
   	virtual XObject*
   	getTopLevelVariable(const DOMString&	theName) const = 0;
   
  -  /**
  -   * Reset the current element state
  -   */
  +	/**
  +	 * Reset the state of execution to node 'xmlNode' in source tree
  +	 * 'sourceTree.'
  +	 * 
  +	 * @param sourceTree source tree for execution
  +	 * @param xmlNode    node to execute
  +	 */
   	virtual void
   	resetCurrentState(
   			const DOM_Node&		sourceTree,
   			const DOM_Node&		xmlNode) = 0;
   
  +	/**
  +	 * Retrieve root document for stylesheet.
  +	 * 
  +	 * @return root document
  +	 */
   	virtual DOM_Document
   	getRootDoc() const = 0;
   
  +	/**
  +	 * Set root document for stylesheet.
  +	 * 
  +	 * @param doc root document
  +	 */
   	virtual void
   	setRootDoc(const DOM_Document& doc) = 0;
   
  -  /**
  -   * Evaluates attribute values for attribute templates
  -   * (Stuff in curly {} braces that hold expressions).
  -   *
  -   * @param contextNode the current node in the source tree
  -   * @param namespaceContext the current namespace context.
  -   * the pattern-by-example structures when parsing expressions.
  -   * @param stringedValue the attribute value to be processed.
  -   * @param executionContext the current execution context.
  -   * @return Processed stringedValue with attribute templates
  -   * resolved.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and XMLParserLiaison decide 
  -   * the error condition is severe enough to halt processing.
  -   */
  +	/**
  +	 * Evaluates attribute values for attribute templates (Stuff in curly {}
  +	 * braces that hold expressions).
  +	 *
  +	 * @param contextNode      current node in the source tree
  +	 * @param namespaceContext current namespace context for the
  +	 *                         pattern-by-example structures when parsing
  +	 *                         expressions
  +	 * @param stringedValue    attribute value to be processed
  +	 * @param executionContext current execution context
  +	 * @return processed stringedValue with attribute templates resolved
  +	 * @exception XSLProcessorException 
  +	 */
   	virtual DOMString
   	evaluateAttrVal(
   			const DOM_Node&			contextNode,
  @@ -245,18 +247,17 @@
   			const DOMString&		stringedValue,
   			XPathExecutionContext&	executionContext) = 0;
   
  -  /**
  -   * Given a stylesheet element, create a result tree fragment from its 
  -   * contents.  Caller owns the memory.
  -   * @exception XSLProcessorException thrown if the active ProblemListener and
  -   * XMLParserLiaison decide the error condition is severe enough to halt
  -   * processing.
  -   * @param templateChild The template element that holds the fragment.
  -   * @param sourceTree The source tree document context.
  -   * @param sourceNode The current source context node.
  -   * @param mode The mode under which the template is operating.
  -   * @return An object that represents the result tree fragment.
  -   */
  +	/**
  +	 * Given a stylesheet element, create a result tree fragment from its 
  +	 * contents.  Caller owns the memory.
  +	 *
  +	 * @param templateChild template element that holds the fragment
  +	 * @param sourceTree    source tree document context
  +	 * @param sourceNode    current source context node
  +	 * @param mode          mode under which the template is operating
  +	 * @return pointer to an object that represents the result tree fragment
  +	 * @exception XSLProcessorException 
  +	 */
   	virtual ResultTreeFragBase*
   	createResultTreeFrag(
   			StylesheetExecutionContext&		executionContext,
  @@ -267,6 +268,8 @@
   
   	/**
   	 * Create an empty result tree fragment. Caller owns the memory.
  +	 *
  +	 * @return pointer to an object that represents the result tree fragment
   	 */
   	virtual ResultTreeFragBase*
   	createResultTreeFrag() const = 0;
  @@ -279,39 +282,56 @@
   
     /**
      * Get the XML Parser Liaison that this processor uses.
  +	 *
  +	 * @return XML parser liaison object
      */
      virtual XMLParserLiaison&
      getXMLParserLiaison() const = 0;
   
  +	/**
  +	 * Generate a random namespace prefix guaranteed to be unique.
  +	 * 
  +	 * @return unique namespace prefix
  +	 */
      virtual const DOMString
      getUniqueNSValue() const = 0;
   
  -  /**
  -   * Convenience function to create an XObject that represents a Result tree fragment.
  -   * @param r The result tree fragment to use.
  -   * @return An XObject instance.
  -   */
  +	/**
  +	 * Convenience function to create an XObject that represents a Result tree
  +	 * fragment.
  +	 *
  +	 * @param r result tree fragment to use
  +	 * @return XObject instance
  +	 */
      virtual XObject*
      createXResultTreeFrag(const ResultTreeFragBase&  r) const = 0;
   
  -   /**
  -   * Given a name, locate a variable in the current context, and return 
  -   * the object.
  -   * @return An XObject if the variable was found, 0 if it was not.
  -   */
  +	/**
  +	 * Given a name, locate a variable in the current context, and return 
  +	 * the object.
  +	 *
  +	 * @param theName name of variable
  +	 * @return An XObject if the variable was found, 0 if it was not.
  +	 */
      virtual XObject*
      getVariable(const QName& qname) const = 0;
   
   	/**
  -	 * Given a name, locate a param variable in the current context, and return 
  -	 * the Object.
  +	 * Given a name, return a string representing the value, but don't look in
  +	 * the global space.
  +	 *
  +	 * @param theName name of variable
  +	 * @return pointer to XObject for variable
   	 */
   	virtual XObject*
   	getParamVariable(const QName&	theName) const = 0;
   
   	/**
  -	 * Given a name, a variable, and an element, push the variable on the variables
  -	 * stack.
  +	 * Push a named variable onto the processor variable stack
  +	 *
  +	 * @param name    name of variable
  +	 * @param var     pointer to XObject value
  +	 * @param element element marker for variable
   	 */
   	virtual void
   	pushVariable(
  @@ -320,10 +340,11 @@
   			const DOM_Node&		element) = 0;
   
     /**
  -   * Push a top-level stylesheet parameter.  This value can 
  -   * be evaluated via xsl:param-variable.
  -   * @param key The name of the param.
  -   * @param value An XObject that will be used.
  +	* Push a top-level stylesheet parameter.  This value can be evaluated via
  +	* xsl:param-variable.
  +	*
  +   * @param key   name of the parameter
  +   * @param value XObject value for parameter
      */
      virtual void
      setStylesheetParam(
  @@ -331,17 +352,30 @@
   			XObject*			value) = 0;
     
     /**
  -   * Push a top-level stylesheet parameter.  This value can 
  -   * be evaluated via xsl:param-variable.
  -   * @param key The name of the param.
  -   * @param expression An expression that will be evaluated.
  -   */
  -   virtual void setStylesheetParam(const DOMString& key, const DOMString& expression) = 0;
  -
  +	* Push a top-level stylesheet parameter.  This value can be evaluated via
  +	* xsl:param-variable.
  +	*
  +   * @param key name of the param
  +   * @param expression expression that will be evaluated
  +   */
  +   virtual void setStylesheetParam(
  +			const DOMString& key,
  +			const DOMString& expression) = 0;
   
  -   /**
  -	* Given a valid element key, return the corresponding node list.
  -	*/
  +	/**
  +	 * Given a valid element key, return the corresponding node list.
  +	 *
  +	 * @param doc              source document
  +	 * @param name             name of the key, which must match the 'name'
  +	 *                         attribute on xsl:key
  +	 * @param ref              value that must match the value found by the
  +	 *                         'match' attribute on xsl:key
  +	 * @param resolver         resolver for namespace resolution
  +	 * @param executionContext current execution context
  +	 * @return if the name was not declared with xsl:key, this will return
  +	 * null, if the identifier is not found, it will return an empty node set,
  +	 * otherwise it will return a nodeset of nodes.
  +	 */
      virtual const NodeRefListBase*
      getNodeSetByKey(
   					const DOM_Node&			doc, 
  @@ -351,74 +385,83 @@
   					XPathExecutionContext&	executionContext) const = 0;
   
   	/**
  -	 * Tells, through the combination of the default-space attribute
  -	 * on xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the
  -	 * xml:space attribute, whether or not extra whitespace should be stripped
  -	 * from the node.  Literal elements from template elements should
  -	 * <em>not</em> be tested with this function.
  -	 * @param textNode A text node from the source tree.
  -	 * @return true if the text node should be stripped of extra whitespace.
  +	 * Tells, through the combination of the default-space attribute on
  +	 * xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the xml:space
  +	 * attribute, whether or not extra whitespace should be stripped from the
  +	 * node.  Literal elements from template elements should <em>not</em> be
  +	 * tested with this function.
  +	 *
  +	 * @param textNode text node from the source tree
  +	 * @return true if the text node should be stripped of extra whitespace
   	 */
   	virtual bool
   	shouldStripSourceNode(const DOM_Node&	textNode) const = 0;
   
  -  /**
  -   * Get the current formatter listener.
  -   */
  +	/**
  +	 * Get the current formatter listener.
  +	 * 
  +	 * @return pointer to formatter listener
  +	 */
      virtual FormatterListener* getFormatterListener() const = 0;
     
  -  /**
  -   * Set the current formatter listener.
  -   */
  -   virtual void setFormatterListener(FormatterListener* flistener) = 0;  
  +	/**
  +	 * Set the current formatter listener.
  +	 *
  +	 * @param flistener pointer to new formatter listener
  +	 */
  +	virtual void setFormatterListener(FormatterListener* flistener) = 0;  
     
   	/**
   	 * Add a trace listener for the purposes of debugging and diagnosis.
  -	 *
  -	 * @param tl trace listener to be added
  +	 * 
  +	 * @param tl pointer to listener to add
   	 */
      virtual void addTraceListener(TraceListener* tl) = 0;
  -    // throws TooManyListenersException
  -  
  -  /**
  -   * If this is set to true, simple traces of 
  -   * template calls are made.
  -   */
  -   virtual void setTraceTemplates(bool b) = 0;
     
  -  /**
  -   * If this is set to true, simple traces of 
  -   * template calls are made.
  -   */
  -   virtual void setTraceSelect(bool b) = 0;
  -  
  -  /**
  -   * If this is set to true, debug diagnostics about 
  -   * template children as they are being constructed 
  -   * will be written to the m_diagnosticsPrintWriter 
  -   * stream.  diagnoseTemplateChildren is false by
  -   * default.
  -   */
  -   virtual void setTraceTemplateChildren(bool b) = 0;
  -  
  -  /**
  -   * If the quietConflictWarnings property is set to 
  -   * true, warnings about pattern conflicts won't be 
  -   * printed to the diagnostics stream.
  -   * True by default.
  -   * @param b true if conflict warnings should be suppressed.
  -   */
  -   virtual void setQuietConflictWarnings(bool b) = 0;
  +	/**
  +	 * If this is set to true, simple traces of template calls are made.
  +	 *
  +	 * @param b true to make traces of template calls
  +	 */
  +	virtual void setTraceTemplates(bool b) = 0;
  +
  +	/**
  +	 * If this is set to true, simple traces of select calls are made.
  +	 *
  +	 * @param b true to make traces of select calls
  +	 */
  +	virtual void setTraceSelect(bool b) = 0;
     
   	/**
  +	 * If this is set to true, debug diagnostics about 
  +	 * template children as they are being constructed 
  +	 * will be written to the m_diagnosticsPrintWriter 
  +	 * stream.  diagnoseTemplateChildren is false by
  +	 * default.
  +	 *
  +	 * @param b true to make traces of template children construction
  +	 */
  +	virtual void setTraceTemplateChildren(bool b) = 0;
  +
  +	/**
  +	 * If the quietConflictWarnings property is set to 
  +	 * true, warnings about pattern conflicts won't be 
  +	 * printed to the diagnostics stream.
  +	 * True by default.
  +	 *
  +	 * @param b true if conflict warnings should be suppressed.
  +	 */
  +	virtual void setQuietConflictWarnings(bool b) = 0;
  +
  +	/**
   	 * Remove a trace listener.
   	 *
   	 * @param tl Trace listener to be removed.
   	 */
  -   virtual void removeTraceListener(TraceListener* tl) = 0;
  +	virtual void removeTraceListener(TraceListener* tl) = 0;
     
   // @@TODO: what to do about output stream ??
  -  /**
  +  /*
      * If this is set, diagnostics will be 
      * written to the m_diagnosticsPrintWriter stream. If 
      * the value is null, then diagnostics will be turned 
  @@ -426,13 +469,15 @@
      */
   //   virtual void setDiagnosticsOutput(java.io.OutputStream out) = 0;
     
  -  /**
  -   * If this is set, diagnostics will be 
  -   * written to the m_diagnosticsPrintWriter stream. If 
  -   * the value is null, then diagnostics will be turned 
  -   * off.
  -   */
  -   virtual void setDiagnosticsOutput(PrintWriter* pw) = 0;
  +	/**
  +	 * If this is set, diagnostics will be 
  +	 * written to the m_diagnosticsPrintWriter stream. If 
  +	 * the value is null, then diagnostics will be turned 
  +	 * off.
  +	 *
  +	 * @param pw pointer to print writer
  +	 */
  +	virtual void setDiagnosticsOutput(PrintWriter* pw) = 0;
   
   };
   
  
  
  
  1.4       +11 -22    xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.hpp
  
  Index: XSLTProcessorEnvSupportDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XSLTProcessorEnvSupportDefault.hpp	2000/02/17 16:06:14	1.3
  +++ XSLTProcessorEnvSupportDefault.hpp	2000/03/01 20:43:46	1.4
  @@ -84,11 +84,19 @@
   	virtual
   	~XSLTProcessorEnvSupportDefault();
   
  -	// These interfaces are inherited from XPathEnvSupportDefault...
  -
   	/**
  -	 * Given a valid element key, return the corresponding node list.
  +	 * Reset the XLST processor instance
  +	 * 
  +	 * @param theProcessor pointer to new processor instance
   	 */
  +	void
  +	setProcessor(XSLTProcessor*		theProcessor)
  +	{
  +		m_processor = theProcessor;
  +	}
  +
  +	// These interfaces are inherited from XPathEnvSupportDefault...
  +
   	virtual const NodeRefListBase*
   	getNodeSetByKey(
   			const DOM_Node&			doc,
  @@ -97,10 +105,6 @@
   			const PrefixResolver&	resolver,
   			XPathExecutionContext&	executionContext) const;
   
  -	/**
  -	 * Given a name, locate a variable in the current context, and return 
  -	 * the Object.
  -	 */
   	XObject*
   	getVariable(
   			XObjectFactory&		factory,
  @@ -126,23 +130,8 @@
   			int						lineNo,
   			int						charOffset) const;
   
  -	/**
  -	 * Tells, through the combination of the default-space attribute
  -	 * on xsl:stylesheet, xsl:strip-space, xsl:preserve-space, and the
  -	 * xml:space attribute, whether or not extra whitespace should be stripped
  -	 * from the node.  Literal elements from template elements should
  -	 * <em>not</em> be tested with this function.
  -	 * @param textNode A text node from the source tree.
  -	 * @return true if the text node should be stripped of extra whitespace.
  -	 */
   	virtual bool
   	shouldStripSourceNode(const DOM_Node&	node) const;
  -
  -	void
  -	setProcessor(XSLTProcessor*		theProcessor)
  -	{
  -		m_processor = theProcessor;
  -	}
   
   private:
   
  
  
  
  1.2       +7 -0      xml-xalan/c/src/XSLT/XSLTProcessorException.hpp
  
  Index: XSLTProcessorException.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessorException.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSLTProcessorException.hpp	1999/12/18 19:48:05	1.1
  +++ XSLTProcessorException.hpp	2000/03/01 20:43:47	1.2
  @@ -73,6 +73,13 @@
   {
   public:
   
  +	/**
  +	 * Construct an XSLT Processor exception object
  +	 * 
  +	 * @param theMessage message to print when exception thrown
  +	 * @param theType    type of exception string, default
  +	 *                   "XSLTProcessorException"
  +	 */
   	XSLTProcessorException(
   		const DOMString&	theMessage,
   		const DOMString&	theType = DOMString("XSLTProcessorException"));
  
  
  
  1.2       +3 -1      xml-xalan/c/src/XSLT/XSLTResultTarget.cpp
  
  Index: XSLTResultTarget.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTResultTarget.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSLTResultTarget.cpp	1999/12/18 19:48:05	1.1
  +++ XSLTResultTarget.cpp	2000/03/01 20:43:47	1.2
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + *
    */
  -// $ Id: $
   
   // Base include file.  Must be first.
   #include "XSLTResultTarget.hpp"
  
  
  
  1.3       +37 -26    xml-xalan/c/src/XSLT/XSLTResultTarget.hpp
  
  Index: XSLTResultTarget.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTResultTarget.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSLTResultTarget.hpp	2000/01/28 14:34:34	1.2
  +++ XSLTResultTarget.hpp	2000/03/01 20:43:47	1.3
  @@ -53,8 +53,10 @@
    * Business Machines, Inc., http://www.ibm.com.  For more
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
  + *
  + * $ Id: $
  + 
    */
  -// $ Id: $
   
   #if !defined(XALAN_XSLTRESULTTARGET_HEADER_GUARD)
   #define XALAN_XSLTRESULTTARGET_HEADER_GUARD
  @@ -74,108 +76,105 @@
   class XALAN_XSLT_EXPORT XSLTResultTarget
   {
   public:
  -	/**
  -	 * Zero-argument default constructor.
  -	 */
  +
   	XSLTResultTarget();
   
   	/**
   	 * Create a new output target with a file name.
   	 *
  -	 * @param fileName Must be a valid system file name.
  +	 * @param fileName valid system file name
   	 */
  -	XSLTResultTarget (DOMString& fileName); // File?
  +	XSLTResultTarget (DOMString& fileName);
   
   	/**
   	 * Create a new output target with a byte stream.
   	 *
  -	 * @param byteStream The raw byte stream that will contain the document.
  +	 * @param byteStream pointer to raw byte stream that will contain the
  +	 *                   document
   	 */
   	XSLTResultTarget (OutputStream* byteStream);
   
   	/**
   	 * Create a new output target with a character stream.
   	 *
  -	 * @param characterStream The character stream where the results will be written.
  +	 * @param characterStream pointer to character stream where the results
  +	 *                        will be written
   	 */ 
   	XSLTResultTarget (Writer* characterStream);
   
   	/**
  -	 * Create a new output target with a character stream.
  +	 * Create a new output target with a DOM node.
   	 *
  -	 * @param characterStream The character stream where the results will be written.
  +	 * @param n root of DOM node tree that holds results
   	 */
   	XSLTResultTarget (DOM_Node& n);
   
   	/**
   	 * Set the file name where the results will be written.
   	 *
  -	 * @param fileName The system identifier as a string.
  +	 * @param fileName system identifier as a string
   	 */
  -	void setFileName (DOMString& fileName) // File?
  +	void setFileName (DOMString& fileName)
   	{
   		m_fileName = fileName;
   	}
   
  -
   	/**
   	 * Get the file name where the results will be written to.
   	 * 
  -	 * @return The file name.
  +	 * @return file name string
   	 */
   	DOMString& getFileName ()
   	{
   		return m_fileName;
   	}
   
  -
   	/**
   	 * Set the byte stream for this output target.
   	 *
  -	 * @param byteStream A byte stream that will contain the result document.
  +	 * @param byteStream pointer to byte stream that will contain the result
  +	 *                   document
   	 */
   	void setByteStream (OutputStream* byteStream)
   	{
   		m_byteStream = byteStream;
   	}
   
  -
   	/**
   	 * Get the byte stream for this output target.
   	 *
  -	 * @return The byte stream, or null if none was supplied.
  +	 * @return pointer to byte stream, or null if none was supplied.
   	 */
   	OutputStream* getByteStream ()
   	{
   		return m_byteStream;
   	}
   
  -
   	/** 
   	 * Set the character encoding, if known.
  +	 *
  +	 * @param encoding new encoding string
   	 */
   	void setEncoding (DOMString& encoding)
   	{
   		m_encoding = encoding;
   	}
   
  -
   	/**
  -	 * Get the character encoding that was used.
  +	 * Get the character encoding in use.
   	 *
  -	 * @return The encoding, or null if none was supplied.
  +	 * @return encoding string, or empty string if none was supplied.
   	 */
   	DOMString& getEncoding ()
   	{
   		return m_encoding;
   	}
   
  -
   	/**
   	 * Set the character stream for this output target.
   	 *
  -	 * @param characterStream The character stream that will contain 
  -	 *										 the result document.
  +	 * @param characterStream pointer to character stream that will contain 
  +	 *                        the result document
   	 */
   	void setCharacterStream (Writer* characterStream)
   	{
  @@ -186,7 +185,7 @@
   	/**
   	 * Get the character stream for this output target.
   	 *
  -	 * @return The character stream, or null if none was supplied.
  +	 * @return pointer to character stream, or null if none was supplied.
   	 */
   	Writer* getCharacterStream ()
   	{
  @@ -195,6 +194,8 @@
   
   	/**
   	 * Set the node that will contain the result nodes.
  +	 *
  +	 * @param node DOM node to contain results
   	 */
   	void setNode (const DOM_Node& node)
   	{
  @@ -203,6 +204,8 @@
   
   	/**
   	 * Get the node that will contain the result nodes.
  +	 *
  +	 * @return DOM node containing results
   	 */
   	DOM_Node& getNode ()
   	{
  @@ -211,6 +214,8 @@
   	
   	/**
   	 * Set a SAX DocumentHandler to process the result tree events.
  +	 *
  +	 * @param handler pointer to new handler
   	 */
   	void setDocumentHandler (DocumentHandler* handler)
   	{
  @@ -219,6 +224,8 @@
   
   	/**
   	 * Get the SAX DocumentHandler that will process the result tree events.
  +	 *
  +	 * @return pointer to current handler
   	 */
   	DocumentHandler* getDocumentHandler ()
   	{
  @@ -227,6 +234,8 @@
   
   	/**
   	 * Set a FormatterListener to process the result tree events.
  +	 *
  +	 * @param handler pointer to new listener
   	 */
   	void setFormatterListener (FormatterListener* handler)
   	{
  @@ -235,6 +244,8 @@
   
   	/**
   	 * Get the FormatterListener that will process the result tree events.
  +	 *
  +	 * @return pointer to new listener
   	 */
   	FormatterListener* getFormatterListener ()
   	{