You can setup bundled properties for the graph, just like you did with the vertices and edges.
Something like this:
struct graph_props {
std::string myName;
...
};
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
NetworkNode, NetworkEdge, graph_props > DGraph;
In order to convince boost::read_graphml to save graph properties you have to supply a property map ( which will have just one member ) Unfortunately, AFAIK you will have to extract the values read_graphml places into this map and set the bundled graph property attributes. Maybe someone can point out a neater way to do this.
Something like this:
std::map< std::string, std::string > attribute_name2name;
boost::associative_property_map< std::map< std::string, std::string > >
graphname_map( attribute_name2name );
dp.property("graphname", graphname_map );
boost::read_graphml(stream, this->topology, dp);
topology[boost::graph_bundle].myName = get(graphname_map,"graphname");