图形描述语言GraphML(1):基本概念

GraphML用于定义图形(graph,对于下面的一个简单图形,

用GraphML描述为:

<?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"
>
  
<graph id="G" edgedefault="undirected">
    
<node id="n0"/>
    
<node id="n1"/>
    
<node id="n2"/>
    
<node id="n3"/>
    
<node id="n4"/>
    
<node id="n5"/>
    
<node id="n6"/>
    
<node id="n7"/>
    
<node id="n8"/>
    
<node id="n9"/>
    
<node id="n10"/>
    
<edge source="n0" target="n2"/>
    
<edge source="n1" target="n2"/>
    
<edge source="n2" target="n3"/>
    
<edge source="n3" target="n5"/>
    
<edge source="n3" target="n4"/>
    
<edge source="n4" target="n6"/>
    
<edge source="n6" target="n5"/>
    
<edge source="n5" target="n7"/>
    
<edge source="n6" target="n8"/>
    
<edge source="n8" target="n7"/>
    
<edge source="n8" target="n9"/>
    
<edge source="n8" target="n10"/>
  
</graph>
</graphml>

 

 可以看出,GraphML中关于图形的一些基本概念如下:



需要注意以下几点:

1.Graph中的元素(element)没有顺序要求

如,下面的Graph是正确的:

  <graph id="G" edgedefault="directed">
    
<node id="n0"/>
    
<edge source="n0" target="n2"/>
    
<node id="n1"/>
    
<node id="n2"/>
  
</graph>

2.有向图和无向图可以混合定义。

Graph必须指定edgedefault

属性

(

directed”

或“

undirected”)


Edge

中也可以单独设置

directed

true

false

3.对于只有一个端点(endpoint)Edge(称为循环边loop edge,自循环selfloop edge,或反射边reflexive edig),是通过为edgesource target 属性设置相同的值来定义的。

 

posted @ 2008-01-23 11:32  心内求法  阅读(1317)  评论(0编辑  收藏  举报