cargilld    2004/12/03 11:40:33

  Modified:    c/src/xercesc/internal DGXMLScanner.cpp DGXMLScanner.hpp
                        IGXMLScanner.cpp IGXMLScanner.hpp IGXMLScanner2.cpp
                        SGXMLScanner.cpp SGXMLScanner.hpp WFXMLScanner.cpp
                        WFXMLScanner.hpp XMLScanner.cpp XMLScanner.hpp
               c/src/xercesc/util XMLResourceIdentifier.hpp
  Log:
  Change call to resolveEntity to pass in public id so that only one call to 
resolveEntity is needed (a follow-on to Alberto's fix).
  
  Revision  Changes    Path
  1.57      +12 -8     xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp
  
  Index: DGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- DGXMLScanner.cpp  3 Dec 2004 17:01:58 -0000       1.56
  +++ DGXMLScanner.cpp  3 Dec 2004 19:40:30 -0000       1.57
  @@ -925,7 +925,7 @@
           // Eat the opening square bracket
           fReaderMgr.getNextChar();
   
  -        checkInternalDTD(hasExtSubset, sysId);
  +        checkInternalDTD(hasExtSubset, sysId, pubId);
   
           //  And try to scan the internal subset. If we fail, try to recover
           //  by skipping forward tot he close angle and returning.
  @@ -974,7 +974,8 @@
           Janitor<InputSource> janSrc(srcUsed);
           if (fUseCachedGrammar)
           {
  -            srcUsed = resolveSystemId(sysId);
  +            srcUsed = resolveSystemId(sysId, pubId);
  +            janSrc.reset(srcUsed);
               Grammar* grammar = 
fGrammarResolver->getGrammar(srcUsed->getSystemId());
   
               if (grammar && grammar->getGrammarType() == 
Grammar::DTDGrammarType) {
  @@ -1021,7 +1022,7 @@
           {
               // And now create a reader to read this entity
               XMLReader* reader;
  -            if(srcUsed!=0)
  +            if(srcUsed) {
                   reader = fReaderMgr.createReader
                           (
                               *srcUsed
  @@ -1031,7 +1032,8 @@
                               , XMLReader::Source_External
                               , fCalculateSrcOfs
                           );
  -            else
  +            }
  +            else {
                   reader = fReaderMgr.createReader
                           (
                               sysId
  @@ -1043,7 +1045,8 @@
                               , srcUsed
                               , fCalculateSrcOfs
                           );
  -
  +                janSrc.reset(srcUsed);
  +            }
               //  If it failed then throw an exception
               if (!reader)
                   ThrowXMLwithMemMgr1(RuntimeException, 
XMLExcepts::Gen_CouldNotOpenDTD, srcUsed->getSystemId(), fMemoryManager);
  @@ -2470,7 +2473,8 @@
       }
   }
   
  -InputSource* DGXMLScanner::resolveSystemId(const XMLCh* const sysId)
  +InputSource* DGXMLScanner::resolveSystemId(const XMLCh* const sysId
  +                                          ,const XMLCh* const pubId)
   {
       //Normalize sysId 
       XMLBufBid nnSys(&fBufMgr);
  @@ -2493,7 +2497,7 @@
           ReaderMgr::LastExtEntityInfo lastInfo;
           fReaderMgr.getLastExtEntityInfo(lastInfo);
           XMLResourceIdentifier 
resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
  -                            expSysId.getRawBuffer(), 0, 
XMLUni::fgZeroLenString, lastInfo.systemId);
  +                            expSysId.getRawBuffer(), 0, pubId, 
lastInfo.systemId);
           srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
       }
       else
  
  
  
  1.15      +5 -1      xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp
  
  Index: DGXMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- DGXMLScanner.hpp  8 Sep 2004 13:56:13 -0000       1.14
  +++ DGXMLScanner.hpp  3 Dec 2004 19:40:30 -0000       1.15
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.15  2004/12/03 19:40:30  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.14  2004/09/08 13:56:13  peiyongz
    * Apache License Version 2.0
    *
  @@ -150,7 +153,8 @@
       virtual void scanDocTypeDecl();
       virtual void scanReset(const InputSource& src);
       virtual void sendCharData(XMLBuffer& toSend);
  -    virtual InputSource* resolveSystemId(const XMLCh* const sysId); 
  +    virtual InputSource* resolveSystemId(const XMLCh* const sysId
  +                                        ,const XMLCh* const pubId); 
   
       // 
