图形描述语言GraphML(2):扩展属性

可以为图形元素定义简单的属性来扩展Graph。属性只能使用xml中的简单类型,如string, numerical等。首先看一个例子:

<? 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" >
    
< default > yellow </ default >
  
</ key >
  
< 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" />
    
< node  id ="n2" >
      
< data  key ="d0" > blue </ data >
    
</ node >
    
< node  id ="n3" >
      
< data  key ="d0" > red </ data >
    
</ node >
    
< node  id ="n4" />
    
< 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 >
 上面的代码可以表示如下的图形:



可以看出,要增加扩展属性,需要在GraphML中增加属性定义和属性值。

属性定义部分声明了属性的标识(id),适用范围,名称,类型和默认值(可选)。如:

 
 
< key  id ="d1"  for ="edge"  attr.name ="weight"  attr.type ="double" />
< key  id ="d0"  for ="node"  attr.name ="color"  attr.type ="string" >
    
< default > yellow </ default >
</ key >
属性值直接作为图形元素(node edge)的子节点,如:
  < node  id ="n0" >
      
< data  key ="d0" > green </ data >
 
</ node >

这样,GraphML的概念包括了:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值