24 typedef std::map<std::string, graphmlt::node_indext>
name_mapt;
27 const std::string &name,
31 std::pair<name_mapt::iterator, bool> entry=
32 name_to_node.insert(std::make_pair(name, 0));
34 entry.first->second=graph.
add_node();
36 return entry.first->second;
42 std::map<std::string, std::map<std::string, std::string> > &defaults,
44 std::string &entrynode)
51 add_node(node_name, name_to_node, dest);
58 for(xmlt::elementst::const_iterator
63 assert(e_it->name==
"data");
65 if(e_it->get_attribute(
"key")==
"violation" &&
68 else if(e_it->get_attribute(
"key")==
"entry" &&
84 std::map<std::string, std::string> &edge_defaults=defaults[
"edge"];
85 for(std::map<std::string, std::string>::const_iterator
86 it=edge_defaults.begin();
87 it!=edge_defaults.end();
91 for(xmlt::elementst::const_iterator
105 dest[s].
out[t].xml_node=xml_w_defaults;
106 dest[t].
in[s].xml_node=xml_w_defaults;
111 for(xmlt::elementst::const_iterator
126 for(xmlt::elementst::const_iterator
130 if(e_it->name==
"default")
152 assert(dest.
empty());
155 std::map<std::string, std::map<std::string, std::string> > defaults;
156 std::string entrynode;
166 for(std::size_t i=0; !err && i<dest.
size(); ++i)
173 assert(!entrynode.empty());
174 name_mapt::const_iterator it=name_to_node.find(entrynode);
175 assert(it!=name_to_node.end());
196 const std::string &filename,
211 xmlt graphml(
"graphml");
214 "http://www.w3.org/2001/XMLSchema-instance");
217 "http://graphml.graphdrawing.org/xmlns");
489 data.set_attribute(
"key", kv.first);
493 bool entry_done=
false;
535 for(graphmlt::edgest::const_iterator
542 os <<
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n";