1

DotML をチャートにレンダリングするにはどうすればよいですか? ここのウェブサイトによると:

データからグラフを取得するには、3 段階のプロセスがあります。最初に、DotML 要素を含む >XHTML (またはその他の XML) ファイルを生成するか、手動で入力します。

DotML 要素の名前空間識別子として「http://www.martin-loetzsch.de/DOTML 」を使用します。>DotML 要素を検証する場合は、DotML スキーマを使用します。

次に、スクリプト「generate-svg-graphics.bash」を入力ファイルに適用します。>dotml2dot.xsl スタイルシートを適用し、SVG チャートと、各 DotML グラフ要素の SVG チャートのサイズを含む CSS ファイルを生成します。必要な環境変数とパラメーターについては、「generate-svg->graphics.bash」を参照してください。

第 3 に、DotML グラフが XHTML ドキュメントに埋め込まれている場合、XSLT スタイルシート「embed->svg-graphics.xsl」は、生成された >SVG を含めることによって DotML グラフ要素を置き換えます。詳しくは「embed-svg-graphics.xsl」をご覧ください。

型付けされた XML は既に持っていますが、残りの手順が何を意味するのかわかりません。誰かが非常に単純なレベルでこれを行う方法を説明できれば、それは素晴らしいことです.

4

1 に答える 1

1

DotML は、GraphViz プログラムを駆動するために使用されるドット言語の代替 XML ベースの構文です。これを使用する通常の方法は、DotML をドットに変換してから、GraphViz を実行して SVG を生成することです。私が(Antから)それを行う方法は次のとおりです。

  <target name="dot-files" depends="merge-catalog" if="build.spec" unless="spec.exists">
    <xslt in="${merged-spec.xml}" out="${dist.dir}/Overview.html" style="style/xslt-diff.xsl" 
      force="yes" classpathref="saxon9.classpath">
      <factory name="net.sf.saxon.TransformerFactoryImpl">
        <attribute name="http://saxon.sf.net/feature/initialMode" value="make-dot-files"/>
      </factory>
      <param name="baseline" expression="${baseline}"/>
      <param name="show.diff.markup.string" expression="0"/>
    </xslt>    
  </target>

  <target name="diagrams" description="Process all the diagrams in the img directory"
    depends="dot-files">
    <foreach target="diagram" param="diagram">
      <path>
        <fileset dir="${dist.dir}/img">
          <include name="*.dot"/>
        </fileset>
      </path>
    </foreach>
  </target>

  <target name="diagram">
    <echo message="Converting diagram ${diagram}"/>
    <basename property="name" file="${diagram}" suffix=".dot"/>
    <echo message="  to ${dist.dir}/img/${name}.svg"/>
    <!-- Requires "dot" to be on the path. dot is part of GraphViz. Location might be GraphViz2.24/bin/dot-->
    <exec executable="dot">
      <arg line="-o${dist.dir}/img/${name}.raw.svg -Tsvg ${diagram} "/>
    </exec>

    <xslt in="${dist.dir}/img/${name}.raw.svg" out="${dist.dir}/img/${name}.svg" style="style/tidy-graphviz-svg.xsl" 
      force="yes" classpathref="saxon9.classpath"/>   
  </target>

私の場合は少し異なります。最初に DotML に変換する必要がある XML ボキャブラリに複数のダイアグラムを含むドキュメントから始めているからです。

于 2013-02-13T21:55:42.700 に答える