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;
   
  
  
  

Reply via email to