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

cvs commit: xml-xalan/c/src/XSLT StylesheetExecutionContext.hpp StylesheetExecutionContextDefault.cpp StylesheetExecutionContextDefault.hpp XSLTEngineImpl.cpp XSLTEngineImpl.hpp XSLTProcessor.hpp

dbertoni    00/06/01 09:28:42

  Modified:    c/src/XSLT StylesheetExecutionContext.hpp
                        StylesheetExecutionContextDefault.cpp
                        StylesheetExecutionContextDefault.hpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
                        XSLTProcessor.hpp
  Log:
  Added support for DOMServices::getNameOfNode().  Now using PrefixResolver during AVT evaulation, instead of element proxy.
  
  Revision  Changes    Path
  1.19      +4 -1      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.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- StylesheetExecutionContext.hpp	2000/05/31 17:01:19	1.18
  +++ StylesheetExecutionContext.hpp	2000/06/01 16:28:36	1.19
  @@ -646,7 +646,7 @@
   	virtual const XalanDOMString
   	evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement&		namespaceContext,
  +			const PrefixResolver&	namespaceContext,
   			const XalanDOMString&	stringedValue) = 0;
   
   	/**
  @@ -1304,6 +1304,9 @@
   
   	virtual XalanDOMString
   	getNamespaceOfNode(const XalanNode&		n) const = 0;
  +
  +	virtual XalanDOMString
  +	getNameOfNode(const XalanNode&	n) const = 0;
   
   	virtual XalanDOMString
   	getLocalNameOfNode(const XalanNode&		n) const = 0;
  
  
  
  1.16      +19 -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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- StylesheetExecutionContextDefault.cpp	2000/05/29 22:49:00	1.15
  +++ StylesheetExecutionContextDefault.cpp	2000/06/01 16:28:37	1.16
  @@ -465,7 +465,7 @@
   const XalanDOMString
   StylesheetExecutionContextDefault::evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement&		namespaceContext,
  +			const PrefixResolver&	namespaceContext,
   			const XalanDOMString&	stringedValue)
   {
   	return m_xsltProcessor.evaluateAttrVal(contextNode,
  @@ -992,6 +992,14 @@
   
   
   XalanDOMString
  +StylesheetExecutionContextDefault::getNameOfNode(const XalanNode&	n) const
  +{
  +	return m_xpathExecutionContextDefault.getNameOfNode(n);
  +}
  +
  +
  +
  +XalanDOMString
   StylesheetExecutionContextDefault::getLocalNameOfNode(const XalanNode&	n) const
   {
   	return m_xpathExecutionContextDefault.getLocalNameOfNode(n);
  @@ -1072,7 +1080,16 @@
   			const XalanDOMString&	theNamespace, 
   			const XalanDOMString&	elementName) const
   {
  -	return m_xpathExecutionContextDefault.elementAvailable(theNamespace, elementName);
  +	if (equals(theNamespace, XSLTEngineImpl::getXSLNameSpaceURL()) == true)
  +	{
  +		const int	xslToken = XSLTEngineImpl::getElementToken(elementName);
  +
  +		return xslToken == -2 ? false : true;
  +	}
  +	else
  +	{
  +		return m_xpathExecutionContextDefault.elementAvailable(theNamespace, elementName);
  +	}
   }
   
   
  
  
  
  1.16      +4 -1      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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- StylesheetExecutionContextDefault.hpp	2000/05/29 22:49:00	1.15
  +++ StylesheetExecutionContextDefault.hpp	2000/06/01 16:28:37	1.16
  @@ -223,7 +223,7 @@
   	virtual const XalanDOMString
   	evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement&		namespaceContext,
  +			const PrefixResolver&	namespaceContext,
   			const XalanDOMString&	stringedValue);
   
   	virtual void
  @@ -453,6 +453,9 @@
   
   	virtual XalanDOMString
   	getNamespaceOfNode(const XalanNode&		n) const;
  +
  +	virtual XalanDOMString
  +	getNameOfNode(const XalanNode&	n) const;
   
   	virtual XalanDOMString
   	getLocalNameOfNode(const XalanNode&		n) const;
  
  
  
  1.43      +7 -8      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.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- XSLTEngineImpl.cpp	2000/05/29 22:45:24	1.42
  +++ XSLTEngineImpl.cpp	2000/06/01 16:28:37	1.43
  @@ -1941,7 +1941,7 @@
   			  // was: stripWhiteSpace = isLiteral ? true : shouldStripSourceNode(node);
   			}
   
  -			XalanText& 	tx = static_cast<XalanText&>(node);
  +			const XalanText& 	tx = static_cast<const XalanText&>(node);
   
   			XalanDOMString		data;
   
  @@ -2005,7 +2005,7 @@
   										false);
   			}
   
  -			startElement(c_wstr(node.getNodeName()));
  +			startElement(c_wstr(m_executionContext->getNameOfNode(node)));
   		}
   		break;
   
  @@ -2019,14 +2019,14 @@
   			cdata(toCharArray(data), 0, length(data));
   		}
   		break;
  -	
  +
   	case XalanNode::ATTRIBUTE_NODE:
   		{
   			const XalanAttr& 	attr =
   				static_cast<const XalanAttr&>(node);
   
   			addResultAttribute(m_pendingAttributes,
  -							   attr.getName(),
  +							   m_executionContext->getNameOfNode(attr),
   							   attr.getValue());
   		}
   		break;
  @@ -2585,7 +2585,7 @@
   XalanDOMString
   XSLTEngineImpl::evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement&		namespaceContext,
  +			const PrefixResolver&	namespaceContext,
   			const XalanDOMString&	stringedValue,
   			XPathExecutionContext&	executionContext)
   {
  @@ -2606,8 +2606,6 @@
   		XalanDOMString	lookahead; // next token
   		XalanDOMString	error; // if not empty, break from loop
   
  -		ElementPrefixResolverProxy	theProxy(&namespaceContext, m_xpathEnvSupport, m_xpathSupport);
  -
   		while(tokenizer.hasMoreTokens())
   		{
   			if(length(lookahead) != 0)
  @@ -2685,7 +2683,7 @@
   											// Proper close of attribute template.
   											// Evaluate the expression.
   											const XObject* const	xobj =
  -												evalXPathStr(expression, contextNode, theProxy, executionContext);
  +												evalXPathStr(expression, contextNode, namespaceContext, executionContext);
   
   											const XalanDOMString			exprResult(xobj->str());
   
  @@ -2761,6 +2759,7 @@
   
   	return expressedValue;
   }
  +
   
   
   void
  
  
  
  1.35      +8 -8      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.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- XSLTEngineImpl.hpp	2000/05/29 22:45:25	1.34
  +++ XSLTEngineImpl.hpp	2000/06/01 16:28:37	1.35
  @@ -292,7 +292,7 @@
   	virtual XalanDOMString
   	evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement& 	namespaceContext,
  +			const PrefixResolver& 	namespaceContext,
   			const XalanDOMString&	stringedValue,
   			XPathExecutionContext&	executionContext);
   
  @@ -316,11 +316,11 @@
   	virtual const XalanDOMString
   	getUniqueNSValue() const;
   	
  -   virtual XObject*
  -   createXResultTreeFrag(const ResultTreeFragBase&	r) const;
  +	virtual XObject*
  +	createXResultTreeFrag(const ResultTreeFragBase&		r) const;
   
   	virtual XObject*
  -	getVariable(const QName& qname) const;
  +	getVariable(const QName&	qname) const;
   
   	virtual XObject*
   	getParamVariable(const QName&	theName) const;
  @@ -705,8 +705,8 @@
   	 * @return Constants.ELEMNAME_XXX token, -1 if in XSL or Xalan namespace,
   	 *		   or -2 if not in known namespace
   	 */
  -	int
  -	getElementToken(const XalanDOMString&	name) const
  +	static int
  +	getElementToken(const XalanDOMString&	name)
   	{
   		AttributeKeysMapType::const_iterator iter=
   			s_elementKeys.find(name);
  @@ -722,8 +722,8 @@
   	 * @return Constants.ELEMNAME_XXX token, -1 if in XSL or Xalan namespace,
   	 *		   or -2 if not in known namespace
   	 */
  -	int
  -	getAttrTok(const XalanDOMString&	name) const
  +	static int
  +	getAttrTok(const XalanDOMString&	name)
   	{
   		AttributeKeysMapType::const_iterator iter=
   			s_attributeKeys.find(name);
  
  
  
  1.11      +1 -1      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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XSLTProcessor.hpp	2000/05/24 19:38:50	1.10
  +++ XSLTProcessor.hpp	2000/06/01 16:28:37	1.11
  @@ -304,7 +304,7 @@
   	virtual XalanDOMString
   	evaluateAttrVal(
   			XalanNode*				contextNode,
  -			const XalanElement& 	namespaceContext,
  +			const PrefixResolver& 	namespaceContext,
   			const XalanDOMString&	stringedValue,
   			XPathExecutionContext&	executionContext) = 0;