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 ボキャブラリに複数のダイアグラムを含むドキュメントから始めているからです。