2017-11-20 4 views
0

Guys xmlファイルを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が生じると、ソースとターゲットノードが欠落しているエッジれるように、これは失敗するであろう。

関連する問題