From 7b872121000d4db4026d0c90fcb95a10f1e43694 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Wed, 25 Jun 2014 20:23:35 +0200 Subject: Added support for resolving non-existing paths * previous logic for resolving boost::filesystem::path parameters in the XObjectValue class actively tried to resolve existing files ** this contradicts the planned introduction of e.g. a external "write-file" function * callers of external functions with path arguments now have to enclose them in square brackets if include path resolution is required ** analog to the usage of the "xsl:import" tag * moved "getPathFromSystemId" from compilation local method into static method of IncludeEntityResolver * changed test cases accordingly --- src/support/include_entity_resolver.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/support/include_entity_resolver.h') diff --git a/src/support/include_entity_resolver.h b/src/support/include_entity_resolver.h index 32d9001..ea5fb7a 100644 --- a/src/support/include_entity_resolver.h +++ b/src/support/include_entity_resolver.h @@ -15,6 +15,8 @@ namespace InputXSLT { class IncludeEntityResolver : public xercesc::EntityResolver { public: + static boost::filesystem::path getPathFromSystemId(const XMLCh* const); + IncludeEntityResolver(const std::vector&); xercesc::InputSource* resolveEntity( @@ -22,14 +24,16 @@ class IncludeEntityResolver : public xercesc::EntityResolver { const XMLCh* const ); - boost::filesystem::path resolve( - const XMLCh* const) const; boost::optional resolve( - const boost::filesystem::path&) const; + const std::string&) const; private: const std::vector path_; + boost::optional tryIncludePaths( + const boost::filesystem::path&) const; + + }; } -- cgit v1.2.3