2017-11-20 9 views
0

Guys XMLML 파일을 GraphML 형식으로 변환하려고하므로 아래 스타일 시트를 사용합니다. 스타일 시트는 GraphML 파일을 생성하지만 스키마는 Graphml 뷰어에서 유효성을 검사 할 수 없습니다. 누군가 내가 스타일 시트에서 잘못 지적한 점과 그것을 해결하기 위해 무엇을 할 수 있습니까?GraphML 용 스타일 시트

스타일 시트 :

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" omit-xml-declaration="no" indent="yes"/> 
<xsl:template match="/"> 
    <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"> 
      <default>1.0</default> 
     </key>  
     <key id="d2" for="all" attr.name="name" attr.type="string"/> 
     <graph id="G" edgedefault="undirected"> 
      <xsl:for-each select="network/nodes/node"> 
       <node id="{position()}">      
        <data key="d0"><text>black</text></data> 
        <data key="d2"> 
         <xsl:value-of select = "@id"/> 
        </data> 
       </node> 
      </xsl:for-each> 
      <xsl:for-each select="network/links/link"> 
       <edge id="{position()}" source="{@from}" target="{@to}"> 
        <data key="d1"> 
         <xsl:value-of select="@length"/> 
        </data> 
        <data key="d2"> 
         <xsl:value-of select="@id"/> 
        </data> 
       </edge> 
      </xsl:for-each> 
     </graph> 
    </graphml> 
</xsl:template> 
</xsl:stylesheet> 

출력 Graphml

<?xml version="1.0" encoding="UTF-8"?><graphml xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd" xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<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"> 
<default>1.0</default> 
</key> 
<key id="d2" for="all" attr.name="name" attr.type="string"/> 
<graph id="G" edgedefault="undirected"> 
<node id="1"> 
<data key="d0"> 
<text>""</text> 
</data> 
<data key="d2">MyCiTi_1</data> 
</node> 
<node id="2"> 
<data key="d0"> 
<text>""</text> 
</data> 
<data key="d2">MyCiTi_10</data> 
</node> 
<node id="3"> 
<data key="d0"> 
<text>""</text> 
</data> 
<data key="d2">MyCiTi_100</data> 
</node> 
<edge id="1" source="MyCiTi_180" target="MyCiTi_180"> 
<data key="d1">50.0</data> 
<data key="d2">MyCiTi_0</data> 
</edge> 
<edge id="2" source="MyCiTi_180" target="MyCiTi_58"> 
<data key="d1">608.4643035761809</data> 
<data key="d2">MyCiTi_1</data> 
</edge> 
<edge id="3" source="MyCiTi_176" target="MyCiTi_192"> 
<data key="d1">868.3169964115151</data> 
<data key="d2">MyCiTi_10</data> 
</edge> 
</graph> 
</graphml> 

입력 XML :

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE network SYSTEM "http://www.matsim.org/files/dtd/network_v2.dtd"> 
<network> 

    <!-- ====================================================================== --> 

     <nodes> 
      <node id="MyCiTi_1" x="-53196.450154726146" y="-3755010.0058102254" > 
      </node> 
      <node id="MyCiTi_10" x="-54879.37761845079" y="-3753903.660850382" > 
      </node> 
      <node id="MyCiTi_100" x="-46659.23389528884" y="-3749500.821686937" > 
      </node> 
     </nodes> 

    <!-- ====================================================================== --> 

     <links capperiod="01:00:00" effectivecellsize="7.5" effectivelanewidth="3.75"> 
      <link id="MyCiTi_0" from="MyCiTi_181" to="MyCiTi_180" length="50.0" freespeed="8.333333333333334" capacity="500.0" > 
      </link> 
      <link id="MyCiTi_1" from="MyCiTi_180" to="MyCiTi_58" length="608.4643035761809" freespeed="8.333333333333334" capacity="500.0" > 
      </link> 
      <link id="MyCiTi_10" from="MyCiTi_176" to="MyCiTi_192" length="868.3169964115151" freespeed="8.333333333333334" capacity="500.0" > 
      </link> 
     </links> 

</network> 

답변

1

내가 제대로 스타일 시트는에 노드의 그래프와 네트워크 링크로 노드의 네트워크를 매핑 할을 이해한다면 그래프 가장자리, 그리고 나에게 합리적인 사운드; 하지만 당신의 의견은 연결되지 않은 그래프를 반영한 ​​것처럼 보입니다.

예를 들어 ID MyCiTi_0와 링크가 존재하지 않는 노드 MyCiTi_181MyCiTi_180 지칭이 뜻은 소스 및 대상 노드는 누락 생성 생산할 예정 graphml 에지로 실패.