GraphML的扩展是基于xml的扩展方式,通过增加namespace的引用就可以容易地扩展GraphML,包括xml属性的扩展和Complex Type的扩展。

 

属性扩展
xsd定义:

graphml+xlink.xsd

图形描述语言GraphML(5):扩展 GraphML<?xml version="1.0" encoding="UTF-8"?>
图形描述语言GraphML(5):扩展 GraphML
<xs:schema 
图形描述语言GraphML(5):扩展 GraphML   
targetNamespace="http://graphml.graphdrawing.org/xmlns"
图形描述语言GraphML(5):扩展 GraphML   xmlns
="http://graphml.graphdrawing.org/xmlns"  
图形描述语言GraphML(5):扩展 GraphML   xmlns:xlink
="http://www.w3.org/1999/xlink"
图形描述语言GraphML(5):扩展 GraphML   xmlns:xs
="http://www.w3.org/2001/XMLSchema"
图形描述语言GraphML(5):扩展 GraphML   elementFormDefault
="qualified"
图形描述语言GraphML(5):扩展 GraphML   attributeFormDefault
="unqualified"
图形描述语言GraphML(5):扩展 GraphML
>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
<xs:import namespace="http://www.w3.org/1999/xlink"
图形描述语言GraphML(5):扩展 GraphML           schemaLocation
="xlink.xsd"/>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
<xs:redefine 
图形描述语言GraphML(5):扩展 GraphML    
schemaLocation="http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
图形描述语言GraphML(5):扩展 GraphML  
<xs:attributeGroup name="node.extra.attrib">
图形描述语言GraphML(5):扩展 GraphML    
<xs:attributeGroup ref="node.extra.attrib"/>
图形描述语言GraphML(5):扩展 GraphML    
<xs:attribute ref="xlink:href" use="optional"/>
图形描述语言GraphML(5):扩展 GraphML  
</xs:attributeGroup>
图形描述语言GraphML(5):扩展 GraphML
</xs:redefine>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
</xs:schema>


例子

图形描述语言GraphML(5):扩展 GraphML<?xml version="1.0" encoding="UTF-8"?>
图形描述语言GraphML(5):扩展 GraphML
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"  
图形描述语言GraphML(5):扩展 GraphML            xmlns:xlink
="http://www.w3.org/1999/xlink"
图形描述语言GraphML(5):扩展 GraphML            xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
图形描述语言GraphML(5):扩展 GraphML            xsi:schemaLocation
="http://graphml.graphdrawing.org/xmlns 
图形描述语言GraphML(5):扩展 GraphML                                graphml+xlink.xsd"
>
图形描述语言GraphML(5):扩展 GraphML  
<graph edgedefault="directed">
图形描述语言GraphML(5):扩展 GraphML    
<node id="n0" xlink:href="http://graphml.graphdrawing.org"/>
图形描述语言GraphML(5):扩展 GraphML    
<node id="n1" />
图形描述语言GraphML(5):扩展 GraphML    
<edge source="n0" target="n1"/>
图形描述语言GraphML(5):扩展 GraphML  
</graph>
图形描述语言GraphML(5):扩展 GraphML
</graphml>


Complex Type扩展
xsd定义:

graphml+svg.xsd

图形描述语言GraphML(5):扩展 GraphML<?xml version="1.0" encoding="UTF-8"?>
图形描述语言GraphML(5):扩展 GraphML
<xs:schema 
图形描述语言GraphML(5):扩展 GraphML   
targetNamespace="http://graphml.graphdrawing.org/xmlns"
图形描述语言GraphML(5):扩展 GraphML   xmlns
="http://graphml.graphdrawing.org/xmlns"  
图形描述语言GraphML(5):扩展 GraphML   xmlns:svg
="http://www.w3.org/2000/svg"
图形描述语言GraphML(5):扩展 GraphML   xmlns:xs
="http://www.w3.org/2001/XMLSchema"
图形描述语言GraphML(5):扩展 GraphML   elementFormDefault
="qualified"
图形描述语言GraphML(5):扩展 GraphML   attributeFormDefault
="unqualified"
图形描述语言GraphML(5):扩展 GraphML
>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
<xs:import namespace="http://www.w3.org/2000/svg"
图形描述语言GraphML(5):扩展 GraphML           schemaLocation
="svg.xsd"/>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
<xs:redefine 
图形描述语言GraphML(5):扩展 GraphML    
schemaLocation="http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
图形描述语言GraphML(5):扩展 GraphML  
<xs:complexType name="data-extension.type">
图形描述语言GraphML(5):扩展 GraphML    
<xs:complexContent>
图形描述语言GraphML(5):扩展 GraphML      
<xs:extension base="data-extension.type">
图形描述语言GraphML(5):扩展 GraphML        
<xs:sequence>
图形描述语言GraphML(5):扩展 GraphML          
<xs:element ref="svg:svg"/>
图形描述语言GraphML(5):扩展 GraphML        
</xs:sequence>
图形描述语言GraphML(5):扩展 GraphML      
</xs:extension>
图形描述语言GraphML(5):扩展 GraphML    
</xs:complexContent>
图形描述语言GraphML(5):扩展 GraphML  
</xs:complexType>
图形描述语言GraphML(5):扩展 GraphML
</xs:redefine>
图形描述语言GraphML(5):扩展 GraphML
图形描述语言GraphML(5):扩展 GraphML
</xs:schema>


