title: JgraphT GraphML importer failing on geojson properties
body: <p>I am having an issue using the GraphMLImporter in JGraphT and I'm completely stumped.</p>
  
  <p>As part of our serialization process, we export our graph to graphml format.  That works fine;  we can take the exported file and view it in gephi or any other graph parsing program without a problem.  The issue happens when we try to import (deserialize) the file back in to a graph.</p>
  
  <p>When we export, one of the fields on our object is a geometry.  We need this, so we export it as a property of each vertex (each vertex is representative of a small region, the geometry is the associated region).  When we read it back in, rather than giving me the full string as an attribute, for some reason we get only the last coordinate and some of the brackets.  Which of course isn't valid geometry, and it chokes.</p>
  
  <p>For reference, here is what we get from the exporter when we write our graph to graphml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;graphml xmlns="http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;key id="key0" for="node" attr.name="lat" attr.type="double"/&gt;
  &lt;key id="key1" for="node" attr.name="lng" attr.type="double"/&gt;
  &lt;key id="key2" for="node" attr.name="geometry" attr.type="string"/&gt;
  &lt;key id="key3" for="edge" attr.name="travel_time" attr.type="double"/&gt;
  &lt;graph edgedefault="directed"&gt;
  &lt;node id="1"&gt;
  &lt;data key="key0"&gt;0.5&lt;/data&gt;
  &lt;data key="key1"&gt;0.5&lt;/data&gt;
  &lt;data key="key2"&gt;"{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,1.0],[1.0,1.0],[1.0,0.0],[0.0,0.0]]]}"&lt;/data&gt;
  &lt;/node&gt;
  &lt;node id="2"&gt;
  &lt;data key="key0"&gt;0.5&lt;/data&gt;
  &lt;data key="key1"&gt;1.5&lt;/data&gt;
  &lt;data key="key2"&gt;"{"type":"Polygon","coordinates":[[[0.0,1.0],[0.0,2.0],[1.0,2.0],[1.0,1.0],[0.0,1.0]]]}"&lt;/data&gt;
  &lt;/node&gt;
  &lt;edge id="1" source="1" target="2"&gt;
  &lt;data key="key3"&gt;1.0&lt;/data&gt;
  &lt;/edge&gt;
  &lt;edge id="2" source="2" target="1"&gt;
  &lt;data key="key3"&gt;1.0&lt;/data&gt;
  &lt;/edge&gt;
  &lt;/graph&gt;
  &lt;/graphml&gt;
  </code></pre>
  
  <p>When I deserialize the graph, the attributes come across correctly for key0 and key1 (those are lat longs) but the string for key2 (our geometry object) comes back as the following:</p>
  
  <pre><code>,[0.0,0.0]]]}"
  </code></pre>
  
  <p>As a result, I cannot deserialize the geometry.</p>
  
  <p>So my question is, why the hell is this happening?  Is this a limitation in the graphml format, maybe it can't contain geojson strings for some reason?  Do I not know how to XML properly?</p>
  
  <p>Any help would be appreciated.</p>
  
  <p>Just so people know, though, I have been through the demo that Jgrapht provides for using the GraphML importer and exporter, but it doesn't really have any information on this.  It only deals with very simple objects, not something this complicated.  </p>