Class SimpleGraphMLEdgeListImporter

java.lang.Object
org.jgrapht.nio.BaseEventDrivenImporter<Integer,Triple<Integer,Integer,Double>>
org.jgrapht.nio.graphml.SimpleGraphMLEdgeListImporter
All Implemented Interfaces:
EventDrivenImporter<Integer,Triple<Integer,Integer,Double>>

public class SimpleGraphMLEdgeListImporter extends BaseEventDrivenImporter<Integer,Triple<Integer,Integer,Double>> implements EventDrivenImporter<Integer,Triple<Integer,Integer,Double>>
Imports a GraphML file as an edge list. Vertices are numbered from $0$ to $n-1$ in the order they are first encountered in the input file.

This is a simple implementation with supports only a limited set of features of the GraphML specification. For a more rigorous parser use GraphMLImporter. This version is oriented towards parsing speed. Default attribute values are completely ignored.

For a description of the format see http://en.wikipedia.org/wiki/ GraphML or the GraphML Primer.

Below is small example of a graph in GraphML format.

 
 <?xml version="1.0" encoding="UTF-8"?>
 <graphml xmlns="http://graphml.graphdrawing.org/xmlns"  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns 
     http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
   <key id="d0" for="node" attr.name="color" attr.type="string" />
   <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
   <graph id="G" edgedefault="undirected">
     <node id="n0">
       <data key="d0">green</data>
     </node>
     <node id="n1">
       <data key="d0">black</data>
     </node>     
     <node id="n2">
       <data key="d0">blue</data>
     </node>
     <node id="n3">
       <data key="d0">red</data>
     </node>
     <node id="n4">
       <data key="d0">white</data>
     </node>
     <node id="n5">
       <data key="d0">turquoise</data>
     </node>
     <edge id="e0" source="n0" target="n2">
       <data key="d1">1.0</data>
     </edge>
     <edge id="e1" source="n0" target="n1">
       <data key="d1">1.0</data>
     </edge>
     <edge id="e2" source="n1" target="n3">
       <data key="d1">2.0</data>
     </edge>
     <edge id="e3" source="n3" target="n2"/>
     <edge id="e4" source="n2" target="n4"/>
     <edge id="e5" source="n3" target="n5"/>
     <edge id="e6" source="n5" target="n4">
       <data key="d1">1.1</data>
     </edge>
   </graph>
 </graphml>
 
 

The importer by default validates the input using the 1.0 GraphML Schema. The user can (not recommended) disable the validation by calling setSchemaValidation(boolean).

Author:
Dimitrios Michail
  • Constructor Details

    • SimpleGraphMLEdgeListImporter

      public SimpleGraphMLEdgeListImporter()
      Constructs a new importer.
  • Method Details

    • getEdgeWeightAttributeName

      public String getEdgeWeightAttributeName()
      Get the attribute name for edge weights
      Returns:
      the attribute name
    • setEdgeWeightAttributeName

      public void setEdgeWeightAttributeName(String edgeWeightAttributeName)
      Set the attribute name to use for edge weights.
      Parameters:
      edgeWeightAttributeName - the attribute name
    • isSchemaValidation

      public boolean isSchemaValidation()
      Whether the importer validates the input
      Returns:
      true if the importer validates the input
    • setSchemaValidation

      public void setSchemaValidation(boolean schemaValidation)
      Set whether the importer should validate the input
      Parameters:
      schemaValidation - value for schema validation
    • importInput

      public void importInput(Reader input) throws ImportException
      Description copied from interface: EventDrivenImporter
      Import a graph
      Specified by:
      importInput in interface EventDrivenImporter<Integer,Triple<Integer,Integer,Double>>
      Parameters:
      input - the input reader
      Throws:
      ImportException - in case any error occurs, such as I/O or parse error