例子:

图形描述语言GraphML(5):扩展 GraphML<?xml version="1.0" encoding="UTF-8"?>
图形描述语言GraphML(5):扩展 GraphML
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"  
图形描述语言GraphML(5):扩展 GraphML            xmlns:svg
="http://www.w3.org/2000/svg"
图形描述语言GraphML(5):扩展 GraphML            xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
图形描述语言GraphML(5):扩展 GraphML            xsi:schemaLocation
="http://graphml.graphdrawing.org/xmlns 
图形描述语言GraphML(5):扩展 GraphML                                graphml+svg.xsd"
>
图形描述语言GraphML(5):扩展 GraphML  
<key id="k0" for="node">
图形描述语言GraphML(5):扩展 GraphML    
<default>
图形描述语言GraphML(5):扩展 GraphML      
<svg:svg width="5cm" height="4cm" version="1.1">
图形描述语言GraphML(5):扩展 GraphML        
<svg:desc>Default graphical representation for nodes
图形描述语言GraphML(5):扩展 GraphML        
</svg:desc>
图形描述语言GraphML(5):扩展 GraphML        
<svg:rect x="0.5cm" y="0.5cm" width="2cm" height="1cm"/>
图形描述语言GraphML(5):扩展 GraphML      
</svg:svg>
图形描述语言GraphML(5):扩展 GraphML    
</default>
图形描述语言GraphML(5):扩展 GraphML  
</key>  
图形描述语言GraphML(5):扩展 GraphML  
<key id="k1" for="edge">
图形描述语言GraphML(5):扩展 GraphML    
<desc>Graphical representation for edges
图形描述语言GraphML(5):扩展 GraphML    
</desc>
图形描述语言GraphML(5):扩展 GraphML  
</key>  
图形描述语言GraphML(5):扩展 GraphML  
<graph edgedefault="directed">
图形描述语言GraphML(5):扩展 GraphML    
<node id="n0">
图形描述语言GraphML(5):扩展 GraphML      
<data key="k0">
图形描述语言GraphML(5):扩展 GraphML        
<svg:svg width="4cm" height="8cm" version="1.1">
图形描述语言GraphML(5):扩展 GraphML          
<svg:ellipse cx="2cm" cy="4cm" rx="2cm" ry="1cm" />
图形描述语言GraphML(5):扩展 GraphML        
</svg:svg>  
图形描述语言GraphML(5):扩展 GraphML      
</data>
图形描述语言GraphML(5):扩展 GraphML    
</node>
图形描述语言GraphML(5):扩展 GraphML    
<node id="n1" />
图形描述语言GraphML(5):扩展 GraphML    
<edge source="n0" target="n1">
图形描述语言GraphML(5):扩展 GraphML      
<data key="k1">
图形描述语言GraphML(5):扩展 GraphML        
<svg:svg width="12cm" height="4cm" viewBox="0 0 1200 400">
图形描述语言GraphML(5):扩展 GraphML          
<svg:line x1="100" y1="300" x2="300" y2="100"
图形描述语言GraphML(5):扩展 GraphML           stroke-width
="5"  />
图形描述语言GraphML(5):扩展 GraphML        
</svg:svg>
图形描述语言GraphML(5):扩展 GraphML      
</data>
图形描述语言GraphML(5):扩展 GraphML    
</edge>
图形描述语言GraphML(5):扩展 GraphML  
</graph>
图形描述语言GraphML(5):扩展 GraphML
</graphml>

相关文章:

  • 2022-03-05
  • 2021-09-15
  • 2021-11-29
  • 2021-10-05
  • 2021-12-07
  • 2021-12-21
猜你喜欢
  • 2021-04-05
  • 2021-09-28
  • 2021-11-13
  • 2021-06-19
  • 2021-11-24
相关资源
相似解决方案