aboutsummaryrefslogtreecommitdiff
path: root/src/support/include_entity_resolver.cc
AgeCommit message (Collapse)Author
2014-06-11Fixed include entity resolution logicAdrian Kummerländer
* if a square bracket enclosed path can be extracted but not resolved against the include path vector we should return at least the extracted path and not the raw path * otherwise the system has no chance of correctly resolving things ** additionally error messages were showing the square bracket syntax instead of the actual path
2014-06-09Added include path resolution to FilesystemContext constructorAdrian Kummerländer
* extracted system id handling into separate "resolve" method overload of "IncludeEntityResolver" class * paths to be resolved against the include path vector are enclosed by square brackets ** FilesystemContext for external functions was instantiated using the unmodified systemId provided by xalan::Locator ** this commit adds include path resolution to that step *** exceptions were thrown as the program tried to instantiate a FilesystemContext instance without resolving the square bracket syntax * changed FunctionTransform "target" attribute content to the target path filename instead of the full path
2014-05-29Improved TransformationFacade error handlingAdrian Kummerländer
* ErrorHandler class created in 5859cb6 now caches all errors instead of pushing them to std::cerr ** cached errors are retrieved by TransformationFacade's "generate" member method * test frontend pushes all errors to std::cerr * FunctionTransform returns errors to the calling template as XML ** FunctionTransform test case demonstrates how one may test for successful transformation * "generate" member method returns std::string vector wrapped in a std::unique_ptr ** this is used as a kind of optional pointer, as the std::unique_ptr instance only wraps a vector if errors where actually generated
2014-05-23Simplified IncludeEntityResolver constructor and improved constnessAdrian Kummerländer
* std::vector<FilesystemContext> instance is now const ** this required a constructor change * marked resolve member method as const as it doesn't need to modify anything ** this is also true for the overloaded resolveEntity member method ** the base class xercesc::EntityResolver prevents us from marking it as such
2014-05-22Replaced std::pair<bool, *> with the more convenient boost::optional<*>Adrian Kummerländer
* InputXSLT is dependent on boost anyway, so there is no argument to be made to emulate boost::optional using std::pair
2014-05-21Moved include path resolution into separate member methodAdrian Kummerländer
* enables access to include path resolution from external functions ** this will be useful to enable reading files from the include path using the external read-file or read-xml-file functions * moved file path extraction into a function local to the compilation unit
2014-05-20Replaced FunctionResolveInclude with IncludeEntityResolverAdrian Kummerländer
* xalan / xerces offers the possibility of implementing custom entity resolvers which are called upon by "<xsl:include..." ** such a custom resolver was implemented to resolve include path entities * this is a much better way to support include paths than offering a custom external "resolve-include" function * as entity paths are expanded before they are passed to the entity resolver, a special "[path]" syntax simmilar to "#include <path>" had to be implemented