You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2005/08/11 23:00:18 UTC

svn commit: r231517 - in /xerces/c/trunk/src/xercesc: internal/DGXMLScanner.cpp internal/IGXMLScanner2.cpp internal/ReaderMgr.cpp internal/SGXMLScanner.cpp internal/XMLScanner.cpp util/XMLResourceIdentifier.hpp validators/schema/TraverseSchema.cpp

Author: amassari
Date: Thu Aug 11 13:59:30 2005
New Revision: 231517

URL: http://svn.apache.org/viewcvs?rev=231517&view=rev
Log:
Added a Locator object to the XMLResourceIdentifier so that resolveEntity can know who is calling it

Modified:
    xerces/c/trunk/src/xercesc/internal/DGXMLScanner.cpp
    xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp
    xerces/c/trunk/src/xercesc/internal/ReaderMgr.cpp
    xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
    xerces/c/trunk/src/xercesc/internal/XMLScanner.cpp
    xerces/c/trunk/src/xercesc/util/XMLResourceIdentifier.hpp
    xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp

Modified: xerces/c/trunk/src/xercesc/internal/DGXMLScanner.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/DGXMLScanner.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/DGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/DGXMLScanner.cpp Thu Aug 11 13:59:30 2005
@@ -2384,7 +2384,8 @@
         ReaderMgr::LastExtEntityInfo lastInfo;
         fReaderMgr.getLastExtEntityInfo(lastInfo);
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                            expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId);
+                            expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId,
+                            &fReaderMgr);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);       
     }
     else

Modified: xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp Thu Aug 11 13:59:30 2005
@@ -1698,7 +1698,8 @@
             ReaderMgr::LastExtEntityInfo lastInfo;
             fReaderMgr.getLastExtEntityInfo(lastInfo);
             XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::SchemaGrammar,
-                            expSysId.getRawBuffer(), uri, XMLUni::fgZeroLenString, lastInfo.systemId);
+                            expSysId.getRawBuffer(), uri, XMLUni::fgZeroLenString, lastInfo.systemId,
+                            &fReaderMgr);
             srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
         }
         else
@@ -1884,7 +1885,8 @@
         ReaderMgr::LastExtEntityInfo lastInfo;
         fReaderMgr.getLastExtEntityInfo(lastInfo);
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                              expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId);
+                              expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId,
+                              &fReaderMgr);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
     else

Modified: xerces/c/trunk/src/xercesc/internal/ReaderMgr.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/ReaderMgr.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/ReaderMgr.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/ReaderMgr.cpp Thu Aug 11 13:59:30 2005
@@ -494,7 +494,8 @@
         LastExtEntityInfo lastInfo;
         getLastExtEntityInfo(lastInfo);
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                            expSysId.getRawBuffer(), XMLUni::fgZeroLenString, pubId, lastInfo.systemId);
+                            expSysId.getRawBuffer(), XMLUni::fgZeroLenString, pubId, lastInfo.systemId,
+                            this);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
 
@@ -643,7 +644,8 @@
     if (fEntityHandler)
     {
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                            expSysId.getRawBuffer(), XMLUni::fgZeroLenString, pubId, baseURI);
+                            expSysId.getRawBuffer(), XMLUni::fgZeroLenString, pubId, baseURI,
+                            this);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
 

Modified: xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp Thu Aug 11 13:59:30 2005
@@ -3540,7 +3540,8 @@
             ReaderMgr::LastExtEntityInfo lastInfo;
             fReaderMgr.getLastExtEntityInfo(lastInfo);
             XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::SchemaGrammar,
-                            expSysId.getRawBuffer(), uri, XMLUni::fgZeroLenString, lastInfo.systemId);
+                            expSysId.getRawBuffer(), uri, XMLUni::fgZeroLenString, lastInfo.systemId,
+                            &fReaderMgr);
             srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
         }
         else
@@ -3705,7 +3706,8 @@
         ReaderMgr::LastExtEntityInfo lastInfo;
         fReaderMgr.getLastExtEntityInfo(lastInfo);
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                            expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId);
+                            expSysId.getRawBuffer(), 0, pubId, lastInfo.systemId,
+                            &fReaderMgr);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
     else

Modified: xerces/c/trunk/src/xercesc/internal/XMLScanner.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/XMLScanner.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/XMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/XMLScanner.cpp Thu Aug 11 13:59:30 2005
@@ -1658,7 +1658,8 @@
         ReaderMgr::LastExtEntityInfo lastInfo;
         fReaderMgr.getLastExtEntityInfo(lastInfo);
         XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity,
-                            systemId, 0, XMLUni::fgZeroLenString, lastInfo.systemId);
+                            systemId, 0, XMLUni::fgZeroLenString, lastInfo.systemId,
+                            &fReaderMgr);
         srcToUse = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
 

