aboutsummaryrefslogtreecommitdiff
path: root/src/support
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-05-31 14:18:48 +0200
committerAdrian Kummerländer2014-05-31 14:18:48 +0200
commit1a744712426c9c19019b8ebebdd0c703aae204a6 (patch)
treefd82b4e5b0e53b39dd0d9df5e5dda6aa0f050eb0 /src/support
parentd5367d268e8f2be9dd519b3b90f7baa64d6d50b7 (diff)
downloadInputXSLT-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.cc11
-rw-r--r--src/support/dom/result_node_facade.h4
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_;