You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/04/05 17:16:36 UTC

cvs commit: xml-xerces/c/samples/Redirect Redirect.cpp RedirectHandlers.cpp RedirectHandlers.hpp

cargilld    2005/04/05 08:16:36

  Modified:    c/samples/Redirect Redirect.cpp RedirectHandlers.cpp
                        RedirectHandlers.hpp
  Log:
  Update Redirect sample to use newer entity resolver callback.
  
  Revision  Changes    Path
  1.12      +6 -1      xml-xerces/c/samples/Redirect/Redirect.cpp
  
  Index: Redirect.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/Redirect/Redirect.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Redirect.cpp	8 Sep 2004 13:55:33 -0000	1.11
  +++ Redirect.cpp	5 Apr 2005 15:16:36 -0000	1.12
  @@ -35,6 +35,9 @@
    * to read the contents of 'personal.dtd'.
    *
    * $Log$
  + * Revision 1.12  2005/04/05 15:16:36  cargilld
  + * Update Redirect sample to use newer entity resolver callback.
  + *
    * Revision 1.11  2004/09/08 13:55:33  peiyongz
    * Apache License Version 2.0
    *
  @@ -139,7 +142,9 @@
       RedirectHandlers handler;
       parser->setDocumentHandler(&handler);
       parser->setErrorHandler(&handler);
  -    parser->setEntityResolver(&handler);
  +    //Use the new XML Entity Resolver
  +    //parser->setEntityResolver(&handler);
  +    parser->setXMLEntityResolver(&handler);    
   
       //
       //  Get the starting time and kick off the parse of the indicated file.
  
  
  
  1.12      +38 -1     xml-xerces/c/samples/Redirect/RedirectHandlers.cpp
  
  Index: RedirectHandlers.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/Redirect/RedirectHandlers.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RedirectHandlers.cpp	12 Jan 2005 20:43:21 -0000	1.11
  +++ RedirectHandlers.cpp	5 Apr 2005 15:16:36 -0000	1.12
  @@ -133,6 +133,8 @@
   }
   
   
  +#if 0
  +// This is the old resolveEntity interface...
   // -----------------------------------------------------------------------
   //  Handlers for the SAX EntityResolver interface
   // -----------------------------------------------------------------------
  @@ -167,3 +169,38 @@
       // They were equal, so redirect to our other file
       return new LocalFileInputSource(gRedirectToFile);
   }
  +#endif
  +// -----------------------------------------------------------------------
  +//  Handlers for the XMLEntityResolver interface
  +// -----------------------------------------------------------------------
  +
  +InputSource* RedirectHandlers::resolveEntity(XMLResourceIdentifier* resourceIdentifier)
  +{
  +    //
  +    //  If its our file, then create a new URL input source for the file that
  +    //  we want to really be used. Otherwise, just return zero to let the
  +    //  default action occur.
  +    //
  +    //  We cannot assume that the XMLCh type is ok to pass to wcscmp(), so
  +    //  just do a comparison ourselves.
  +    //
  +    const XMLCh* s1 = gFileToTrap;
  +    const XMLCh* s2 = resourceIdentifier->getSystemId();
  +    while (true)
  +    {
  +        // Break out on any difference
  +        if (*s1 != *s2)
  +            return 0;
  +
  +        // If one is null, then both were null, so they are equal
  +        if (!*s1)
  +            break;
  +
  +        // Else get the next char
  +        s1++;
  +        s2++;
  +    }
  +
  +    // They were equal, so redirect to our other file
  +    return new LocalFileInputSource(gRedirectToFile);
  +}
  
  
  
  1.9       +15 -2     xml-xerces/c/samples/Redirect/RedirectHandlers.hpp
  
  Index: RedirectHandlers.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/samples/Redirect/RedirectHandlers.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RedirectHandlers.hpp	8 Sep 2004 13:55:33 -0000	1.8
  +++ RedirectHandlers.hpp	5 Apr 2005 15:16:36 -0000	1.9
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.9  2005/04/05 15:16:36  cargilld
  + * Update Redirect sample to use newer entity resolver callback.
  + *
    * Revision 1.8  2004/09/08 13:55:33  peiyongz
    * Apache License Version 2.0
    *
  @@ -52,6 +55,7 @@
   //  Includes
   // ---------------------------------------------------------------------------
   #include <xercesc/sax/HandlerBase.hpp>
  +#include <xercesc/util/XMLEntityResolver.hpp>
   
   XERCES_CPP_NAMESPACE_USE
   
  @@ -60,7 +64,7 @@
   XERCES_CPP_NAMESPACE_END
   
   
  -class RedirectHandlers : public HandlerBase
  +class RedirectHandlers : public HandlerBase, public XMLEntityResolver
   {
   public:
       // -----------------------------------------------------------------------
  @@ -111,6 +115,8 @@
       void fatalError(const SAXParseException& exc);
   
   
  +#if 0
  +    // This is the old resolveEntity interface
       // -----------------------------------------------------------------------
       //  Handlers for the SAX EntityResolver interface
       // -----------------------------------------------------------------------
  @@ -119,7 +125,14 @@
           const   XMLCh* const    publicId
           , const XMLCh* const    systemId
       );
  -
  +#endif
  +    // -----------------------------------------------------------------------
  +    //  Handlers for the XMLEntityResolver interface
  +    // -----------------------------------------------------------------------
  +    InputSource* resolveEntity
  +    (
  +        XMLResourceIdentifier* resourceIdentifier
  +    );
   
   private:
       // -----------------------------------------------------------------------
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org