--- /dev/null
+<?xml version="1.0"?>
+<project name="diary" default="transform" basedir="">
+ <property name="xdocs.dir" value="./xdocs"/>
+ <property name="build.dir" value="."/>
+ <property name="build.docs" value="${build.dir}/docs"/>
+ <target name="prepare">
+ <tstamp/>
+ </target>
+ <target name="transform" depends="prepare">
+ <style basedir="${xdocs.dir}" destdir="${build.docs}" style="style/spdf.xsl"
+ includes="semi-variants.xml"/>
+ </target>
+ <target name="dist">
+ <tar tarfile="${build.dir}/semi-variants-docs.tar"
+ basedir="${build.docs}" includes="*"/>
+ <gzip src="${build.dir}/semi-variants-docs.tar"
+ zipfile="${build.dir}/semi-variants-docs.tar.gz"/>
+ </target>
+ <target name="clean">
+ <delete>
+ <fileset dir="${build.docs}" includes="semi-variants.html"/>
+ </delete>
+ </target>
+</project>
--- /dev/null
+body { margin-left: 2%; margin-right: 5%; background: white }
+h1 { text-color: "red"; text-align: center }
+strong { text-transform: uppercase; font-weight: bold }
+caption { text-decoration: underline; margin-top: 1em }
+blockquote { color: black; font-style:italic;
+ font-family: "Comic Sans MS", sans-serif }
+ul { list-style-type: none }
+span.banner { font-style: bold-italic }
+span.center { text-align: center }
+th { text-align: left }
+td { text-align: left }
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE products SYSTEM "style/dtd/spdf.dtd">
+<products>
+ <product name="FLIM" version="1.14">
+ <variant name="FLIM-Deisui" version="1.14.0">
+ <maintainer>MORIOKA Tomohiko</maintainer>
+ <description>
+ ?
+ </description>
+ <implementation>
+ <codebase cvsroot=":pserver:anonymous@cvs.m17n.org:/cvs/root"
+ module="flim" tag="deisui-1_14"/>
+ </implementation>
+ </variant>
+ </product>
+ <product name="SEMI" version="1.14">
+ <variant name="EMIKO" version="1.14.0">
+ <maintainer>Daiki Ueno</maintainer>
+ <description>
+ ?
+ </description>
+ <implementation>
+ <codebase cvsroot=":pserver:anonymous@cvs.m17n.org:/cvs/root"
+ module="semi" tag="emiko-1_14"/>
+ <dependency>
+ <product name="FLIM" version=">= 1.14"/>
+ <product name="Emacs" version=">= 20.5"/>
+ </dependency>
+ </implementation>
+ </variant>
+ </product>
+</products>
--- /dev/null
+<?xml version="1.0" encoding="US-ASCII"?>
+
+<!ELEMENT products (product*)>
+<!ELEMENT product (variant*)>
+<!ATTLIST product
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED>
+
+<!ENTITY % URI "CDATA">
+<!ELEMENT variant
+ (maintainer,
+ description,
+ implementation?)>
+<!ATTLIST variant
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED>
+
+<!ELEMENT maintainer (#PCDATA)>
+<!ATTLIST maintainer
+ href %URI; #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT implementation
+ (codebase|dependency)*>
+<!ELEMENT codebase EMPTY>
+<!ATTLIST codebase
+ href %URI; #IMPLIED
+ cvsroot CDATA #IMPLIED
+ module CDATA #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT dependency (variant|product)*>
--- /dev/null
+<?xml version="1.0"?>
+<!-- Copyright (C) 2000 Daiki Ueno. -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="xml" encoding="UTF-8"/>
+ <xsl:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+ doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>
+
+ <xsl:template match="products">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>SEMI family products</title>
+ <meta content="text/html" http-equiv="Content-Type"/>
+ <link href="default.css" type="text/css" rel="stylesheet" />
+ <meta content="text/css" http-equiv="Content-Style-Type" />
+ </head>
+ <body>
+ <xsl:apply-templates select="product"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="product">
+ <h2><xsl:value-of select="@name"/>/<xsl:value-of select="@version"/></h2>
+ <xsl:apply-templates select="variant"/>
+ </xsl:template>
+
+ <xsl:template match="variant">
+ <table border="1" width="99%">
+ <tbody>
+ <tr>
+ <th width="17%">name</th>
+ <td><xsl:value-of select="@name"/></td>
+ </tr>
+ <tr>
+ <th>version</th>
+ <td><xsl:value-of select="@version"/></td>
+ </tr>
+ <tr>
+ <th>maintainer</th>
+ <td>
+ <xsl:choose>
+ <xsl:when test="maintainer/@href">
+ <a href="{maintainer/@href}"><xsl:value-of select="maintainer"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="maintainer"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr><th>description</th><td><xsl:value-of select="description"/></td></tr>
+ <xsl:apply-templates select="implementation"/>
+ </tbody>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="implementation">
+ <xsl:apply-templates select="codebase"/>
+ <xsl:apply-templates select="dependency"/>
+ </xsl:template>
+
+ <xsl:template match="codebase">
+ <tr>
+ <th>code</th>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@cvsroot">
+ <table>
+ <tbody>
+ <tr><th>CVSROOT</th><td><xsl:value-of select="@cvsroot"/></td></tr>
+ <tr><th>module</th><td><xsl:value-of select="@module"/></td></tr>
+ <tr><th>tag</th><td><xsl:value-of select="@tag"/></td></tr>
+ </tbody>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="@href"><xsl:value-of select="@href"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template name="separate">
+ <xsl:if test="position() < last()">
+ <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="variant|product" mode="dependency.mode">
+ <xsl:value-of select="@name"/> (<xsl:value-of select="@version"/>)
+ <xsl:call-template name="separate"/>
+ </xsl:template>
+
+ <xsl:template match="dependency">
+ <tr>
+ <th>dependency</th>
+ <td>
+ <xsl:apply-templates select="./*" mode="dependency.mode"/>
+ </td>
+ </tr>
+ </xsl:template>
+</xsl:stylesheet>