-----------------------------------------------------------------------
       //  Private helper methods
  
  
  
  1.80      +9 -6      xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- IGXMLScanner.cpp  3 Dec 2004 17:01:58 -0000       1.79
  +++ IGXMLScanner.cpp  3 Dec 2004 19:40:30 -0000       1.80
  @@ -1376,7 +1376,7 @@
           // Eat the opening square bracket
           fReaderMgr.getNextChar();
   
  -        checkInternalDTD(hasExtSubset, sysId);
  +        checkInternalDTD(hasExtSubset, sysId, pubId);
   
           //  And try to scan the internal subset. If we fail, try to recover
           //  by skipping forward tot he close angle and returning.
  @@ -1425,7 +1425,8 @@
           Janitor<InputSource> janSrc(srcUsed);
           if (fUseCachedGrammar)
           {
  -            srcUsed = resolveSystemId(sysId);
  +            srcUsed = resolveSystemId(sysId, pubId);
  +            janSrc.reset(srcUsed);
               Grammar* grammar = 
fGrammarResolver->getGrammar(srcUsed->getSystemId());
   
               if (grammar && grammar->getGrammarType() == 
Grammar::DTDGrammarType) {
  @@ -1470,7 +1471,7 @@
           {
               // And now create a reader to read this entity
               XMLReader* reader;
  -            if(srcUsed!=0)
  +            if (srcUsed) {
                   reader = fReaderMgr.createReader
                           (
                               *srcUsed
  @@ -1480,7 +1481,8 @@
                               , XMLReader::Source_External
                               , fCalculateSrcOfs
                           );
  -            else
  +            }
  +            else {
                   reader = fReaderMgr.createReader
                           (
                               sysId
  @@ -1492,7 +1494,8 @@
                               , srcUsed
                               , fCalculateSrcOfs
                           );
  -
  +                janSrc.reset(srcUsed);
  +            }
               //  If it failed then throw an exception
               if (!reader)
                   ThrowXMLwithMemMgr1(RuntimeException, 
XMLExcepts::Gen_CouldNotOpenDTD, srcUsed->getSystemId(), fMemoryManager);
  
  
  
  1.24      +5 -1      xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp
  
  Index: IGXMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- IGXMLScanner.hpp  8 Sep 2004 13:56:13 -0000       1.23
  +++ IGXMLScanner.hpp  3 Dec 2004 19:40:30 -0000       1.24
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.24  2004/12/03 19:40:30  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.23  2004/09/08 13:56:13  peiyongz
    * Apache License Version 2.0
    *
  @@ -189,7 +192,8 @@
       virtual void scanDocTypeDecl();
       virtual void scanReset(const InputSource& src);
       virtual void sendCharData(XMLBuffer& toSend);
  -    virtual InputSource* resolveSystemId(const XMLCh* const sysId);
  +    virtual InputSource* resolveSystemId(const XMLCh* const sysId
  +                                        ,const XMLCh* const pubId);
   
       // 
-----------------------------------------------------------------------
       //  Private helper methods
  
  
  
  1.76      +4 -3      xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
  
  Index: IGXMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- IGXMLScanner2.cpp 19 Oct 2004 15:08:53 -0000      1.75
  +++ IGXMLScanner2.cpp 3 Dec 2004 19:40:30 -0000       1.76
  @@ -1839,7 +1839,8 @@
           fModel = fGrammarResolver->getXSModel();
   }
   
  -InputSource* IGXMLScanner::resolveSystemId(const XMLCh* const sysId)
  +InputSource* IGXMLScanner::resolveSystemId(const XMLCh* const sysId
  +                                          ,const XMLCh* const pubId)
   {
       //Normalize sysId 
       XMLBufBid nnSys(&fBufMgr);
  @@ -1862,7 +1863,7 @@
           ReaderMgr::LastExtEntityInfo lastInfo;
           fReaderMgr.getLastExtEntityInfo(lastInfo);
           XMLResourceIdentifier 
resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
  -                              expSysId.getRawBuffer(), 0, 
XMLUni::fgZeroLenString, lastInfo.systemId);
  +                              expSysId.getRawBuffer(), 0, pubId, 
lastInfo.systemId);
           srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
       }
       else
  
  
  
  1.101     +4 -3      xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.100
  retrieving revision 1.101
  diff -u -r1.100 -r1.101
  --- SGXMLScanner.cpp  19 Oct 2004 15:08:53 -0000      1.100
  +++ SGXMLScanner.cpp  3 Dec 2004 19:40:30 -0000       1.101
  @@ -3671,7 +3671,8 @@
           fModel = fGrammarResolver->getXSModel();
   }
   
  -InputSource* SGXMLScanner::resolveSystemId(const XMLCh* const sysId)
  +InputSource* SGXMLScanner::resolveSystemId(const XMLCh* const sysId
  +                                          ,const XMLCh* const pubId)
   {
       //Normalize sysId 
       XMLBufBid nnSys(&fBufMgr);
  @@ -3694,7 +3695,7 @@
           ReaderMgr::LastExtEntityInfo lastInfo;
           fReaderMgr.getLastExtEntityInfo(lastInfo);
           XMLResourceIdentifier 
resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
  -                            expSysId.getRawBuffer(), 0, 
XMLUni::fgZeroLenString, lastInfo.systemId);
  +                            expSysId.getRawBuffer(), 0, pubId, 
