Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
XercesAdapter.h
Go to the documentation of this file.
1#pragma once
2
3#include "storm-config.h"
4#ifdef STORM_HAVE_XERCES
5
6#include <xercesc/parsers/XercesDOMParser.hpp>
7#include <xercesc/util/XMLString.hpp>
8
9#include <xercesc/dom/DOM.hpp>
10#include <xercesc/sax/HandlerBase.hpp>
11#include <xercesc/util/PlatformUtils.hpp>
12
15
16namespace storm {
17namespace adapters {
18inline std::string XMLtoString(const XMLCh* xmlString) {
19 char* tmp = xercesc::XMLString::transcode(xmlString);
20 auto result = std::string(tmp);
21 delete tmp;
22 return result;
23}
24
25inline std::string getName(xercesc::DOMNode const* node) {
26 switch (node->getNodeType()) {
27 case xercesc::DOMNode::NodeType::ELEMENT_NODE: {
28 auto elementNode = (xercesc::DOMElement*)node;
29 return XMLtoString(elementNode->getTagName());
30 }
31 case xercesc::DOMNode::NodeType::TEXT_NODE:
32 return XMLtoString(node->getNodeValue());
33 case xercesc::DOMNode::NodeType::ATTRIBUTE_NODE:
34 return XMLtoString(node->getNodeName());
35 default:
36 STORM_LOG_THROW(false, storm::exceptions::IllegalArgumentException, "Unknown DOMNode type");
37 }
38}
39} // namespace adapters
40} // namespace storm
41#endif
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.
Definition cli.cpp:18