7#include "xmlBase/EResolver.h"
8#include "facilities/Util.h"
9#include "xmlBase/Dom.h"
10#include <xercesc/util/XMLString.hpp>
11#include <xercesc/util/XMLUniDefs.hpp>
12#include <xercesc/validators/schema/SchemaSymbols.hpp>
14#include <xercesc/framework/LocalFileInputSource.hpp>
15#include <xercesc/internal/XMLScanner.hpp>
16#include <xercesc/sax/Locator.hpp>
19 XERCES_CPP_NAMESPACE_USE
36 const XMLCh* publicId = xmlRI->getPublicId();
37 const XMLCh* systemId = xmlRI->getSystemId();
38 const XMLCh* baseURI = xmlRI->getBaseURI();
41 if ( XMLString::stringLen( publicId ) > 0 ) {
return translateEnv( publicId, baseURI ); }
43 return translateEnv( systemId, baseURI );
46 InputSource* EResolver::translateEnv(
const XMLCh*
id,
const XMLCh* baseURI ) {
48 char* chId = XMLString::transcode(
id );
49 std::string* idStr =
new std::string( chId );
50 XMLString::release( &chId );
53 m_entities.push_back( idStr );
55 if ( !nSub )
return 0;
58 std::cout <<
"Bad entity name " << idStr << std::endl;
64 XMLCh* realName = XMLString::transcode( idStr->c_str() );
68 LocalFileInputSource* src =
new LocalFileInputSource( baseURI, realName );
69 XMLString::release( &realName );
74 for (
unsigned i = 0; i < m_entities.size(); i++ ) {
delete m_entities[i]; }
static int expandEnvVar(std::string *toExpand, const std::string &openDel=std::string("$("), const std::string &closeDel=std::string(")"))
virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource * resolveEntity(XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier *xmlRI)