dbertoni    00/08/11 14:15:52

  Modified:    c/src/XSLT Stylesheet.cpp Stylesheet.hpp
                        StylesheetConstructionContext.hpp
                        StylesheetConstructionContextDefault.cpp
                        StylesheetConstructionContextDefault.hpp
                        StylesheetHandler.cpp StylesheetRoot.cpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
  Log:
  Changes for new URISupport functions.
  
  Revision  Changes    Path
  1.30      +4 -14     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.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- Stylesheet.cpp    2000/08/10 18:43:07     1.29
  +++ Stylesheet.cpp    2000/08/11 21:15:44     1.30
  @@ -148,15 +148,10 @@
   {
        if (length(m_baseIdent) != 0)
        {
  -             typedef StylesheetConstructionContext::URLAutoPtrType   
URLAutoPtrType;
  -
  -             URLAutoPtrType  
url(constructionContext.getURLFromString(m_baseIdent));
  -
  -             if (url.get() != 0)
  +             const XalanDOMString urlString = 
constructionContext.getURLStringFromString(m_baseIdent);
  +             if (length(urlString) != 0)
                {
  -                     m_includeStack.push_back(url.get());
  -
  -                     url.release();
  +                     m_includeStack.push_back(urlString);
                }
        }
   }
  @@ -174,11 +169,6 @@
                         m_imports.end(),
                         DeleteFunctor<Stylesheet>());
   
  -     // Clean up all entries in the include vector.
  -     for_each(m_includeStack.begin(),
  -                      m_includeStack.end(),
  -                      DeleteFunctor<XMLURL>());
  -
        // Clean up the atribute sets vector
        for_each(m_attributeSets.begin(),
                         m_attributeSets.end(),
  @@ -1175,7 +1165,7 @@
        }
        else
        {
  -             return m_includeStack.back()->getURLText();
  +             return m_includeStack.back();
        }
   }
   
  
  
  
  1.21      +1 -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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- Stylesheet.hpp    2000/08/10 18:43:09     1.20
  +++ Stylesheet.hpp    2000/08/11 21:15:44     1.21
  @@ -138,7 +138,7 @@
   typedef XALAN_STD vector<NamespaceVectorType>                                
NamespacesStackType;
   typedef XALAN_STD vector<QName>                                              
        QNameVectorType;
   typedef XALAN_STD vector<const Stylesheet*>                                  
StylesheetVectorType;
  -typedef XALAN_STD vector<const XMLURL*>                                      
URLStackType;
  +typedef XALAN_STD vector<XalanDOMString>                                     
URLStackType;
   typedef XALAN_STD vector<const XPath*>                                       
        XPathVectorType;
   typedef XALAN_STD vector<ElemDecimalFormat*>                         