lastInfo.systemId);
           srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
       }
       else
  
  
  
  1.22      +5 -1      xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp
  
  Index: SGXMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- SGXMLScanner.hpp  27 Sep 2004 21:04:38 -0000      1.21
  +++ SGXMLScanner.hpp  3 Dec 2004 19:40:30 -0000       1.22
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.22  2004/12/03 19:40:30  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.21  2004/09/27 21:04:38  knoaman
    * Update SGXMLScanner to allow access of data and methods to XSAXMLScanner
    *
  @@ -280,7 +283,8 @@
       );
       virtual void scanDocTypeDecl();
       virtual void sendCharData(XMLBuffer& toSend);
  -    virtual InputSource* resolveSystemId(const XMLCh* const sysId);
  +    virtual InputSource* resolveSystemId(const XMLCh* const sysId
  +                                        ,const XMLCh* const pubId);
   
       // 
-----------------------------------------------------------------------
       //  Private helper methods
  
  
  
  1.26      +3 -2      xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp
  
  Index: WFXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- WFXMLScanner.cpp  28 Sep 2004 21:27:38 -0000      1.25
  +++ WFXMLScanner.cpp  3 Dec 2004 19:40:30 -0000       1.26
  @@ -2053,7 +2053,8 @@
       sendCharData(toUse);
   }
   
  -InputSource* WFXMLScanner::resolveSystemId(const XMLCh* const)
  +InputSource* WFXMLScanner::resolveSystemId(const XMLCh* const
  +                                          ,const XMLCh* const pubId)
   {
       return 0;
   }
  
  
  
  1.12      +5 -1      xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp
  
  Index: WFXMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- WFXMLScanner.hpp  8 Sep 2004 13:56:13 -0000       1.11
  +++ WFXMLScanner.hpp  3 Dec 2004 19:40:30 -0000       1.12
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.12  2004/12/03 19:40:30  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.11  2004/09/08 13:56:13  peiyongz
    * Apache License Version 2.0
    *
  @@ -138,7 +141,8 @@
       virtual void scanDocTypeDecl();
       virtual void scanReset(const InputSource& src);
       virtual void sendCharData(XMLBuffer& toSend);
  -    virtual InputSource* resolveSystemId(const XMLCh* const sysId);
  +    virtual InputSource* resolveSystemId(const XMLCh* const sysId
  +                                        ,const XMLCh* const pubId);
   
       // 