Modified: xerces/c/trunk/src/xercesc/util/XMLResourceIdentifier.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLResourceIdentifier.hpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLResourceIdentifier.hpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLResourceIdentifier.hpp Thu Aug 11 13:59:30 2005
@@ -23,6 +23,8 @@
 
 XERCES_CPP_NAMESPACE_BEGIN
 
+class Locator;
+
 /**
   * <p>This class is used along with XMLEntityResolver to resolve entities.
   * Instead of passing publicId and systemId on the resolveEntity call, 
@@ -93,7 +95,7 @@
 {
 public:
 
-    /** @name Public Contants */
+    /** @name Public Constants */
     //@{
     enum ResourceIdentifierType {
         SchemaGrammar = 0,
@@ -113,7 +115,8 @@
                             , const XMLCh* const  systemId
                             , const XMLCh* const  nameSpace = 0
                             , const XMLCh* const  publicId = 0
-                            , const XMLCh* const  baseURI = 0);
+                            , const XMLCh* const  baseURI = 0
+                            , const Locator*      locator = 0);
 
     /** Destructor */
     ~XMLResourceIdentifier()
@@ -133,7 +136,7 @@
     const XMLCh* getSchemaLocation()    const;
     const XMLCh* getBaseURI()           const;
     const XMLCh* getNameSpace()         const;
-
+    const Locator* getLocator()         const;
     //@}
 
 private :
@@ -143,7 +146,7 @@
     const XMLCh*                    fSystemId;
     const XMLCh*                    fBaseURI;
     const XMLCh*                    fNameSpace;
-
+    const Locator*                  fLocator;
 
     /* Unimplemented constructors and operators */
 
@@ -185,16 +188,23 @@
     return fNameSpace;
 }
 
+inline const Locator* XMLResourceIdentifier::getLocator() const
+{
+    return fLocator;
+}
+
 inline XMLResourceIdentifier::XMLResourceIdentifier(const ResourceIdentifierType resourceIdentifierType
                             , const XMLCh* const  systemId
                             , const XMLCh* const  nameSpace
                             , const XMLCh* const  publicId
-                            , const XMLCh* const  baseURI )
+                            , const XMLCh* const  baseURI
+                            , const Locator*      locator )
     : fResourceIdentifierType(resourceIdentifierType)
     , fPublicId(publicId)
     , fSystemId(systemId)
     , fBaseURI(baseURI)     
     , fNameSpace(nameSpace)
+    , fLocator(locator)
 {
 }
 

Modified: xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp?rev=231517&r1=231516&r2=231517&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Thu Aug 11 13:59:30 2005
@@ -586,6 +586,9 @@
     // ------------------------------------------------------------------
     // Resolve schema location
     // ------------------------------------------------------------------
+    fLocator->setValues(fSchemaInfo->getCurrentSchemaURL(), 0,
+                        ((XSDElementNSImpl*) elem)->getLineNo(),
+                        ((XSDElementNSImpl*) elem)->getColumnNo());
     InputSource* srcToFill = resolveSchemaLocation(schemaLocation,
             XMLResourceIdentifier::SchemaInclude);
     Janitor<InputSource> janSrc(srcToFill);
@@ -779,6 +782,9 @@
     // ------------------------------------------------------------------
     // Resolve schema location
     // ------------------------------------------------------------------
+    fLocator->setValues(fSchemaInfo->getCurrentSchemaURL(), 0,
+                        ((XSDElementNSImpl*) elem)->getLineNo(),
+                        ((XSDElementNSImpl*) elem)->getColumnNo());
     InputSource* srcToFill = resolveSchemaLocation(schemaLocation,
             XMLResourceIdentifier::SchemaImport, nameSpace);
 
@@ -6628,7 +6634,7 @@
 
     if (fEntityHandler){
         XMLResourceIdentifier resourceIdentifier(resourceIdentitiferType,
-                            normalizedURI, nameSpace, 0, fSchemaInfo->getCurrentSchemaURL());
+                            normalizedURI, nameSpace, 0, fSchemaInfo->getCurrentSchemaURL(), fLocator);
         srcToFill = fEntityHandler->resolveEntity(&resourceIdentifier);
     }
 
@@ -7863,6 +7869,9 @@
     // ------------------------------------------------------------------
     // Resolve schema location
     // ------------------------------------------------------------------
+    fLocator->setValues(fSchemaInfo->getCurrentSchemaURL(), 0,
+                        ((XSDElementNSImpl*) redefineElem)->getLineNo(),
+                        ((XSDElementNSImpl*) redefineElem)->getColumnNo());
     InputSource*         srcToFill = resolveSchemaLocation(schemaLocation,
                                         XMLResourceIdentifier::SchemaRedefine);
     Janitor<InputSource> janSrc(srcToFill);



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