ElemDecimalFormatVectorType;
   
  
  
  
  1.9       +25 -4     xml-xalan/c/src/XSLT/StylesheetConstructionContext.hpp
  
  Index: StylesheetConstructionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContext.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- StylesheetConstructionContext.hpp 2000/06/07 18:35:01     1.8
  +++ StylesheetConstructionContext.hpp 2000/08/11 21:15:45     1.9
  @@ -184,6 +184,15 @@
         * Determine the fully qualified URI for a string.
         *
         * @param urlString string to qualify
  +      * @return string to fully qualified URI
  +      */
  +     virtual XalanDOMString
  +     getURLStringFromString(const XalanDOMString&    urlString) = 0;
  +
  +     /**
  +      * Determine the fully qualified URI for a string.
  +      *
  +      * @param urlString string to qualify
         * @param base base location for URI
         * @return auto pointer to fully qualified URI
         */
  @@ -193,6 +202,18 @@
                        const XalanDOMString&   base) = 0;
   
        /**
  +      * Determine the fully qualified URI for a string.
  +      *
  +      * @param urlString string to qualify
  +      * @param base base location for URI
  +      * @return string to fully qualified URI
  +      */
  +     virtual XalanDOMString
  +     getURLStringFromString(
  +                     const XalanDOMString&   urlString,
  +                     const XalanDOMString&   base) = 0;
  +
  +     /**
         * Retrieve the URI for the current XSLT namespace, for example,
         * "http://www.w3.org/1999/XSL/Transform"; 
         * 
  @@ -264,7 +285,7 @@
         * and register the document in a table.  If the document has already 
been
         * read in, it will not be reparsed.
         *
  -      * @param url location of the XML
  +      * @param urlString location of the XML
         * @param docHandler pointer to SAX event handler
         * @param docToRegister if using a SAX event handler, the object to 
register in the source docs table. 
         * @return document object, which represents the parsed XML
  @@ -272,9 +293,9 @@
         */
        virtual XalanDocument*
        parseXML(
  -                     const XMLURL&           url,
  -                     DocumentHandler*        docHandler, 
  -                     XalanDocument*          docToRegister) = 0;
  +                     const XalanDOMString&   urlString,
  +                     DocumentHandler*                docHandler, 
  +                     XalanDocument*                  docToRegister) = 0;
   
        /**
         * Given an XSL tag name, return an integer token that corresponds to
  
  
  
  1.10      +22 -4     
xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.cpp
  
  Index: StylesheetConstructionContextDefault.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- StylesheetConstructionContextDefault.cpp  2000/08/10 18:43:10     1.9
  +++ StylesheetConstructionContextDefault.cpp  2000/08/11 21:15:45     1.10
  @@ -232,6 +232,14 @@
   
   
   
  +XalanDOMString
  +StylesheetConstructionContextDefault::getURLStringFromString(const 
XalanDOMString&   urlString)
  +{
  +     return URISupport::getURLStringFromString(urlString);
  +}
  +
  +
  +
   StylesheetConstructionContextDefault::URLAutoPtrType
   StylesheetConstructionContextDefault::getURLFromString(
                        const XalanDOMString&   urlString,
  @@ -242,6 +250,16 @@
   
   
   
  +XalanDOMString
  +StylesheetConstructionContextDefault::getURLStringFromString(
  +                     const XalanDOMString&   urlString,
  +                     const XalanDOMString&   base)
  +{
  +     return URISupport::getURLStringFromString(urlString, base);
  +}
  +
  +
  +
   const XalanDOMString&
   StylesheetConstructionContextDefault::getXSLTNamespaceURI() const
   {
  @@ -318,11 +336,11 @@
   
   XalanDocument*
   StylesheetConstructionContextDefault::parseXML(
  -                     const XMLURL&           url,
  -                     DocumentHandler*        docHandler, 
  -                     XalanDocument*          docToRegister)
  +                     const XalanDOMString&   urlString,
  +                     DocumentHandler*                docHandler, 
  +                     XalanDocument*                  docToRegister)
   {
  -     return m_processor.parseXML(url, docHandler, docToRegister);
  +     return m_processor.parseXML(urlString, docHandler, docToRegister);
   }
   
   
  
  
  
  1.11      +11 -3     
xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp
  
  Index: StylesheetConstructionContextDefault.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- StylesheetConstructionContextDefault.hpp  2000/08/10 18:43:11     1.10
  +++ StylesheetConstructionContextDefault.hpp  2000/08/11 21:15:46     1.11
  @@ -159,11 +159,19 @@
        virtual URLAutoPtrType
        getURLFromString(const XalanDOMString&  urlString);
   
  +     virtual XalanDOMString
  +     getURLStringFromString(const XalanDOMString&    urlString);
  +
        virtual URLAutoPtrType
        getURLFromString(
                        const XalanDOMString&   urlString,
                        const XalanDOMString&   base);
   
  +     virtual XalanDOMString
  +     getURLStringFromString(
  +                     const XalanDOMString&   urlString,
  +                     const XalanDOMString&   base);
  +
        virtual const XalanDOMString&
        getXSLTNamespaceURI() const;
   
  @@ -191,9 +199,9 @@
   
        virtual XalanDocument*
        parseXML(
  -                     const XMLURL&           url,
  -                     DocumentHandler*        docHandler, 
  -                     XalanDocument*          docToRegister);
  +                     const XalanDOMString&   urlString,
  +                     DocumentHandler*                docHandler, 
  +                     XalanDocument*                  docToRegister);
   
        virtual int
        getElementToken(const XalanDOMString&   name) const;
  
  
  
  1.37      +19 -41    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.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- StylesheetHandler.cpp     2000/08/03 15:27:45     1.36
  +++ StylesheetHandler.cpp     2000/08/11 21:15:46     1.37
  @@ -1094,7 +1094,7 @@
   static bool 
   stackContains(
                        const Stylesheet::URLStackType&         stack, 
  -                     const XMLURL&                                           
url)
  +                     const XalanDOMString&                           
urlString)
   {
        const int       n = stack.size();
   
  @@ -1102,7 +1102,7 @@
   
        for(int i = 0; i < n && contains == false; i++)
        {
  -             if(*stack[i] == url)
  +             if(equals(stack[i], urlString))
                {
                        contains = true;
                }
  @@ -1144,39 +1144,30 @@
                        Stylesheet::URLStackType& includeStack = 
m_stylesheet.getIncludeStack();
                        assert(includeStack.size() > 0);
   
  -                     typedef StylesheetConstructionContext::URLAutoPtrType   
URLAutoPtrType;
  +                     const XalanDOMString    hrefUrl = 
m_constructionContext.getURLStringFromString(href, includeStack.back());
  +                     assert(length(hrefUrl) != 0);
   
  -                     URLAutoPtrType  hrefUrl = 
m_constructionContext.getURLFromString(href, includeStack.back()->getURLText());
  -                     assert(hrefUrl.get() != 0);
  -
                        Stylesheet::URLStackType&       importStack = 
m_stylesheet.getStylesheetRoot().getImportStack();
   
  -                     if(stackContains(importStack, *hrefUrl.get()))
  +                     if(stackContains(importStack, hrefUrl))
                        {
  -                             XalanDOMString 
msg(XalanDOMString(hrefUrl->getURLText()) + " is directly or indirectly 
importing itself!");
  +                             XalanDOMString msg(hrefUrl + " is directly or 
indirectly importing itself!");
   
                                throw SAXException(toCharArray(msg));
                        }
  -
  -                     importStack.push_back(hrefUrl.get());
  -
  -                     // We have to release this right now, since the 
stylesheet
  -                     // will delete it during its destructor.  However, once 
we
  -                     // pop it off the stack, we'll need to delete it.
  -                     const XMLURL* const             hrefUrlptr = 
hrefUrl.release();
   
  -                     const XalanDOMString    
theImportURI(hrefUrlptr->getURLText());
  -
  +                     importStack.push_back(hrefUrl);
  +                     
                        // This will take care of cleaning up the stylesheet if 
an exception
                        // is thrown.
                        auto_ptr<Stylesheet>    importedStylesheet( 
                                m_constructionContext.create(
                                m_stylesheet.getStylesheetRoot(), 
  -                             theImportURI));
  +                             hrefUrl));
   
                        StylesheetHandler tp(*importedStylesheet.get(), 
m_constructionContext);
   
  -                     m_constructionContext.parseXML(*hrefUrlptr, &tp, 
importedStylesheet.get());
  +                     m_constructionContext.parseXML(hrefUrl, &tp, 
importedStylesheet.get());
   
                        // Add it to the front of the imports
                        m_stylesheet.addImport(importedStylesheet.get(), true);
  @@ -1185,12 +1176,9 @@
                        // release the auto_ptr.
                        importedStylesheet.release();
   
  -                     assert(importStack.back() == hrefUrlptr);
  -                     importStack.pop_back();
  +                     assert(equals(importStack.back(), hrefUrl));
  +                     importStack.pop_back();         
   
  -                     // The stylesheet is now done with it, so delete it...
  -                     delete hrefUrlptr;
  -
                        m_stylesheet.setXSLTNamespaceURI(saved_XSLNameSpaceURL);
                }
                else if(!isAttrOK(aname, atts, i))
  @@ -1227,33 +1215,23 @@
                        PushPopIncludeState             theStateHandler(*this);
   
                        const XalanDOMString    href = atts.getValue(i);
  -
  -                     typedef StylesheetConstructionContext::URLAutoPtrType   
URLAutoPtrType;
  -
  +             
                        assert(m_stylesheet.getIncludeStack().back() != 0);
  -                     URLAutoPtrType  hrefUrl = 
m_constructionContext.getURLFromString(href, 
m_stylesheet.getIncludeStack().back()->getURLText());
  +                     const XalanDOMString    hrefUrl = 
m_constructionContext.getURLStringFromString(href, 
m_stylesheet.getIncludeStack().back());
   
  -                     if(stackContains(m_stylesheet.getIncludeStack(), 
*hrefUrl.get()))
  +                     if(stackContains(m_stylesheet.getIncludeStack(), 
hrefUrl))
                        {
  -                             XalanDOMString 
msg(XalanDOMString(hrefUrl->getURLText()) + " is directly or indirectly 
including itself!");
  +                             XalanDOMString msg(hrefUrl + " is directly or 
indirectly including itself!");
   
                                throw SAXException(toCharArray(msg));
                        }
   
  -                     m_stylesheet.getIncludeStack().push_back(hrefUrl.get());
  +                     m_stylesheet.getIncludeStack().push_back(hrefUrl);
   
  -                     // We have to release this right now, since the 
stylesheet
  -                     // will delete it during its destructor.  However, once 
we
  -                     // pop it off the stack, we'll need to delete it.
  -                     const XMLURL* const             hrefUrlptr = 
hrefUrl.release();
  +                     m_constructionContext.parseXML(hrefUrl, this, 
&m_stylesheet);
   
  -                     m_constructionContext.parseXML(*hrefUrlptr, this, 
&m_stylesheet);
  -
  -                     assert(m_stylesheet.getIncludeStack().back() == 
hrefUrlptr);
  +                     assert(equals(m_stylesheet.getIncludeStack().back(), 
hrefUrl));
                        m_stylesheet.getIncludeStack().pop_back();
  -
  -                     // The stylesheet is now done with it, so delete it...
  -                     delete hrefUrlptr;
                }
                else if(!isAttrOK(aname, atts, i))
                {
  
  
  
  1.21      +3 -28     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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- StylesheetRoot.cpp        2000/08/01 19:44:34     1.20
  +++ StylesheetRoot.cpp        2000/08/11 21:15:46     1.21
  @@ -139,31 +139,11 @@
        m_defaultRule(0),
        m_defaultRootRule(0)
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::auto_ptr;
  -#endif
  -
  -     if (length(baseIdentifier) != 0)
  -     {
  -             typedef StylesheetConstructionContext::URLAutoPtrType   
URLAutoPtrType;
  -
  -             URLAutoPtrType  
url(constructionContext.getURLFromString(m_baseIdent));
  -
  -             if (url.get() != 0)
  +             const XalanDOMString urlString = 
constructionContext.getURLStringFromString(m_baseIdent);
  +             if (length(urlString) != 0)
                {
  -                     m_baseIdent = url->getURLText();
  -
  -                     URLAutoPtrType  
url2(constructionContext.getURLFromString(m_baseIdent));
  -
  -                     if (url2.get() != 0)
  -                     {
  -                             m_importStack.push_back(url2.get());
  -
  -                             // Release the auto_ptr<>...
  -                             url2.release();
  -                     }
  +                     m_importStack.push_back(urlString);
                }
  -     }
   }                            
   
   
  @@ -173,11 +153,6 @@
   #if !defined(XALAN_NO_NAMESPACES)
        using std::for_each;
   #endif
  -
  -     // Clean up all entries in the vector.
  -     for_each(m_importStack.begin(),
  -                      m_importStack.end(),
  -                      DeleteFunctor<XMLURL>());
   
        delete m_defaultRule;
        delete m_defaultTextRule;
  
  
  
  1.57      +5 -6      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.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- XSLTEngineImpl.cpp        2000/08/11 15:17:22     1.56
  +++ XSLTEngineImpl.cpp        2000/08/11 21:15:47     1.57
  @@ -667,18 +667,17 @@
   
   XalanDocument*
   XSLTEngineImpl::parseXML(
  -                     const XMLURL&           url,
  -                     DocumentHandler*        docHandler,
  -                     XalanDocument*          docToRegister)
  +                     const XalanDOMString&   urlString,
  +                     DocumentHandler*                docHandler,
  +                     XalanDocument*                  docToRegister)
   {
  -     const XalanDOMString&   urlString = url.getURLText();
  -
  +     
        XalanDocument*                  doc =
                        m_xpathEnvSupport.getSourceDocument(urlString);
   
        if(doc == 0)
        {
  -             XSLTInputSource         inputSource(url.getURLText());
  +             XSLTInputSource         inputSource(c_wstr(urlString));
   
                if(0 != docHandler)
                {
  
  
  
  1.43      +4 -4      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.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- XSLTEngineImpl.hpp        2000/08/10 18:43:12     1.42
  +++ XSLTEngineImpl.hpp        2000/08/11 21:15:47     1.43
  @@ -329,7 +329,7 @@
         * and register the document in a table.  If the document has already 
been
         * read in, it will not be reparsed.
         *
  -      * @param url location of the XML
  +      * @param urlString location of the XML
         * @param docHandler pointer to SAX event handler
         * @param docToRegister if using a SAX event handler, the object to 
register in the source docs table. 
         * @return document object, which represents the parsed XML
  @@ -337,9 +337,9 @@
         */
        XalanDocument*
        parseXML(
  -                     const XMLURL&           url,
  -                     DocumentHandler*        docHandler, 
  -                     XalanDocument*          docToRegister);
  +                     const XalanDOMString&   urlString,
  +                     DocumentHandler*                docHandler,
  +                     XalanDocument*                  docToRegister);
   
        /**
         * Reset the state of the XSL processor by reading in a new XSL 
stylesheet
  
  
  

Reply via email to