GraphWalker / graphwalker-project

This is the repo for the Model-based testing tool GraphWalker.

Home Page:http://graphwalker.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

graphwalker-cli: Converting .dot to graphml produces redundant double quotes

neofreko opened this issue · comments

Steps to reproduce

Given the following quoted-node.dot file:

digraph SimplestGraph {
    "n0" [label="Start"]
    "n1" [label="v1"]
    "n2" [label="v2"]
}

graphwalker-cli conversion with the following command:

java -jar ~/Downloads/graphwalker-cli-4.2.0.jar convert -i quoted-node.dot -f graphml

will produce the following output:

<?xml version="1.0" encoding="ISO-8859-1"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd" xmlns:y="http://www.yworks.com/xml/graphml">
  <key id="d0" for="node" yfiles.type="nodegraphics"/>
  <key id="d1" for="edge" yfiles.type="edgegraphics"/>
  <graph id="G" edgedefault="directed">
    <node id=""n1"">
      <data key="d0" >
        <y:ShapeNode >
          <y:Geometry  x="241.875" y="158.701171875" width="95.0" height="30.0"/>
          <y:Fill color="#CCCCFF"  transparent="false"/>
          <y:BorderStyle type="line" width="1.0" color="#000000" />
          <y:NodeLabel x="1.5" y="5.6494140625" width="92.0" height="18.701171875" visible="true" alignment="center" fontFamily="Dialog" fontSize="12" fontStyle="plain" textColor="#000000" modelName="internal" modelPosition="c" autoSizePolicy="content">v1</y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
    <node id=""n2"">
      <data key="d0" >
        <y:ShapeNode >
          <y:Geometry  x="241.875" y="158.701171875" width="95.0" height="30.0"/>
          <y:Fill color="#CCCCFF"  transparent="false"/>
          <y:BorderStyle type="line" width="1.0" color="#000000" />
          <y:NodeLabel x="1.5" y="5.6494140625" width="92.0" height="18.701171875" visible="true" alignment="center" fontFamily="Dialog" fontSize="12" fontStyle="plain" textColor="#000000" modelName="internal" modelPosition="c" autoSizePolicy="content">v2</y:NodeLabel>
          <y:Shape type="rectangle"/>
        </y:ShapeNode>
      </data>
    </node>
  </graph>
</graphml>

Expected

quoted node name in dot file should not produce duplicate quotes under graphml file.

per .dot file spec, node ID can have quotes.

An ID is one of the following:

Any string of alphabetic ([a-zA-Z\200-\377]) characters, underscores ('_') or digits ([0-9]), not > beginning with a digit;
a numeral [-]?(.[0-9]+ | [0-9]+(.[0-9]*)? );
any double-quoted string ("...") possibly containing escaped quotes (")1;
an HTML string (<...>).

Actual

node id has redundant quote.

<node id=""n1"">
<node id=""n2"">

Thanks for the report!

I created a PR to remedy the problem: #239

You can try it out by downloading the latest build from: https://github.com/GraphWalker/graphwalker-project/releases/tag/LATEST-BUILDS