1

如何将 DotML 呈现到图表中?根据这里的网站:

从数据中获取图表是一个三步过程。首先,生成或手动键入包含 DotML 元素的 >XHTML(或任何其他 XML)文件。

使用“ http://www.martin-loetzsch.de/DOTML ”作为 DotML 元素的命名空间标识符。>如果您想验证您的 DotML 元素,请使用 DotML Schema。

其次,在输入文件上应用脚本“generate-svg-graphics.bash”。它应用 >dotml2dot.xsl 样式表并生成一个 SVG 图表和一个 CSS 文件,其中包含每个 DotML 图形元素的 SVG 图表的大小。请查看“generate-svg->graphics.bash”以获取所需的环境变量和参数。

第三,如果 DotML 图形嵌入到 XHTML 文档中,XSLT 样式表“embed->svg-graphics.xsl”通过包含生成的 >SVG 来替换 DotML 图形元素。有关详细信息,请查看“embed-svg-graphics.xsl”。

我已经有输入的 XML,但我不知道其余步骤的含义。如果有人能以非常简单的方式解释如何做到这一点,那就太好了。

4

1 回答 1

1

DotML 是用于驱动 GraphViz 程序的点语言的另一种基于 XML 的语法。正常的使用方式是将DotML转换为dot,然后运行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>

我的情况有点不同,因为我从一个文档开始,该文档包含 XML 词汇表中的多个图表,首先需要将其转换为 DotML。

于 2013-02-13T21:55:42.700 回答