-----------------------------------------------------------------------
       //  Private helper methods
  
  
  
  1.75      +5 -3      xml-xerces/c/src/xercesc/internal/XMLScanner.cpp
  
  Index: XMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- XMLScanner.cpp    20 Oct 2004 15:18:20 -0000      1.74
  +++ XMLScanner.cpp    3 Dec 2004 19:40:30 -0000       1.75
  @@ -1745,14 +1745,16 @@
    *   otherwise it is allowed.
    *
    ***/
  -void XMLScanner::checkInternalDTD(bool hasExtSubset, const XMLCh* const 
sysId)
  +void XMLScanner::checkInternalDTD(bool hasExtSubset
  +                                 ,const XMLCh* const sysId
  +                                 ,const XMLCh* const pubId)
   {
       if (fToCacheGrammar)
           ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Val_CantHaveIntSS, 
fMemoryManager);
   
       if (fUseCachedGrammar && hasExtSubset )
       {
  -        InputSource* sysIdSrc = resolveSystemId(sysId);
  +        InputSource* sysIdSrc = resolveSystemId(sysId, pubId);
           Janitor<InputSource> janSysIdSrc(sysIdSrc);
           Grammar* grammar = 
fGrammarResolver->getGrammar(sysIdSrc->getSystemId());
   
  
  
  
  1.44      +6 -2      xml-xerces/c/src/xercesc/internal/XMLScanner.hpp
  
  Index: XMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.hpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- XMLScanner.hpp    12 Oct 2004 21:33:05 -0000      1.43
  +++ XMLScanner.hpp    3 Dec 2004 19:40:30 -0000       1.44
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.44  2004/12/03 19:40:30  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.43  2004/10/12 21:33:05  peiyongz
    * Change attribute number threshold to 100
    *
  @@ -728,7 +731,8 @@
       virtual void sendCharData(XMLBuffer& toSend) = 0;
   
       //return owned by the caller
  -    virtual InputSource* resolveSystemId(const XMLCh* const sysId) {return 
0;};
  +    virtual InputSource* resolveSystemId(const XMLCh* const sysId
  +                                        ,const XMLCh* const pubId) {return 
0;};
   
       // 
-----------------------------------------------------------------------
       //  Protected scanning methods
  @@ -744,7 +748,7 @@
       // 
-----------------------------------------------------------------------
       //  Private helper methods
       // 
-----------------------------------------------------------------------
  -    void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId);
  +    void checkInternalDTD(bool hasExtSubset, const XMLCh* const sysId, const 
XMLCh* const pubId);
       void checkIDRefs();
       bool isLegalToken(const XMLPScanToken& toCheck);
       XMLTokens senseNextToken(unsigned int& orgReader);
  
  
  
  1.8       +6 -3      xml-xerces/c/src/xercesc/util/XMLResourceIdentifier.hpp
  
  Index: XMLResourceIdentifier.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLResourceIdentifier.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XMLResourceIdentifier.hpp 26 Sep 2004 01:06:31 -0000      1.7
  +++ XMLResourceIdentifier.hpp 3 Dec 2004 19:40:32 -0000       1.8
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2004/12/03 19:40:32  cargilld
  + * Change call to resolveEntity to pass in public id so that only one call 
to resolveEntity is needed (a follow-on to Alberto's fix).
  + *
    * Revision 1.7  2004/09/26 01:06:31  cargilld
    * Fix documentation generation problem.  Replace <pre> with <code>.  Patch 
from James Littlejohn.
    *
  @@ -210,10 +213,10 @@
                               , const XMLCh* const  publicId
                               , const XMLCh* const  baseURI )
       : fResourceIdentifierType(resourceIdentifierType)
  -    , fPublicId(publicId)
       , fSystemId(systemId)
  -    , fBaseURI(baseURI)
  -    , fNameSpace(nameSpace)    
  +    , fNameSpace(nameSpace)
  +    , fPublicId(publicId)
  +    , fBaseURI(baseURI)     
   {
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to