diff options
| author | Adrian Kummerländer | 2014-05-31 14:18:48 +0200 | 
|---|---|---|
| committer | Adrian Kummerländer | 2014-05-31 14:18:48 +0200 | 
| commit | 1a744712426c9c19019b8ebebdd0c703aae204a6 (patch) | |
| tree | fd82b4e5b0e53b39dd0d9df5e5dda6aa0f050eb0 /src/support | |
| parent | d5367d268e8f2be9dd519b3b90f7baa64d6d50b7 (diff) | |
| download | InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar.gz InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar.bz2 InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar.lz InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar.xz InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.tar.zst InputXSLT-1a744712426c9c19019b8ebebdd0c703aae204a6.zip | |
Revamped external function result trees
* the root node of the result tree of each function is a domain element
** i.e. the root node of "read-xml-file" is "file", the root node of "read-directory" is "directory"
* the root node contains the result state of the function call encoded in a "result" attribute
** possible values are "success" and "error"
** the root node may contain additional attributes such as the target path of a called transformation
* the actual function result is contained within the child nodes of the function root node
** i.e. the XML file tree returned by "read-xml-file" is a child of the function root node
** if specific errors occured they are also returned as child nodes of the function root node
*** this is currently only the case for "transform" where transformation errors are returned as "error" value node childs of the function root node
* updated test cases accordingly
Diffstat (limited to 'src/support')
| -rw-r--r-- | src/support/dom/result_node_facade.cc | 11 | ||||
| -rw-r--r-- | src/support/dom/result_node_facade.h | 4 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/src/support/dom/result_node_facade.cc b/src/support/dom/result_node_facade.cc index 597448b..eeb2cc6 100644 --- a/src/support/dom/result_node_facade.cc +++ b/src/support/dom/result_node_facade.cc @@ -1,6 +1,7 @@  #include "result_node_facade.h"  #include <xercesc/dom/DOMText.hpp> +#include <xercesc/dom/DOMNodeList.hpp>  #include "support/xerces_string_guard.h" @@ -21,6 +22,10 @@ ResultNodeFacade::~ResultNodeFacade() {  	this->root_node_->appendChild(this->result_node_);  } +xercesc::DOMNode* ResultNodeFacade::getNode() { +	return this->result_node_; +} +  void ResultNodeFacade::setAttribute(  	const std::string& name,  	const std::string& value @@ -58,4 +63,10 @@ void ResultNodeFacade::setContent(xercesc::DOMNode* node) {  	this->result_node_->appendChild(node);  } +void ResultNodeFacade::setContent(xercesc::DOMNodeList* nodes) { +	for ( std::size_t index = 0; index != nodes->getLength(); ++index ) { +		this->setContent(nodes->item(index)); +	} +} +  } diff --git a/src/support/dom/result_node_facade.h b/src/support/dom/result_node_facade.h index ccdd850..bf73582 100644 --- a/src/support/dom/result_node_facade.h +++ b/src/support/dom/result_node_facade.h @@ -18,10 +18,14 @@ class ResultNodeFacade {  		);  		~ResultNodeFacade(); +		xercesc::DOMNode* getNode(); +  		void setAttribute(const std::string&, const std::string&);  		void setValueNode(const std::string&, const std::string&); +  		void setContent(const std::string&);  		void setContent(xercesc::DOMNode*); +		void setContent(xercesc::DOMNodeList*);  	private:  		xercesc::DOMDocument* const dom_document_; | 
