10 #ifndef FAULT_SYSTEM_PARSER_H
11 #define FAULT_SYSTEM_PARSER_H
18 #include <carma/fault/DagMLNode.h>
19 #include <carma/fault/DagMLExpr.h>
20 #include <carma/fault/DOMUtils.h>
22 #include <xercesc/dom/DOM.hpp>
23 #include <xercesc/parsers/XercesDOMParser.hpp>
25 class FaultSystemParser
29 void load_xml_file(
const std::string &name,
bool validate =
true);
32 void write_output_stdout(xercesc::DOMDocument *doc, xercesc::DOMNode *node);
35 void write_output_file(xercesc::DOMDocument *doc, xercesc::DOMNode *node,
const std::string &name);
38 xercesc::DOMDocument* getDOMDocument();
41 DagMLNodePtr make_dagmlnode_tree()
const;
44 void traverse_all_children(
const xercesc::DOMNode *node,
unsigned int &num);
47 void expandRange(xercesc::DOMNode *node);
50 void expand_attributes(xercesc::DOMNode *node,
const VariableMap &parent_varmap);
53 void validate_with_dtd(
const std::string &name, xercesc::DOMDocument *doc, xercesc::DOMNode *node);
56 void preprocess_tree(xercesc::DOMNode *node, VariableMap &varmap);
60 xercesc::XercesDOMParser parser_;
61 xercesc::DOMDocument *doc_;